WPF uygulamasında, kullanıcı bir düğmeyi tıklattığında Windows Gezgini'ni belirli bir dizine açmak istiyorum, bunu nasıl yapabilirim?
Ben böyle bir şey beklenir:
Windows.OpenExplorer("c:\test");
WPF uygulamasında, kullanıcı bir düğmeyi tıklattığında Windows Gezgini'ni belirli bir dizine açmak istiyorum, bunu nasıl yapabilirim?
Ben böyle bir şey beklenir:
Windows.OpenExplorer("c:\test");
Yanıtlar:
Neden olmasın Process.Start(@"c:\test");?
Start(dir)ve Start("explorer.exe", dir)eski mevcut pencere odaklanmak akıllı yeterli olacağıdır dirvarsa ikincisi yeni bir penceresi her zaman açılır iken,.
Bu çalışmalı:
Process.Start(@"<directory goes here>")
Veya programları / açık dosyaları ve / veya klasörleri çalıştırmak için bir yöntem istiyorsanız:
private void StartProcess(string path)
{
ProcessStartInfo StartInformation = new ProcessStartInfo();
StartInformation.FileName = path;
Process process = Process.Start(StartInformation);
process.EnableRaisingEvents = true;
}
Ve sonra yöntemi çağırın ve parantez içinde dosyanın ve / veya klasörün dizinini veya uygulamanın adını girin. Umarım bu yardımcı oldu!
Kullanabilirsiniz System.Diagnostics.Process.Start.
Veya WinApi'yi doğrudan explorer.exe'yi başlatacak aşağıdaki gibi bir şeyle kullanın. ShellExecute için dördüncü parametreyi kullanarak bir başlangıç dizini kullanabilirsiniz.
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);
}
Beyanlar pinvoke.net web sitesinden gelir .
Process.Start("explorer.exe" , @"C:\Users");
Bunu kullanmak zorunda kaldım, sadece tgt dir belirtmenin diğer yolu benim uygulama sona erdiğinde explorer penceresini kapatır.
Access deniedistisna değil .
Process.Start("calc.exe");Hesap Makinesi çalıştıracaktır. Bir çalıştırılabilir dosyanın tam yolunu geçebilir ve çalıştıracaktır.