如何模拟点击迅雷的"下载确认对话框"?
想利用迅雷软件自动下载一些东西,我分析使用了迅雷提供的API,但老弹出下载确认对话框.
尝试在迅雷工具栏"配置"项中取消"操作确认",也不管用.
现在我考虑对迅雷的确认对话框发送消息,让迅雷关闭该对话框.
其间有一行获取不到子窗口句柄 EdithWnd = ::FindWindowEx(ParenthWnd,0, lpszClass_Submit, lpszName_Submit)
以下是我的代码,请界面高手帮我看看...
#include "stdafx.h"
#import "ThunderAgent.dll"
using namespace THUNDERAGENTLib;
DWORD WINAPI Fun1Proc(
LPVOID lpParameter // thread data
)
{
CString lpszParentClass = "#32770"; //整个窗口的类名
CString lpszParentWindow = "建立新的下载任务"; //窗口标题
CString lpszClass_Submit = "Button"; //需要查找的Button的类名
CString lpszName_Submit = "立即下载"; //需要查找的Button的标题
HWND ParenthWnd;
HWND EdithWnd;
int i = 0;
while (true)
{
Sleep(1000);
//查到窗体,得到整个窗体
ParenthWnd = ::FindWindow(lpszParentClass, lpszParentWindow);
//判断这个窗体是否有效
if (ParenthWnd)
{
//得到Button这个子窗体,并触发它的Click事件
EdithWnd = ::FindWindowEx(ParenthWnd,0, lpszClass_Submit, lpszName_Submit);
if (EdithWnd)
{
SendMessage(EdithWnd,0x00F5,0,0);
break;
}
}
if (i>5000000)
{
break;
}
i++;
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr = ::CoInitialize(0);
IAgent *pAgent = NULL;
hr = CoCreateInstance(__uuidof(Agent), NULL, CLSCTX_INPROC_SERVER, __uuidof(IAgent), (void**)&pAgent);
pAgent->AddTask("http://124.237.121.66:8089/wmapath/music/201003/yuanlai.wma",
"w01.mp3",
"D:\\win32\\Thunder",
"hhh",
"http://mp3.baidu.com",
1,
0,
-1);
HANDLE hThread1;
hThread1=::CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
CloseHandle(hThread1);
pAgent->CommitTasks();
Sleep(4000);
pAgent->Release();
::CoUninitialize();
return 0;
}