AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Twain

Ein Thema von HPB · begonnen am 20. Feb 2015 · letzter Beitrag vom 3. Mär 2015
Antwort Antwort
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#1

Delphi Twain

  Alt 20. Feb 2015, 07:50
Guten Tag Delphianer,
ich habe die Delphi-Twain Komponente herunter geladen.
Wie wird die Delphi Twain Komponente installiert?
Kann mir da jemand auf die Sprünge helfen??
Gibt es vielleicht eine andere Scanner-Komponente, darf ruhig etwas kosten?
Ich selber habe nichts gefunden. Vielleicht habe ich auch nur falsch gesucht.
Mit Gruß
HPB
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#2

AW: Delphi Twain

  Alt 20. Feb 2015, 08:42
Die Delphi-Twain Komponente?

Ich kann dir sagen, dass ich eine Unit habe, mit der ich die Scanner unter Windows auslisten, einen Scanner ansprechen und mir ein Dokument scannen lassen kann. Leider ist die Unit recht alt, und ich weiß leider auch nicht mehr, wo ich sie her habe. Da im Header nix steht, weiß ich auch nicht, ob ich sie so weiter geben darf (ist schließlich nicht von mir). Die Unit ist recht alt, hatte ich damals unter D7 genutzt, und seit her nicht mehr gebaucht.

Hier
http://www.delphipraxis.net/157258-s...delphi-xe.html
und hier
http://www.delphipraxis.net/154861-w...ansteuern.html
könntest du mal reinschauen.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Delphi Twain

  Alt 20. Feb 2015, 08:48
Hi,

ich spiel mit der hier gerade rum: (Kostenlos): http://kluug.net/delphitwain.php
funktioniert so weit ich feststellen kann - leider scheint mein MFGerät einen Fehler in der Twainschnittstelle zu haben.

Kostenpflichtig wäre das hier noch: http://www.dynarithmic.com/details_dtwain.html
wobei die angeblich bei unseren Kunden hin und wieder Probleme macht (zumindest sagt das der Flurfunk), allerdings ist die Benutzung etwas einfacher (Abruf von mehrseitigen PDF, das musst Du bei der kostenlosen halt selbst implementieren)

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.431 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi Twain

  Alt 20. Feb 2015, 09:39
Moin...

Zitat:
Installation
DelphiTwain is a runtime library. There are no visual components that have to be installed. Just add the source code directory to your library path and start using DelphiTwain.
...einfacher als du denkst.

Edit:
Zitat:
funktioniert so weit ich feststellen kann
...dann ist mein Kommentar ja nutzlos.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Delphi Twain

  Alt 2. Mär 2015, 13:43
Hi, ich spiel mit der hier gerade rum: (Kostenlos): http://kluug.net/delphitwain.php
funktioniert so weit ich feststellen kann
Moinsen,

habe DelphiTwain von Kluug.net "installiert" (XE7) und kann damit scannen – allerdings nur in einer 32-Bit-Anwendung. Kompiliere ich die Anwendung für 64-Bit, erhalte ich die Meldung Twain is not installed.

Als nächstes hab ich mir den neuesten Treiber für den eingesetzten Scanner (CanoScan Lide 100) geladen und installiert, damit soll die 64-Bit-Unterstützung gewährleistet sein. Ich habe auch bereits den TWAIN Data Source Manager heruntergeladen und die darin enthaltenen DLLs in die entsprechenden Windows-Verzeichnisse kopiert: Auch das brachte keinen Erfolg: Im 64-Bit-Kompilat ist Twain weiterhin nicht installiert.

Danach hab ich mir nochmal die Seite kluug.net angeschaut. Dort steht:

you need 64bit scanner and TWAIN drivers: and tweak the line 778 in DelphiTwain.pas:
fHandle := Windows.LoadLibrary(PChar(TwainDirectory + TWAINLIBRARY));
to the new DLL


Das habe ich nicht verstanden. "Tweak" heißt doch soviel wie "zwicken", zumindest nach meinem Wörterbuch hier. In Zeile 778 der DelphiTwain.pas ist aber so ein Befehl gar nicht zu finden, dort steht ein end; und das gehört zu dieser Procedure:
Delphi-Quellcode:
procedure TTwainIdentity.SetMajorVersion(const aMajorVersion: TW_UINT16);
begin
  Structure.Version.MajorNum := aMajorVersion;
end;
Jetzt hab ich mir gedacht: Kopierst du die DLLs einfach in das entsprechende Programmverzeichnis. Die 64-Bit-Binary wird hier im Ordner ..\Debug\64bit\BIN erstellt, und da hab nun die beiden Dateien TWAINDSM.dll und TWAINDSM64.msm reinkopiert. Nun erscheint zwar keine Fehlermeldung beim Programmstart, dennoch stehen in meinem Scanner-Formular keine Scanner zur Auswahl bereit, wenn ich mit 64-Bit kompiliert habe, in der 32-Bit-Anwendung dagegen schon, wie die Grafik unten zeigt.

Hat schon einmal jemand diese Version von DelphiTwain mit XE7 in einer 64-Bit-Anwendung zum Laufen gebracht? Oder weiß irgend jemand, was ich noch versuchen könnte oder was ich falsch gemacht habe?

Danke.
Angehängte Grafiken
Dateityp: jpg ScannerQuellen.jpg (29,8 KB, 34x aufgerufen)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Delphi Twain

  Alt 2. Mär 2015, 14:19
Tweak kann auch sowas wie "umbiegen" oder "leicht verändern" heißen und ich denke es geht um die Zeile mit dem Code:

