Trong một ứng dụng WPF, khi người dùng nhấp vào nút tôi muốn mở Windows explorer đến một thư mục nhất định, tôi phải làm thế nào?
Tôi sẽ mong đợi một cái gì đó như thế này:
Windows.OpenExplorer("c:\test");
Trong một ứng dụng WPF, khi người dùng nhấp vào nút tôi muốn mở Windows explorer đến một thư mục nhất định, tôi phải làm thế nào?
Tôi sẽ mong đợi một cái gì đó như thế này:
Windows.OpenExplorer("c:\test");
Câu trả lời:
Tại sao không Process.Start(@"c:\test");
?
Start(dir)
và Start("explorer.exe", dir)
là cái trước sẽ đủ thông minh để tập trung vào cửa sổ hiện có dir
nếu có một cái, trong khi cái sau sẽ mở một cửa sổ mới mỗi lần.
Điều này sẽ làm việc:
Process.Start(@"<directory goes here>")
Hoặc nếu bạn muốn một phương thức để chạy chương trình / mở tệp và / hoặc thư mục:
private void StartProcess(string path)
{
ProcessStartInfo StartInformation = new ProcessStartInfo();
StartInformation.FileName = path;
Process process = Process.Start(StartInformation);
process.EnableRaisingEvents = true;
}
Và sau đó gọi phương thức và trong ngoặc đơn đặt thư mục của tệp và / hoặc thư mục ở đó hoặc tên của ứng dụng. Hy vọng điều này sẽ giúp!
Bạn có thể sử dụng System.Diagnostics.Process.Start
.
Hoặc sử dụng WinApi trực tiếp với một cái gì đó như sau, sẽ khởi chạy explorer.exe. Bạn có thể sử dụng tham số thứ tư cho ShellExecute để cung cấp cho nó một thư mục bắt đầu.
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);
}
Các tuyên bố đến từ trang web pinvoke.net .
Process.Start("explorer.exe" , @"C:\Users");
Tôi đã phải sử dụng cái này, một cách khác là chỉ định tgt dir sẽ đóng cửa sổ explorer khi ứng dụng của tôi chấm dứt.
Access denied
ngoại lệ.
Process.Start("calc.exe");
sẽ chạy Máy tính. Bạn có thể truyền cho nó đường dẫn đầy đủ đến một tệp thực thi và nó sẽ chạy nó.