Dans une application WPF, lorsqu'un utilisateur clique sur un bouton, je souhaite ouvrir l'explorateur Windows dans un certain répertoire, comment faire?
Je m'attendrais à quelque chose comme ça:
Windows.OpenExplorer("c:\test");
Dans une application WPF, lorsqu'un utilisateur clique sur un bouton, je souhaite ouvrir l'explorateur Windows dans un certain répertoire, comment faire?
Je m'attendrais à quelque chose comme ça:
Windows.OpenExplorer("c:\test");
Réponses:
Pourquoi pas Process.Start(@"c:\test");
?
Start(dir)
et Start("explorer.exe", dir)
est que le premier sera suffisamment intelligent pour concentrer la fenêtre existante dir
s'il y en a une, tandis que le second ouvre une nouvelle fenêtre à chaque fois.
Cela devrait fonctionner:
Process.Start(@"<directory goes here>")
Ou si vous souhaitez une méthode pour exécuter des programmes / ouvrir des fichiers et / ou des dossiers:
private void StartProcess(string path)
{
ProcessStartInfo StartInformation = new ProcessStartInfo();
StartInformation.FileName = path;
Process process = Process.Start(StartInformation);
process.EnableRaisingEvents = true;
}
Et puis appelez la méthode et entre parenthèses, mettez soit le répertoire du fichier et / ou du dossier, soit le nom de l'application. J'espère que cela a aidé!
Vous pouvez utiliser System.Diagnostics.Process.Start
.
Ou utilisez WinApi directement avec quelque chose comme ce qui suit, qui lancera explorer.exe. Vous pouvez utiliser le quatrième paramètre de ShellExecute pour lui donner un répertoire de départ.
public partial class Window1 : Window
{
public Window1()
{
ShellExecute(IntPtr.Zero, "open", "explorer.exe", "", "", ShowCommands.SW_NORMAL);
InitializeComponent();
}
public enum ShowCommands : int
{
SW_HIDE = 0,
SW_SHOWNORMAL = 1,
SW_NORMAL = 1,
SW_SHOWMINIMIZED = 2,
SW_SHOWMAXIMIZED = 3,
SW_MAXIMIZE = 3,
SW_SHOWNOACTIVATE = 4,
SW_SHOW = 5,
SW_MINIMIZE = 6,
SW_SHOWMINNOACTIVE = 7,
SW_SHOWNA = 8,
SW_RESTORE = 9,
SW_SHOWDEFAULT = 10,
SW_FORCEMINIMIZE = 11,
SW_MAX = 11
}
[DllImport("shell32.dll")]
static extern IntPtr ShellExecute(
IntPtr hwnd,
string lpOperation,
string lpFile,
string lpParameters,
string lpDirectory,
ShowCommands nShowCmd);
}
Les déclarations proviennent du site pinvoke.net .
Process.Start("explorer.exe" , @"C:\Users");
Je devais l'utiliser, l'autre façon de spécifier simplement le répertoire tgt fermait la fenêtre de l'explorateur lorsque mon application se terminait.
Access denied
exception.
Process.Start("calc.exe");
exécutera la calculatrice. Vous pouvez lui transmettre le chemin complet d'un exécutable et il l'exécutera.