【问题标题】:changing options in an external process更改外部流程中的选项
【发布时间】:2014-05-19 17:06:07
【问题描述】:

所以,我正在尝试编辑我从程序中打开的进程的一些选项。我希望能够转到 File->save as->... 之类的东西并将其保存为特定文件,或更改菜单栏中的其他一些选项。有没有办法使用流程类来做到这一点?这是我目前所拥有的:

try
{
    string exe_path = @"C:\Program Files (x86)\My_Folder\My_Program.exe";
    ProcessStartInfo ProgramInfo = new ProcessStartInfo(exe_path);

    // Check that the path is valid before attempting to open there.
    if (!File.Exists(exe_path))
        return;

    ProgramInfo.CreateNoWindow = true;
    ProgramInfo.UseShellExecute = false;
    ProgramInfo.WindowStyle = ProcessWindowStyle.Hidden;

    Process startProgram = Process.Start(ProgramInfo);

}
catch (Exception e)
{
    SetFailureText("Found exception of type: " + e.ToString());
}

【问题讨论】:

  • 你说的是自动化另一个程序(比如你想打开那个程序的文件菜单)?
  • 是的,这正是我想要做的。

标签: c# process executable options


【解决方案1】:

您试图在外部进程打开后对其进行操作?

如果是这样,那么这属于逆向工程、屏幕抓取、黑客攻击等。没有直接的方法可以满足您的要求。

但是,也许您正在处理的程序已经被构建为允许它,在这种情况下您可能可以。

但我们需要知道您正在打开什么程序。

如果您自己编写了该程序,那么您只需将其设计为具有插件框架或可调用的 api。例如。你可以让它通过命名管道接受命令,或者给它命令行参数,它可以处理并将这些命令行参数发送到带有 ProcessStartInfo 类的进程。

【讨论】:

  • 我要控制的程序是我合作的内部程序,它可能是用你描述的插件框架构建的,也可能不是。我得四处打听。我希望有一种简单的方法可以做到这一点,但这也可以。感谢您的快速响应!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多