小弟初学:)
解决方案 »
- 关于分解全路径,取出文件名,小白求助
- 在VC中用fopen("","a")写txt文件时,操作几次就出现错误。
- ■如何检测显示器是否处于休眠状态?
- User Breakpoint called form code 0x797f79f 是什么意思?
- 求助:如何在VB中调用COM+中的异步方法?
- clistctrl 的问题
- VC++中如何实现对绘画路径的存储?
- 使用DAO,如何向一个ACCESS表中按字段填入二进制字符流?急:《
- 怎样改变单文档程序主界面的颜色和EDIT的底色??
- 我想把任何类型的文件以16进制的形式显出来,要怎么显现呢???
- 请问如何查找局域网中的所有计算机?
- 我接收到的网络视频流,我如何自动判断它的帧数?
2)CreateToolhelpSnapshot
BOOL GetProcessList( )
{
HANDLE hProcessSnap;
HANDLE hProcess;
PROCESSENTRY32 pe32;
DWORD dwPriorityClass; // Take a snapshot of all processes in the system.
hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
if( hProcessSnap == INVALID_HANDLE_VALUE )
{
printError( "CreateToolhelp32Snapshot (of processes)" );
return( FALSE );
} // Set the size of the structure before using it.
pe32.dwSize = sizeof( PROCESSENTRY32 ); // Retrieve information about the first process,
// and exit if unsuccessful
if( !Process32First( hProcessSnap, &pe32 ) )
{
printError( "Process32First" ); // Show cause of failure
CloseHandle( hProcessSnap ); // Must clean up the snapshot object!
return( FALSE );
} // Now walk the snapshot of processes, and
// display information about each process in turn
do
{
printf( "\n\n=====================================================" );
printf( "\nPROCESS NAME: %s", pe32.szExeFile );
printf( "\n-----------------------------------------------------" ); // Retrieve the priority class.
dwPriorityClass = 0;
hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID );
if( hProcess == NULL )
printError( "OpenProcess" );
else
{
dwPriorityClass = GetPriorityClass( hProcess );
if( !dwPriorityClass )
printError( "GetPriorityClass" );
CloseHandle( hProcess );
} printf( "\n process ID = 0x%08X", pe32.th32ProcessID );
printf( "\n thread count = %d", pe32.cntThreads );
printf( "\n parent process ID = 0x%08X", pe32.th32ParentProcessID );
printf( "\n Priority Base = %d", pe32.pcPriClassBase );
if( dwPriorityClass )
printf( "\n Priority Class = %d", dwPriorityClass ); // List the modules and threads associated with this process
ListProcessModules( pe32.th32ProcessID );
ListProcessThreads( pe32.th32ProcessID ); } while( Process32Next( hProcessSnap, &pe32 ) ); // Don't forget to clean up the snapshot object!
CloseHandle( hProcessSnap );
return( TRUE );
}
2,Toolhelp32系列函数
已有一个程序在全屏顶层执行。
在它的界面上双击鼠标右键时要将自己的程序置为最顶层覆盖掉他。这个该怎么做啊?
有没有DEMO
谢谢!
[email protected]
hMouseHook = ::SetWindowsHookEx(WH_MOUSE, MouseProc, (HINSTANCE)DllHandle, 0);
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
//在这里做你要做的就行了
return CallNextHookEx(hMouseHook,nCode,wParam,lParam);
}
GetAllCurrentProcess()
{
HANDLE h_SnapShot;
h_SnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 processListStr;
processListStr.dwSize = sizeof(PROCESSENTRY32); BOOL ret = false; ret = Process32First(h_SnapShot, &processListStr); CListBox *lstBox; lstBox = (CListBox *)GetDlgItem(IDC_LIST1);
lstBox->ResetContent(); int i = 0; while(ret)
{
lstBox->InsertString(i, processListStr.szExeFile);
processID[i] = processListStr.th32ProcessID;
ret = Process32Next(h_SnapShot, &processListStr);
i++;
}
}
鼠标双击事件是:WM_RBUTTONDBLCLK
关于用钩子,我有几个小例子,你要吗?
要的话找我:[email protected]