Thema: Delphi ACDSee fernsteuern

Einzelnen Beitrag anzeigen

IronCanceller

Registriert seit: 21. Feb 2007
1 Beiträge
 
#1

ACDSee fernsteuern

  Alt 21. Feb 2007, 19:57
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.
  Mit Zitat antworten Zitat