![]() |
Re: Test-Programm
der Code ist mein Projekt ich wollte nur dies ereichen ich werde mal genau den Genauen Pfad angeben und auf groß und klien schreibung achten
|
Re: Test-Programm
sry für den Doppelpost wollte das man das aktualisierte besser sieht
Also ich habe mir mal gedanken gemacht und ich denke das Problem ist gelöst
Delphi-Quellcode:
habe mal den Timmer deaktiviert wenn das programm an ist erst wenn es aus ist wird er wieder akriv :hello: :party:
procedure TForm1.Timer1Timer(Sender: TObject);
var hProcess: THandle; wf: DWORD; begin bClose := False; while bClose = False do begin hProcess := GetProcessHandleFromID(GetProcessID('C:\Programme\TightVNC\WinVNC.exe')); if hProcess = 0 then begin [b]Timer1.enabled := false;[/b] winexec(pchar('C:\Programme\TightVNC\WinVNC.exe'),sw_shownormal); end else [b] Timer1.enabled := true;[/b] Application.HandleMessage; end; |
Re: Test-Programm
So habe dann noch ne frgae wie bekomme ich das Programm in die Regetry so dass es automatisch bei Windowsstart geladen wird??
|
Re: Test-Programm
Siehe:
![]() |
Re: Test-Programm
Zitat:
Z.B Project1.exe oder c:\Projekt1.exe |
Re: Test-Programm
Soweit ich das sehe ist das nur eine Beschreibung da der Komplette Pfad ja mit ParamStr(0) als Wert eingetragen wird.
Project1.exe würde also reichen. P.S.: Wie war das noch gleich mit: "Neue Frage - neuer Thread"? |
Re: Test-Programm
gehört aber noch zu dem obigen Programm daher nix neues wollen aufmachen
Also nur Programmname DANKE :thumb: |
Re: Test-Programm
Wäre es nicht am einfachsten, wenn dein "Watchdog" auch den überwachten Prozeß direkt startet? Somit wäre ein Handle vorhanden und der Watchdog könnte über eine der Wait*-Funktionen warten. Wenn du das in einer Schleife machst, wird der Prozeß immer wieder neu gestartet.
Abgesehen davon ist WinExec() "deprecated" und deine Timer1-Methode hoch ineffektiv. Aber jedem das seine :roll: Desweiteren ist die Funktion GetProcessID() abgesehen von der Inkompatibilität zu Windows NT 4 nicht generisch funktionsfähig! Leider ist der Puffer nicht groß genug um beliebige EXE-Namen zu halten. Wenn also ein zu langer Name gesucht wird, so wird er nicht gefunden, weil der Puffer zB schon bei ".e" statt ".exe" aufhört. |
Re: Test-Programm
Sehr schon das mir das jmd sagt Dsnke dir Olli :cheers:
Kann man das irgendwie verbessern so das es effektiver ist?? Und gibt es eine besser Fucntcion als GetProcessID() ?? Danke für diese gute Hilfe |
Re: Test-Programm
Zitat:
Statt WinExec kannst du dann zB ![]() ![]() Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 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