需要帮助找到我想要做的具体事情的名称

时间:2010-08-01 10:14:40

标签: c# c++ windows

我认为有可能以某种方式挂钩Windows环境(特别是explorer.exe)并触发特定的事情,例如启动控制面板并使用它就好像我有鼠标(意味着我点击了代码中的界面)

基本上我要做的是自动执行一些我经常做的冗余任务,只是我不知道它是如何完成的,甚至不知道它是如何调用的。任何人都能指出我正确的方向吗?

谢谢!

5 个答案:

答案 0 :(得分:3)

忘记“自动点击”。 GUI工具只是控制系统的前端。您可以像控制系统一样控制系统,这样会更容易。

  1. 巨大的可能性可以给你Microsoft Management Console。可以通过COM模型访问每个“管理单元”。其中一些有GUI前端,查找并触发“* .msc”文件(在Windows目录中的某个位置)来试用它们。

  2. many command line tools即“net”命令具有与网络相关的巨大能力。

  3. PowerShell可能是更好的选择,而不是C#或C ++,它专为任务自动化而设计。您可以轻松使用COM,.NET,MMC ......

答案 1 :(得分:1)

Windows资源管理器有一个COM object model可以从C#和C ++中调用。 (MSDN上的大多数示例都是Javascript或VBScript,我想这不是您选择的语言,但它们证明API可以直接调用。)

答案 2 :(得分:1)

AutoHotKey是专门为此类任务设计的脚本环境

答案 3 :(得分:1)

如果您希望主要启动控制面板,则可以使用大多数控制面板小程序中存在的RunDll32接口。例如,请参阅http://www.osattack.com/windows-7/huge-list-of-windows-7-shell-commands/http://support.microsoft.com/kb/167012http://www.winvistaclub.com/t57.html。有关相应的API,请参阅http://support.microsoft.com/kb/164787

另一个选项是使用control.exe(参见http://msdn.microsoft.com/en-us/library/cc144191.aspxhttp://vlaurie.com/computers2/Articles/control.htm)。

如果你去谷歌更多,你会发现更多的例子,你可以自动化很多事情没有使用一些通用的方法来自动化GUI。

答案 4 :(得分:1)

或多或少是Win32中的最低级别,您可以使用SendMessage() API将原始点击消息发送到感兴趣的窗口。这将依赖于您打算推动的应用程序的大量侵入性知识。但是,您可以轻松实现“点击记录器”,可以重播从用户交互中捕获的点击序列。