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); 
}