Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Programmstart verhindern (https://www.delphipraxis.net/139846-programmstart-verhindern.html)

xZise 9. Sep 2009 11:34

Re: Programmstart verhindern
 
Hallo ihr,
also unter Windows XP mit einer normalen Anwendung funktioniert das. Aber in einem Dienst habe ich ja keine Möglichkeit Messages umherzusenden.

Außerdem kann ich damit zwar nicht den Programmstart unterbrechen, aber ich bräucht noch das Handle damit ich es beenden kann.

MfG
xZise

Luckie 9. Sep 2009 11:45

Re: Programmstart verhindern
 
Dazu reicht das Prozesshandle für MSDN-Library durchsuchenTerminateProcess, das Fensterhandle brauchst du nicht.

hugo1990 11. Sep 2009 16:22

Re: Programmstart verhindern
 
Hast du Windows 7 (x64), wenn ja, dann ist das der Grund, warum es nicht funktioniert, da die ProcessWatcher.dll nur als 32bit Version vorhanden ist. Diese ist nämlich bestimmt mit Delphi kompiliert wurden und dafür gibt es soweit ich weiß noch keinen 64bit-Compiler. Aber ich denke, dass in der ProcessWatcher.dll ein ExecuteHook steckt und das sollte eigentlich das Schlagwort für dein Problem sein. Damit kann man auch verhindern, dass ein Programm gestartet wird.
Ein Beispiel mit Quellcode solltest du hier http://www.michael-puff.de/Developer...xecutehook.zip finden.

xZise 11. Sep 2009 23:14

Re: Programmstart verhindern
 
Ah stimmt, das ist möglich. Aber jetzt frage ich mich nur noch, wie ich die MessageBox-Prüfung in den Dienst "verschiebe".

MfG
xZise

hugo1990 14. Sep 2009 08:24

Re: Programmstart verhindern
 
Ich weiß jetzt nicht genau, was du mit verschieben meinst, aber ich denke, dass du meinst, dass du mit deinem Dienst darauf reagieren möchtest, wenn ein Programm gestartet wird. Wenn dies der Fall ist, dann Sende das ganze doch von der APIHook.dll per SendMessage an deinen Dienst, wobei das gar nicht notwendig ist, da du das ganze auch in der DLL machen kannst.
Falls du aber meintest, dass du den ganzen Quellcode in den Dienst packen willst, muss ich dir sagen, dass das nicht geht. Da du ja die neuen Funktionen in die explorer.exe laden möchtest und das kannst du nur über eine DLL und einen Hook lösen.
Und anstelle der MessageBox-Prüfung muss ja dann sowieso der Teil kommen, wo du prüfst ob das Programm gestartet werden darf oder nicht.

xZise 14. Sep 2009 15:18

Re: Programmstart verhindern
 
Moin,
aber soweit ich informiert bin ist SendMessage bei Diensten böse ;) Ich fürchte ich müsste mich da mal in IPC (z.B. Named Pipes) einarbeiten.

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr.
Seite 3 von 3     123   

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