我用了个取巧的方法来实现了
将注册表的init 中的Launch50 改成你要启动的程序,当然这个这个需要自己写,在这个程序中启动
LPCTSTR filename=_T("\\Windows\\explorer.exe");
PROCESS_INFORMATION processinfo;
//打开新进程
CreateProcess(filename,0,0,0,0,CREATE_NEW_CONSOLE,0,0,0,&processinfo);
这样就可以了 呵呵
各路大侠问题还是没有解决
遇到的问题如下:
——————————————————————————————
如果当前没有这个文件,那么第一次执行程序,程序可以成功创建
这个文件,并正确的写入数据(我发现每次写入的字节数均对),
而且有时候可以读出数据显示到编辑框上。
——————————————————————————————
我重写了读写按钮单击响应函数,我要达到的功能很简单,对话框上
我放置了两个编辑框,两个按钮。在输入编辑框中写入一串字符,点击
“写入”按钮,字符串被写入到一个文件中去。点击“读取”按钮,
字符串被读出,然后显示在读取编辑框中。代码如下:
注:m_rec,m_send分别是两个编辑框关联的String类型的变量
STUDENTFILEPATH是个常量,我头文件中声明的,是文件的一个路径
——————————————————————————————
读按钮单击响应函数:
HANDLE hFile;
DWORD length;
DWORD dwBytesRead;
m_rec = _T("");
hFile = CreateFile(STUDENTFILEPATH,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("Open File Failed!"));
return;
}
SetFilePointer(hFile,0,NULL,FILE_BEGIN);
length=GetFileSize(hFile,NULL);
if(ReadFile(hFile,&m_rec,length,&dwBytesRead,NULL) == FALSE)
{
AfxMessageBox(_T("Read File Failed!"));
return;
}
CloseHandle(hFile);
GetDlgItem(IDC_EDT_READ)->UpdateData(false);
写按钮单击响应函数:
HANDLE hFile;
DWORD dwBytesWrite;
GetDlgItem(IDC_EDT_WRITE)->UpdateData(true);
hFile = CreateFile(STUDENTFILEPATH,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
SetFilePointer(hFile,0,NULL,FILE_END);
if(WriteFile(hFile,&m_send,m_send.GetLength(),&dwBytesWrite,NULL) == FALSE)
{
AfxMessageBox(_T("Write File Failed!"));
return;
}
CloseHandle(hFile);
m_send=_T("");
GetDlgItem(IDC_EDT_WRITE)->UpdateData(false);
——————————————————————————————
请大家指点,多谢。JOYZML(朱铭雷)