void OpenFileOrWeb(LPCTSTR I_lpFile, INT nShowCmd = SW_SHOWMAXIMIZED)//打开程序、文件、文件夹或网页
{
//lpFile:被打开的文件或网页;nShowCmd:用于指定打开程序窗口显示方式:一般用
//SW_SHOWMAXIMIZED-激活并以最大化的形式显示窗体
ShellExecute(NULL, “open”, I_lpFile, “”, “”, nShowCmd);
}
用法:作为外部函数使用,放在被调用之前
用例1:OpenFileOrWeb(“https://www.csdn.net/”);//打开CSDN主页
用例2: OpenFileOrWeb(“D:\aaasetup\qinghuaziguangTH-OCR 9.0\Carrot.exe”);//打开一个程序
用例3:OpenFileOrWeb(“D:\aaa\111.docx”);//打开一个word文件
用例4:OpenFileOrWeb(“D:\aaa”);//打开一个文件夹
///
补充:
1 本函数主要用了ShellExecute函数,它可以打开电脑内的任何文件,也可以打开URL。
2 函数的原型:
HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation,LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd);
参数 hWnd-用于指定父窗口的句柄。可以是NULL,this->m_hWnd
nShowCmd-用于指定程序窗口初始显示方式。
#define SW_HIDE 0 /隐藏窗体,并激活另一个窗体/
#define SW_SHOWNORMAL 1 /与SW_RESTORE相同/
#define SW_SHOWMINIMIZED 2 /激活并以最小化的形式显示窗体/
#define SW_SHOWMAXIMIZED 3 /激活并以最大化的形式显示窗体/
#define SW_MAXIMIZE 3 /最大化指定的窗体/
#define SW_SHOWNOACTIVATE 4 /以上次的状态显示指定的窗体,但不激活它/
#define SW_SHOW 5 /激活窗体,并将其显示在当前的大小和位置上/
#define SW_MINIMIZE 6 /最小化指定的窗体,并激活另一个窗体/
#define SW_SHOWMINNOACTIVE 7 /以最小化形式显示指定的窗体,但不激活它/
#define SW_SHOWNA 8 /以当前的状态显示指定的窗体,但不激活它/
#define SW_RESTORE 9 /以原本的大小和位置,激活并显示指定的窗体/
#define SW_SHOWDEFAULT 10 /设置显示的状态由STARTUPINFO结构体指定/
3 ShellExecute的返回值比较复杂,一般可通过人工观察或其他方法来判断是否打开了想打开的内容
4 该函数在vc6里正确,但在vs2019中默认会出现错误,这是因为Unicode字符集的问题。解决方:选择项目->项目属 性(或直接按alt+F7)->配置属性->高级,在右边找到“字符集”,将“使用Unicode字符集”改为“使用多字节字符集”