![]() |
Programm in fernsteuern WinXP geht Win7 nein
Hallo,
ich habe ein kleines Prog geschrieben, dass Daten zur keycard-Programmierung an ein Drittprogramm übergeben soll. Unter WinXP mit Delphi 2007 programmiert und getestet - funktioniert ohne Probleme. Aber Programm funktioniert unter Win7 überhaupt nicht. Ich bekomme keine handles kann dem Programm nicht den Focus geben usw... Getestet habe ich bereits das Programm als Administrator auszuführen um Probleme mit der UAC zu umgehen ... leider keine Verbesserung Dann habe ich spaßeshalber WinSpy probiert und WinSpy bekommt auch ohne Administrator rechte die handles... und ich frage die handles ja dachte ich genauso ab. Nun meine Frage - muß ich beim compiler von Delphi 2007 irgendetwas einstellen, damit das Programm auch in Win7 funktioniert oder wo ist hier mein Denkfehler? meine Codeauszüge sieht so aus:
Code:
Tappe im Moment völlig im dunkeln warum unter Win7 nichts funktioniert..
procedure tform1.Keyprog;
var myhandle: thandle; result: boolean; parentwnd, wnd: hwnd; i: integer; fensterpos: TRect; ApNr, Tage, BS: string; const dialock = 'Dialock Hotel - DIALOCK Hotel'; begin // Check ob Dialock Hotel läuft if (EXE_Running('dlhw.exe', false)=true) then begin // Check in Gast sleep(100); result:=AppActivate(pchar(dialock)); //sleep(10); SendKeys('{ENTER}', true); sleep(10); // Raum Nr. apnr:=trim(apartmentnr.Text); if pos('.',apnr)>0 then delete(apnr,pos('.',apnr),1); apnr:='A'+apnr; parentwnd:=0; wnd:=0; result:=AppActivate(pchar(dialock)); sleep(10); parentwnd := FindWindow('ThunderRT6MDIForm','Dialock Hotel - DIALOCK Hotel'); parentwnd := FindWindowEx(parentwnd, 0, 'MDIClient', nil); parentwnd := FindWindowEx(parentwnd, 0, 'ThunderRT6FormDC', nil); parentwnd := FindWindowEx(parentwnd, 0, 'AfxWnd40', nil); wnd := FindWindowEx2(parentwnd,'ThunderRT6TextBox', 5); //sleep(10); SendMessage(Wnd,WM_SETFOCUS,0,0); SendMessage(Wnd,WM_SETTEXT,0,LongInt(PChar(apnr))); sleep(10); // Key Nr. sendkeys('{TAB}', true); sleep(10); i:=strtoint(kartenanzahl.Text); if i>1 then for i:=1 to i-1 do SendKeys('{DOWN}', true); sleep(5); // Dauer(Tage) i:=0; tage:=''; tage:=inttostr(daysbetween(now,datumbis.DateTime+1)); parentwnd:=0; wnd:=0; result:=AppActivate(pchar(dialock)); sleep(10); parentwnd := FindWindow('ThunderRT6MDIForm','Dialock Hotel - DIALOCK Hotel'); parentwnd := FindWindowEx(parentwnd, 0, 'MDIClient', nil); parentwnd := FindWindowEx(parentwnd, 0, 'ThunderRT6FormDC', nil); parentwnd := FindWindowEx(parentwnd, 0, 'ThunderRT6PictureBoxDC', nil); parentwnd := FindWindowEx(parentwnd, 0, 'ThunderRT6ComboBox', nil); wnd := FindWindowEx(parentwnd, 0, 'Edit', nil); SendMessage(Wnd,WM_SETFOCUS,0,0); for i:=1 to length(tage) do begin BS:=copy(tage,i,1); sendkeys(pchar(BS),true); sleep(5); end; end else begin showmessage ('Bitte starten Sie zuerst Dialock Hotel'); BTkartenprog.enabled:=true; end; end; Danke Ralf |
AW: Programm in fernsteuern WinXP geht Win7 nein
Dein schnellster Freund dürfte der Debugger sein. Funktioniert EXE_Running überhaupt?
Dein zweiter Freund ist der Debugger oder eine minimale Fehlerbehandlung, die zumindest per OutputDebugString mitteilt, wenn ein FindWindow(Ex) etc. fehlschlägt. Kurz: nimm den Debugger, steppe durch das Programm, und teile uns mit, an welcher Stelle Dein Code vom erwarteten Verhalten abweicht, dann fällt es leichter, Fehlerursachen zu vermuten und Tipps zu geben :) |
AW: Programm in fernsteuern WinXP geht Win7 nein
Hi,
das Problem mit dem Debuggen ist ja, das es in meiner Entwicklungsumgebung XP/Delphi 2007 funktioniert und in Win7 nicht... ich habe schon alle handle mit showmessage in win7 angezeigt, dass ergebnis war immer 0 Ich kann auch nicht auf dem Firmenrechner mein Delphi installieren. Wie gesagt unter XP funktioniert es ohne Probleme. |
AW: Programm in fernsteuern WinXP geht Win7 nein
Zitat:
|
AW: Programm in fernsteuern WinXP geht Win7 nein
Wenn Du auf dem Win7 kein Delphi installieren kannst, nimm doch einfach den Remote-Debugger :) Oder versuche is mit ner virtuellen Maschine (
![]() Außerdem gibt es noch WinDbg, damit bekommst Du Debugausgaben von OutputDebugString mit. Etwas komfortabler als ShowMessage ;) Wenn Du aber per ShowMessage schon Handles angezeigt bekommen hast, gehe ich davon aus, dass EXE_Running zumindest funktioniert? Läuft dlhw.exe elevated oder nicht? Hat Dein Programm ein gültiges Manifest? Selbsterstellt oder das von Delphi? Hat das selbsterstellte Manifest auch das UI-Einfluss-Flag gesetzt (eigentlich dachte ich, das wäre hierfür noch nicht notwendig, aber wer weiss...)? |
AW: Programm in fernsteuern WinXP geht Win7 nein
Hallo
Ich glaube mich dunkel zu errinnern das unter Windows 7 die Fernsteuermöglichkeiten aus Sicherheitsgründen (auch mit Adminrechten ) nicht mehr gehen. Sonst könnte man ja jede Sicherheitswarnung einfach wegdrücken. (Sicher bin ich aber nicht) mfg Reinhold |
AW: Programm in fernsteuern WinXP geht Win7 nein
Mit WinSpy kann man sich doch auch Quellcode erzeugen lassen.
Funktioniert der auch nicht? |
AW: Programm in fernsteuern WinXP geht Win7 nein
Zitat:
|
AW: Programm in fernsteuern WinXP geht Win7 nein
Hi,
ja auch der von WinSpy erzeugte Code funktioniert nicht - ich bin im moment auch ratlos und setze mir jetzt eine virtuelle maschine mit Win 7 auf und werde mir Delphi dort neu installieren.. und dann werde ich weitersehen... Danke erst mal für die Ideen Ralf |
AW: Programm in fernsteuern WinXP geht Win7 nein
Wie viel Bit hat das Windows 7?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 Uhr. |
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