Guybrush Threepwood Geschrieben 25. Februar 2013 Geschrieben 25. Februar 2013 Hat da jemand Erfahrung mit? Leider gibt das Wia Tutorial unter WIA Tutorial (Windows) nicht so viel für mich her und auch sonst hab ich sehr wenig hilfreiches dazu im Internet gefunden. Ich komme soweit das ich mir mit der DeviceId ein IWiaItem2 meines Scanners erzeuge. Aber mir ist nicht klar wie es von da weitergeht. In dem obigen Beispiel wird als nächstes über alle Items in dem Device iteriert und dann eins davon transferiert. Ich vermute mal das das auf DigiCams abzielen soll und man so Fotos von der Speicherkarte auf den PC transferieren kann. Hilft mir leider beim Scanner nicht weiter. Ich hab einfach mal probiert mit IWiaItem2 *pPicture = 0; hr = pWiaDevice->DeviceCommand(0, &WIA_CMD_TAKE_PICTURE, &pPicture);[/PHP] WIA_CMD_TAKE_PICTURE an den Scanner zu senden, aber da erhalte ich nur E_NOTIMPL als Result zurück. Bin da ziemlich ratlos. Zitieren
Klotzkopp Geschrieben 25. Februar 2013 Geschrieben 25. Februar 2013 If the imaging device is a scanner, IWiaDataTransfer::idtGetData, or other methods of the IWiaDataTransfer interface, triggers a scan operation, and then transfers the resulting image data. Quelle Zitieren
Guybrush Threepwood Geschrieben 25. Februar 2013 Autor Geschrieben 25. Februar 2013 Ja das geht aber nur auf einem konkreten Item das zum scannen ausgewählt wurde. Auswählen kann man das über den standard Dialog mit DeviceDlg() was ich eigentlich vermeiden wollte oder irgendwie programmatisch. Allerdings geht das auch nicht direkt über das Interface des Scanners wie ich rausgefunden habe. Dieses ist nämlich nur der root eines Baums welcher alle Funktionen des Gerätes wiederspiegelt. Aus diesem Baum muss man sich dann irgendwie das Item raussuchen welches scannen kann und da dann das Document zum scannen selectieren und dann scannen. Zumindest hab ich es jetzt so verstanden, ist alles ziemlich umständlich Zitieren
Guybrush Threepwood Geschrieben 25. Februar 2013 Autor Geschrieben 25. Februar 2013 Hmm wenn ich jetzt versuche über mein Item das fürs scannen zuständig sein sollte den DeviceDlg aufzurufen bekomme ich als Result E_INVALIDARG. LONG files = 0; BSTR *fileNames = new BSTR[0]; IWiaItem2 *pWiaItems; hr = pScannerItem->DeviceDlg(0, NULL, TEXT("d:\\testscan"), TEXT("test.png"), &files, &fileNames, &pWiaItems);[/PHP] Ich vermute mal das es am letzten Parameter liegt wo er die Adresse eines Arrays von Pointern auf IWiaItem2 möchte, was mich aber leider nicht weiter bringt. IWiaItem2::DeviceDlg method (Windows) Das bringt zum Beispiel den selben Fehler: [PHP]IWiaItem2 *pWiaItems[10]; hr = pScannerItem->DeviceDlg(0, NULL, TEXT("d:\\testscan"), TEXT("test.png"), &files, &fileNames, pWiaItems); Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.