.NET 中的 ShellExecute 等效项
我正在寻找 .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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Process.Start。
请注意,高级用途(打印等)需要使用 ProcessStartInfo 并设置 Verb 属性。
Process.Start.
Note that advanced uses (printing etc) require using a ProcessStartInfo and setting the Verb property.
我敢打赌您很难找到它,因为它位于 System.Diagnostics 命名空间中。 “诊断”? 通常,有了 20 年的经验,你擅长的一件事就是猜测在新的 API/语言中将调用什么东西,但这件事欺骗了我。
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.
您尝试过 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.
以下是原始 Win32
ShellExecute()
文档:https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutea此 C# 代码将用于打开 Web 浏览器选项卡一个网址:
Here are the original Win32
ShellExecute()
docs: https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecuteaThis C# code will work to open a web browser tab for a URL: