[C#]关于生成快捷方式的技术问题

回顾:代码年代久远,请自行忽略拼音命名方式……

做ASP.NET迷你服务器时,如果能够增加一个保存快捷方式的功能的话,以后直接打开服务器,并且设定好一切都会很方便。通过相关文章了解到生成快捷方式这个技术需要使用Win32API。

下面是生成快捷方式的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
private void label_sckjfs_Click(object sender, EventArgs e)
{
JiaoYan();
if (tingzhi == "true")
{
tingzhi = "";
return;
}
string path_zhuomian = "";
RegistryKey key = Registry.CurrentUser;
//打开对应的注册表项,并获取Desktop键的值,这个是用来寻找桌面路径。
path_zhuomian = key.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders").GetValue("Desktop").ToString();
path_zhuomian = path_zhuomian + "\\";
try
{
//生成WshShell的实例
WshShell shell = new WshShell();
//CreatShortcut中的参数是生成快捷方式的目录及文件名
IWshShortcut kjfs = (IWshShortcut)shell.CreateShortcut(path_zhuomian + TB_KJFS.Text + ".lnk");
//快捷方式的目标路径:生成哪个文件的快捷方式,就是哪个文件的目录加文件名
kjfs.TargetPath = lujing + banben;
//快捷方式的启动参数
kjfs.Arguments = canshu;
//快捷方式的备注(描述)
kjfs.Description = "";
//快捷方式的工作目录,就是源程序的目录,和目标路径的目录一样
kjfs.WorkingDirectory = @"C:Program FilesCommon Filesmicrosoft sharedDevServer10.0";
//快捷方式的图标,我还不知道怎样能直接使用ico图标,以及使用当前程序的图标
kjfs.IconLocation = "iscsicli.exe,0";
//快捷方式的快捷键
kjfs.Hotkey = "";
//快捷方式的样式
kjfs.WindowStyle = 1;
//保存快捷方式
kjfs.Save();
MessageBox.Show("快捷方式生成成功。");
}
catch
{
MessageBox.Show("未知错误!");
}
}

以上就是生成快捷方式的方法,需要引用一个COM组件,Interop.IWshRuntimeLibrary.dll

引用之后就可以使用上面的代码来生成快捷方式了。