灰色按键激活小程序
/************************************************************************/
/* 灰色按鍵激活參考API:SetWindowPos GetForegroundWindow EnumChildWindows2011/2/23 bysdy915-------------------------------------------------------------------------
*/
/************************************************************************/
#include <windows.h>
#include <Strsafe.h>
#include "resource.h" HINSTANCE g_hInstance;
HANDLE g_hEvent;LRESULT CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow ) { g_hInstance = hInstance; DialogBoxParam(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgProc,0); return 0;
} //EnumChildWindows函數的回調函數
BOOLCALLBACK EnumChildProc(HWNDhwndChild, LPARAMlParam)
{if(!IsWindowEnabled(hwndChild)){EnableWindow(hwndChild,TRUE);returnTRUE;}
}//激活功能執行線程
void_ActiveGbutton(HWNDhwnd)
{HWNDhFirstWindow=NULL,hTemp=NULL;charcbuff[100]={0};while(1){WaitForSingleObject(g_hEvent,INFINITE);hTemp = GetForegroundWindow();//相同窗口已經激活if(hTemp==hwnd||hFirstWindow==hTemp||hTemp==NULL){Sleep(50);continue;}hFirstWindow = hTemp;//sprintf(cbuff,"handle = %d",hFirstWindow);//MessageBoxA(NULL,cbuff,NULL,MB_OK);//枚舉子窗口EnumChildWindows(hFirstWindow,(WNDENUMPROC)EnumChildProc, NULL);}return;
}LRESULT CALLBACK DlgProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{ HICON hIcon; staticintbActive=FALSE;switch(uMsg) { case WM_INITDIALOG: //hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(MYICON)); //SetClassLong(hwnd,GCL_HICON,(long)hIcon); //對話框置頂SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_SHOWWINDOW|SWP_NOSIZE|SWP_NOMOVE);g_hEvent = CreateEventA(NULL,TRUE,FALSE,NULL);//建立激活線程CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_ActiveGbutton,hwnd,0,NULL);break; case WM_COMMAND: { switch(wParam) { case IDOK: //開始執行灰化按鈕的激活//改變按鍵顯示SetDlgItemTextA(hwnd,IDOK,bActive==FALSE?"Stop":"Start");bActive=!bActive;if(bActive==TRUE)SetEvent(g_hEvent);elseResetEvent(g_hEvent);break;case IDCANCEL: EndDialog(hwnd,1); break; } } break; } return false;
}
總結
- 上一篇: 【前端】重排和重绘
- 下一篇: 安卓股票悬浮窗_股票悬浮窗的安卓应用