Avatar billede hhjollund Praktikant
05. september 2001 - 18:36 Der er 3 kommentarer og
1 løsning

Hvordan detekteres at programmet allerede kører ?

I et program, som er meget afhængig af at der ikke allerede er en udgave af det igang, har jeg forsøgt at bruge nvironment variabler, men de kan åbenbart kun læses og skrives indenfor den samme session. Det jeg ønsker er at programmet ved opstart tjekker om en udgave allerede kører. I så fald skal den give en fejlmeddelelese og terminere.
Avatar billede snowball Novice
05. september 2001 - 18:40 #1
Der er flere måder at gøre det på. En nem måde er at dit program laver en fil når det starter, og hvis filen allerede findes så skal programmet afslutte. Du kan også slrive en værdi et sted i Registreringsdatabasen og læse den for at finde ud af om programmet kører. Du kan også bruge FinWindow for at se om der allerede er åbnet et vindue med den titel som dit program har.

Det var bare et par muligheder :)

Snowball
Avatar billede sannen Nybegynder
05. september 2001 - 18:44 #2
Avatar billede borrisholt Novice
05. september 2001 - 20:03 #3
Prøv at gøre som følger i din DPR fil :

program Project1;

uses
  Windows,
  Forms,
  Unit1 in \'Unit1.pas\' {Form1};

{$R *.res}

begin
  CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, 1000, \'MY MAP NAME GOES HERE\');
  if GetLastError <> ERROR_ALREADY_EXISTS then
  begin
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
  end
  else
    //Programmet kører allerede
end.

Jens B
Avatar billede hhjollund Praktikant
05. september 2001 - 21:25 #4
Det er lidt uretfærdigt at afvise svar som måske er OK, men Sannen\'s forslag var det jeg afprøvede først og det virker fint. Metoden med en fil havde jeg tænkt på, men filen kan jo være blevet oprettet tidligere og ikke blevet slettet hvis Windoze havde crashet. (Det sker jo)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester