1.发消息,主要是找到窗口句柄
2.要么是 C盘根目录下没有Notepad.exe(系统目录下),
要么是你系统的问题,如果不是在2000下,这样是会出现问题.
TCHAR szPath[] = _T ("Notepad My.txt");//这行是关键
CreateProcess ( _T(“C:\\WINNT\\SYSTEM32\\WORDPAD.EXE”) , szPath , ... );
或
TCHAR szPath[] = _T ("Notepad");//这是关键
CreateProcess ( NULL , szPath , ... );
2.要么是 C盘根目录下没有Notepad.exe(系统目录下),
要么是你系统的问题,如果不是在2000下,这样是会出现问题.
TCHAR szPath[] = _T ("Notepad My.txt");//这行是关键
CreateProcess ( _T(“C:\\WINNT\\SYSTEM32\\WORDPAD.EXE”) , szPath , ... );
或
TCHAR szPath[] = _T ("Notepad");//这是关键
CreateProcess ( NULL , szPath , ... );
解决方案 »
- 两张位图来回切换,代码无效
- 四核计算更慢
- 到底两个类相互引用的时候,哪边用class前置声明,哪边用#include ".h"呢
- 宽字符的工程中 CString变量和int变量的转换问题
- 撤销操作的代码!
- 像如下功能是怎么样实现的?
- Run-Time 错误求助
- 如何在类中使用一个对象成员变量,是不是必须先class 类名一下?彻底迷惑了
- MFC AppWinzard SDI: 在CMyView中,我添加了一个CListCtrl,我MFC AppWinzard SDI: 在CMyView中,我添加了一个CListCtrl,我需要在CMyView中
- 关于检索数据库时时间太长的疑问
- 求助:vc里如何改变屏幕的分辨率?
- winsock2.h对应的lib文件是什么?谁能帮我解释下面代码?
2。即使我把路径写对CreateProcess依然不能执行另外的程序。
如 我的c盘根目录下有 tollgate.exe
CreateProcess(_T("c:\\tollgate.exe"),NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS
,NULL,NULL,&startupinfo,&processinformation);
startupinfo 为输入参数,要清空或最起码要把成员.cb置为结构体大小。
memset(&startupinfo,0,sizeof(startupinfo));
然后就可以了。
倒数第三个参数:路径也要注意一下。
2、发消息可通过如下方法:
a. 如知道目标窗口的标题,可用FindWindow得到HWND.然后......
b. 使用可用processinformation中返回的Thread ID 调用EnumThreadWindows/EnumWindows取得相应的窗口,然后.......
c. 也可使用可用processinformation中返回的Thread ID,直接使用PostThreadMessage(...);Sleep(0);
肯定还有别的方法,找肯定还能找得到。
多看一些Windows/进程/线程/内存相关的资料会有所帮助。
void CCatchmapView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
STARTUPINFO stStartUpInfo;
PROCESS_INFORMATION stProcessInfo;
memset(&stStartUpInfo,0,sizeof(STARTUPINFO));
stStartUpInfo.cb=sizeof(STARTUPINFO);
CreateProcess(NULL,"e:\\bitmap\\Debug\\bitmap.exe",NULL,NULL,TRUE,
NORMAL_PRIORITY_CLASS,NULL,NULL,
&stStartUpInfo,&stProcessInfo);
CView::OnRButtonDown(nFlags, point);
}