如何在具有多个引用的c#中编辑快捷方式的目标路径
我正在使用WshShell VS2010.Net 4和ant创建一个快捷方式,以便能够创建一个目标路径,该路径引用AccessRuntinme,然后引用我们的应用程序。这是我到目前为止没有任何错误,直到我运行程序并单击按钮如何在具有多个引用的c#中编辑快捷方式的目标路径,c#,visual-studio-2010,ms-access-2007,shortcut,C#,Visual Studio 2010,Ms Access 2007,Shortcut,我正在使用WshShell VS2010.Net 4和ant创建一个快捷方式,以便能够创建一个目标路径,该路径引用AccessRuntinme,然后引用我们的应用程序。这是我到目前为止没有任何错误,直到我运行程序并单击按钮 private void CreateShortCut64() { object shDesktop = (object)"Desktop"; WshShell shell = new WshShell(); stri
private void CreateShortCut64()
{
object shDesktop = (object)"Desktop";
WshShell shell = new WshShell();
string shortcutAddress = (string)shell.SpecialFolders.Item(ref shDesktop) + @"\LinkName.lnk";
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
string targetPath64 = "\"C:\\Program Files (x86)\\Microsoft Office\\Office12\\MSACCESS.EXE\" \"C:\\Program Files (x86)\\My Program\\Prog.accdr\"";
shortcut.Description = "Program";
shortcut.Hotkey = "Ctrl+Shift+A";
shortcut.TargetPath = targetPath64;
shortcut.IconLocation = "c:\\Program Files (x86)\\My Program\\" + @"\Prog.ico";
shortcut.Save();
}
如果我省略了对Access Runtime的引用,而只是将我的程序作为目标,那么上面的示例可以很好地工作,但我希望在目标中同时包含这两者,这在通过windows编辑目标时可以很好地工作
非常感谢您的帮助。我怀疑这是因为您没有将MS Access设置为运行时模式:
"C:\Program Files (x86)\Microsoft Office\Office12\MSACCESS.EXE" /runtime "C:\Program Files (x86)\My Program\Prog.accdr"
重新编辑评论
shortcut.TargetPath = "\"C:\\Program Files (x86)\\Microsoft Office\\Office12\\MSACCESS.EXE\";
shortcut.Arguments = "\"C:\\Program Files (x86)\\My Program\\Prog.accdr\" /runtime";
我在安装了MS Access 2010 x64的情况下进行了测试,因此路径名不同,否则代码与OP非常相似
object shDesktop = (object)"Desktop";
WshShell shell = new WshShell();
string shortcutAddress = (string)shell.SpecialFolders.Item(ref shDesktop) + @"\LinkName.lnk";
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
shortcut.Description = "Program";
shortcut.Hotkey = "Ctrl+Shift+A";
shortcut.TargetPath = "\"C:\\Program Files\\Microsoft Office\\Office14\\MSACCESS.EXE\"";
shortcut.Arguments = "\"C:\\Program Files (x86)\\My Program\\Prog.accdr\" /runtime";
shortcut.IconLocation = "c:\\Program Files (x86)\\Abtrac\\" + @"\Prog.ico";
shortcut.Save();
我已经试过了,但不幸的是它不起作用。我认为问题在于目标设置了多个值,因为我可以将其设置为“C:\Program Files(x86)\Microsoft Office\Office12\MSACCESS.EXE”或“C:\Program Files(x86)\My Program\Prog.accdr”,但不能将这两个值组合在一起(添加或不添加/runtime)。如果您尝试在没有/runtime开关的情况下以快捷方式运行accdr,你会得到一个错误。我创建了一个桌面快捷方式并进行了测试。这是我从Accdr创建的程序的目标,而不是c#程序“c:\program Files(x86)\Microsoft Office\Office12\MSACCESS.EXE”“c:\program Files(x86)\my Prog\Prog.Accdr”/runtime,效果很好。我添加了一个注释,用c#进行了测试。您好,Remou,您已经测试了还是将要测试?谢谢你的帮助