![]() |
"Program" versteckt ausführen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
bisher habe ich meistens nur Anwendungen, also grafische Projekte geschrieben. Wie kann ich ein "Program" versteckt ausführen, sodass sich nicht das Konsolenfenster (cmd) öffnet ? Die einzige Möglichkeit, die ich bisher gefunden habe, und doch gar nicht so unschön ist, wäre die folgende:
Delphi-Quellcode:
Ich suche nach einer ähnlichen Methode wie "ShowMainForm", die es hier aufgrund der fehlenden Form nicht zu geben scheint.
ShowWindow(GetForeGroundWindow, SW_HIDE)
Gruß, THOMAS |
AW: "Program" versteckt ausführen
Wie wäre es, wenn du eine VCL-App schreibst, aber keine Forms erstellst?
|
AW: "Program" versteckt ausführen
Einfach in die .dpr (bzw. lpr heisst die beim Lazarus glaub ich) nach "Application.Initialize" a bissl Code schreiben...ohne Form, ohne Apptype Console....voilá!
Delphi-Quellcode:
Aber vorsicht...geht nach Abarbeitung gleich wieder zu die Gute! :-)
program VeryEliteHiddenProgram;
uses WhatItShouldUse,... ; {$R *.RES} begin Application.Initialize; // here comes the very elite-like hidden code!!!.... end. |
AW: "Program" versteckt ausführen
Bedenke aber das verstecke normale Anwendungen des öfteren von Virenscanner per Verhaltenserkennung als gefährlich eingestuft werden und u.U. am Ausführen gehindert werden.
|
AW: "Program" versteckt ausführen
Ok, habe mich nun für blackfins Lösung entschieden.
Funktioniert wirklich gut. Danke sehr. |
AW: "Program" versteckt ausführen
oder so
Delphi-Quellcode:
var owner:thandle;
begin Owner := GetWindow(handle, GW_OWNER); ShowWindow(owner, SW_HIDE); self.hide; end; |
AW: "Program" versteckt ausführen
Das ist dann doch aber nicht vor dem Taskmanager, Prozeßeplorer & Co. versteckt?!
Derlei Systemüberwachungsprogramme werden von mir und wohl auch von vielen anderen tagtäglich benutzt. Da nützt formular- oder konsolenfensterlosigkeit kein bißchen. |
AW: "Program" versteckt ausführen
Warum muss es überhaupt versteckt sein?
|
AW: "Program" versteckt ausführen
Wenn ich ein Programm schreibe, das ohne jegliche Interaktion auskommt, dann erstelle ich (allerdings unter Delphi) eine neue Konsolenanwendung und lösche einfach die Compilerdirektrive {$APPTYPE CONSOLE}.
|
AW: "Program" versteckt ausführen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
angehängtes Programmbeispiel verschwindet unmittelbat nach Programmstart und ist per ALT+TAB nicht mehr in den Vordergrund zu bekommen. Beenden nur über Taskmanager möglich. kuba PS: sorry falsche Kategorie ... Delphi, nicht FP... |
AW: "Program" versteckt ausführen
Zitat:
Speziell, wenn dieser Vorgang etwas länger dauern kann. Manche Anwender sind recht schnell dabei ein Konsolenfenster einfach zuzumachen, vor allem, wenn scheinbar nichts passiert. |
AW: "Program" versteckt ausführen
Im Delphi reicht ein Eintrag im Projektquelltext:
Delphi-Quellcode:
Dann ist kein Fenster sichtbar und der Prozess nur noch im Projektmanager zu abzubrechen.
program Test;
uses Forms, fTest in 'fTest.pas' {FormTest}; {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TFormTest, FormTest); if DebugHook = 0 then // <------ nur wenn nicht im Debugger Application.ShowMainForm := False; // <------ dann Formular ausblenden Application.Run; end. Im Debugmodus ist das Fenster aber komplett sichtbar. Ob das in FreePascal so geht weiß ich aber nicht. |
AW: "Program" versteckt ausführen
Aber wozu Fenster erzeugen und verwalten, wenn man keins braucht? Oder habe ich die Anforderung falsch verstanden?
|
AW: "Program" versteckt ausführen
Je nachdem, was es werden soll, käme auch noch ein Dienst in Frage.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 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