![]() |
prozess verstecken
Ich habe hier im forum den folgenden code bekommen, um meinen prozess zu beenden:
Delphi-Quellcode:
Ich habe ihn so verwendet und bekomme die Fehlermeldung, das für 'RegisterServiceProcess' eine deklaration erwartet wird aber eine stringkonstante gefunden, was habe ich falsch gemacht?
interface
uses function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord; stdcall; implementation {$R *.DFM} function RegisterServiceProcess (dwProcessID, dwType: DWord): DWord; external 'KERNEL32.DLL';'RegisterServiceProcess'; Diese Procedure vesteckt die Anwendung vor dem Taskmanager: procedure TForm1.Button1Click(Sender: TObject); begin RegisterServiceProcess(0,1); end; Und diese zeigt sie wieder an: procedure TForm1.Button2Click(Sender: TObject); begin RegisterServiceProcess(0,0); end; --
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Registry, StdCtrls; function RegisterServiceProcess(dwProcessID, dwType: DWord): DWord; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} function RegisterServiceProcess(dwProcessID, dwType: DWord): DWord; external 'KERNEL32.DLL';'RegisterServiceProcess'; procedure TForm1.Button1Click(Sender: TObject); begin RegisterServiceProcess(0,1); end; procedure TForm1.Button2Click(Sender: TObject); begin RegisterServiceProcess(0,0); end; end. |
Re: was passt hier nicht?
Moin Geisi,
lass das hier 'RegisterServiceProcess'; mal weg, oder schreib name davor. |
Re: was passt hier nicht?
Ändere bitte den Titel deines Topics. "Was passiert hier nicht?" ist nicht sehr aussagekräftig.
Dann. Mit dem Code beendest du keine Anwendung, sondern versteckst sie für dem Taskmanger unter Windows9x. Überleg dir also noch mal was du überhaupt willst. |
Re: was passt hier nicht?
Hi geisi,
ich hab noch was zu motzen. ;) Bitte poste nicht zweimal den gleichen SourceCode. Dadurch wird der Beitrag unnötig groß. Zitat:
In deinem Source steht
Delphi-Quellcode:
function RegisterServiceProcess(dwProcessID, dwType: DWord): DWord;
external 'KERNEL32.DLL';'RegisterServiceProcess'; Du müsstest aber schreiben:
Code:
Alternativ kannst du das nach dem name auch weglassen. :)
function RegisterServiceProcess(dwProcessID, dwType: DWord): DWord;
external 'KERNEL32.DLL';[color=#ff0000]name [/color]'RegisterServiceProcess'; Chris |
Re: was passt hier nicht?
ich habe schon verstecken gemeint, nicht beenden!
wenn ich 'RegisterServiceProcess' weglasse,dann kommt die Fehlermeldung: "Der Prozedureeinsprungpunkt 'RegisterServiceProcess' wurde in der DLL 'KERNEL32.DLL' nicht gefunden" was kann ich da jetzt machen? |
Re: was passt hier nicht?
Hi,
nochmal zur Nachfrage: wo kommt welcher Fehler, an welcher Stelle, wenn du was weglässt? Chris |
Re: was passt hier nicht?
Ich muss dich noch mal ermahnen. Ändere bitte den Titel deines Topics. :warn:
|
Re: was passt hier nicht?
mache ich es wie chakotay1308:
function RegisterServiceProcess(dwProcessID, dwType: DWord): DWord; external 'KERNEL32.DLL';name 'RegisterServiceProcess'; Fehlermeldung: Deklaration erwartet, aber Bezeichner 'name' gefunden |
Re: prozess verstecken
Hi,
sorry. Mein Fehler:
Delphi-Quellcode:
Wenn das nicht klappt fress ich nen Besen. *besen such*
function RegisterServiceProcess(dwProcessID, dwType: DWord): DWord; external 'KERNEL32.DLL' name 'RegisterServiceProcess';
[-- s.u. --] Chris [edit]Da war ja dann doch einer schneller als ich. ;)[/edit] |
Re: prozess verstecken
Der Einsprungpunkt wird jetzt nicht gefunden (laut Fehlermeldung);
|
Re: prozess verstecken
Hi,
dann ist da ein Fehler im Namen. Ggf. ein A oder ein W anfügen? :| Ggf. existiert die Funktion in deiner Version der KERNEL32.DLL auch nicht. Dazu dann mal im MSDN/PSDK nachgucken. Chris |
Re: prozess verstecken
Chakotay hat recht. In den DLLs ist nur jeweils eine Ansi-und eine Unicode-Variante vorhande. Du musst also entweder ein A oder ein W dranhängen.
|
Re: prozess verstecken
RegisterServiceProcess gibt es nur unter Win9x...!
|
Re: prozess verstecken
und wie geht das dann unter windows xp? bzw. gibt es eine funktion die bei beiden funktioniert?
|
Re: prozess verstecken
Zitat:
(geisi: Es dürfte Dir auch nicht weiterhelfen, da es in Windows NT keine 'versteckten' Benutzermodus-Prozesse gibt. Die Funktion RegisterServiceProcess ist auch nicht dazu da Prozesse in Windows 9x zu 'verstecken', sondern dafür gedacht, dass der Prozess beim Abmelden des Benutzers nicht beendet wird - sprich eine Art 'Dienst' für Win9x. Zudem gibt es genug Programme, die Dein Programm unter Win9x trotzdem anzeigen würden...) Kurzfassung: vergiß es. |
Re: prozess verstecken
Warum überhaupt verstecken? Jetzt erzähl mir nicht, der Benutzer soll ihn nicht beenden können, weil es Software für das Schulnetzwerk oder ein Internetcafe sei. :roll:
Alo jedes mal, wenn diese Frage auftaucht, werde ich das gefühl nicht los, dass da jemand nichts gutes im Sinn hat. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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