我正在尝试在工作中自动执行许多重复性任务,这个小问题让我感到难过。
我们正在使用一个应用程序来打印在线订单的标签,过程是这样的。
在繁忙的日子里,我们必须通过这个过程超过500个订单,因为此任务因为步骤3而消耗了大量无用的时间。用户必须等待这5秒才能单击“打印”按钮。假设我们有500个订单,那是500次5秒,大概是40分钟。整个发送过程需要2个小时,因此有33%的时间会因人们等待点击按钮而丢失。
我正在尝试找到一种自动执行第4步的方法,以便用户在完成第2步后可以停止与应用程序进行交互。
那么有没有办法使用C#从另一个应用程序中单击另一个表单中的按钮?当弹出确认屏幕时,必须触发该事件。请注意,此确认屏幕不是默认的Windows打印对话框,而是应用程序的一部分,因此不会弄乱首选项。
答案 0 :(得分:5)
我认为你应该研究像AutoIt和AutoHotkey这样的UI脚本工具,而不是自己编写。
答案 1 :(得分:1)
关于CodeProject的这篇文章可能对您有用:
答案 2 :(得分:0)
如果您知道表单句柄,则可以使用User32 dll单击表单上的按钮。
我使用PInvoke.net查找方法
为了确定屏幕是否已打开/关闭,您可以创建一个在屏幕打开或关闭时触发的窗口挂钩。您将需要一个C ++库来执行此操作,因为它在c#中是不可能的,但您只需要创建一个小的C ++程序集,然后从您的c#中引用它。您可以在打开窗口时检查窗口的标题,看看它是否是您想要的窗口,然后您可以获取窗口句柄并查看它何时关闭。
有关如何实现挂钩的一些信息,请点击此处。
http://www.voidnish.com/Articles/ShowArticle.aspx?code=manipwindows
我曾经使用过的C ++程序集叫做GlobalCBTHook。
这是来自显示全局窗口挂钩的代码项目的另一个链接
http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx
以上链接是让我开始的链接