fHandle := Windows.LoadLibrary(PChar(TwainDirectory + TWAINLIBRARY));

die aber wahrscheinlich überall, nun nicht (mehr) in Zeile 778 steht, wie das halt mit so Dokus ist.

Vielleicht einfach mal danach im Quellcode suchen.

Ich bin jetzt nicht so der Twain/dll Experte aber wahrsch. heißt die (64er) dll anders und steht in einem anderen Verzeichnis als die 32er. Dementsprechend müsstest du mal schauen, was in TwainDirectory und/bzw. in TWAINLIBRARY steht und das ggf. anpassen.
Ralph
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#7

AW: Delphi Twain

  Alt 2. Mär 2015, 14:24
So schwer ist das nicht...
Die 64Bit-Version ist ROT:

const
{Name of the Twain library for 32 bits enviroment}
{$IFDEF WIN64}
TWAINLIBRARY: String = 'TWAINDSM.DLL';
{$ELSE}
TWAINLIBRARY: String = 'TWAIN_32.DLL';
{$ENDIF}

Es gibt im WINDOWS-Verzeichnis ein Unterverzeichnis twain_32:
Das könnte mit TwainDirectory gemeint sein.
Vielleicht wird üblicherweise da nach einem Treiber gesucht.
Ich habe nocht etwas Anderes gefunden:
http://sourceforge.net/projects/twain-dsm/files/

Zitat:
TWAIN Data Source Manager [DSM],
compliant with version 2.2 of the TWAIN specification.

[Windows]
The TWAIN DSM is a shared library named TWAINDSM.DLL. There is a 32bit and a
64bit version of this file. TWAINDSM.DLL is installed in the Windows System
directory (normally C:\Windows\System32). If installing the 32bit file on a
64bit system, make sure it ends up in the WOW64 System directory (normally
C:\Windows\SysWow64)

The DSM looks for data sources in C:\Windows\twain_32 or C:\Windows\twain_64.
Data sources are also shared objects, but they have a .ds extension.
ex: datasource.ds

The DSM walks the twain_[32|64] directory and LoadLibrary each .ds
file it finds, then uses GetProcAddress to locate the DS_Entry function.

The DSM looks for the environment variable, TWAINDSM_LOG, for the location of
the log file to write to. If the environment variable is not set, then no log
is kept. Here is an example of setting the environment variable from a
command prompt:
...


Delphi-Quellcode:
function TCustomDelphiTwain.LoadLibrary(): Boolean;
var
  TwainDirectory: String;
begin
  {The library must not be already loaded}
  if (not LibraryLoaded) then
  begin
    Result := FALSE; {Initially returns FALSE}
    {Searches for Twain directory}
    TwainDirectory := GetTwainDirectory();
    {Continue only if twain is installed in an known directory}
    if TwainDirectory <> 'then
    begin

      fHandle := Windows.LoadLibrary(PChar(TwainDirectory + TWAINLIBRARY));
      {If the library was sucessfully loaded}
      if (fHandle <> INVALID_HANDLE_VALUE) then
      begin
...

Geändert von hathor ( 2. Mär 2015 um 14:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#8

AW: Delphi Twain

  Alt 2. Mär 2015, 14:24
Im aktuellen Code ist der Name der DLL bereits über eine Compiler-Direktrive angepasst, so dass man eigentlich gar nichts mehr händisch ändern muss.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#9

AW: Delphi Twain

  Alt 3. Mär 2015, 08:33
[
Als nächstes hab ich mir den neuesten Treiber für den eingesetzten Scanner (CanoScan Lide 100) geladen und installiert, damit soll die 64-Bit-Unterstützung gewährleistet sein.
Bist Du sicher, dass Du den richtigen TWAIN-kompatibelen Treibersatz ausgewählt hast.

Dies wäre der "lide100win641403ea24.exe".

Wenn ich dem Link folge, dann kommt dort zuerst aber nur der 32-Bit-TWAIN-kompatible Treiber. Also "lide100win1403ea24.exe".
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#10

AW: Delphi Twain

  Alt 3. Mär 2015, 10:07
Wenn du dem Link folgst und etwas oberhalb des ersen Download-Links (der ist für den MP-Navigator) die Combobox betrachtest, dann ist dort vermutlich dein Betriebssystem ausgewählt, weil die Seite das irgendwie ermittelt hat. Gehe ich recht in der Vermutung, daß du diese Seite mit einem 32-Bit-Windows betrachtest? Ich dagegen betrachte sie mit einem 64-Bit-Windows, und daher ist dort in der Combobox auch mein 64-Bit-Windows ausgewählt. Die Seite stellt mir die meiner Windows-Version entsprechenden Link-Versionen automatisch zur Verfügung. Ich habe also genau den Treiber, der zu meiner Windows-Version paßt. Der Dateiname der heruntergeladenen Exe entspricht dem, den du oben angegeben hast. Da bin ich sicher. Ganz sicher. Hab dennoch Dank für deine Nachfrage

Vielleicht testet ja noch jemand anderes außer mir und Ondrej Pokorny (den Weiterentwickler von DelphiTwain), verschiedene Scanner mit einer 64-Bit-Anwendung via DelphiTwain anzusprechen. Ich habe jedenfalls den Eindruck gewonnen, daß das grundsätzlich nicht geht, weil der Treiber zwar für ein 64-Bit-OS geschrieben wurde, selbst aber intern mit 32 Bit arbeitet, was auch immer. Ich kann mich damit nicht allzu lange aufhalten, die gestellte Aufgabe muß zeitnah erledigt werden.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz