【C#】关于生成快捷方式的技术问题

2017-09-12 14:23:10来源:oschina作者:孤月蓝风人点击

分享

做ASP.NET迷你服务器时,最后突然想到如果能够增加一个保存快捷方式的功能的话,以后直接打开服务器,并且设定好一切都会很方便,于是就在MSDN上寻找相关技术文章与教程,最后一无所获,无奈下只能上网找资料了。


最后成功的找到了相关的文章,通过代码了解了生成快捷方式这个技术需要使用Win32API,最后又通过反复试验,最终搞定。


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


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


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

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台