我用createprocess启动记事本以后,想向它发送消息,应该如何做,
好像找不到它的窗口句柄,也就用不了Sendmessage了
如果不用SendMessage那么还有什么其他办法操纵这个启动了的记事本
例如让它显示一个字符串, 这个字符串来源于启动他的应用程序
该怎么做
谢谢
好像找不到它的窗口句柄,也就用不了Sendmessage了
如果不用SendMessage那么还有什么其他办法操纵这个启动了的记事本
例如让它显示一个字符串, 这个字符串来源于启动他的应用程序
该怎么做
谢谢
int main()
{
...
const int k=2; // in seconds strcpy(lpCommandLine, "E:\\WINNT\\SYSTEM32\\CALC.EXE");
if (!CreateProcess(NULL, lpCommandLine,
NULL, &threadSA,
FALSE,
HIGH_PRIORITY_CLASS|CREATE_NEW_CONSOLE,
NULL, NULL,
&startInfo,
&processInfo))
{
fprintf(stderr, "CreateProcess failed on error %d\n",
GetLastError());
ExitProcess(1);
}
Sleep(5000);
HWND pProcess = FindWindow("SciCalc",0);
PostMessage(pProcess, WM_CLOSE,0,0); ExitProcess(1);
return 0;
}
用WM_COPYDATA来传送字符串。
字符串
我没搞过SDI的东东,对于Dialog是可以通过这种方法进行操作的。一个建议,不一定好使,大家讨论一下:)
是不是要接入notepad的输入线程,过去好像有人是这么做的
1、先得到启动的记事本的句柄,
2、用findwindowex找到工作区的句柄,也就是文本框的句柄,然后向他发消息就可以了
谢谢大家的帮助