8
votes

Comment ouvrir l'explorateur Windows lorsque je clique sur un bouton?

J'ai une forme dans un projet Delphi. Il y a un bouton sur la forme. Lorsque l'utilisateur clique sur le bouton, je souhaite ouvrir l'explorateur Windows.

Quel code vais-je avoir besoin pour y parvenir?


0 commentaires

5 Réponses :


8
votes

Essayez ceci: xxx

vous devez ajouter shellapi à votre clause utilise


0 commentaires

13
votes

Construire sur ce que Mason Wheeler a déclaré: Vous pouvez également passer dans un répertoire comme argument, pour obtenir la fenêtre à ouvrir à un emplacement non par défaut:

uses
  ShellAPI;

...

  ShellExecute(Application.Handle,
    nil,
    'explorer.exe',
    PChar('c:\'), //wherever you want the window to open to
    nil,
    SW_NORMAL     //see other possibilities by ctrl+clicking on SW_NORMAL
    );


0 commentaires

27
votes

Eh bien, au cas où vous auriez besoin de sélectionner un fichier particulier dans Explorer, j'ai la fonction suivante que j'utilise xxx

et vous pouvez l'appeler: xxx

EDIT: Comme mentionné, Shellapi doit être ajouté à votre liste d'utilisations


2 commentaires

Ne devrait pas pwidechar être utilisé à la place de pCHAR ?


"Explorer" fonctionne comme un verbe pour les dossiers et NIL fait la valeur par défaut (qui est l'explorateur Windows pour les dossiers). Le nom traditionnel de cette fonction est OpenFileDefaultViewer (), que vous pouvez google (signifiait plus pour "Open" que "Explorer"). Il devrait également fonctionner sur n'importe quel type de fichier, en fonction de ce qui est mappé dans le registre pour l'extension de fichier (par exemple, README.TXT -> Notepad). Faites attention à l'hypothèse de l'application; S'il n'y a pas de fenêtre (E.G. Command-ligne ou DLL), vous pouvez passer 0 comme une poignée non valide. La poignée est davantage sur Windows gérant la fenêtre active et la propriété de la fenêtre, je pense.



3
votes

Selon http://msdn.microsoft .com / fr-nous / bibliothèque / bb762153% 28vs.85% 29.aspx , Shellexecute prend également en charge le verbe "Explorer", qui "explore" un dossier spécifié par LPFILE, cela devrait donc fonctionner:

ShellExecute(Application.Handle, 'explore', '.', nil, nil, SW_NORMAL);


0 commentaires

0
votes

En FireMonkey, pour ouvrir l'explorateur Sélectionner un fichier:

uses
  Winapi.Windows,
  Winapi.ShellAPI,
  FMX.Forms,
  FMX.Platform.Win;

procedure OpenExplorerSelectingFile(const AFileName: string);
begin
  ShellExecute(WindowHandleToPlatform(Application.MainForm.Handle).Wnd, 'open', 'explorer.exe', PChar('/select,"' + AFilename + '"'), nil, SW_NORMAL);
end;


0 commentaires