Conseils

Exécuter et exécuter des applications et des fichiers à partir de code Delphi

Exécuter et exécuter des applications et des fichiers à partir de code Delphi


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Le langage de programmation Delphi offre un moyen rapide d’écrire, de compiler, de mettre en package et de déployer des applications multiplates-formes. Bien que Delphi crée une interface utilisateur graphique, vous souhaiterez peut-être exécuter un programme à partir de votre code Delphi. Supposons qu'une application de base de données utilise un utilitaire de sauvegarde externe. L'utilitaire de sauvegarde prend les paramètres de l'application et archive les données, pendant que votre programme attend jusqu'à la fin de la sauvegarde.

Peut-être voudrez-vous ouvrir les documents présentés dans une liste de fichiers simplement en double-cliquant dessus sans ouvrir le programme associé au préalable. Imaginez une étiquette de lien dans votre programme qui amène l’utilisateur à votre page d’accueil. Que dites-vous à propos de l'envoi d'un email directement depuis votre application Delphi via le programme client de messagerie Windows par défaut?

ShellExecute

Pour lancer une application ou exécuter un fichier dans un environnement Win32, utilisez la fonction API ShellExecute Windows. Consultez l'aide sur ShellExecute pour une description complète des paramètres et des codes d'erreur renvoyés. Vous pouvez ouvrir n’importe quel document sans savoir quel programme lui est associé; le lien est défini dans le registre Windows.

Voici quelques exemples de shell.

Exécuter le bloc-notes

utilise ShellApi;

ShellExecute (Poignée, 'ouverte',
'c: Windows notepad.exe', nil, nil, SW_SHOWNORMAL);

Ouvrez SomeText.txt avec le Bloc-notes

ShellExecute (Poignée, 'ouverte',
'c: windows notepad.exe',
'c: SomeText.txt', nil, SW_SHOWNORMAL);

Afficher le contenu du dossier "DelphiDownload"

ShellExecute (Poignée, 'ouverte',
'c: DelphiDownload', nil, nil, SW_SHOWNORMAL);

Exécuter un fichier en fonction de son extension

ShellExecute (Poignée, 'ouverte',
'c: MyDocuments Letter.doc', nil, nil, SW_SHOWNORMAL);

Voici comment trouver une application associée à une extension.

Ouvrir un site Web ou un fichier * .htm avec l'explorateur Web par défaut

ShellExecute (Poignée, 'ouverte',
'//delphi.about.com',nil,nil, SW_SHOWNORMAL);

Envoyer un e-mail avec le sujet et le corps du message

var em_subject, em_body, em_mail: string;
commencer
em_subject: = 'Ceci est la ligne d'objet';
em_body: = 'Le texte du corps du message va ici';
em_mail: = 'mailto: [email protected]? subject =' +
em_subject + '& body =' + em_body;
ShellExecute (Poignée, 'ouverte',
PChar (em_mail), nil, nil, SW_SHOWNORMAL);
fin;

Voici comment envoyer un email avec la pièce jointe.

Exécuter un programme et attendre qu'il se termine

L'exemple suivant utilise la fonction API ShellExecuteEx.

// Exécuter la calculatrice Windows et pop up
// un message lorsque le calcul est terminé.
utilise ShellApi;

var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
ExecuteFile, ParamString, StartInString: string;
commencer
ExecuteFile: = 'c: Windows Calc.exe';
FillChar (SEInfo, SizeOf (SEInfo), 0);
SEInfo.cbSize: = SizeOf (TShellExecuteInfo);
avec SEInfo commence
fMask: = SEE_MASK_NOCLOSEPROCESS;
Wnd: = Application.Handle;
lpFile: = PChar (ExecuteFile);
{
ParamString peut contenir le
paramètres d'application.
}
// lpParameters: = PChar (ParamString);
{
StartInString spécifie le
nom du répertoire de travail.
Si ommited, le répertoire en cours est utilisé.
}
// lpDirectory: = PChar (StartInString);
nAfficher: = SW_SHOWNORMAL;
fin;
si ShellExecuteEx (@SEInfo) commence alors
répéter
Application.ProcessMessages;
GetExitCodeProcess (SEInfo.hProcess, ExitCode);
jusqu'à (ExitCode STILL_ACTIVE) ou
Application.Terminé;
ShowMessage ("Calculatrice terminée");
fin
else ShowMessage ('Erreur de démarrage de Calc!');
fin;



Commentaires:

  1. Jerrin

    À mon avis, vous commettez une erreur. Je suggère d'en discuter. Écrivez-moi dans PM, nous communiquerons.



Écrire un message