19/05/2001
Par Maxence Delannoy
WindowsLa 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. LinuxLa 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.
|