AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm ohne Form

Ein Thema von ddcool · begonnen am 4. Feb 2008 · letzter Beitrag vom 7. Feb 2008
Antwort Antwort
Seite 1 von 3  1 23      
ddcool

Registriert seit: 8. Jun 2003
146 Beiträge
 
Delphi XE2 Architect
 
#1

Programm ohne Form

  Alt 4. Feb 2008, 20:16
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
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Programm ohne Form

  Alt 4. Feb 2008, 20:32
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.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
ddcool

Registriert seit: 8. Jun 2003
146 Beiträge
 
Delphi XE2 Architect
 
#3

Re: Programm ohne Form

  Alt 4. Feb 2008, 20:43
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Programm ohne Form

  Alt 4. Feb 2008, 20:46
Hallo,

Hintergrundaufgaben ohne Benutzer-Interaktion? Da könntest du einen Dienst implementieren.

Grüße vom marabu
  Mit Zitat antworten Zitat
ddcool

Registriert seit: 8. Jun 2003
146 Beiträge
 
Delphi XE2 Architect
 
#5

Re: Programm ohne Form

  Alt 4. Feb 2008, 20:57
Naja ich zeig euch mal den angedachten Source:

Code:
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.
while not TermApp do Tue irgendwas;

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.
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Programm ohne Form

  Alt 4. Feb 2008, 21:12
Zitat von ddcool:
while not TermApp do Tue irgendwas;

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.
Wenn der Instruktionsteil die CPU nicht belastet, ist er doch sinnlos und kann gleich komplett samt Schleife wegoptimiert werden

Vielleicht beschreibst Du mal kurz, was das Programm überhaupt so tun soll?
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Programm ohne Form

  Alt 4. Feb 2008, 21:20
Delphi-Quellcode:
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;
Vielleicht hilft das.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Programm ohne Form

  Alt 4. Feb 2008, 21:26
Du kannst dein Programm ja auch im Programmquelltext schreiben (Projekt -> Quelltext anzeigen), und da dann auch einfach deine Form rauslöschen.

Gruß
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
ddcool

Registriert seit: 8. Jun 2003
146 Beiträge
 
Delphi XE2 Architect
 
#9

Re: Programm ohne Form

  Alt 4. Feb 2008, 21:40
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
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Programm ohne Form

  Alt 4. Feb 2008, 22:08
Aus was wartet denn dein programm. also was ist der Auslöser, damit es beendet wird.
Normalerweise brauchst du eine Messageschleife à la
while getmessage(msg,0,0,0) do dispatchmessage(msg) Aus der kommst du mit PostQuitMessage heraus.
Jetzt könntest du z.B. einen Timer einbauen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz