![]() |
Programm ohne Form
Hallo liebe DPler,
ich habe mal eine Frage. Und zwar möchte ich gerne ein Programm schreiben, dass keine Form besitzt. Ich finde es doof für simple Hintergrundaufgaben eine Form erzeugen zu müssen. Ich schätze mal das ganze realisiere ich irgendwie mit NonVLC. Habe das auch soweit alles hinbekommen. Allerding ist jetzt mein Problem, sobald die Main-Prozedur durchlaufen ist, beendet das Programm, egal ob ein Timer drin ist oder was auch immer. Wie kann ich das umgehen? Wenn ich eine Sichtbare Form habe, funktioniert das ohne Probleme. Grüße ddcool |
Re: Programm ohne Form
Wie wäre es mit einer Konsolenanwendung? Da hast du auch kein Formular. ;) Wenn dein Programm sich nicht beenden soll, würde ich eine Endlosschleife mit einer best. Abbruchbedingung wählen, wei zB das Drücken einer taste. :)
|
Re: Programm ohne Form
Jo das war auch meine Idee, allerdings möchte ich 1. keine Konsolenanwendung und 2. wüsste ich nicht, was ich in die Schleife schreiben soll, damit das <progy nicht freezed oder 100% cpu verursacht.
Grüße ddcool |
Re: Programm ohne Form
Hallo,
Hintergrundaufgaben ohne Benutzer-Interaktion? Da könntest du einen Dienst implementieren. Grüße vom marabu |
Re: Programm ohne Form
Naja ich zeig euch mal den angedachten Source:
Code:
while not TermApp do Tue irgendwas;
program Testus;
uses BlaFasel; var TermApp: Boolean = False; {$R *.res} //------------------------------- MUST HAVE DECLARED --------------------------- Irgendwelche Prozeduren und Funktionen //------------------------------- MUST HAVE DECLARED --------------------------- begin Tue das; while not TermApp do Tue irgendwas; end. So der rote Teil soll halt die Endlosschleife sein. Und der Fette teil da drin muss halt was sein, was das Progyy nicht zum freezen bringt und die CPU nicht belastet. |
Re: Programm ohne Form
Zitat:
Vielleicht beschreibst Du mal kurz, was das Programm überhaupt so tun soll? |
Re: Programm ohne Form
Delphi-Quellcode:
Vielleicht hilft das. ;)
var
myTimer: TTimer; procedure myOnTimer(Sender: TObject); ... myTimer := TTimer.Create(Self); with myTimer do begin OnTimer := myOnTimer; Interval := 1000; Activate := True; end; ... procedure TForm1.myOnTimer(Sender: TObject); begin // machwas Activate := not TermApp; // Irgendwo noch Timer freigeben end; |
Re: Programm ohne Form
Du kannst dein Programm ja auch im Programmquelltext schreiben (Projekt -> Quelltext anzeigen), und da dann auch einfach deine Form rauslöschen.
Gruß |
Re: Programm ohne Form
Also zur Funktion. In meinem Beruf bin ich Sycherheitsanalyst. Im ramen eines Projektes möchte ich überprüfen, wie sich ein System verhält, wenn es von Schadsoftware angegriffen wird. Genauer ich möchte analysieren, wie ich einen Keyboard Hook mit speziellen im Netz verfügbaren Tools erkennen und blocken kann. Das ist ja auch schön und gut, jedoch ist es blöd in seiner "Sandbox" jedes mal einen Trojaner aus dem Netz "installieren" zu müssen. Das erzeugt nur unnötig Traffic, und führ unter umständen dazu, dass die Test-VM als Bot missbraucht werden könte. Nicht mein Ziel! Also will ich mir ein Programm mit Keyboard Hook schreiben (der Hook ist kein Problem, ist aber nicht in einer dll ausgelagert, weil das echte schadsoftware meistens auch nicht macht) wlches möglichst real ist. Dazu sollte das Programm natürlich in nonVCL geschrieben sein um:
1. möglichst klein zu sein 2. hat keine schadsoftware eine Form. Wozu auch?! Soweit so gut. Es ist wirklich nur für testzwecke und ohne kriminelle Hintergründe. Achso einfach im Programmcode zu schreiben ist ja praktisch nonVCL und mache ich ja schon (siehe den source oben). Grüße ddcool |
Re: Programm ohne Form
Aus was wartet denn dein programm. also was ist der Auslöser, damit es beendet wird.
Normalerweise brauchst du eine Messageschleife à la
Delphi-Quellcode:
Aus der kommst du mit PostQuitMessage heraus.
while getmessage(msg,0,0,0) do dispatchmessage(msg)
Jetzt könntest du z.B. einen Timer einbauen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 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