AGB  ·  Datenschutz  ·  Impressum  







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

Einmaliges aufstarten eines Programms

Ein Thema von OnFire · begonnen am 2. Nov 2004 · letzter Beitrag vom 2. Nov 2004
Antwort Antwort
OnFire

Registriert seit: 2. Nov 2004
9 Beiträge
 
#1

Einmaliges aufstarten eines Programms

  Alt 2. Nov 2004, 10:26
Hey Leute,

ich habe ein Problem...

Ich habe ein Programm geschrieben und will, dass man es sobald es einmal läuft nicht noch ein zweites Mal aufstarten kann, da ich verhindern will, das es mehrfach auf einem PC läuft.

Wie kann ich das machen???

Wäre echt froh um Hilfe....


Thanks OnFire
  Mit Zitat antworten Zitat
eassy

Registriert seit: 7. Mai 2003
48 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: Einmaliges aufstarten eines Programms

  Alt 2. Nov 2004, 10:31
hi,

ich glaube da gab es hier auch schon mal einen betrag für diese problem.
folgende möglichkeit gibt es: (in deine .dpr datei einfügen)

Delphi-Quellcode:
var
  mHandle: THandle;
begin
  mHandle := CreateMutex(nil,True,'Progammname'); (* hier den Namen eintragen *)
  if GetLastError = ERROR_ALREADY_EXISTS
  then Halt
  else
  begin
    Application.Initialize;
    ...
    Application.Run;
  end;
  if mHandle <> 0 then
   CloseHandle(mHandle);
end.
gruß
eassy
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Einmaliges aufstarten eines Programms

  Alt 2. Nov 2004, 10:32
Hallo,

ich mal Folgendes als Code gefunden und auch schon benutz.. Einfach deine Projektdatei entsprechend anpassen:
Delphi-Quellcode:
PROGRAM Project1;


USES
    Forms



{ Folgende Units müssen hinzugefügt werden }

Windows,
Dialogs,


{ Ende der hinzugefügten Units }




Unit1 in 'Unit1.pas{ Form1 };

{$R *.RES}

VAR
  hMutex: THandle;
begin
  hMutex := CreateMutex(nil, True, 'Mein Programm');

{Der letzte Parameter ist systemweit gültig und sollte daher eindeutig sein,
damit es zu keiner Kollision mit anderen Programmen kommt}


IF GetLastError = ERROR_ALREADY_EXISTS THEN BEGIN ShowMessage('Das Programm kann nur einmal gestartet werden!'); Halt; { Programm wird beendet }
END;

{Appl ikation wird erstellt}

Application.Initialize;Application.CreateForm(TForm1, Form1);
Application.Run;

{Freigabe des erstellen Objekts}

IF hMutex <> 0 THEN CloseHandle(hMutex);
END.
Gruß

Zu langsam
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Einmaliges aufstarten eines Programms

  Alt 2. Nov 2004, 10:33
Oder einfach den Code aus der Code-Library verwenden: Klick
  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 15:19 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