我写了一段代码,它从一个超文本文件中提取出所以的超链接URL。
假如提取出了N个,我想要他们在N个IE窗口中打开。我是这样做的:
::ShellExecute(NULL, "open", pURL/*char*型URL地址*/, NULL,NULL, SW_SHOWNORMAL);
但事实上它们在同一个窗口中打开了。
我应该怎么做才能达到我期望的效果呢?
第一种方法:使用ShellExecute函数
HINSTANCE ShellExecute(
HWND hwnd, // 父窗口句柄
LPCTSTR lpOperation, // 操作类型
LPCTSTR lpFile, // 要打开的文件或者文件夹
LPCTSTR lpParameters, // 打开文件的参数
LPCTSTR lpDirectory, // 默认的目录
INT nShowCmd // 打开后的显示方式
);
部分参数具体说明如下:
lpOperation的取值范围为:
"open" // 打开一个可执行文件,或者是有关联的文档
"print" // 打印一个文档
"explore" // 打开一个目录
nShowCmd的取值范围:
SW_HIDE 隐藏窗口,活动状态给令一个窗口
SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOWMAXIMIZED 最大化窗口,并将其激活
SW_SHOWMINIMIZED 最小化窗口,并将其激活
SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
SW_SHOWNORMAL 与SW_RESTORE相同
例如:打开 http://www.sina.com.cn 这个站点如下:
ShellExecute(NULL, "open", "http://www.sina.com.cn",NULL, NULL, SW_MAXIMIZE );
此命令将以默认浏览器打开http://www.sina.com.cn,并将加开后的窗口最大化。
又例:
ShellExecute(NULL, "open", "IEXPLORE.exe http://www.sina.com.cn",NULL, NULL, SW_MAXIMIZE );
此命令将直接用IE打开一个sina的站点。不过将开一个新的窗口。
第二种方法: 用WinExec函数。
WinExec函数在第二章已经讲过了。例如打开sina的站点,可用:
"IEXPLORE.exe http://www.sina.com.cn",SW_MAXIMIZE);