C#实时获取其他应用程序的提示信息 100C

想用C#控制应用程序A
现在打开了3个应用程序A 分别为A1,A2,A3

先通过模拟鼠标操作,分别点击A1、A2、A3上的一个按钮,等几秒钟后,A1、A2、A3会分别弹出一个提示信息

如何可以在这三个程序中任何一个程序弹出提示框信息后,直接就去点击这个提示框信息中的“确定”按钮

点击完其中一个子后,再去点击第二个弹出的提示信息中的 确定
这样按顺序依次点击 要怎么做

求大神给个解决示例代码

感激不尽

2个回答

定时器轮询下,findowindow api查找特定的窗体,sendmessage wm_click模拟点击关闭。

hardtoking
hardtoking 大神可以帮写个示例代码吗 有点小白呢 谢谢哈
3 年多之前 回复
[DllImport("user32.dll", CharSet=CharSet.Auto)]     
public static extern int SendMessage(int hWnd, int msg, int wParam, int lparam);
[DllImport("User32.dll", EntryPoint = "FindWindow")]
public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("User32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName);
public const int WM_CLICK = 0x00F5;

IntPtr hwnd = FindWindow(null. "你的窗口标题");
IntPtr hbutton = FindWindowEx(hwnd, 0, null, "按钮文本");
SendMessage(hbutton, WM_CLICK, 0, 0);

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复hardtoking: 对照fiddler找下,你的按钮不一定在窗口顶层,可能嵌套在别的控件里,那么要多次调findwindowex
3 年多之前 回复
hardtoking
hardtoking 回复caozhy: 您好,这种方式我试了一下,一直找不到窗口句柄
3 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复hardtoking: 就是放一个定时器控件在你界面上,设置interval为100,比如说。然后tick里面不断检查,看有没有指定的窗口弹出。
3 年多之前 回复
hardtoking
hardtoking 定时器轮询这个要怎么弄 主要这块不太明白 API操作的都还了解点
3 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 FindWindow(null. "你的窗口标题"); null后面是逗号,笔误
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