ich versuch nochmal. ich habe jetzt den Tip von Thomas eingebaut der unter
[a href="http://www.swissdelphicenter.ch/de/forum/viewtopic.php?t=657&highlight=findwindow" target="_blank"]http://www.swissdelphicenter.ch/de/forum/v...ight=findwindow[/a]
steht
das ist jetzt mein code
procedure TFFirst.WMHotKey(var Msg: TWMHotKey);
var Prog1Handle :HWND;
begin
if Msg.HotKey = id1 then
begin
Prog1Handle := FindWindow(Nil,'Muendelgeldkonto');
if Prog1Handle <> 0 then
begin
// hier Prog2 in hintergrund und prog1 in vordergrund
SetForegroundWindow(Prog1handle);
end
else
begin
// jetzt Prog1 starten
WinExec('C:aktive ProgsMuendelgeldmuendelkonto.exe', SW_SHOW); //muss noch variable
sleep(500); //warte bis gestartet
SetEditText(FindWindow('Benutzeranmeldung', Nil), 'TEdit', VUser, 1);
sleep(500); //warte bis gestartet
Presskeyboard(VK_RETURN);
// Anmeldung Passwort übergeben
SetEditText(FindWindow('Benutzeranmeldung', NIL), 'TEdit', vPassw, 2);
// Return klicken wechsel auf ok-Button
Presskeyboard(VK_RETURN);
// Return klicken auf OK Button
Presskeyboard(VK_RETURN);
end;
end;
end;
// Keyborddruck simulieren
procedure TFFirst.PressKeyboard(KEY:uint);
begin
keybd_event(KEY, $3A, KEYEVENTF_EXTENDEDKEY,0 );
keybd_event(KEY, $3A, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0 );
end;
procedure TFFirst.SetEditText(hApp: HWND; EditClassName, AText: string; EditNr: Integer);
var
i: Word;
hEdit: HWND;
begin
if not IsWindow(hApp) then Exit;
for i := 0 to EditNr do
hEdit := FindWindowEx(hApp, hEdit, PChar(EditClassName), nil);
if IsWindow(hEdit) then
SendMessage(hEdit, WM_SETTEXT, 0, Integer(PChar(AText)));
end;
das return kommt an aber das Vuser und VPassw nicht in den Edit-Feldern
wenn ich schrittweise vorgehe she ich das er hier
if not IsWindow(hApp) then Exit;
nicht rauspringt also hat er das Handle doch gefunden.