AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi Twain

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

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

Delphi Twain

  Alt 20. Feb 2015, 08: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, 09: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.322 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Delphi Twain

  Alt 20. Feb 2015, 09: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.082 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delphi Twain

  Alt 20. Feb 2015, 10: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, 14: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.
Miniaturansicht angehängter Grafiken
scannerquellen.jpg  
  Mit Zitat antworten Zitat
Jumpy

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

AW: Delphi Twain

  Alt 2. Mär 2015, 15: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, 15: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 15:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.455 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Delphi Twain

  Alt 2. Mär 2015, 15: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
Perlsau
(Gast)

n/a Beiträge
 
#9

AW: Delphi Twain

  Alt 2. Mär 2015, 15:48
@hathor & @DeddyH

Danke für die schnellen Antworten
Dir + String(TWAINLIBRARY) Diese beiden Variablen zeigen die korrekten Inhalte: Dir steht auf 'C:\Windows\' und String(TWAINLIBRARY) auf 'TWAINDSM.DLL', die auch tatsächlich dort zu finden ist.

Auch ein neuerer Treiber (lide100win641403ea24.exe) scheint kein 64-Bit-Treiber zu sein, das vermute ich jedenfalls, weil im Windows-Ordner ein Verzeichnis namens Twain_32 existiert.

Heißt das jetzt, wenn für den einzusetzenden Scanner kein 64-Bit-Windows-Driver vorhanden ist, kann man den mit einer 64-Bit-Anwendung auch nicht verwenden?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.455 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Delphi Twain

  Alt 2. Mär 2015, 15:51
32 Bit-Programme können nur 32 Bit-DLLs laden, 64 Bit-Programme nur 64 Bit-DLLs. Da Treiber im Allgemeinen aus DLLs bestehen, brauchst Du also zwingend eine 64 Bit-Variante, sonst geht es nicht.
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
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf