?? qqtail.c
字號:
#include <windows.h>
#include "..\Hook\Hook.h"
#pragma comment(lib, "Hook.lib")
#include "resource.h"
#define ID_MYTIMER 419 // 計時器ID
BOOL g_bStart;
HWND g_hQQ;
LRESULT CALLBACK ProcMain(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_CLOSE:
AnimateWindow(hDlg, 800, AW_HIDE | AW_SLIDE | AW_VER_POSITIVE);
EndDialog(hDlg, 0);
break;
case WM_COMMAND:
{
if (LOWORD(wParam) == IDC_BTN_CONTROL)
{
g_bStart = !g_bStart;
SetDlgItemText(hDlg, IDC_BTN_CONTROL, g_bStart ? "停止" : "開始");
if (g_bStart)
SetTimer(hDlg, ID_MYTIMER, 1000, NULL);
else
{
KillTimer(hDlg, ID_MYTIMER);
SetHook(NULL);
}
}
if (LOWORD(wParam) == IDC_BTN_EXIT)
SendMessage(hDlg, WM_CLOSE, 0, 0);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_INITDIALOG:
{
int x, y;
RECT rect;
g_bStart = FALSE;
GetWindowRect(hDlg, &rect);
x = GetSystemMetrics(SM_CXSCREEN) - rect.right + rect.left;
y = GetSystemMetrics(SM_CYMAXIMIZED) - rect.bottom + rect.top - 10;
SetWindowPos(hDlg, HWND_TOPMOST, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
AnimateWindow(hDlg, 800, AW_SLIDE | AW_VER_NEGATIVE);
}
break;
case WM_TIMER:
{
if (!IsWindow(g_hQQ))
{
// 感謝好友hottey的查找代碼,省去了我使用Spy++的麻煩
HWND hSend;
g_hQQ = NULL;
SetHook(NULL);
do
{
g_hQQ = FindWindowEx(NULL, g_hQQ, "#32770", NULL);
hSend = FindWindowEx(g_hQQ, NULL, "Button", "發送(&S)");
} while(g_hQQ != NULL && hSend == NULL);
if (g_hQQ != NULL)
SetHook(g_hQQ);
}
}
break;
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, (DLGPROC)ProcMain, 0);
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -