换季不换"气":MOVA Stellar X10让家时刻呼吸如新
                            
                                    2025-11-04
                                
                            | TCHAR g_str[] = "欢迎来我的小站坐坐:http://dev.yesky.com"; // 函数功能:向文本框中粘贴尾巴 void PasteText(HWND hRich) { HGLOBAL hMem; LPTSTR pStr; // 分配内存空间 hMem = GlobalAlloc(GHND | GMEM_SHARE, sizeof(g_str)); pStr = GlobalLock(hMem); lstrcpy(pStr, g_str); GlobalUnlock(hMem); OpenClipboard(NULL); EmptyClipboard(); // 设置剪贴板文本 SetClipboardData(CF_TEXT, hMem); CloseClipboard(); // 释放内存空间 GlobalFree(hMem); // 粘贴文本 SendMessage(hRich, WM_PASTE, 0, 0); }  | 
        
| void CQQTailDlg::OnTimer(UINT nIDEvent) { PasteText(hRich); }  | 
        
| // 钩子过程,监视“发送”的命令消息 LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam) { CWPSTRUCT *p = (CWPSTRUCT *)lParam; // 捕获“发送”按钮 if (p->message == WM_COMMAND && LOWORD(p->wParam) == 1) PasteText(g_hRich); return CallNextHookEx(g_hProc, nCode, wParam, lParam); }  | 
        
| typedef struct { LPARAM lParam; WPARAM wParam; UINT message; HWND hwnd; } CWPSTRUCT, *PCWPSTRUCT;  | 
        
| #define IDC_BTN_SENDMSG 1 // “发送”按钮ID的宏定义 // QQ发送消息对话框回调过程·李马伪造版 LRESULT CALLBACK ProcSendDlg(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) { switch (Msg) { case WM_CLOSE: EndDialog(hDlg, 0); break; case WM_COMMAND: { switch (LOWORD(wParam)) { case IDC_BTN_SENDMSG: // 发送消息... break; // 其它的命令按钮处理部分... } } break; // 其它的case部分... } return 0; }  | 
        
| // 键盘钩子过程,监视“发送”的热键消息 LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) { // 捕获热键消息 if (wParam == VK_RETURN && GetAsyncKeyState(VK_CONTROL) < 0 && lParam >= 0) PasteText(g_hRich); return CallNextHookEx(g_hKey, nCode, wParam, lParam); }  | 
        
| // 挂接钩子 BOOL WINAPI SetHook(HWND hQQ) { BOOL bRet = FALSE; if (hQQ != NULL) { DWORD dwThreadID = GetWindowThreadProcessId(hQQ, NULL); // 感谢好友hottey的查找代码,省去了我使用Spy++的麻烦 g_hRich = GetWindow(GetDlgItem(hQQ, 0), GW_CHILD); if (g_hRich == NULL) return FALSE; // 挂接钩子 g_hProc = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, g_hInstDLL, dwThreadID); g_hKey = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, g_hInstDLL, dwThreadID); bRet = (g_hProc != NULL) && (g_hKey != NULL); } else { // 卸载钩子 bRet = UnhookWindowsHookEx(g_hProc) && UnhookWindowsHookEx(g_hKey); g_hProc = NULL; g_hKey = NULL; g_hRich = NULL; } return bRet; }  | 
        
| // 感谢好友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);  | 
        
| // 定义共享数据段 #pragma data_seg("shared") HHOOK g_hProc = NULL; // 窗口过程钩子句柄 HHOOK g_hKey = NULL; // 键盘钩子句柄 HWND g_hRich = NULL; // 文本框句柄 #pragma data_seg() #pragma comment(linker, "/section:shared,rws")  | 
        
评论 {{userinfo.comments}}
{{child.content}}

                                    
                                    
                                    {{question.question}}
提交