Danke für die Antworten
Ich habe es jetzt mal mit sendmessage probiert. "Programm A" das in der Regel auf die "Datei C" zugreift hat eine unsichtbare Form bekommen (initialisiert mit "Application.showmainform := false und Form1.visible := false) Auf der Form sind zwei Buttons mit dem label "zugriff begin" und "zugriff end" Wenn "Porgamm B" Zugriff haben möchte sucht es mit FindWindow und FindwindowEX den 1.Button und klickt ihn, beim ende des Zugriffs das selbe mit Button 2. Soweit die Theorie! Das ist der entsprechende Code-Schnipsel:
Code:
function Zugriff(Buttontext: string): Boolean;
var HB, hApp, hbutton: HWND;
begin
application.processmessages;
HB := FindWindow(nil, 'dasfensteristunsichtbarundhateinenquatschnamen');
IF (HB <> 0) then
begin
hApp := HB;
hButton := FindWindowEx(hApp, 0, nil, PChar(buttontext));
if hbutton <> 0 then
begin
SendMessage(hButton, BM_CLICK, 0, 0);
result := true;
end;
Das finden des unsichtbaren Windows klappt (im einzelschritt-Modus überprüft) Allerdings erhalte ich beim Button als id immer 0
hat jemand ne Ahnung woran das liegt? By the way: Buttontext enthält den korrekten Namen des Buttons (ist auch ohne Rechtschreibfehler hab ich gecheckt)...hat jemand eine Ahnung was falsch läuft?