AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Programm in fernsteuern WinXP geht Win7 nein
Thema durchsuchen
Ansicht
Themen-Optionen

Programm in fernsteuern WinXP geht Win7 nein

Ein Thema von delbone · begonnen am 15. Jan 2013 · letzter Beitrag vom 7. Feb 2013
Antwort Antwort
Seite 1 von 2  1 2      
delbone

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

Programm in fernsteuern WinXP geht Win7 nein

  Alt 15. Jan 2013, 10:14
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:
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;
Tappe im Moment völlig im dunkeln warum unter Win7 nichts funktioniert..

Danke

Ralf
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
675 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Programm in fernsteuern WinXP geht Win7 nein

  Alt 15. Jan 2013, 10:39
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
  Mit Zitat antworten Zitat
delbone

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

AW: Programm in fernsteuern WinXP geht Win7 nein

  Alt 15. Jan 2013, 11:27
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Programm in fernsteuern WinXP geht Win7 nein

  Alt 15. Jan 2013, 11:43
Zitat:
Delphi-Quellcode:
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);
Was passiert denn, wenn parentwnd in dieser Kette einmal 0 wird, weil das entsprechende Fenster nicht gefunden wurde? Du solltest nach jeder Zuweisung auf 0 prüfen, dann kann man auch eine entsprechende Meldung bringen, was da ggf. schief läuft. Ob diese Meldung kommen soll, ließe sich z.B. mittels Kommandozeilen-Parameter angeben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
675 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Programm in fernsteuern WinXP geht Win7 nein

  Alt 16. Jan 2013, 08:47
Wenn Du auf dem Win7 kein Delphi installieren kannst, nimm doch einfach den Remote-Debugger Oder versuche is mit ner virtuellen Maschine (hier ein kleines Hilfsmittel von mir zu Delphi-Remote-Debuggen in VMs).

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...)?
  Mit Zitat antworten Zitat
Benutzerbild von rweinzierl
rweinzierl

Registriert seit: 22. Mär 2005
98 Beiträge
 
#6

AW: Programm in fernsteuern WinXP geht Win7 nein

  Alt 16. Jan 2013, 09:11
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
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Programm in fernsteuern WinXP geht Win7 nein

  Alt 16. Jan 2013, 11:35
Mit WinSpy kann man sich doch auch Quellcode erzeugen lassen.

Funktioniert der auch nicht?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Programm in fernsteuern WinXP geht Win7 nein

  Alt 16. Jan 2013, 11:57
Zitat:
Ich glaube mich dunkel zu errinnern das unter Windows 7 die Fernsteuermöglichkeiten aus Sicherheitsgründen (auch mit Adminrechten ) nicht mehr gehen.
kann ich nicht bestätigen, wir steuern diverse Anwendungen problemlos...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
delbone

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

AW: Programm in fernsteuern WinXP geht Win7 nein

  Alt 21. Jan 2013, 12:43
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: Programm in fernsteuern WinXP geht Win7 nein

  Alt 21. Jan 2013, 13:51
Wie viel Bit hat das Windows 7?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz