Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ACDSee fernsteuern (https://www.delphipraxis.net/86979-acdsee-fernsteuern.html)

IronCanceller 21. Feb 2007 19:57


ACDSee fernsteuern
 
Hallo, ich habe folgendes Problem:

Ich versuche das Programm ACDSee (Bilderverwaltung) fernzusteuern. Der Zweck ist das automatische Erstellen von Snapshots von Videos (für eine Filmdatenbank), was ACDSee ab Version 6 sehr schön kann.
Dazu muss ich ACDSee dazu bringen, in den richtigen Ordner zu navigieren. Mein aktueller Ansatz läuft über FindWindow und SendMessage:

Delphi-Quellcode:
  handle:=FindWindow(nil, pchar(Edit1.Text)); // in Edit1.Text steht der Fenstertitel
  handle:=FindWindowEx(handle, 0, 'Afx:00400000:0', nil);
  handle:=FindWindowEx(handle, 0, nil, 'ViewFilter');
  handle:=FindWindowEx(handle, 0, 'Afx:00400000:0:00000000:01100059:00000000', nil);
  handle:=FindWindowEx(handle, 0, 'ComboBoxEx32', nil);
  handle:=FindWindowEx(handle, 0, 'ComboBox', nil);
  handle:=FindWindowEx(handle, 0, 'Edit', nil);
  SendMessage(handle, WM_SETTEXT, 255, Integer(PChar('C:\')));
  SendMessage(handle, WM_SETFOCUS, 0, 0);
  SendMessage(handle, WM_KEYDOWN, VK_RETURN, 0);
  SendMessage(handle, WM_KEYUP, VK_RETURN, 0);
Was passiert ist dass in der Adressleiste der aktuelle Pfad korrekt durch "C:\" ersetzt wird - nur navigiert ACDSee da nicht hin! Ich habe den ähnlichen Code zusammen mit dem Windows Explorer ausprobiert, und da geht es - irgendwas scheint bei ACDSee anders zu laufen. Wenn ich aber - nachdem ich mein Programm habe laufen lassen und in ACDSee die Adressleiste auf "C:\" steht - zu ACDSee umschalte und dann einfach so auf Enter drücke, dann geht's!
Ich habe auch versucht, VK_RETURN an diverse andere ACDSee-Handles zu schicken, außerdem habe ich WM_CHAR probiert und statt VK_RETURN auch mal #13 und #10 genommen. Alles ohne Erfolg.
Das ganze habe ich getestet mit ACDSee 5, 6, 8 und 9 (nachdem die komplette Struktur über die Versionen hinweg gleich geblieben ist, vermute ich auch mal, dass es in Version 7 auch nicht anders wäre...).

Mittlerweile bin ich mit meinem Latein am Ende (selbst ein verzweifelter Versuch, den "Öffnen"-Dialog fernzusteuern ist fehlgeschlagen und hat regelmäßig das Programm zum Absturz gebracht - einmal sogar ganz Windows. Seitdem lasse ich die Finger davon ;-) ).
Für Hinweise oder gar Lösungen wäre ich sehr dankbar!

Viele Grüße,
Christian

P.S.: Hier habe ich ein ähnliches Problem gefunden, darüber bin ich auf das WM_SETFOCUS gekommen, ohne das der Code auch im Windows Explorer nicht funktioniert, aber weiter hat es leider auch nicht geholfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 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 by Thomas Breitkreuz