Ermitteln ob EXE aktiv ist
-
Hallo
ich kann deinen Quellcode jetzt nicht testen, weil ich keinen Builder habe.
Aber CreateMutex und ReleaseMutex sollten besser in dem Konstruktor bzw. dem Destruktor des Forms stehen, und HANDLE hMutex sollte ein Member des Forms sein (also im Header des Forms nach private deklarieren).bis bald
akari
-
Danke akari, kannst du (oder jemand anderes) mir noch sagen was Konstruktor und Destruktor bedeutet? Oder wo ich das finde?
-
Konstuktor:
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //---------------------------------------------------------------------------besser ist aber das TForm Event OnCreat.
Destruktor:
ist ist das TForm Event OnDestroy
kannst du im Objektinspektor für TForm doppelt klicken.
Ok stimmt nicht ganz da der Destruktor danach kommt.
Den Destruktor würde ich nicht überschreiben!
-
Hallo
besser ist aber das TForm Event OnCreat.
Falsch. Genausowenig wie OnDestroy besser als der Destruktor sein soll. Das gegenteil ist der Fall, die Begründung hatten wir schon ein paar mal in verschiedenen Threads dieses Forums.
Danke akari, kannst du (oder jemand anderes) mir noch sagen was Konstruktor und Destruktor bedeutet? Oder wo ich das finde?
Lies gleich ein ganzes Tutorial zum Thema OOP, denn du wirst es noch brauchen.
bis bald
akari
-
Hi,
http://www.c-plusplus.net/forum/viewtopic-var-t-is-160149-and-highlight-is-%2Aoncreat%2A.html
Link von Braustein führt zu einem englischen Forum.
Die Aussage dort ist mir neu:Ok, so let's summarize the most important reason why OnCreate is
dangerous: because it could execute before your constructor executes
and before any member objects have been initialized. In C++, it is
generally mandated that a base class constructor should not be able to
call the member functions of a derived class. OnCreate violates
this. OnDestroy does too, but during destruction.Meine Frage ist jetzt, wie ich den Destruktor der Form einbaue?
etwa so:Beispiel:
unit1.h
private: __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner); ~Form1(); TGraphics::TBitmap *hallo;unit.cpp
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { hallo=new TGraphics::TBitmap(); } //--------------------------------------------------------------------------- ~Form1() { delete hallo; }wäre das so richtig?
-
Bitte die Faustregel beachten: ein Thema ein Thread, ein Thread ein Thema. Danke!
-
Geht sowas auch indem man prüft, ob z.B. ABC.EXE in den ausgeführten Prozessen steht? Wenn ja, wie prüft man dies?
-
Hallo
dlonra schrieb:
Meine Frage ist jetzt, wie ich den Destruktor der Form einbaue?
etwa so:ja, Syntax und Anwendung von Destruktor und Konstruktor sind in Ordnung.
Wenn du aber schon mal dabei bist, dann mach es gleich richtig und benutzt die Initialisierungsliste__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner), hallo(new TGraphics::TBitmap()) { }Aber nun back to Topic.
Feyo-Su schrieb:
Geht sowas auch indem man prüft, ob z.B. ABC.EXE in den ausgeführten Prozessen steht? Wenn ja, wie prüft man dies?
Ja das geht auch, mit der WinAPI-Funktion FindWindow.
Allerdings ist das etwas unsauberer, mit den Mutexten geht das sicherer.bis bald
akari
-
Habe mal über Google bisschen gesucht, nachdem ich in der BCB Hilfe nichts gefunden hatte. Aber ich finde keine Seite wo steht wie man FindWindow benutzt. Hat vielleicht jemand gerade einen Link dazu, oder kanns selber erklären? Danke scho'ma
-
Hi,
hier hab ich ein Beispiel für FindWindow gefunden. So wie es aussieht muss dieser Code in die Projekt.cpp rein.
http://www.bcb-box.de/Informationen/Laeuftschon/laeuftschon.html

auch interessante Schnippsel
http://www.bcb-box.de/Informationen/informationen.html
Grüsse
-
Vielen Dank, funktioniert.
Muss nicht zwingend in die Projekt.cpp.