Zum Inhalt springen

Scannen mit WIA 2.0


Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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);

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...