// winclose.cpp : アプリケーション用のエントリ ポイントの定義 // #include "windows.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { // TODO: の位置にコードを記述してください。 HKEY hkey,hkey2; DWORD create; WCHAR* mes; mes=NULL; WCHAR val[5]; _itow(4058, val,10); RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"Software\\Microsoft\\Shell\\Keys",0,0,&hkey); if(GetAsyncKeyState(VK_SHIFT)) { RegDeleteKey(hkey,val); val[1]=L'4'; RegDeleteKey(hkey,val); mes=L"アンインストールしました。ファイルを削除してください。"; RegCloseKey(hkey); goto EXIT; } RegCreateKeyEx(hkey,val,0,NULL,0,0,NULL,&hkey2,&create); if(create==REG_CREATED_NEW_KEY) { WCHAR name[MAX_PATH]; DWORD len; len=GetModuleFileName(NULL,name,MAX_PATH)+1; RegSetValueEx(hkey2,NULL,0,REG_SZ,(const BYTE*)name,len*sizeof(WCHAR)); RegCloseKey(hkey2); val[1]=L'4'; RegCreateKeyEx(hkey,val,0,NULL,0,0,NULL,&hkey2,&create); RegSetValueEx(hkey2,NULL,0,REG_SZ,(const BYTE*)name,len*sizeof(WCHAR)); mes=L"[使用方法]\nWin+Xキーで最前面のウィンドウを閉じます。\nタスクバーが最前面なら次のウィンドウにフォーカス移動します。\n[アンインストール方法]\nWin+Shift+Xキーを押します。"; RegCloseKey(hkey2); RegCloseKey(hkey); goto EXIT; } RegCloseKey(hkey2); RegCloseKey(hkey); WCHAR clsname[24]; HWND hwnd; hwnd = GetForegroundWindow(); GetClassName(hwnd,clsname,23); clsname[23]=0; if(wcscmp(clsname,L"HHTaskBar")==0) { for(;;) { hwnd=GetWindow(hwnd,GW_HWNDNEXT); LONG style=GetWindowLong(hwnd,GWL_STYLE); if((style&WS_VISIBLE)) { mouse_event(MOUSEEVENTF_MOVE,0,-24,0,0); SetForegroundWindow(hwnd); goto EXIT; } } } if(wcscmp(clsname,L"DesktopExplorerWindow")&&(GetWindowLong(hwnd,GWL_STYLE)&WS_VISIBLE)) PostMessage(hwnd,WM_CLOSE,0,0); EXIT: if(mes) MessageBox(NULL,mes,L"WinClose V1.02",MB_OK); return 0; }