AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Prüfen ob ein Programm schon gestartet ist!
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen ob ein Programm schon gestartet ist!

Ein Thema von PlanetofBlade · begonnen am 26. Feb 2003 · letzter Beitrag vom 26. Feb 2003
Antwort Antwort
PlanetofBlade

Registriert seit: 26. Feb 2003
Ort: Uhingen
23 Beiträge
 
Delphi 5 Professional
 
#1

Prüfen ob ein Programm schon gestartet ist!

  Alt 26. Feb 2003, 10:37
Hallo zusammen,

ich hab folgendes Problem:

Ich habe ein kleines Programm geschrieben das auf eine Text - Datei zugreift um dort Daten auszulesen! Das Programm hat die Text - Datei so lange in Benutzung wie es läuft!

Jetzt wenn ich per Terminaldienstclient auf den Server gehe öffnet er eine neue Session, mein Programm ist im Autostart drin somit wird es mitgestartet und prozudiert gleich einen Fehler weil die Datei in Use ist!

Wie kann ich jetzt prüfen ob die Datei schon in der andren Session gestartet wurde? Kann man irgendwie die Prozesse auslesen und damit en Vergleich starten?

Schon ma Thänkx im Vorraus

PlanetofBlade
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#2
  Alt 26. Feb 2003, 10:48
Mit welcher Funktion öffnest du die Datei?
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
lodda

Registriert seit: 6. Dez 2002
65 Beiträge
 
Delphi 5 Standard
 
#3
  Alt 26. Feb 2003, 10:58
Hallo PlanetofBlade

vielleicht hilft dir das weiter
http://www.delphipraxis.net/viewtopic.php?t=1457
Die 3 größten Lügen der Software- Entwickler:
1. Dieses Feature ist noch nicht implementiert, aber das ist kein Problem dies zu tun.
2. Wir arbeiten an einem Update um den Fehler zu beseitigen.
3. Ihre Software wird nächste Woche fertig sein.
  Mit Zitat antworten Zitat
PlanetofBlade

Registriert seit: 26. Feb 2003
Ort: Uhingen
23 Beiträge
 
Delphi 5 Professional
 
#4
  Alt 26. Feb 2003, 11:04
vielen dank lodda, ich probier das ma damit! Kein Plan ob das mit der 2ten Session auch so funktioniert!

@janjan: ich öffne die Datei mit der Inifile Syntax = TInifile.Create('asd.cfg')
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#5
  Alt 26. Feb 2003, 11:31
Öhm, wenn ich dich richtig verstehe führt das hier zu einer Fehlermeldung bei dir:

Delphi-Quellcode:
ini1:=TIniFile.Create(ExtractFilePath(paramstr(0))+'test.ini');
ini2:=TIniFile.Create(ExtractFilePath(paramstr(0))+'test.ini');
ini1.WriteString('1','2','3');
ini2.WriteString('1','2','4');
Bei mir können mehrere TInifiles innerhalb eines Programms ohne Fehler auf die selbe Datei zugreifen, auch mit 2 verschiedenen Programmen die gleichzitig auf die selbe Datei zugreifen klappts...
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Delphianer

Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6
  Alt 26. Feb 2003, 14:39
Packe die folgenden Zeilen in die .dpr-Datei, damit kannst Du einen zweiten Programmstart abfangen. Ein Mutex gilt systemweit und läßt sich nur einmal erzeugen. Beim zweiten Versuch gibt es einen Fehler (ERROR_ALREADY_EXISTS), damit weißt Du, das das Programm schon läuft. Die Konstante sMyMutex ist beliebig, sollte aber schon einigermaßen einmalig im System sein.

programm ...

const
sMyMutex = 'BlaBlaBla';

function AlreadyStarted: Boolean;
begin
CreateMutex(nil, False, sMyMutex);
Result := GetLastError = ERROR_ALREADY_EXISTS;
end;

begin
if AlreadyStarted then begin
Exit;
end;

...

end.
Lutz
  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 04:40 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