代码之家  ›  专栏  ›  技术社区  ›  oopbase Jayachandran Murugesh

如何遥控程序?

c#
  •  0
  • oopbase Jayachandran Murugesh  · 技术社区  · 14 年前

    是否可以用c#遥控正在运行的程序?怎么做?

    我必须打开大约500个文件,将其转换为特定的文件格式->转换->正在保存。所以我想创建一个能完成这项工作的alogrythm。

    4 回复  |  直到 14 年前
        1
  •  1
  •   Dirk Vollmar    14 年前

    在我看来,您最好使用脚本语言实现窗口自动化。其中最受欢迎的是 AutoHotkey .

    如果您需要在.NET中执行此操作,您可能需要查看 Windows Automation API

    如果不了解有关要自动化的程序的更多详细信息,就很难给出更详细的建议。

        2
  •  0
  •   Zippit    14 年前

    是的。我们可以提供更多的细节,如何做到这一点,当你提供更多的细节,确切地说,你要做什么(在哪里的程序驻留?你试图控制的程序是如何建立的?它支持命令行调用吗?它是否使用可以连接到的COM或.NET程序集?等等)。

        3
  •  0
  •   msteiger    14 年前

    您可以使用鼠标和键盘消息来控制程序。这是相当黑客,但它确实工作。例如,可以使用Cursor.Position.

    不过,C++中的这一点可能更容易。基本上,您可以抓住窗口的句柄并使用SendMessage()让它知道您想要什么。 WM_LBUTTONDOWN 例如。

    [DllImport("user32.dll")]
    public static extern void SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
    

        4
  •  0
  •   Zippit    14 年前

    有几个测试套件,允许你“录制宏”来模拟鼠标点击,按键等,然后你可以播放这些很多次。其目的显然是测试UI交互。但是没有理由不能用它来自动化一个过程。

    这里有几个(还有更多,但这些是我们过去用过的):

    http://www.ranorex.com/
    http://www.autoitscript.com/autoit3/index.shtml

    如前所述,您也可以通过向控件发送Windows消息来自己完成。从长远来看,这可能是一个更稳健的解决方案,但实施起来还需要一些时间。