比如进程里有flashget.exe进程,怎么获得他的句柄,
可不可以详细点回答,我很菜的。谢谢
可不可以详细点回答,我很菜的。谢谢
解决方案 »
- 在主框架动态创建菜单如何使它变为可用状态?
- 如何将程序的所有数据都保存在一个压缩的文件里?
- 请问如何将一个对话框添加到Tab Control控件中
- /***一个菜问题,关于用对话框作界面***/
- 求助:OnInitstance() 函数是在哪个文件下啊?我怎么找不到啊?谢谢!
- 字符串如何自动补足位数
- 《windows高级编程》里那个信号量的例子太复杂了。哪位大哥有简单好理解的代码。谢了!谢了!谢了!
- 一个关于QQ的问题
- 那为有xian详细介绍如何些DLL的文章,能否相送(100求助)
- 如何制作滚动的字幕!
- vc与vc.net有何区别?
- 怎样CSocket在Receive的阻塞状态用Send发信息呢?
2 Process32First和Process32Next,轮询找到你的目标进程,获取其ID
3 用OpenProcess打开,获得进程句柄具体函数用法可以参考MSDN,此处从略。
{
HANDLE m_handle=::CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
PROCESSENTRY32* Info = new PROCESSENTRY32;
Info->dwSize = sizeof(PROCESSENTRY32);
if(::Process32First(m_handle,Info))
{
while(::Process32Next(m_handle,Info)!=FALSE)
{
CString ss;
ss=Info->szExeFile;
ss.MakeLower();
if(ss.Find("flashget") != -1)
{
return Info->th32ProcessID;
}
}
::CloseHandle(m_handle);
if(Info)
{
delete Info;
}
}
return -1;
}
D:\Utilities\UtilitiesDlg.cpp(178) : error C2065: 'CreateToolhelp32Snapshot' : undeclared identifier晕,编译的时候出这样的问题
#include "tlhelp32.h"
HANDLE和HWND怎么转,现在要对flashget操作,比如最大化。
提示“cannot convert parameter 1 from 'void *' to 'struct HWND__ *'”
是不是(HWND)m_handle就可以了?
HANDLE hFlashget=HANDLE OpenProcess(PROCESS_ALL_ACCESS,FALSE,Info->th32ProcessID);
//Info->th32ProcessID就是上面代码获得的进程ID:)
HWND hWnd= FindWindow(NULL,"flashget");
至于通过进程句柄怎么来拿窗口句柄,我还没想到有什么方法可以.....
吧。
详细的参考MSDN
好像要HWND hWnd= ::FindWindow(NULL,"flashget")编译才通得过。
我通过::SendMessage(hWnd, SC_MAXIMIZE, 0, 0);没办法让他最大化??