Bonjour à toutes et à tous,

Après quelques recherches (peu être mal faites), je n'ai pas trouvé de solution pour ne lancer qu'une seule instance d'un application sous Linux.

J'ai le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
begin
  {$I MonPgm.lrs}
  SetLastError(NO_ERROR);
  CreateMutex (nil, False, 'MonPgm');
   // sort si le prog est déjà lancé :
  if GetLastError = ERROR_ALREADY_EXISTS then Exit;
  Application.Initialize;
  Application.CreateForm(TMain, Main);
  Application.Run;
end.
qui fonctionne bien sous Windows.

Sous Linux, les procédures et fonctions : SetLastError, CreateMutex et GetLastError ne sont pas reconnues. Est-ce que c'est parce que je n'ai pas trouvé les bonnes unités ou bien cela ne fonctionne-t-il pas ?

Dans ce dernier cas, que est la méthode à employer.

Merci de votre aide.

Pierre