Bonjour,
Je suis tombé par hasard sur un sujet parlant de TWAIN et je me suis dit que ce serai pas mal pour mon gestionnaire de DVD pour récupérer la jaquette.
J'ai donc télécharger et installé le composant DelphiTwain. En regardant l'aide fournie avec les sources j'ai écrit les procédures suivantes.
Au moment de tester, tout semblait fonctionner à merveille. J'avais une boite de dialogue TWAIN qui me proposait de choisir un périphérique. J'ai choisi mon scanner (qui au passage apparaissait plusieurs fois :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 procedure TFrmInsererFilm.ImporterClick(Sender: TObject); var SourceIndex : Integer; Source : TTWainSource; Jaquette,src,dest:string; begin // S'assure que la librairie et le source manager sont chargés Scanner.LibraryLoaded := True; Scanner.SourceManagerLoaded := True; // Boîte de dialogue pour sélectionner la source, -1 si pas de source SourceIndex := Scanner.SelectSource; if (SourceIndex <> -1) then begin if (Sauver.Execute) then begin Jaquette:=Sauver.FileName; //Variable pour la copie de la jaquette dans le répertoire voulu src:=Jaquette; dest:=Chemin+'Jaquette\'+ExtractFileName(src); // Récupère la source Source := Scanner.Source[SourceIndex]; // Sauvegarde le chemin de l'image ImageJaquette:=dest; Scanner.TransferMode := ttmFile; Source.SetupFileTransfer(dest,tfJPEG); // Charge la source try Source.Loaded := True; Source.TransferMode := ttmFile; // Acquère l'image Source.Enabled := True; finally Source.Free; end; FrmStart.CopierFichier('"'+src+'"','"'+dest+'"'); ImageJaquette:=dest; end; end; end; procedure TFrmInsererFilm.ScannerTwainAcquire(Sender: TObject; const Index: Integer; Image: TBitmap; var Cancel: Boolean); begin ImgJaquette.Picture.Assign(Image); Cancel := True; end;
- Une fois avec marqué TWAIN et #2 dans le nom du scanner
- Une fois avec marqué TWAIN et #4 dans le nom du scanner
- Une fois avec juste le nom du scanner)
J'ai pris le #4.
Ensuite ma boite de dialogue de sauvegarde est apparue. J'ai choisi le nom du fichier (test.jpg puisque mon scanner HP Photosmart C4280 enregistre les images dans ce format là, entre autre).
Je valide et je vois le logiciel HP se lancer et commencer la numérisation.
Je me suis dit "Génial ça fonctionne à la perfection" mais au moment d'accepter la capture Vista m'informe que le programme HP dois se fermer. AU bout de quelques secondes, le logiciel HP se ferme effectivement et en toute logique l'image n'apparait pas.
J'ai rajouté le try...finally après.
Pour info la procédure CopierFichier contient juste un ShellExecute qui execute un fichier bat de copy de fichier en langage DOS et fonctionne tout à fait correctement sur Vista, j'ai testé. Mais de toute façon elle est lancée après et donc n'intervient pas dans le scan.
ImageJaquette est une variable globale déclarée en string qui me sert pour l'insertion du chemin vers l'image en question dans la base de données.
j'ai cherché sur le forum des sujets pour mon problème mais je n'en ai trouvé aucun.
Quelqu'un s'est-il déja servi de DelphiTwain sous Vista ?
A-t-il rencontré ce genre de problème ?
Comment l'a-t_il résolu ?
Merci
Partager