ShellExecute(
hWnd: HWND
Operation: PChar
FileName: PChar
Parameters: PChar
Directory: PChar
ShowCmd: Integer {打开选项}
可以通过ShellExecute打开windows系统自带的记事本、计算器等等。
我们这里需要的是打开一个链接,如www.baidu.com
更进一步,我们如何指定浏览器来打开www.baidu.com.
我们应该再一次关于一下这个函数的参数:
lpFile [in]
Type: LPCTSTR
A pointer to a null-terminated string that specifies the file or object on which to execute the specified verb. To specify a Shell namespace object, pass the fully qualified parse name. Note that not all verbs are supported on all objects. For example, not all document types support the “print” verb. If a relative path is used for the lpDirectory parameter do not use a relative path for lpFile.
lpParameters [in, optional]
Type: LPCTSTR
If lpFile specifies an executable file, this parameter is a pointer to a null-terminated string that specifies the parameters to be passed to the application. The format of this string is determined by the verb that is to be invoked. If lpFile specifies a document file, lpParameters should be NULL.
lpDirectory [in, optional]
Type: LPCTSTR
A pointer to a null-terminated string that specifies the default (working) directory for the action. If this value is NULL, the current working directory is used. If a relative path is provided at lpFile, do not use a relative path for lpDirectory.
所以,我们可以这样使用:
#include<iostream>
#include<Windows.h>
#include<shellapi.h>
int main()
ShellExecute(NULL, L"open", L"iexplore.exe", L"www.baidu.com", NULL, SW_MAXIMIZE);
ShellExecute(NULL, L"open", L"SogouExplorer.exe", L"www.baidu.com", NULL, SW_MAXIMIZE);
ShellExecute(NULL, L"Open", L"www.baidu.com", 0, 0, SW_SHOWNORMAL);
return 0;
在我们的客户端中常常会有一些link,点击后希望通过浏览器导航到该链接。我们是通过ShellExecute函数来实现的。ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。注意,要使用这个函数,要引入头文件:#include <shellapi.h>看看函数原型:ShellExecute(hWnd: HWND;
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const conSwNormal = 1
WNetAddConnection 创建同一个网络资源的永久性连接
WNetAddConnection2 创建同一个网络资源的连接
WNetAddConnection3 创建同一个网络资源的连接
WNetCancelConnection 结束一个网络连接
WNetCancelConnection2 结束一个网络连接
WNetCloseEnum 结束一次枚举操作
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
WNetEnumResource 枚举网络资源
WNetGetConnection 获取本地或已连接的一个资源的网络名称
WNetGetLastError 获取网络错误的扩展错误信息
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
WNetGetUser 获取一个网络资源用以连接的名字
WNetOpenEnum 启动对网络资源进行枚举的过程
2. API之消息函数
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
PostMessage 将一条消息投递到指定窗口的消息队列
PostThreadMessage 将一条消息投递给应用程序
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
ReplyMessage 答复一个消息
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
SendMessageCallback 将一条消息发给窗口
SendMessageTimeout 向窗口发送一条消息
SendNotifyMessage 向窗口发送一条消息
3. API之文件处理函数
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
CompareFileTime 对比两个文件的时间
CopyFile 复制文件
CreateDirectory 创建一个新目录
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
CreateFileMapping 创建一个新的文件映射对象
DeleteFile 删除指定文件
DeviceIoControl 对设备执行指定的操作
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
FindFirstFile 根据文件名查找文件
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
GetBinaryType 判断文件是否可以执行
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
GetCurrentDirectory 在一个缓冲区中装载当前目录
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
GetDriveType 判断一个磁盘驱动器的类型
GetExpandedName 取得一个压缩文件的全名
GetFileAttributes 判断指定文件的属性
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
GetFileSize 判断文件长度
GetFileTime 取得指定文件的时间信息
GetFileType 在给出文件句柄的前提下,判断文件类型
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
用默认的浏览器打开指定的网页是一个很常见的功能。ShellExecute是实现这个功能最方便的函数。Windows在注册表的这些位置保存着默认浏览器的信息。
HKEY_CLASSES_ROOT\.htm
HKEY_CLASSES_ROOT\.html
HKEY_CLAS
4 int WINAPI _tWinMain(HINSTANCE hInstance,
5 HINSTANCE hPrevInstance,
6 LPTSTR l...
ShellExecute(NULL, "open", pNMHDR-&gt;sURLLink , NULL, NULL, SW_SHOWNORMAL); //在原IE浏览器窗口中打开
//ShellExecute(NULL, "open", "IEXPLORE", pNMHDR-&gt;sUR
### 回答1:
你可以使用Windows的命令行工具来打开cmd,例如使用start命令:start cmd,或者使用Windows PowerShell:powershell -Command "Start-Process cmd"。
### 回答2:
通过b脚本可以使用"shell"命令来打开cmd命令提示符窗口。下面是一个示例脚本:
import os
os.system('cmd')
以上脚本中,我们使用了Python的"os"模块和"system"函数来执行操作系统命令。在这个例子中,我们使用"cmd"命令作为参数传递给"system"函数,这将启动cmd命令提示符窗口。
运行这个脚本后,会在屏幕上打开一个新的cmd窗口,你可以在其中输入和执行各种命令。
注意:你需要确保在运行脚本时已经安装了Python,并且Python的安装路径已经被正确设置在系统的环境变量中。
### 回答3:
通过b脚本可以使用以下方法打开cmd命令提示符:
1. 使用系统命令`start`打开cmd窗口:
start cmd
2. 使用`WScript.Shell`对象的`Run`方法打开cmd:
```vbscript
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
3. 使用`Shell.Application`对象的`ShellExecute`方法打开cmd:
```vbscript
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd"
无论是哪种方法,在运行时都会打开一个新的cmd窗口。如果想在已经打开的cmd窗口中执行命令,可以通过以下方法实现:
1. 使用`WScript.Shell`对象的`AppActivate`方法将焦点切换到已打开的cmd窗口,然后再发送命令:
```vbscript
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "命令提示符"
WshShell.SendKeys "你的命令"
2. 使用`Shell.Application`对象的`ShellExecute`方法打开一个新的cmd窗口,并在命令行中指定要执行的命令:
```vbscript
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd", "/c ""你的命令"""
以上是一些常见的通过b脚本打开cmd的方法,可以根据实际需求选择适合的方法来执行相应的操作。