我要编写一个程序,这个程序的功能是点击另外一个程序的按钮.
怎么操作呀
大家最好有个例子.
怎么操作呀
大家最好有个例子.
解决方案 »
- 服务器断开,recv未收到数据一直等待,如何设置阻塞模式recv的超时
- 请问一下,我的鼠标左键弹起的消息为什么不能响应啊?
- 创建对话框,formview的那个默认的灰色背景是怎么来的?
- KEYBDINPUT这个结构怎么回事?
- 在一个程序中CreateFile能同时打开的文件数是多少?
- CTreeCtrl删除元素的问题
- c高手请帮忙, 看看
- 帮忙up也送分:写dll时,如果不用extern "C"来修饰,那么用_declspec(dllexport)来导出的函数test(),该如何调用呢??
- 请问怎么在非MFC程序中使用MFC中的类比如CRect,CPoint等等。
- 怎样把int转换成CString
- 如何将dll文件编写成.exe文件。要求最后只有一个.exe文件
- 高分相赠,在线等待:COM初始化
::PostMessage(this->GetSafeHwnd(),WM_COMMAND ,MAKEWPARAM(IDC_BTN_FILE,BN_CLICKED),MAKELPARAM(GetDlgItem(IDC_BTN_FILE)->GetSafeHwnd(),0));
这个嘛基本很难,我问你那个按钮有快捷毽没,有的话可以先枚举出所有的进程,然后选中那个程序,
然后向那个程序发送消息WM_ACTIVE,是那个程序成为前台当前程序,最后发送WM_KEYDOWN消息,SendMessage(WM_KEYDOWN,VK_XXX,0),实现软键盘键入快捷健。
枚举进程用的api函数有:CreateToolhelp32Snapshot、Process32First、Process32Next和一个结构
typedef struct tagPROCESSENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ProcessID;
ULONG_PTR th32DefaultHeapID;
DWORD th32ModuleID;
DWORD cntThreads;
DWORD th32ParentProcessID;
LONG pcPriClassBase;
DWORD dwFlags;
TCHAR szExeFile[MAX_PATH];
} PROCESSENTRY32;
typedef PROCESSENTRY32 *PPROCESSENTRY32;
if(hWnd!= NULL)
{
PostMessage(hWnd, ... )
}至于具体发送什么消息可以用Spy++观察一下
::GetWindow( hParent,GW_CHILD );
::GetWindow( hChild,GW_HWNDFIRST );
::GetWindow( hChildFirst,GW_HWNDNEXT );
通过另外一个程序名得到主窗口句柄,然后枚举全部窗口句柄,
找到你想要的按钮,对它的句柄发消息。没试过。