我在做一个输入法自动翻译的程序
我用
PeekMessage(Msg,PMsg(lParam)^.hwnd,WM_CHAR,WM_CHAR,PM_NOYIELD or PM_REMOVE);取消输入法的输入的文字,为什么对QQ聊天窗口无效呢?在其他编辑窗口 如记事本等 都没有问题.
我用
PeekMessage(Msg,PMsg(lParam)^.hwnd,WM_CHAR,WM_CHAR,PM_NOYIELD or PM_REMOVE);取消输入法的输入的文字,为什么对QQ聊天窗口无效呢?在其他编辑窗口 如记事本等 都没有问题.
解决方案 »
- delphi listView vrlist 方式如何加入垂直滚动条?
- Error creating cursor hanld
- 怎样知道局域网路径是可写还是可读的?
- 这里有《Thinking in Patten with Delphi》及程序源代码下载
- 用wise 打包程序,需要在程序安装的时候弹出一个对话框来执行另一个程序,如何做?
- 如何动态的修改DBGrid1.Options
- 升了一个三角,散分
- 高手请进,C++Builder中Delphi窗体引用CB窗体的问题?
- 天下第一毒
- 大家赶快救救我!
- 求MS SQL Server 2000 数据分页及數據操作控制的解決方案!
- 奇怪使用self.adoq.next 可用 frmDDDD.adoq.next 就不可用?
但是我发送字符的话可以啊,
目前的QQ窗口的情况是:"GOOD好的"现在要怎么把这GOOD去掉
我没有取消息啊 ,都是删除消息 PM_REMOVE,也没有指定记事本,都是在输入法那边执行的
PeekMessage(Msg,PMsg(lParam)^.hwnd,WM_CHAR,WM_CHAR,PM_NOYIELD or PM_REMOVE);
名称位于 hxw
地址 区段 类型 ( 名称 注释
100111B8 .rdata 输入 OLEAUT32.#4
100111BC .rdata 输入 OLEAUT32.#6
100111E8 .rdata 输入 ( USER32.CallNextHookEx
100111F8 .rdata 输入 ( USER32.CallWindowProcA
100111D8 .rdata 输入 ( USER32.CallWindowProcW
10011048 .rdata 输入 ( KERNEL32.CloseHandle
10011230 .rdata 输入 ole32.CoInitialize
100110A4 .rdata 输入 ( KERNEL32.CompareStringA
100110A0 .rdata 输入 ( KERNEL32.CompareStringW
10011234 .rdata 输入 ole32.CoUninitialize
10011058 .rdata 输入 ( KERNEL32.CreateFileA
10011020 .rdata 输入 ( KERNEL32.CreateToolhelp32Snapshot
100111A4 .rdata 输入 ( KERNEL32.DeleteCriticalSection
10001CF0 .text 输出 EnableConversion
10011134 .rdata 输入 ( KERNEL32.EnterCriticalSection
100110AC .rdata 输入 KERNEL32.EnumSystemLocalesA
10011178 .rdata 输入 ( KERNEL32.ExitProcess
1001112C .rdata 输入 ( KERNEL32.FatalAppExitA
100111E4 .rdata 输入 ( USER32.FindWindowA
100110BC .rdata 输入 ( KERNEL32.FlushFileBuffers
10011034 .rdata 输入 ( KERNEL32.FlushInstructionCache
10011060 .rdata 输入 ( KERNEL32.FormatMessageA
10011108 .rdata 输入 ( KERNEL32.FreeEnvironmentStringsA
10011104 .rdata 输入 ( KERNEL32.FreeEnvironmentStringsW
100110E0 .rdata 输入 ( KERNEL32.GetACP
100111FC .rdata 输入 ( USER32.GetClassNameA
10011158 .rdata 输入 ( KERNEL32.GetCommandLineA
100110E4 .rdata 输入 ( KERNEL32.GetCPInfo
10011028 .rdata 输入 ( KERNEL32.GetCurrentProcess
10011174 .rdata 输入 ( KERNEL32.GetCurrentThread
10011068 .rdata 输入 ( KERNEL32.GetCurrentThreadId
10011100 .rdata 输入 ( KERNEL32.GetEnvironmentStrings
100110FC .rdata 输入 ( KERNEL32.GetEnvironmentStringsW
10011184 .rdata 输入 ( KERNEL32.GetEnvironmentVariableA
10011098 .rdata 输入 ( KERNEL32.GetFileSize
10011110 .rdata 输入 ( KERNEL32.GetFileType
10011038 .rdata 输入 ( KERNEL32.GetLastError
100110B0 .rdata 输入 ( KERNEL32.GetLocaleInfoA
100111A8 .rdata 输入 ( KERNEL32.GetLocaleInfoW
10011148 .rdata 输入 ( KERNEL32.GetLocalTime
1001103C .rdata 输入 ( KERNEL32.GetModuleFileNameA
1001111C .rdata 输入 ( KERNEL32.GetModuleHandleA
100110DC .rdata 输入 ( KERNEL32.GetOEMCP
10011088 .rdata 输入 ( KERNEL32.GetPrivateProfileIntA
10011074 .rdata 输入 ( KERNEL32.GetPrivateProfileSectionA
1001107C .rdata 输入 ( KERNEL32.GetPrivateProfileStringA
10011014 .rdata 输入 ( KERNEL32.GetProcAddress
1001110C .rdata 输入 ( KERNEL32.GetStartupInfoA
10011114 .rdata 输入 ( KERNEL32.GetStdHandle
100110C4 .rdata 输入 ( KERNEL32.GetStringTypeA
100110C0 .rdata 输入 ( KERNEL32.GetStringTypeW
10011144 .rdata 输入 ( KERNEL32.GetSystemTime
10011140 .rdata 输入 ( KERNEL32.GetTimeZoneInformation
100110A8 .rdata 输入 ( KERNEL32.GetUserDefaultLCID
1001115C .rdata 输入 KERNEL32.GetVersion
10011188 .rdata 输入 ( KERNEL32.GetVersionExA
10011210 .rdata 输入 ( USER32.GetWindowLongA
10011208 .rdata 输入 ( USER32.GetWindowLongW
10011150 .rdata 输入 ( KERNEL32.HeapAlloc
10011190 .rdata 输入 ( KERNEL32.HeapCreate
1001118C .rdata 输入 ( KERNEL32.HeapDestroy
1001113C .rdata 输入 ( KERNEL32.HeapFree
1001114C .rdata 输入 ( KERNEL32.HeapReAlloc
10011180 .rdata 输入 ( KERNEL32.HeapSize
10011224 .rdata 输入 imagehlp.ImageDirectoryEntryToData
10011000 .rdata 输入 IMM32.ImmGetCompositionStringA
10011004 .rdata 输入 IMM32.ImmGetCompositionStringW
100111A0 .rdata 输入 ( KERNEL32.InitializeCriticalSection
100110EC .rdata 输入 ( KERNEL32.InterlockedDecrement
100110E8 .rdata 输入 ( KERNEL32.InterlockedIncrement
100110F4 .rdata 输入 ( KERNEL32.IsBadCodePtr
100110F8 .rdata 输入 ( KERNEL32.IsBadReadPtr
1001119C .rdata 输入 ( KERNEL32.IsBadWritePtr
100111F4 .rdata 输入 ( USER32.IsCharAlphaNumericA
100110B4 .rdata 输入 ( KERNEL32.IsValidCodePage
100110B8 .rdata 输入 ( KERNEL32.IsValidLocale
10011200 .rdata 输入 ( USER32.IsWindow
10011204 .rdata 输入 ( USER32.IsWindowUnicode
100110CC .rdata 输入 ( KERNEL32.LCMapStringA
100110C8 .rdata 输入 ( KERNEL32.LCMapStringW
10011130 .rdata 输入 ( KERNEL32.LeaveCriticalSection
10011120 .rdata 输入 ( KERNEL32.LoadLibraryA
1001100C .rdata 输入 ( KERNEL32.LoadLibraryExA
10011010 .rdata 输入 ( KERNEL32.LoadLibraryExW
10011094 .rdata 输入 ( KERNEL32.LoadLibraryW
1001105C .rdata 输入 ( KERNEL32.LocalFree
1001106C .rdata 输入 ( KERNEL32.lstrcatA
10011090 .rdata 输入 ( KERNEL32.lstrcmpA
1001102C .rdata 输入 ( KERNEL32.lstrcmpiA
10011070 .rdata 输入 ( KERNEL32.lstrcpyA
10011064 .rdata 输入 ( KERNEL32.lstrcpynA
10011050 .rdata 输入 ( KERNEL32.lstrlenA
10011218 .rdata 输入 ( USER32.MessageBoxA
1001101C .rdata 输入 ( KERNEL32.Module32First
10011018 .rdata 输入 ( KERNEL32.Module32Next
10011078 .rdata 输入 ( KERNEL32.MultiByteToWideChar
100111B0 .rdata 输入 OLEACC.ObjectFromLresult
10011044 .rdata 输入 ( KERNEL32.OutputDebugStringA
100111D0 .rdata 输入 ( SHLWAPI.PathFileExistsA
100111C8 .rdata 输入 ( SHLWAPI.PathFindFileNameA
100111C4 .rdata 输入 ( SHLWAPI.PathRemoveFileSpecA
10011154 .rdata 输入 ( KERNEL32.RaiseException
10011124 .rdata 输入 ( KERNEL32.ReadFile
100111E0 .rdata 输入 ( USER32.RegisterWindowMessageA
10011138 .rdata 输入 ( KERNEL32.RtlUnwind
100111DC .rdata 输入 ( USER32.SendMessageTimeoutA
100110D8 .rdata 输入 ( KERNEL32.SetConsoleCtrlHandler
1001109C .rdata 输入 ( KERNEL32.SetEnvironmentVariableA
10011054 .rdata 输入 ( KERNEL32.SetFilePointer
10011118 .rdata 输入 ( KERNEL32.SetHandleCount
1001116C .rdata 输入 ( KERNEL32.SetLastError
100110D4 .rdata 输入 ( KERNEL32.SetStdHandle
10011128 .rdata 输入 ( KERNEL32.SetUnhandledExceptionFilter
10011214 .rdata 输入 ( USER32.SetWindowLongA
1001120C .rdata 输入 ( USER32.SetWindowLongW
1001121C .rdata 输入 ( USER32.SetWindowsHookExA
100111CC .rdata 输入 ( SHLWAPI.SHGetValueA
100110D0 .rdata 输入 ( KERNEL32.Sleep
1001122C .rdata 输入 ole32.StgCreateDocfile
10011238 .rdata 输入 ole32.StgOpenStorage
1001117C .rdata 输入 ( KERNEL32.TerminateProcess
10011164 .rdata 输入 ( KERNEL32.TlsAlloc
10011168 .rdata 输入 ( KERNEL32.TlsFree
10011170 .rdata 输入 ( KERNEL32.TlsGetValue
10011160 .rdata 输入 ( KERNEL32.TlsSetValue
100110F0 .rdata 输入 ( KERNEL32.UnhandledExceptionFilter
100111F0 .rdata 输入 ( USER32.UnhookWindowsHookEx
10011198 .rdata 输入 ( KERNEL32.VirtualAlloc
10011194 .rdata 输入 ( KERNEL32.VirtualFree
10011040 .rdata 输入 ( KERNEL32.VirtualProtect
10011030 .rdata 输入 ( KERNEL32.VirtualQuery
10011080 .rdata 输入 ( KERNEL32.WideCharToMultiByte
1001104C .rdata 输入 ( KERNEL32.WriteFile
1001108C .rdata 输入 ( KERNEL32.WritePrivateProfileSectionA
10011084 .rdata 输入 ( KERNEL32.WritePrivateProfileStringA
10011024 .rdata 输入 ( KERNEL32.WriteProcessMemory
10005E17 .text 输出 <模块入口点> (初始 cpu 选择)
keybd_event(VK_ESCAPE,0,KEYEVENTF_KEYUP,0);
SendMessage(HIMC,KEYEVENTF_KEYUP,VK_ESCAPE,0); 的话,没有效果
keybd_event(VK_ESCAPE,0,0,0);
keybd_event(VK_ESCAPE,0,KEYEVENTF_KEYUP,0);
不可以吗?
我就想实现的是输入法自动翻译 这样的效果 比如在输入法输入"GOOD" 然后根据GOOD转换成"好的" .然后在窗口只显示"好的"
procedure TForm1.RichEdit1Change(Sender: TObject);
var i:integer;
begin
i:=pos('GOOD',RichEdit1.Lines.Text);
if i=0 then exit;
RichEdit1.SelStart:=i-1;
RichEdit1.SelLength:=length('GOOD');
SendMessage(RichEdit1.Handle,EM_REPLACESEL,0,INTEGER(PCHAR('好的')));
end;