Comment puis-je réaliser l'équivalent de shellexecute()
dans Lazarus pour un Mac ?
Réponses
Trop de publicités?{Voici le code pour le faire. Utilisez l'objet TProcess ! }
uses Process;
...
procedure DoProcess;
Var
Proc : TProcess;
Begin
Proc := TProcess.Create(nil);
try
Proc.CommandLine := '/Applications/MyApp.app';
PRoc.Options := Proc.Options + [poWaitOnExit];
Proc.CommandLine := Proc.CommandLine + ' -someparam';
PRoc.Execute;
finally
Proc.free;
end;
End;
Je ne sais pas si les bibliothèques Lazarus ont déjà cette fonctionnalité, mais si ce n'est pas le cas, vous pourriez écrire une version compilée conditionnellement de ShellExecute() en utilisant les informations contenues dans le Guide de programmation des services de lancement .
Si vous souhaitez utiliser ShellExecute pour ouvrir un document avec son application préférée, vous pouvez alors utiliser la procédure OpenDocument de l'unité LCLIntf.
L'outil de conversion de Lazarus utilise également ce remplacement pour ShellExecute, voir l'onglet Lazare wiki . En interne, il utilise l'ouverture comme mentionné par RobS.