Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Programm in fernsteuern WinXP geht Win7 nein (https://www.delphipraxis.net/172638-programm-fernsteuern-winxp-geht-win7-nein.html)

delbone 7. Feb 2013 16:20

AW: Programm in fernsteuern WinXP geht Win7 nein
 
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...:pale:

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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz