`
yaoyao19851023
  • 浏览: 31486 次
  • 性别: Icon_minigender_2
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

如何使用 ShellExecute 应用程序编程接口 (API)

    博客分类:
  • c#
阅读更多
本文提供了有关如何注册默认的 Web 浏览器和如何使用 ShellExecute 应用程序编程接口 (API) 启动默认 Web 浏览器的一般信息。 它还提供详细信息方式 ShellExecute 将导致 Microsoft Internet Explorer 将转到统一资源定位符 (URL)。
回到顶端
更多信息确定默认 Web 浏览器默认,Microsoft Internet Explorer 检查是否它是默认的 Web 浏览器每次启动。 如果 Internet Ex...确定默认 Web 浏览器
默认,Microsoft Internet Explorer 检查是否它是默认的 Web 浏览器每次启动。 如果 Internet Explorer 启动时 Internet 文档 (HTML) 文件与其他浏览器关联,Internet Explorer 识别出它不是默认浏览器然后提示您将其设置为默认浏览器。

时您选择 将此默认浏览器 在 Internet Explorer 和更高版本的 Netscape,将在浏览器注册自身到 所有 以下项的将自身设置为的默认浏览器,(还有其他写入的项)。 HKEY_CLASSES_ROOT\.htm HKEY_CLASSES_ROOT\.html HKEY_CLASSES_ROOT\http\shell\open\command HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application HKEY_CLASSES_ROOT\ftp\shell\open\command HKEY_CLASSES_ROOT\ftp\shell\open\ddeexec\Application HKEY_CLASSES_ROOT\gopher\shell\open\command HKEY_CLASSES_ROOT\gopher\shell\open\ddeexec\Application
回到顶端

从您的应用程序启动默认 Web 浏览器
调用 ShellExecute API,并将 URL 传递给它。 是您可以从您的应用程序启动默认 Web 浏览器在最简单方法。 如果默认的 Web 浏览器当前运行 ShellExecute 告诉转您统一资源定位符 (URL) 以运行的实例。 如果它没有运行 ShellExecute 将启动应用程序,然后浏览到您的 URL。

如果您使用 Microsoft Visual C++ 开发应用程序,以下代码描述如何调用 ShellExecute
LONG r = ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);


如果您使用 Microsoft Visual Basic,必须在项目中插入 ShellExecute 声明。 您可以找到此声明 Win32api.txt 文件位于 Microsoft Visual Studio 安装的子文件夹中。 (可选),您可以将它复制 API 文本查看器工具随 Visual Studio 6.0。

若要将您的项目插入 ShellExecute API 请按照下列步骤操作:
在 Visual Basic 中创建一个新的项目。
选择 标准 EXE 。
向窗体添加一个按钮。
将以下代码的形式放
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

Private Sub Command1_Click()
   Dim r As Long
   r = ShellExecute(0, "open", "http://www.microsoft.com", 0, 0, 1)
End Sub



运行您的项目,然后单击按钮以转到您使用默认 Web 浏览器的 URL。
ShellExecute API 是 Microsoft Windows 95 和 Microsoft Windows NT 3.1 上受支持和更高版本。 您可以使用 ShellExecute 激活默认 Web 浏览器在所有 Win 32 版本 Microsoft Internet Explorer 版本 1.0 和更高版本。 在 Microsoft Windows 3 x UNIX,或 MacIntosh 上此方法不受支持的平台。
回到顶端
ShellExecute 的工作原理
下面的背景为仅供参考之用。 它被提供,以便您可以更好地理解应用程序与操作系统进行交互的方式。 不会使从此信息您绘制的假设您设计。 应注意此功能可能会更改在将来版本的 Microsoft 产品。
ShellExecute 如何解释 URL 传递
ShellExecute 分析,以便 ShellExecute 可以提取协议说明符或扩展传递给它的字符串。 接下来, ShellExecute 会在注册表中查找,然后使用来确定要启动的应用程序的协议说明符或的扩展。 如果将 http://www.microsoft.com ShellExecute , ShellExecute 识别作为一个协议导致若要查看有关如何运行信息 HKEY_CLASSES_ROOT\http\shell\open ShellExecute http:// sub-string。 如果将 myfile.htm ShellExecute , ShellExecute 识别作为一项扩展在".htm"sub-string。 这将导致以查看 HKEY_CLASSES_ROOT\.htm,这会导致 HKEY_CLASSES_ROOT\htmlfile\shell\open ShellExecute 。

通常,最好完全指定例如传递到 ShellExecute 的字符串中的您的 URL: http://www.microsoft.com ,而不是 www.microsoft.com 。 完全指定 URL 时您 ShellExecute 知道准确的协议所需确保。 默认情况下, 但是, ShellExecute 检测到某些模式,包括 www.* 和 ftp.* ,然后将这些模式分别映射到该超文本传输协议 (HTTP) 协议和在文件传输协议 (FTP)。
ShellExecute 如何确定是否要启动新的实例
当通过注册表,看起来 ShellExecute 时,它将查找 shell\open 子项。 如果定义该 shell\open\ddeexec 项,动态数据交换 (DDE) 将邮件与指定的 application IExplore 和 WWW_OpenURL 广播到桌面上的所有顶级窗口的主题。 第一个应用程序以响应此消息是转到所请求的 URL 的应用程序。 如果没有应用程序响应此 DDE 消息, ShellExecute 将使用 shell\open\command 子项来启动应用程序中包含的信息。 它然后 re-broadcasts 该 DDE 信息,转到请求的 URL。
回到顶端
参考有关默认 Web 浏览器,请单击下面的文章编号,以查看 Microsoft 知识库中的文章: 153774  (http://support.microsoft...有关默认 Web 浏览器,请单击下面的文章编号,以查看 Microsoft 知识库中的文章:
153774  (http://support.microsoft.com/kb/153774/ ) 未配置为默认浏览器的 Internet Explorer
本文讨论了在第三方产品是由独立于 Microsoft 的公司制造的。 Microsoft 使默示或其他有关性能或可靠性这些产品的任何担保。
回到顶端

--------------------------------------------------------------------------------

这篇文章中的信息适用于:
Microsoft Windows 2000 Server
Microsoft Windows 2000 Advanced Server
Microsoft Windows 2000 Professional Edition
Microsoft Internet Explorer 3.01
Microsoft Internet Explorer 3.02
Microsoft Internet Explorer 4.0 128-Bit Edition
Microsoft Internet Explorer 4.01 Service Pack 2
Microsoft Internet Explorer 4.01 Service Pack 1
Microsoft Internet Explorer 5.0
Microsoft Internet Explorer 5.01
Microsoft Internet Explorer (Programming) 5.01 SP1
Microsoft Internet Explorer 5.5
Microsoft Windows NT Server 3.5
Microsoft Windows NT Server 3.51
Microsoft Windows NT Server 4.0 Standard Edition
Microsoft Windows NT Workstation 3.5
Microsoft Windows NT Workstation 3.51
Microsoft Windows NT Workstation 4.0 开发员版
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics