【问题标题】:Is it possible to pass parameters to a folder or a file in c#是否可以将参数传递给c#中的文件夹或文件
【发布时间】:2018-06-17 15:58:28
【问题描述】:

我知道您可以在将参数传递给它们的同时启动批处理文件 (.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();

【问题讨论】:

  • 您希望文件夹使用这些参数做什么?您是在谈论打开一个包含选定文件的 Explorer 文件夹吗?
  • 您可以编写一个控制台应用程序,将命令行参数输出到控制台。然后是另一个启动第一个应用程序的应用程序。如果您成功传递了参数,那么您将在控制台输出中看到它们。
  • 对于文件夹,我只考虑最大化和最小化。我知道你可以通过其他方式做到这一点,但我想知道是否可以通过发送参数来实现。
  • 但是文件夹不能最大化/最小化自身——我不知道那应该是什么——在资源管理器的上下文中最大化/最小化显示文件夹的窗口是有意义的。跨度>
  • 是的,最大化文件夹我的意思是最大化它的资源管理器窗口。我认为唯一的方法(如果存在)应该是将参数传递给 explorer.exe 并且不可能将其直接传递给文件夹路径。

标签: c# windows command-line parameters


【解决方案1】:

文件和文件夹不能接收命令行参数。

文件和文件夹不是程序,它们不会在命令行上接收任何内容。如果您启动 cmd.exe 并键入 mytextfile.txt,windows 将启动与 .txt 扩展名关联的默认程序,并将 mytextfile.txt 的路径作为命令行参数。这是 cmd.exe 的一个功能。如果您尝试 Process.Start() 并使用 FileName 指向一个不可执行的文件,则会引发异常。

可以通过 windows C api 的ShowWindow() 函数来最大化窗口。在 c# 中使用它需要 p/Invoke。

【讨论】:

    猜你喜欢
    • 2014-07-12
    • 2017-04-12
    • 2010-09-15
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    • 2020-10-11
    • 2020-05-29
    • 1970-01-01
    相关资源
    最近更新 更多