我知道您可以在将参数传递给它们时启动批处理文件(.bat)和可执行文件(.exe)。但是,我想知道是否可以直接将参数发送到其他类型的文件(例如.docx或.txt)或甚至特定文件夹(例如最大化它)。
c#代码是这样的:
string targetPath= "something";
Process proc = new Process();
proc.StartInfo.WorkingDirectory = Path.GetDirectoryName(targetPath);
proc.StartInfo.FileName = Path.GetFileName(targetPath);
proc.StartInfo.Arguments = "param1 param2";
proc.StartInfo.CreateNoWindow = false;
proc.Start();
答案 0 :(得分:0)
文件和文件夹无法接收命令行参数。
文件和文件夹不是程序,它们不会在命令行上收到任何内容。如果启动cmd.exe并键入mytextfile.txt
,则Windows将启动与.txt
扩展名关联的默认程序,并将mytextfile.txt
的路径作为命令行参数。这是cmd.exe的一项功能。如果您尝试使用FileName指向不可执行文件的Process.Start()
,则会抛出异常。
最大化窗口可以通过Windows C api的ShowWindow()
功能完成。在c#中使用它需要p / Invoke。