PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programm unsichtbar starten



KillAV
02.07.2010, 21:41
Hallo,
wie kann ich mein Programm komplett unsichtbar starten?
Wenn ich es so probiere blitzt die Konsole trotzdem kurz auf:



int main() {
HANDLE hwnd;

hwnd = FindWindow("ConsoleWindowClass",NULL);
ShowWindow(hwnd,SW_HIDE);


Mfg

l0dsb
02.07.2010, 22:00
Wenn du keine Konsole haben willst, erstelle auch keine, sondern eine Win32-Anwendung (mangels Informationen gehe ich einfach mal von Visual Studio als IDE/Compiler aus). Dabei wird keine Konsole erzeugt.

Ich bin mir relativ sicher, dass die Suchfunktion das auch hergegeben hätte.

Apex
02.07.2010, 22:04
Also ich kenn das nur so:

void main(void) {
HWND hWnd = NULL;

hWnd = FindWindow(NULL, Titel);
ShowWindow(hWnd,SW_HIDE);

ocz
02.07.2010, 23:08
Also ich kenn das nur so:

void main(void) {
HWND hWnd = NULL;

hWnd = FindWindow(NULL, Titel);
ShowWindow(hWnd,SW_HIDE);

Da gibt es dann wieder das "aufblitzen". Bei der win32 Anwenung wird gar kein Fenster erzeugt, ausser man ruft eben CreateWindow auf.

5cript
05.07.2010, 15:54
Hier steht nicht direkt ob C, C++ oä.

aber wenn C++:

im C++ Standart ist "void main()" nicht erlaubt
(vielleicht ändert sich das ja im Neuen)

To Topic:
Kommt nun wirklich auf die IDE an, denn in C++ Builder oder auch Visual Studio kann in einer Win32 Anwendung von Anfang an die Form die Eigenschaft Visible = false haben.
Im notfall gehts auch mit AlphaBlend (= true) und AlphaBlendValue = 0
-> 100% unsichtbar. (ist aber nicht elegant, kommt aber auf die Verwendung an)
Dann ist es noch wichtig, je nach sinn des Programmes, es aus Alt-Tab zu entfernen, bzw es dort unsichtbar zu machen !

Und wo steht, dass er keine Konsole haben will ?.
Was ich oben geschrieben habe bezieht sich allerdings alles auf win anwendungen, bei Konsolen ist das natürlich anders zu lösen.

l0dsb
05.07.2010, 16:05
Was will er mit einer Konsole, die man sowieso nicht sehen soll? Demnach ging ich einfach mal davon aus, dass er überhaupt erst keine haben will. Aber das ist natürlich nicht wirklich eindeutig.

Wenn er später noch eine braucht, kann er mittels AllocConsole eine anfordern.

Bei Borland's IDE bin ich mir nicht sicher, aber zumindest mit Visual C++ ist es möglich, gar kein Fenster zu erzeugen. Wozu also ein Fenster erstellen, dann kann man sich den Aufwand sparen, es auf alle möglichen Arten unsichtbar zu machen.

AlterHacker
05.07.2010, 16:10
Notfalls kann man später auch mim LordPe / Hexeditor manuell die Exe von Console -> Win32 GUI Changen.
(unter Subsystem)
http://old.honeynet.org/scans/scan33/sols/7-Kostya_Kortchinsky/subsystem.png

luxury11
08.07.2010, 11:15
int CALLBACK WinMain(
__in HINSTANCE hInstance,
__in HINSTANCE hPrevInstance,
__in LPSTR lpCmdLine,
__in int nCmdShow
);
#define SW_HIDE 0Unser Code


int CALLBACK WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow = 0)
{
return 0;
}


So müsste es unter Win32 Applicationen funktionieren.

ocz
08.07.2010, 11:30
lol, fuck this.