AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Rausfinden wie oft ein Programm läuft
Thema durchsuchen
Ansicht
Themen-Optionen

Rausfinden wie oft ein Programm läuft

Ein Thema von DelTurbo · begonnen am 15. Feb 2011 · letzter Beitrag vom 11. Dez 2011
Antwort Antwort
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#1

AW: Rausfinden wie oft ein Programm läuft

  Alt 15. Feb 2011, 17:28
Du könntest folgendes Versuchen:
Delphi-Quellcode:
      var
        i:Integer=0;
      Initialization //Zählen wie oft das Programm gestartet wird
          repeat
              mHandle := CreateMutex(nil, True, 'InstanzMeinerApplikation'+ IntToStr(i));
              Inc(i);
          until GetLastError <> ERROR_ALREADY_EXISTS;
          MessageBox(0, PChar('Das Programm wurde'+IntToStr(i)+'mal gestartet') , 'MeinProg', MB_OK)
      finalization
         if mHandle <> 0 then CloseHandle(mHandle);
Man bemerke, dass das eine ziemlich fiese möglichkeit ist. Es geht bestimmt auch anders

PS: Den MessageDlg würde ich im initialization-Abschnitt nicht riskieren. lieber eine hübsche API-Funktion

Geändert von WM_CLOSE (15. Feb 2011 um 17:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von blutsgeist
blutsgeist

Registriert seit: 9. Dez 2011
Ort: Berlin
5 Beiträge
 
Delphi 2010 Architect
 
#2

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 21:15
Guten Abend,

da ich im Delphi-Gebiet noch nicht so bewandert bin und gerne so ein Programmzähler für meine Zwecke haben will, bräuchte ich eure Hilfe.

Und zwar geht es um diesen Code:
Delphi-Quellcode:
      var
        i:Integer=0;
      Initialization //Zählen wie oft das Programm gestartet wird
          repeat
              mHandle := CreateMutex(nil, True, 'InstanzMeinerApplikation'+ IntToStr(i));
              Inc(i);
          until GetLastError <> ERROR_ALREADY_EXISTS;
          MessageBox(0, PChar('Das Programm wurde'+IntToStr(i)+'mal gestartet') , 'MeinProg', MB_OK)
      finalization
         if mHandle <> 0 then CloseHandle(mHandle);
Ich weiß leider nicht wie ich mHandle deklarien muss. Kann mir da einer weiter helfen?

LG Blutsgeist
Marcel
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 21:24
Na ja. mHandle? Was böte sich denn da wohl an? Vielleicht THandle?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von blutsgeist
blutsgeist

Registriert seit: 9. Dez 2011
Ort: Berlin
5 Beiträge
 
Delphi 2010 Architect
 
#4

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 21:40
Danke für die schnelle Antwort!

THandle gibt wenigstens keine Fehler mehr aus, allerdings wenn ich es compilieren will, bekomme ich immer Fehler angezeigt.

Siehe einfach mal den Screenshot

LG
Angehängte Grafiken
Dateityp: jpg delphi_Error.jpg (34,9 KB, 24x aufgerufen)
Marcel
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 21:44
Und was steht in der angegeben Zeilennummer?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von blutsgeist
blutsgeist

Registriert seit: 9. Dez 2011
Ort: Berlin
5 Beiträge
 
Delphi 2010 Architect
 
#6

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 21:46
Zeile 32:
Code:
THandle := CreateMutex(nil, True, 'calc.exe'+ IntToStr(i));
Zeile 37:
Code:
if THandle <> 0 then CloseHandle(THandle);
Marcel

Geändert von blutsgeist (10. Dez 2011 um 21:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 21:57
Da stimmen aber alle Klammern. Kommentiere mal den ganzen Initialization abschnitt aus und probiere es noch mal.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.555 Beiträge
 
Delphi 12 Athens
 
#8

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 21:43
Und woher sollen wir jetzt wissen, das was für eine Zeile sein soll?

Aber meine Glaskugel sagt mit ... du solltest die vorherigen Fehler beheben.
Denn der Fehler ist nicht diese Variable.


PS: Wobei man auch einfach mal nachsehn könne, was CreateMutex als Result für einen Typen vorgibt und für deinen letzen Fehler, was sie für Parameter haben will.


PSS: Wenn/falls dein Code mal funktioniert ... versuche mal Folgendes:
- Programm mehrmals starten
- das Erste beenden
- nun nochmal Eines starten und schauen was das mein, wie oft es schon gestartet sei.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (10. Dez 2011 um 21:49 Uhr)
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

AW: Rausfinden wie oft ein Programm läuft

  Alt 11. Dez 2011, 11:34
Du könntest folgendes Versuchen:
Delphi-Quellcode:
      var
        i:Integer=0;
      Initialization //Zählen wie oft das Programm gestartet wird
          repeat
              mHandle := CreateMutex(nil, True, 'InstanzMeinerApplikation'+ IntToStr(i));
              Inc(i);
          until GetLastError <> ERROR_ALREADY_EXISTS;
          MessageBox(0, PChar('Das Programm wurde'+IntToStr(i)+'mal gestartet') , 'MeinProg', MB_OK)
      finalization
         if mHandle <> 0 then CloseHandle(mHandle);
Man bemerke, dass das eine ziemlich fiese möglichkeit ist.
Inwiefern ist denn diese Möglichkeit "fies"?
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.248 Beiträge
 
Delphi 2007 Architect
 
#10

AW: Rausfinden wie oft ein Programm läuft

  Alt 11. Dez 2011, 11:50
Hi,
ich habe es damals mit TJvAppInstances gemacht. Das ding kann aber nochmehr. Legs einfach mal drauf und spiel bissl mit rum. So lerne ich immer wenn ich was nicht weiss. Komme ich nicht weiter, dann google ich. zu 80% finde ich dann einen link nach hier, wo das steht was ich brauche.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:13 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