在桌面上创建快捷方式
我想使用 .NET Framework 3.5 并依赖官方 Windows API 在桌面上创建指向某个 EXE 文件的快捷方式。我怎样才能做到这一点?
I want to create a shortcut pointing to some EXE file, on the desktop, using .NET Framework 3.5 and relying on an official Windows API. How can I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(15)
带有附加选项,如热键、描述等。
首先,项目 > 添加引用 > COM > Windows 脚本宿主对象模型。
With additional options such as hotkey, description etc.
At first, Project > Add Reference > COM > Windows Script Host Object Model.
URL 快捷方式
应用程序快捷方式
另请查看此示例.
如果您想使用一些 API 特定函数,那么您将需要使用
IShellLink 接口
以及IPersistFile 接口
(通过 COM 互操作)。这里有一篇文章详细介绍了您需要执行的操作它以及示例代码。
URL shortcut
Application shortcut
Also check this example.
If you want to use some API specific functions then you will want to use the
IShellLink interface
as well as theIPersistFile interface
(through COM interop).Here is an article that goes into detail what you need to do it, as well as sample code.
下面是一段不依赖于外部 COM 对象(WSH)并且支持 32 位和 64 位程序的代码:
Here is a piece of code that has no dependency on an external COM object (WSH), and supports 32-bit and 64-bit programs:
您可以使用此 ShellLink.cs 类来创建捷径。
要获取桌面目录,请使用:
或使用
Environment.SpecialFolder.CommonDesktopDirectory
为所有用户创建它。You can use this ShellLink.cs class to create the shortcut.
To get the desktop directory, use:
or use
Environment.SpecialFolder.CommonDesktopDirectory
to create it for all users.无需额外参考:
在桌面上创建快捷方式:
Without additional reference:
To create Shortcut on Desktop:
我仅用于我的应用程序:
I Use simply for my app:
使用 ShellLink.cs at vbAccelerator 轻松创建快捷方式!
Use ShellLink.cs at vbAccelerator to create your shortcut easily !
这是我的代码:
Here's my code:
这是一个(经过测试的)扩展方法,其中包含可以帮助您解决问题的注释。
使用示例:
第一个参数设置 exe 名称(在当前目录中找到),第二个参数是“开始于”文件夹,第三个参数是快捷方式描述。
链接的命名约定对于它将执行的操作没有任何歧义。要测试该链接,只需双击它即可。
最后注意:应用程序本身(目标)必须有一个与之关联的 ICON 图像。通过该链接可以轻松找到 exe 中的图标。如果目标应用程序有多个图标,您可以打开链接的属性并将图标更改为 exe 中找到的任何其他图标。
Here's a (Tested) Extension Method, with comments to help you out.
And an example of use:
1st parm sets the exe name (found in the current directory) 2nd parm is the "Start In" folder and 3rd parm is the shortcut description.
The naming convention of the link leaves no ambiguity as to what it will do. To test the link just double click it.
Final Note: the application itself (target) must have an ICON image associated with it. The link is easily able to locate the ICON within the exe. If the target application has more than one icon, you may open the link's properties and change the icon to any other found in the exe.
我使用“Windows 脚本宿主对象模型”参考来创建快捷方式。
并在特定位置创建快捷方式:
I use "Windows Script Host Object Model" reference to create shortcut.
and to create shortcut on specific location:
我根据 Rustam Irzaev 的答案并使用 IWshRuntimeLibrary 创建了一个包装类。
I have created a wrapper class based on Rustam Irzaev's answer with use of IWshRuntimeLibrary.
如果您想要将简单代码放在其他位置,请使用以下代码:
If you want a simple code to put on other location, take this:
VB重写Windows API IShellLink接口:
VB rewrite of the Windows API IShellLink interface:
对于 Windows Vista/7/8/10,您可以通过
mklink
创建符号链接。或者,调用
CreateSymbolicLink
通过 P/Invoke。For Windows Vista/7/8/10, you can create a symlink instead via
mklink
.Alternatively, call
CreateSymbolicLink
via P/Invoke.