Einzelnen Beitrag anzeigen

delbone

Registriert seit: 15. Jan 2013
6 Beiträge
 
Delphi 2007 Professional
 
#11

AW: Programm in fernsteuern WinXP geht Win7 nein

  Alt 7. Feb 2013, 16: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;
  Mit Zitat antworten Zitat