www.pudn.com > hbime.rar > hbimereg.cpp
#include#include #include #pragma comment (lib, "imm32") #define CONVERSION_SET 0x6101 #define LAYOUTTEXT _T("冰冰输入") #define INST_TITLE _T("安装输入法") HKL GetMyHKL() { //返回输入法的HKL DWORD dwSize; DWORD dwi; HKL hKL = 0; HKL *lphkl; dwSize = GetKeyboardLayoutList(0, NULL); lphkl = (HKL *)GlobalAlloc(GPTR, dwSize * sizeof(DWORD)); if (!lphkl) return NULL; GetKeyboardLayoutList(dwSize, lphkl); for (dwi = 0; dwi < dwSize; dwi++) { TCHAR szFile[32]; HKL hKLTemp = *(lphkl + dwi); ImmGetIMEFileName(hKLTemp, szFile, sizeof(szFile)); if (!_tcsicmp(szFile, L"HBIME.DLL")) { hKL = hKLTemp; goto exit; } } exit: GlobalFree((HANDLE)lphkl); return hKL; } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { //HKL hklCurrent; //TCHAR sSrcDir[MAX_PATH], sDestDir[MAX_PATH],sName[20]; ////取得windows系统目录 //GetSystemDirectory(sDestDir, sizeof(sDestDir) - 1); //lstrcpy(sSrcDir, sSrcDir); //lstrcat(sSrcDir, L"\\HBIME.DLL"); //if (MessageBox(NULL, _T("您要安装冰冰输入吗?\n"), INST_TITLE, MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON1) != IDYES) { // MessageBox(NULL, // _T("退出安装"), // INST_TITLE, // MB_OK | MB_ICONWARNING); // return(FALSE); //} //输入法注册 //if(ImmIsIME()) //hklCurrent = ImmInstallIME(sSrcDir, LAYOUTTEXT); //_stprintf(sName,L"%x",hklCurrent); //if(hklCurrent!=NULL) //LoadKeyboardLayout(sName,KLF_ACTIVATE); LoadKeyboardLayout(L"E02E0804",KLF_ACTIVATE); //确认安装状况,若不成功应当删除文件。 //MessageBox(NULL, // sName, // //_T("冰冰输入安装成功!"), // INST_TITLE, // MB_OK | MB_ICONINFORMATION); return(TRUE); }