2. CreateProcess的方式 示例:
// 以CreateProcess的方式打开链接地址
CString strOpenUrl = strUrl;
CString strIEPath = _T("");
strIEPath = strPath;
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// 在链接字符串前面加一个空格
strUrl = _T(" ") + strUrl;
LPWSTR lpUrl = (LPWSTR)(LPCTSTR)(strUrl);
if( CreateProcess( strIEPath,
lpUrl,
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&si,
&pi)
)
{ // 释放句柄
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
return TRUE;
}
else
{ // CreateProcess打开失败
return false;
}
总结:其实两种方式都是调用外部程序,在打开网页这个操作上,ShellEexcute打开的页面会调用默认的浏览器的打开地址,而CreateProcess则是可以指定运行的浏览器的运行程序地址来打开页面,并且是一个新页面。
2. CreateProcess的方式 示例:
// 以CreateProcess的方式打开链接地址
CString strOpenUrl = strUrl;
CString strIEPath = _T("");
strIEPath = strPath;
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// 在链接字符串前面加一个空格
strUrl = _T(" ") + strUrl;
LPWSTR lpUrl = (LPWSTR)(LPCTSTR)(strUrl);
if( CreateProcess( strIEPath,
lpUrl,
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&si,
&pi)
)
{ // 释放句柄
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
return TRUE;
}
else
{ // CreateProcess打开失败
return false;
}
总结:其实两种方式都是调用外部程序,在打开网页这个操作上,ShellEexcute打开的页面会调用默认的浏览器的打开地址,而CreateProcess则是可以指定运行的浏览器的运行程序地址来打开页面,并且是一个新页面。