能力值:
( LV2,RANK:10 )
|
-
-
6 楼
最初由 ohuangkeo 发布 昨是,发现学校服务器的电脑老是有人挂QQ,而且设了隐藏任务栏,快捷键也改了,怎么搞都搞不到来。后来大费周则才把那些QQ号给揪出来了,今天无聊时,便写了一程序,把这程序的所有窗口给显示出来...................
进程看不出来吗
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
这些窗口是不是都只被程序 hide 了。 楼主能否上传你的程序的源代码呀。小弟想学学。
|
能力值:
( LV9,RANK:140 )
|
-
-
13 楼
程序写得很傻的,做了些无用功,但这样比较容易理解。
源代码:
#pragma comment(linker, "/entry:WinMain")
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"kernel32.lib")
#include <windows.h>
ID_BUTTONCHILD = 1;
ID_EDITCHILD = 2;
LRESULT CALLBACK WindowProc( HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
static *szAppName = "查看QQ在后台的杰作。http://www.ohko.com";
MSG msg;
HWND hwnd;
WNDCLASSEX wc;
hInstance = GetModuleHandle( NULL);
wc.cbSize = sizeof( wc);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon ( NULL, 100);
wc.hCursor = LoadCursor ( NULL, IDC_ARROW);
wc.hbrBackground = COLOR_BTNFACE + 1;
wc.lpszMenuName = 0;
wc.lpszClassName = szAppName;
wc.hIconSm = wc.hIcon;
RegisterClassEx( &wc);
hwnd = CreateWindowEx( NULL, szAppName, "查看QQ在后台的杰作。http://www.ohko.com", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 350, 80, NULL, NULL, hInstance, NULL);
ShowWindow( hwnd, SW_SHOWNORMAL);
UpdateWindow( hwnd);
while( GetMessage( &msg, NULL, NULL, NULL))
{
TranslateMessage( &msg);
DispatchMessage( &msg);
}
return msg.wParam;
}
LRESULT CALLBACK WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static HWND hwndEdit;
static HWND hwndButton;
static char str[6];
static int strn;
switch( uMsg)
{
case WM_CREATE:
hwndButton = CreateWindowEx( NULL, "BUTTON", "输入QQ进程PID的十六进制数", WS_CHILD | WS_VISIBLE, 70, 10, 250, 20, hwnd, (HMENU) ID_BUTTONCHILD, NULL, NULL);
hwndEdit = CreateWindowEx( NULL, "EDIT", "123", WS_CHILD | WS_VISIBLE | ES_LEFT | ES_AUTOVSCROLL, 10, 10, 50, 20, hwnd, (HMENU) ID_EDITCHILD, (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE), NULL);
return 0;
case WM_COMMAND:
if( LOWORD( wParam) == 1)
{
SendMessage( hwndEdit, WM_GETTEXT, &strn, &str);
FindQQ( HKs2m( &str));
}
break;
case WM_DESTROY:
PostQuitMessage( 0);
return 0;
}
return DefWindowProc( hwnd, uMsg, wParam, lParam);
}
int FindQQ ( int i)
{
LPDWORD *str;
HWND hwnd;
hwnd = FindWindow("#32770",0);
do{
GetWindowThreadProcessId( hwnd, &str);
if(str == i) ShowWindow( hwnd,SW_SHOWNORMAL);
hwnd = GetNextWindow( hwnd, GW_HWNDPREV);
} while( hwnd != 0);
hwnd = FindWindow("#32770",0);
do{
GetWindowThreadProcessId( hwnd, &str);
if(str == i) ShowWindow( hwnd,SW_SHOWNORMAL);
hwnd = GetNextWindow( hwnd, GW_HWNDNEXT);
} while( hwnd != 0);
}
/*
将字符串转换成数字型
*/
int HKs2m( char *str)
{
int i; //循环
int j; //加减数
int m = 0; //有效数长
int result = 0; //返回的结果
int sn; //字符串长度
sn = strlen(str);
if( sn == 0) return 0;
for( i=0; i<sn; i++)
{
if( str[i]>='0' && str[i]<='9') j = '0';
else if( str[i]>='a' && str[i]<='f') j = 0x57;
else if( str[i]>='A' && str[i]<='F') j = 0x37;
else j = 0;
if( j != 0)
{
result *= 0x10;
result += str[i]-j;
m++;
}
if( m == 8) return result;
}
return result;
}
|