如何打开一个文件,并且向他发送消息
我想做一个程序A.exe,运行A.exe后将自动打开 "d:\1.TXT ",然后向1.txt发送WM_CHAR的消息,我写的简单的伪码如下:
shellexecuteex();//打开1.txt
hwnd = getforegroundwindow();
sendmessage(hwnd, WM_CHAR, WPARAM( 'C '), NULL);
结果发现1.txt虽然打开了,但是消息是发给A.exe的窗口的。
另外,如何根据一个打开的进程的句柄来获得该进程的id?
谢谢了!!
[解决办法]
刚写的测试代码
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
//打开程序
HINSTANCE hIns = ShellExecute(NULL, _T( "open "), "notepad.exe ", NULL, NULL, SW_SHOW);
if((INT)hIns > 32)
{
int nCount(0);
const int nInterval = 200;
const int nMax = (5*1000)/nInterval;
HWND hWnd(NULL);
//在5秒内查找notepad窗口
while(1)
{
Sleep(200);
nCount++;
hWnd = FindWindow(_T( "notepad "), NULL);
if(hWnd != NULL || nCount > nMax)
{
break;
}
}
if(hWnd != NULL)
{
//查找编辑框窗口
HWND hEdit = FindWindowEx(hWnd, NULL, _T( "Edit "), NULL);
if(hEdit != NULL)
{
//设置信息
TCHAR* lpsz = _T( "hello world! ");
SendMessage(hEdit, WM_SETTEXT, NULL, (LPARAM)lpsz);
}
}
}
return 0;
}