Entwickler-Ecke

Windows API - Programm als Prozess starten?


master cool - Di 31.08.04 17:39
Titel: Programm als Prozess starten?
Da ja das mit dem Service unter windoooooof xp nich funzt nun die Frage, wie man sein Programm als Prozess deklariert!


Sprint - Di 31.08.04 18:48

Großes Rätselraten, wenn man deine Frage ließt. Sprichst du von der WinAPI Funktion RegisterServiceProcess, die "nur" unter Windows 9x läuft?


.Chef - Di 31.08.04 18:52

Ist nicht jedes Programm ein Prozess, wenn es läuft.:?


Delete - Mi 01.09.04 01:28

.Chef hat folgendes geschrieben:
Ist nicht jedes Programm ein Prozess, wenn es läuft.:?

Und genau deshalb ist die Frage absoluter Blödsinn.


Delete - Mi 01.09.04 09:54

Ich tendiere zu der Deutung von Sprint (meinen herzlichen Glückwunsch! Wo hast du deine Glaskugel her? :)) Wenn ich lese:
master cool hat folgendes geschrieben:
Da ja das mit dem Service unter windoooooof xp nich funzt

dann ist damit zu 99% "RegisterServiceProcess" gemeint, und es geht wohl darum, das Programm auch im NT/2000/XP-TaskMan verstecken zu lassen.


Ich nominiere den ersten Beitrag damit offiziell in der Kategorie "Wie stelle ich meine Frage so, dass kein Mensch sie wirklich versteht". :roll:


master cool - Mi 01.09.04 12:04

Entschuldigung, wenn ich mich nur so knapp ausgedrückt habe. Ich meinte die funktion RegisterServiceProcess.ich will, dass mein programm nicht in der taskleiste angezeigt wird(kann ich ja schon realisieren) und im Taskmanager nich unter der Spalte "Anwendungen", sonder nur unter der Spalte "Prozesse".


UGrohne - Mi 01.09.04 12:10

Versuch einfach mal in OnCreate

Delphi-Quelltext
1:
Application.ShowMainForm:=false;                    


master cool - Mi 01.09.04 14:47

Ja gut, so wird das Projekt nicht mehr in der Spalte "Anwendungen" angezeigt, aber ich will ja, das man die Form noch sieht, oder geht das nicht?


Delete - Mi 01.09.04 15:55

Dort werden keine Anwendungen wie der Programmierer es versteht angezeigt, sondern alle toplevel Fenster, die den Eingabefokus bekommen können.

Darf man fragen warum dein Programm dort nicht auftauchen soll?


opfer.der.genauigkeit - Mi 01.09.04 22:07

Luckie das wirkt schon wieder so als würdest du ihm Sachen unterstellen.

Vielleicht mag er einfach seiner Anwendung n bißchen mehr Flair vermitteln.
Sonst hätt er das Ding ja nu vollständig aus dem Taskmanager entfernen wollen. :wink:

Aber für den Fall, daß du das machen willst, schau mal im Forum rum. Da gibt's ne
Menge interessante Infos dazu. *kicher*


Motzi - Mi 01.09.04 22:50

opfer.der.genauigkeit hat folgendes geschrieben:
Luckie das wirkt schon wieder so als würdest du ihm Sachen unterstellen.

Naja.. bis jetzt war das doch nur eine harmlose Nachfrage, die meiner Meinung nach durchaus gerechtfertig ist..! Hätte Luckie sie nicht gestellt hätte möglicherweise ich es gemacht.


master cool - Do 02.09.04 12:17

Für alle:Es soll im Hintergrund laufen und darauf aufpassen, das ein anderes Programm, wie ein Virenscanner sozusagen nicht beendet werden kann, indem es das Programm, sobald man es schließt wieder öffnet. Ich möchte, dass es eine Oberfläche hat, aber diese sich aber nur aufbaut, wenn man auf das dazugehörige Trayicon in der Taskleiste klickt. Man soll es eben nicht in der "Anwendungen" Spalte sehen, wenn es im Hintergrund läuft und auch nicht, wenn man auf das Trayicon klickt.


Delete - Do 02.09.04 23:29

Ich verstehe immer noch nicht, warum es dort nicht auftauchen darf, wenn es doch irgendwie sowieso nur ein Programm, wie jedes andere ist. :roll:


master cool - Fr 03.09.04 17:44

dann kann ich das prog halt nicht schreiben
VIELEN DANK :roll:


Sprint - Fr 03.09.04 18:16

master cool hat folgendes geschrieben:
dann kann ich das prog halt nicht schreiben
VIELEN DANK :roll:

Nehmen wir mal an es wäre möglich. Dann kann der Benutzer doch immer noch den Prozess sehen. Was bringt dir das dann?
Du willst dein Programm verstecken, aber wer es sehen will, der kann es sehen.


master cool - Fr 03.09.04 19:20

ich will außerdem noch ein prog schreiben, das dem taskmanager ähnelt.
er führt alle in der taskleiste vorhandenen programme auf und auch die prozesse.
aber sich selbst soll er sich nur in der "prozesse"-spalte anzeigen, wie sein "großer bruder" von microsoft.


Sprint - Fr 03.09.04 19:38

Weiß zwar nicht was das soll, aber bitte...


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.FormShow(Sender: TObject);
var
  Owner: HWND;
begin

  Owner := GetWindow(Self.Handle, GW_OWNER);
  ShowWindow(Owner, SW_HIDE);

end;


Deine Programm wird nun nicht mehr im TaskManager unter Anwendungen angezeigt.

Für Windows 9x solltest du aber RegisterServiceProcess benutzen.


master cool - Sa 04.09.04 16:29

@Sprint:Vielen Dank für die Antwort! Das echt genial! Dankeschön