Registriert seit: 15. Jan 2013
6 Beiträge
Delphi 2007 Professional
|
AW: Programm in fernsteuern WinXP geht Win7 nein
7. Feb 2013, 17:20
Hi,
das win7 ist ein 64bit system - und ich habe mir jetzt auch eine VM mit Win7 64bit und Delphi gebaut.
Das Ergebnis: Mit sendkey ging weiterhin gar nichts - also habe ich alles auf sendmessage umgestellt.
Jetzt läuft mein Prog auch unter Win7 - ABER nur wenn Delphi installiert ist...
Auf 3 verschiedenen Win7-Rechnern ohne die Delphi IDE geht es überhaupt nicht... testweise habe ich schon die UAC, Virenschutz und Firewall ausgeschaltet - keine Änderung
Da es in meiner VM mit Win7 funktioniert sollte es eigentlich nicht mehr am Programm selbst liegen, aber was blockiert dann die messages ?
Bin mit meinem Latein am Ende...
Code:
wnd := FindWindow('ThunderRT6MDIForm','Dialock Hotel - DIALOCK Hotel');
wnd := FindWindowEx(wnd, 0, 'MDIClient', nil);
wnd := FindWindowEx(wnd, 0, 'ThunderRT6FormDC', nil);
wnd := FindWindowEx2(wnd,'ThunderRT6UserControlDC', 2);
wnd := FindWindowEx(wnd, 0, 'ThunderRT6PictureBoxDC', nil);
if wnd <> 0 then postmessage(wnd,WM_KEYDOWN, VK_RETURN,0);
// Raum Nr.
apnr:=trim(apartmentnr.Text);
if pos('.',apnr)>0 then delete(apnr,pos('.',apnr),1);
apnr:='A'+apnr;
AppActivate(pchar(dialock)); sleep(10);
wnd := FindWindow('ThunderRT6MDIForm','Dialock Hotel - DIALOCK Hotel');
//showmessage(inttostr(parentwnd));
wnd := FindWindowEx(wnd, 0, 'MDIClient', nil);
//showmessage(inttostr(parentwnd));
wnd := FindWindowEx(wnd, 0, 'ThunderRT6FormDC', nil);
//showmessage(inttostr(parentwnd));
wnd := FindWindowEx(wnd, 0, 'AfxWnd40', nil);
//showmessage(inttostr(parentwnd));
wnd := FindWindowEx2(wnd,'ThunderRT6TextBox', 5); //sleep(10);
//showmessage(inttostr(wnd));
if wnd>0 then begin
SendMessage(Wnd,WM_SETFOCUS,0,0);
SendMessage(Wnd,WM_SETTEXT,0,LongInt(PChar(apnr)));
end;
// Key Nr.
//sendmessage(wnd,WM_KEYDOWN, VK_TAB,0);
wnd := FindWindow('ThunderRT6MDIForm','Dialock Hotel - DIALOCK Hotel');
wnd := FindWindowEx(wnd, 0, 'MDIClient', nil);
wnd := FindWindowEx(wnd, 0, 'ThunderRT6FormDC', nil);
wnd := FindWindowEx(wnd, 0, 'AfxWnd40', nil);
wnd := FindWindowEx2(wnd,'ThunderRT6ComboBox', 2);
i:=strtoint(kartenanzahl.Text);
AppActivate(pchar(dialock)); sleep(10);
//SendMessage(Wnd,WM_SETFOCUS,0,0);
for i:=1 to i-1 do if wnd>0 then sendmessage(wnd,WM_KEYDOWN, VK_DOWN,0);
// Dauer(Tage)
tage:='';
tage:=inttostr(daysbetween(now,datumbis.DateTime+1));
result:=AppActivate(pchar(dialock)); sleep(10);
wnd := FindWindow('ThunderRT6MDIForm','Dialock Hotel - DIALOCK Hotel');
wnd := FindWindowEx(wnd, 0, 'MDIClient', nil);
wnd := FindWindowEx(wnd, 0, 'ThunderRT6FormDC', nil);
wnd := FindWindowEx(wnd, 0, 'ThunderRT6PictureBoxDC', nil);
wnd := FindWindowEx(wnd, 0, 'ThunderRT6ComboBox', nil);
wnd := FindWindowEx(wnd, 0, 'Edit', nil);
if wnd>0 then begin
SendMessage(Wnd,WM_SETFOCUS,0,0);
for i := 1 to Length(tage) do SendMessage(wnd, WM_CHAR, Word(tage[i]), 0);
end;
|