IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Lancer un programme externe

19/05/2001

Par Maxence Delannoy

Windows

La fonction ShellExecute contenue dans l'unité ShellApi permet de lancer un programme externe en passant par le shell. On peut passer soit le chemin d'une application, soit celui d'un document. Dans ce dernier cas, Windows parcours la base de registre pour déterminer quelle est l'application associé à ce type de document (en se basant sur l'extension).

Exemple :

{ Lance un programme externe (NotePad). }

program ShellEx;

uses
  ShellApi;

begin
  ShellExecute(0,                // Handle d'une fenêtre
    'open',                      // Opération à effectuer
    'c:\windows\notepad.exe',    // Application à lancer ou document à ouvrir
    '',                          // Arguments de la ligne de commande
    '',                          // Répertoire par défaut
    SW_SHOWNORMAL);              // Options d'affichage
end.

Linux

La fonction system de l'unité Libc permet de lancer un programme externe en passant par le shell. Passer le nom d'un document à cette fonction entrainera une erreur. En effet, les associations types de fichier/applications ne sont pas géré par le système, mais par les environnements de bureau (KDE, Gnome...). Chaque environnement dispose de son propre système.

Exemple :

{ Lance un programme externe }

program sys;

uses
  Libc;

begin
  Libc.system('man system'); // Affiche une page de manuel. On est obligé de
                             // qualifier l'appel pour éviter la confusion
                             // avec l'unité system de Kylix.
end.     

Pour afficher un document HTML, vous pouvez utiliser la variable d'environnement BROWSER qui est définie sur certaines distributions (la Mandrake en particulier). Elle indique le chemin du navigateur par défaut (Netscape en général).

Exemple :

{ Affiche un document HTML (dans cet exemple, la page d'accueil de Mandrake)
  en utilisant le navigateur par défaut. }

program DocHtml;

uses
  Libc,
  SysUtils;

begin
  Libc.system(PChar(SysUtils.GetEnvironmentVariable('BROWSER') + ' ' +
    'file:/usr/share/doc/HTML/index.html'));
end.

Précédent Retour à la table des matières Suivant