能力值:
( LV2,RANK:10 )
|
-
-
2 楼
我昨晚刚看了下输入法注入,搞了一晚才调试成功,你自己写的完整代码吗?贴下关键代码看看嘛
|
能力值:
( LV4,RANK:40 )
|
-
-
3 楼
这样的话,是输入法写的有问题,还是exe写的有问题?
void CInstallerDlg::OnBnClickedSetup()
{
// TODO: 在此添加控件通知处理程序代码
::SystemParametersInfo(SPI_GETDEFAULTINPUTLANG, NULL, &oldInputHandle, NULL);
HKL IME = ImmInstallIME(TEXT("C:\\Windows\\System32\\my.ime"), TEXT("Win标准输入法1.0"));
if(IME == 0)
{
MessageBox(TEXT("安装失败!"));
}
else
{
hg_IME = IME;
HWND hwnd = ::FindWindow(NULL, TEXT("legend of mir2"));
if(!hwnd)
{
MessageBox(TEXT("未找到游戏!"));
return;
}
IMEActivEx(hwnd);
GetDlgItem(IDB_SETUP)->EnableWindow(FALSE);
GetDlgItem(IDB_UNLOAD)->EnableWindow(TRUE);
//MessageBox(TEXT("安装成功!"));
}
}
BOOL IMEActivEx(HWND hWnd)
{
if (hg_IME != NULL)
{
//激活指定窗口输入法
::PostMessage(hWnd, WM_INPUTLANGCHANGEREQUEST, 0x1, (LPARAM)hg_IME);
}
else
{
//句柄不存在,枚举输入法句柄,激活
//HKL imehandle = EnumIme((IME_CAPTION).c_str(),szSysDir);
//if (imehandle != NULL)
//{
// ::PostMessage(hWnd,WM_INPUTLANGCHANGEREQUEST,0x1,(LPARAM)imehandle);
//}
//else
//{
// return FALSE;
//}
}
return TRUE;
}
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
dllmain运行时有很多库未加载,弹不出消息框很正常
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我用纯API写的dll注入后可以弹messagebox
|
能力值:
( LV4,RANK:40 )
|
-
-
6 楼
那样我也可以,只是换成了输入法就不行了
|
|
|