C#ShortCut路径修改
我创建了一个程序,它使用一些库生成通过打开文件对话框选择的特定EXE的快捷方式。 我让它工作,但我希望程序向Target路径添加一个参数,使它看起来像这样:( "E:\Cod4\iw3mp.exe" +Seta Map mp_crash
)。 如何在"
标记之后添加( + Seta Map mp_Crash
)”部分而不删除它或破坏.exe的扩展名?
这是我写的添加参数的代码块:
label1.Text = openFileDialog1.FileName; shortcut.TargetPath = label1.Text + " Seta Map mp_crash"; shortcut.Save();
此代码将seta部分添加到目标但它将破坏扩展,它将看起来像这样"E:\Cod4\iw3mp.exe Seta Map mp_crash "
请帮忙。 这是完整的代码:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using IWshRuntimeLibrary; using System.IO; namespace WindowsFormsApplication18 { public partial class Form1 : Form { public Form1() { InitializeComponent( ); } public void CreateShortcut() { object shDesktop = (object)"Desktop"; WshShell shell = new WshShell(); string shortcutAddress = (string)shell.SpecialFolders.Item(ref shDesktop) + @"\Server.lnk"; IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress); shortcut.Description = "Server Shortcut"; shortcut.Hotkey = "Ctrl+Shift+N"; var ofd = new OpenFileDialog(); ofd.ShowDialog(); shortcut.TargetPath = '"' + ofd.FileName + '"' + "+Seta Map mp_crash"; } private void button1_Click(object sender, EventArgs e) { CreateShortcut(); } private void Form1_Load(object sender, EventArgs e) { // var ofd = new OpenFileDialog(); // ofd.ShowDialog(); // string shortcut = '"' + ofd.FileName + '"' + "+Seta Map mp_crash"; // openFileDialog1.DefaultExt = "EXE"; // / // openFileDialog1.FileName = "Iw3mp.exe"; // DialogResult result2 = openFileDialog1.ShowDialog(); // label1.Text = openFileDialog1.FileName; // a = label1.Text; // if (result2 == DialogResult.OK) // { // } } } }
根据您更新的问题,试试这个
shortcut.TargetPath = ofd.FileName; shortcut.Arguments = "Seta Map mp_crash";
这是你想要做的吗?
var ofd = new OpenFileDialog(); ofd.ShowDialog(); string shortcut = '"' + ofd.FileName + '"' + " +Seta Map mp_crash";
应该格式化字符串你想要的方式……
每个花时间去发现我不能特别的KeyboardP和他的工作代码,thanx
shortcut.TargetPath = ofd.FileName; shortcut.Arguments = "Seta Map mp_crash";