如何通过超链接向C#应用程序传递参数(非协议链接)
解决超链接传递参数给C#应用的问题
问题根源
直接在超链接里写类似 C:\MyApp.exe 参数 时,系统会把整个内容当作单个文件路径查找,不存在名为“MyApp.exe 参数”的文件,因此触发“找不到文件”错误。
解决方法
方法1:用CMD命令包裹启动指令
超链接目标需通过cmd /c启动程序并传递参数,格式如下:
cmd /c "C:\Path\To\YourApp.exe" 你的参数
若程序路径包含空格,必须给路径加双引号,同时超链接里的双引号需要用反斜杠转义:
cmd /c "\"C:\Program Files\MyApp.exe\" 你的参数"
方法2:通过批处理文件中转
- 新建
.bat文件,内容如下:
@echo off "C:\Path\To\YourApp.exe" %1
- 超链接直接指向该批处理文件,末尾追加参数即可:
C:\Scripts\StartMyApp.bat 你的参数
代码优化(可选)
你的现有C#代码可简化,Environment.GetCommandLineArgs()本身就是字符串数组,无需额外转换:
string[] cmdLineArgs = Environment.GetCommandLineArgs(); string strCommandLineArg = cmdLineArgs.Length > 1 ? cmdLineArgs[1] : string.Empty; if (!string.IsNullOrEmpty(strCommandLineArg)) { MessageBox.Show($"Argument is: {strCommandLineArg}"); }
内容的提问来源于stack exchange,提问作者Ay_tim
相关产品推荐
相关产品推荐

