.NET 中的 ShellExecute 等效项

发布于 2024-07-08 11:09:17 字数 251 浏览 7 评论 0原文

我正在寻找 .NET 首选的方法来执行 ShellExecute 在 Win32 中执行的相同类型的操作(对任意文件类型打开、打印等)。

我从事 Windows 编程已有 20 多年了,但我在 .NET 方面完全是个新手,所以也许我只是找错了地方。 我目前正在使用 .NET 2.0 (VS C# 2005),但如果需要的话可以使用 VS 2008。

如果唯一的答案是使用 P/Invoke,那么我最好还是使用 Win32 编写我的小实用程序。

I'm looking for the .NET-preferred way of performing the same type of thing that ShellExecute does in Win32 (opening, printing, etc. for arbitrary file types).

I've been programming Windows for over 20 years, but I'm a complete newbie at .NET, so maybe I'm just looking in the wrong places. I'm currently using .NET 2.0 (VS C# 2005), but could use VS 2008 if need be.

If the only answer is to use P/Invoke, then I might be better just writing my small utility using Win32 anyway.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

北斗星光 2024-07-15 11:09:17

Process.Start

请注意,高级用途(打印等)需要使用 ProcessStartInfo 并设置 Verb 属性。

Process.Start.

Note that advanced uses (printing etc) require using a ProcessStartInfo and setting the Verb property.

榕城若虚 2024-07-15 11:09:17
System.Diagnostics.Process.Start(command)

我敢打赌您很难找到它,因为它位于 System.Diagnostics 命名空间中。 “诊断”? 通常,有了 20 年的经验,你擅长的一件事就是猜测在新的 API/语言中将调用什么东西,但这件事欺骗了我。

System.Diagnostics.Process.Start(command)

I bet you had trouble finding it because it is in the System.Diagnostics namespace. "Diagnostics"? Usually with 20 years experience one thing you get good at is guessing at what something will be called in a new API/language, but this one tricked me.

淑女气质 2024-07-15 11:09:17

您尝试过 System.Diagnostics.Process.Start() 吗?

它或多或少类似于ShellExecute。 您可以打开exe、文档。 我还没有检查打印,马克已经告诉过你了。

Have you tried System.Diagnostics.Process.Start()?

It's more or less similar to ShellExecute. You can open exes, documents. I haven't checked printing yet, Marc has told you how already.

七色彩虹 2024-07-15 11:09:17

以下是原始 Win32 ShellExecute() 文档:https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutea

此 C# 代码将用于打开 Web 浏览器选项卡一个网址:

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "https://www.google.com/";
psi.UseShellExecute = true;
psi.WindowStyle = ProcessWindowStyle.Normal;
Process.Start(psi);

Here are the original Win32 ShellExecute() docs: https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutea

This C# code will work to open a web browser tab for a URL:

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "https://www.google.com/";
psi.UseShellExecute = true;
psi.WindowStyle = ProcessWindowStyle.Normal;
Process.Start(psi);
宛菡 2024-07-15 11:09:17
System.Diagnostics.Process.Start("explorer.exe", path);
System.Diagnostics.Process.Start("explorer.exe", path);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文