BOOL CSystemInfo::OpenMailApplication(CWnd *pParentWnd)
{
ASSERT(pParentWnd);
// Read defaul mail application name
CString strMailApp;
if(FLRegQueryValue(HKEY_LOCAL_MACHINE, "Software\\Clients\\Mail", NULL, strMailApp) > 0)
{
CString strKeyName = "Software\\Clients\\Mail\\" + strMailApp + "\\shell\\open\\command";
CString strShellCmd;
if(FLRegQueryValue(HKEY_LOCAL_MACHINE, strKeyName, NULL, strShellCmd) > 0)
{
STARTUPINFO startinfo = {0};
PROCESS_INFORMATION pinfo;
startinfo.cb = sizeof(startinfo);
startinfo.wShowWindow = SW_SHOW;
TCHAR lpszCmd[MAX_PATH];
ExpandEnvironmentStrings(strShellCmd, lpszCmd, MAX_PATH);
if(!CreateProcess(NULL, lpszCmd, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &startinfo, &pinfo))
{
CString strPrompt;
strPrompt.LoadString(IDS_ERROR_FAILED_START_MAIL);
strPrompt += strMailApp;
DisplayErrorMessage(pParentWnd->m_hWnd, strPrompt);
return FALSE;
}
return TRUE;
}
}
DisplayErrorMessage(NULL, IDS_ERROR_FAILED_READ_DEFAULT_MAIL);
return FALSE;
}
{
ASSERT(pParentWnd);
// Read defaul mail application name
CString strMailApp;
if(FLRegQueryValue(HKEY_LOCAL_MACHINE, "Software\\Clients\\Mail", NULL, strMailApp) > 0)
{
CString strKeyName = "Software\\Clients\\Mail\\" + strMailApp + "\\shell\\open\\command";
CString strShellCmd;
if(FLRegQueryValue(HKEY_LOCAL_MACHINE, strKeyName, NULL, strShellCmd) > 0)
{
STARTUPINFO startinfo = {0};
PROCESS_INFORMATION pinfo;
startinfo.cb = sizeof(startinfo);
startinfo.wShowWindow = SW_SHOW;
TCHAR lpszCmd[MAX_PATH];
ExpandEnvironmentStrings(strShellCmd, lpszCmd, MAX_PATH);
if(!CreateProcess(NULL, lpszCmd, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &startinfo, &pinfo))
{
CString strPrompt;
strPrompt.LoadString(IDS_ERROR_FAILED_START_MAIL);
strPrompt += strMailApp;
DisplayErrorMessage(pParentWnd->m_hWnd, strPrompt);
return FALSE;
}
return TRUE;
}
}
DisplayErrorMessage(NULL, IDS_ERROR_FAILED_READ_DEFAULT_MAIL);
return FALSE;
}
解决方案 »
- Debug Assertion Failed错误求助
- 包容的问题
- MVP获奖后~
- VC简单问题
- Win7下UAC开启时无法响应WM_DROPFILES消息
- 在对话框程序中,填加系统托盘,右键单击弹出相应的菜单,但是点击屏幕上的其它位置时,菜单不能自动消失,必须点中DLG菜单才会消失,为
- 急,简单问题 在线等
- 怎样判断和处理:对象已被删除而指针仍然存在的情况(不是说怎样避免)。大家来交流一下经验。
- 请问现在在哪能下载到《深入浅出MFC》呀?
- "不是我想骗你,是我不知道怎么才能不骗"谢谢你帮助,csdn应你而精彩!!!!!!!!!
- ***用SDI用SCROLL-VIEW***已经对brush填了色,但是滚动条一拉,下面的VIEW全部没有填色,???怎样才能填色???
- 有谁知道IMAIL收到的邮件的文件结构?
PROCESS_INFORMATION stProcessInfo;
char temp[]= _T("notepad.exe C:\\NETLOG.TXT");
CreateProcess(NULL,temp,NULL,NULL,TRUE,
NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE,
NULL,NULL,&stStartUpInfo,&stProcessInfo);
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
ZeroMemory(&pi, sizeof(pi));si.cb = sizeof(si);BOOL bResult = CreateProcess("c:\\winnt\\system32\\notepad.exe",
"c:\\NETLOG.TXT", NULL,
NULL, true, DEBUG_ONLY_THIS_PROCESS,
NULL, NULL, &si, &pi);CreateProcess中的第一个参数必须指定确切的路径,而且最后两个参数都不能是NULL。
MSDN看清楚了再来吧!
memset(&stinfo, 0, sizeof(STARTUPINFO));
stinfo.cb = sizeof(STARTUPINFO);
stinfo.dwFlags = STARTF_USESHOWWINDOW;
stinfo.wShowWindow = SW_SHOWDEFAULT;
PROCESS_INFORMATION procinfo ;
::CreateProcess(NULL,_T("C:\\WINDOWS\\NOTEPAD.EXE c:\\netlog.txt.log"),NULL,NULL,false,NORMAL_PRIORITY_CLASS,NULL,NULL,&stinfo,&procinfo))
但你带的参数是2000下专有的,下面我又把它简化了一下
不懂的不要问我哟,自己找找MSDN吧
STARTUPINFO stinfo={sizeof(stinfo)};
PROCESS_INFORMATION procinfo ;
CreateProcess(NULL,"NOTEPAD.EXE",NULL,NULL,false, DETACHED_PROCESS,NULL,NULL,&stinfo,&procinfo);