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
Seite 2 von 3     12 3      
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#11

AW: Rausfinden wie oft ein Programm läuft

  Alt 15. Feb 2011, 22:04
Inc und Dec sind aber nicht threadsave, also kann es zu Problemen kommen, wenn 2 Prozesse gleichzeitig versuchen, die Anzahl zu verändern. Besser ist dagegen Hier im Forum suchenInterlockedDecrement und Hier im Forum suchenInterlockedIncrement.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#12

AW: Rausfinden wie oft ein Programm läuft

  Alt 15. Feb 2011, 22:51
Inc und Dec sind aber nicht threadsave, also kann es zu Problemen kommen, wenn 2 Prozesse gleichzeitig versuchen, die Anzahl zu verändern. Besser ist dagegen Hier im Forum suchenInterlockedDecrement und Hier im Forum suchenInterlockedIncrement.

Bernhard
Ohh, danke für die Information! Hab ich gar nicht bedacht
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
DelTurbo

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

AW: Rausfinden wie oft ein Programm läuft

  Alt 16. Feb 2011, 17:16
Hi,

nochmals danke für die hilfe. Schon kommt ein neues problem. Ich versuche es mal zu erklären.

Ich habe z.b. 5x das prg laufen. Jedes prg kennt seine "nummer" (1-5). Nun beende ich z.b. programm 3. Dann starte ich das programm nochmal. Nun versuche ich seit gestern abend einen weg zu finden, der mir sagt das programm 3 fehlt und das nun neu gestartete programm die 3 annehmen soll.

Mit dieser jedi-hilfe die ich gefunden habe komm ich nicht weiter. http://help.delphi-jedi.org/unit.php?Id=2575

Ich dachte mir das ungefähr so. Eine schleife von 1 bis JvAppInstances1.AppInstances.InstanceCount. Und in der schleife würde ich gerne jeden process abfragen ob er da ist. Sollten z.b. alle 5 da sein, weiss ich das ich einen 6. process aufmachen muss. Sollte einer oder mehr fehlen wollte ich die kleinste nummer nehmen von den fehlenden.

Ich hoffe mir kann da nochmal einer weiterhelfen.

Danke im voraus
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#14

AW: Rausfinden wie oft ein Programm läuft

  Alt 16. Feb 2011, 17:23
Also so langsam würde ich auf die Unix-Schiene wechseln und das Datei-basiert machen. Windows kennt temporäre Dateien, die nur so lange existieren, wie die Anwendung diese offen hält (oder bis die Anwendung tot ist). Diese Dateien kannst du im TMP-Verzeichnis des Users erstellen. Mit Hilfe von Hier im Forum suchenFileExists() kannst du dann rausfinden, welche Anwendung (inkl. Nummer) läuft.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
DelTurbo

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

AW: Rausfinden wie oft ein Programm läuft

  Alt 16. Feb 2011, 17:28
Das wäre eine idee. Ich dachte es geht etwas "eleganter"
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#16

AW: Rausfinden wie oft ein Programm läuft

  Alt 16. Feb 2011, 17:30
Also ich würde per Delphi mir einfach sämtliche apps holen(so wies im taskmanager steht) und mir davon den namen der exe holen. Dadurch kannste deine progs zählen.

Wenn dein Prog auch ne Form hat, also keine consolenanwendung ist, wovon ich mal ausgehe), kanst du einfach deiner hauptform ne caption zuweisen. sowas wie

"Name(X)"

X ist hierbei die nummer. wenn du dir also die Fensterliste holst und alle fenster rausholst, die deine exe haben, kannst du deren caption überprüfen und die nummer rausfiltern. Damit bekommste raus welche fehlt.

Für ersteres war es glaub ich "GetWindowList".

MFG
Memnarch
  Mit Zitat antworten Zitat
Benutzerbild von blutsgeist
blutsgeist

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

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 22: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
 
#18

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 22: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
 
#19

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 22: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
Miniaturansicht angehängter Grafiken
delphi_error.jpg  
Marcel
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Rausfinden wie oft ein Programm läuft

  Alt 10. Dez 2011, 22: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (10. Dez 2011 um 22:49 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:14 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