发送wm_dropfiles消息
来源:百度文库 编辑:神马文学网 时间:2024/05/01 20:16:33
BOOL CprjVPackV4BatchToolsDlg::FSendDropFile(CString strFilePath)
{
int nResult = FALSE;
HWND hMain = NULL;
char szFile[MAX_PATH] = {0};
DWORD dwBufSize = 0;//sizeof(DROPFILES) + sizeof(szFile) + 1;
BYTE *pBuf = NULL;
DWORD dwProcessId = 0;
HANDLE hProcess = 0;
LPSTR pszRemote = NULL;
wcstombs(szFile,strFilePath.GetBuffer(0),_MAX_PATH);
dwBufSize = sizeof(DROPFILES) + strlen(szFile) + 1;
hMain = ::FindWindow(NULL,_T("免杀压缩壳 "));
if ( hMain == NULL)
{
MessageBox(_T("不能找到加壳主程序!"));
goto Exit0;
}
pBuf = new BYTE[dwBufSize];
if (pBuf == NULL)
goto Exit0;
memset(pBuf,0,dwBufSize);
DROPFILES *pDrop = (DROPFILES *)pBuf;
pDrop->pFiles = sizeof(DROPFILES);
strcpy((char *)(pBuf + sizeof(DROPFILES)), szFile);
GetWindowThreadProcessId(hMain,&dwProcessId);
if (0 == dwProcessId)
{
goto Exit0;
}
hProcess = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE, FALSE, dwProcessId);
if (hProcess == 0)
{
goto Exit0;
}
pszRemote = (LPSTR)VirtualAllocEx(hProcess, NULL, dwBufSize, MEM_COMMIT, PAGE_READWRITE);
if (NULL == pszRemote)
{
goto Exit0;
}
if(WriteProcessMemory(hProcess, pszRemote, pBuf, dwBufSize, 0))
{
::SendMessage(hMain, WM_DROPFILES, (WPARAM)pszRemote, NULL);
}
else
{
goto Exit0;
}
nResult = TRUE;
Exit0:
if (pBuf)
{
delete [] pBuf;
pBuf = NULL;
}
return nResult;
}
{
int nResult = FALSE;
HWND hMain = NULL;
char szFile[MAX_PATH] = {0};
DWORD dwBufSize = 0;//sizeof(DROPFILES) + sizeof(szFile) + 1;
BYTE *pBuf = NULL;
DWORD dwProcessId = 0;
HANDLE hProcess = 0;
LPSTR pszRemote = NULL;
wcstombs(szFile,strFilePath.GetBuffer(0),_MAX_PATH);
dwBufSize = sizeof(DROPFILES) + strlen(szFile) + 1;
hMain = ::FindWindow(NULL,_T("免杀压缩壳 "));
if ( hMain == NULL)
{
MessageBox(_T("不能找到加壳主程序!"));
goto Exit0;
}
pBuf = new BYTE[dwBufSize];
if (pBuf == NULL)
goto Exit0;
memset(pBuf,0,dwBufSize);
DROPFILES *pDrop = (DROPFILES *)pBuf;
pDrop->pFiles = sizeof(DROPFILES);
strcpy((char *)(pBuf + sizeof(DROPFILES)), szFile);
GetWindowThreadProcessId(hMain,&dwProcessId);
if (0 == dwProcessId)
{
goto Exit0;
}
hProcess = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE, FALSE, dwProcessId);
if (hProcess == 0)
{
goto Exit0;
}
pszRemote = (LPSTR)VirtualAllocEx(hProcess, NULL, dwBufSize, MEM_COMMIT, PAGE_READWRITE);
if (NULL == pszRemote)
{
goto Exit0;
}
if(WriteProcessMemory(hProcess, pszRemote, pBuf, dwBufSize, 0))
{
::SendMessage(hMain, WM_DROPFILES, (WPARAM)pszRemote, NULL);
}
else
{
goto Exit0;
}
nResult = TRUE;
Exit0:
if (pBuf)
{
delete [] pBuf;
pBuf = NULL;
}
return nResult;
}
发送wm_dropfiles消息
PB中使用AM消息集成组件进行消息发送
在消息栏发送flash的通用代码
在消息栏发送flash的通用代码
在线程中如何接收通过PostThreadMessage()发送的消息? - 程序开发常见问...
发送邮件
使用HttpUrlConnection发送数据
使用HttpUrlConnection发送数据
上帝只发送种子
发送邮件的方法
发送错误报告故障解决办法
Outlook定时发送邮件
c#socket发送邮件
消息提醒
朝鲜半岛消息
图文消息
消息2
个股消息
消息写作
消息赋
《春消息》
在线web e-mail发送
Asp.net2.0发送电子邮件
c#socket发送邮件详解