大虾们,帮忙啦,救救初学者呀!!!!50分
我想在我写的一个程序,这个程序运行后要在其它的程序(例如:记事本)输出一个字符串(ss),我该用那些函数呢??我知道输入法的程序就可以在其它程序里面显示的.
具体一点的问题:
1,运行的一个记事本程序,怎么得到它的句柄(HIMC ),用那些函数,包含 那些头文件
2,我在我的程序里面用什么来存放我要向notepad输出的字符串.是不是申请 一个内存块,然后把串放进去.(如果是,用什么函数申请内存,用那些结 构体,怎么把串放到内存中)
3,如果串在内存中我用什么函数把它发送到我想发送的程序中(notepade), 用什么函数.因为notepad程序不是我写的,是不是我把串发过去它就会显 示出来呢!!
希望大家不吝赐教
问题点数:0、回复次数:4Top
1 楼ajn_sailing(飞鸟Andrew)回复于 2003-09-02 17:10:34 得分 0
upTop
2 楼SlayerCarrier(狂暴杀手)回复于 2003-09-02 17:26:03 得分 0
先用FindWindow(),WindowFromPoint()找到窗口句柄,然后用SendMessage 发消息Top
3 楼akiko(弥弥)回复于 2003-09-02 17:30:52 得分 0
以notepad举例:
BOOL CALLBACK Proc(HWND hw, long lParam)
{
char ch[80];
if(hw)::GetClassName(hw,ch,80);
else return FALSE;
if(strcmp(ch,"Edit")==0)::PostMessage(hw,WM_CHAR,'A',0);
return TRUE;
}
HWND hw=::FindWindow(0,"1.txt - 记事本");
::EnumChildWindows(hw,Proc,0);Top
4 楼cfeisw(昨日重现)回复于 2003-09-02 20:19:35 得分 0
谢谢各位的指教,但是我还有些疑问.
1,FindWindow()这个函数不熟,我想第二个参数是从那里来的呢,是不是文件名字.
我照你们的方法试了一下,并打开了一个名为"1.txt"的记事本,然后运行我的程序
其中包括这样的语句
hw=::FindWindow(0,"1.txt - 记事本");
SendMessage(hw,WM_CHAR,'A',0);
但是发现记事本里面没有出现应有的字符.???我那地方出错了吗.
我在写的程序是一个相当与输入法的程序,先用鼠标在我的程序里面写出汉字,由我的程序模糊识别出是那个汉字,然后我想把这个汉字发送到打开的一个可以输入的某个程序中.
我查了一下资料:
LRESULT MyGenerateMesage(HIMC hIMC, UINT msg, WPARAM wParam, LPARAM lParam)
{
LPINPUTCONTEXT lpIMC;
//HGLOBAL hTemp;
LPCOMPOSITIONSTRING lpCompStr;
LPDWORD lpdwMsgBuf;
DWORD dwMyNumMsg = 1;
// Lock the input context.
if (hIMC)
{
// It is not NULL context.
lpIMC = ImmLockIMC(hIMC);
lpCompStr = (LPCOMPOSITIONSTRING) ImmLockIMCC(lpIMC->hCompStr);
ImmUnlockIMCC(lpIMC->hCompStr);
// Lock the memory for the message buffer.
lpdwMsgBuf = (LPDWORD)ImmLockIMCC(lpIMC->hMsgBuf);
// Set the number of the messages.
lpIMC->dwNumMsgBuf += 100;
//Set the messages that the IME needs to generate.
*lpdwMsgBuf++ = (DWORD) msg;
*lpdwMsgBuf++ = (DWORD) wParam;
*lpdwMsgBuf++ = (DWORD) lParam;
// Unlock the memory for the message buffer and the input context.
//ImmUnlockIMCC(lpIMC->hMsgBuf);
ImmLockIMC(hIMC);
// Call ImmGenerateMessage function.
ImmGenerateMessage(hIMC);
}
return 0;
}
我对这些函数不熟,这些函数需要包含什么头文件才能运行呢,我只包含了<windows.h>,发现不能运行这些函数,出现这样的提示
error LNK2001: unresolved external symbol _ImmUnlockIMC@4
在我的程序里面我是想发送汉字或符号到其它程序去的(不知道这个程序的classname 和 windowname)SendMessage(hw,WM_CHAR,'A',0);也许可以发送但个字符,那我怎么发送汉字呢?汉字用什么存储呢?Top




