Application als Prozess starten + EXE datei als Resource einbinden und exportieren <-- WIE ?
-
danke für deine antwort

is im prinzip schon richtig was du sagt nur ich dachte das geht irgendwie auch einfacher.ich meine gibt es eine möglichkeit die exe zu starten und dann vom taskmanager
in die process liste zu verschieben ?
geht das mit RegisterServiceProcess ? 
sry hab null Durchblick

-
Ich glaube ich verstehe dich zwar falsch, aber wie wärs, wenn du einfach kein Fenster erzeugst??
-
Du könntest auch alternativ eine fensterlose Anwendung schreiben. Bei CreateWindow(Ex) müsstest du dann HWND_MESSAGE als hwndParent Parameter angeben.
EDIT: Ich bin mir allerdings nicht sicher ob die Anwendung dann nicht mehr im Taskmanager unter "Anwendungen" erscheint. Höchstwahrscheinlich wird es aber nicht dort erscheinen...
-
Wenn du es umständlichen machen willst, kannst du auch ein Fenster erzeugen, es aber nicht anzeigen lassen (SW_HIDE bei ShowWindow übergeben), und dann in der WindowProc unter WM_CREATE mit _beginthread ein Thread parallel zu dem Fenster laufen lassen, wo dann die eigentliche Aufgabe deines Programms sein soll.
-
Danke erstmal für die vielen Vorschläge. Echt super !

Das Problem hat sich erledigt. Hab rausgefunden das man mit
Application.Title="" und
Application.showmainform:=Falsedie Anwendung auch "verschwinden" lassen kann - zumindest von der Task-Liste im Taskmanager. Aber für mein Vorhaben reicht das völlig aus.

@ Paul W.
mal angenommen ich würde mit _beginthread einen neuen Thread erstellen und das versteckte Hauptprogramm beenden. Würde der Thread dann noch weiterlaufen ?
-
dideldum04 schrieb:
mal angenommen ich würde mit _beginthread einen neuen Thread erstellen und das versteckte Hauptprogramm beenden. Würde der Thread dann noch weiterlaufen ?
Ja er würde weiterlaufen. Aber das ist der uneleganteste und dümmste mögliche Weg.
-
dideldum04 schrieb:
Danke erstmal für die vielen Vorschläge. Echt super !

mal angenommen ich würde mit _beginthread einen neuen Thread erstellen und das versteckte Hauptprogramm beenden. Würde der Thread dann noch weiterlaufen ?Das kommt schwer darauf an was du mit Hauptprogramm meinst. Arbeitest du mit einem besonderen Framework in Delphi? Gibt es da sowas überhaupt? Ich kenn' mich mit der Sprache und den verfügbaren IDEs überhaupt nicht aus...
Es könnte nämlich sein, dass wenn man das Hauptfenster destruiert, sich dann der gesamte Prozess mitverabschiedet. Und darauf kommt es an. Ob durch das Beenden des "Hauptprogrammes" auch der Prozess betroffen ist.
-
Wir sind hier auf www.c-plusplus.net, einer C(++)-Seite. Deswegen denke ich automatisch an C und erwarte nichts als C/C++.
Aber Aziz hat Recht. Die Termination des Hauptthreads könnte unter Delphi evtl. alle Threads mitreißen.
-
Upps,
da hab ich vor lauter Übermut gar nicht bemerkt das die beiden Funktionen gar nicht zu c++ gehörten *peinlich*

Und ich hab mich schon gewundert warum ich in der MSDN nix finde *LOL*
Na jedenfalls hab ich jetzt des Rätsels Lösung.
Und zwar registriere ich das laufende Programm einfach als Service (siehe Aziz)Bei mir funzt das mit folgendem Code ganz gut.
//zeigt zwei Dialoge an, einmal als Service im Hintergrund
//und einmal ganz normal als Application//funzt soweit ich weiss aber nur unter Win95/98/ME
#include <iostream.h> #include <windows.h> DWORD RegisterServiceProcess(DWORD ProcessID, DWORD act) { HMODULE hLib=LoadLibrary("kernel32.dll"); if(hLib) { typedef DWORD (CALLBACK *RegSerPro)(DWORD,DWORD); RegSerPro Reg; DWORD ret=0; Reg=(RegSerPro)GetProcAddress(hLib,"RegisterServiceProcess"); if(Reg) { ret=Reg(ProcessID,act); } else ret=1;//Fehler FreeLibrary(hLib); return(ret); } else return(1);//Fehler } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { RegisterServiceProcess(GetCurrentProcessId(),1); MessageBox(NULL, "Test", "Hidden service",MB_ICONINFORMATION | MB_OKCANCEL | MB_DEFBUTTON1); RegisterServiceProcess(GetCurrentProcessId(),0); MessageBox(NULL, "Test", "Visible application",MB_ICONINFORMATION | MB_OKCANCEL | MB_DEFBUTTON1); return 0; }Vielen Dank nochmal an alle

Und die Sache mit Delphi bitte ich nochmals zu entschuldigen

MfG
-
dideldum04 schrieb:
Upps,
Und die Sache mit Delphi bitte ich nochmals zu entschuldigen
Ich wüsste nicht warum das zu entschuldigen wäre. Schließlich beschränkt sich das WinAPI Forum nicht auf eine einzige Programmiersprache. Viele Fragen werden auch ohne Bezug auf irgendeine bestimmte Sprache gestellt. Es werden dir jedoch viel mehr Leute helfen können wenn dein Code in C bzw. C++ geschrieben ist.

-
Hi ich bins nochmal,
Mir ist aufgefallen dass Applicationen unter win2k auch nicht im Taskmanager unter "Andwendungen" angezeigt
werden, solange man einfach kein Fenster erstellt.
also z.B.
#include "windows.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { //CODE... return 0; }Tja man lernt halt nie aus.

-
Wenn dein Code nicht sehr zeitintensiv ist bzw. in einer Endlosschleife hängt wird das Programm ja auch sofort wieder beendet
