通过Web页面启动本地应用程序

需求

目前在项目中需要在html页面中通过连接(a标签)来唤醒本地应用,这个是基于window系统

解决方法

注册自己的协议

window下需要将自己的协议添加至注册表中,下面以打开wps word为例

// 新建word.reg注册表文件(可以使用vscode进行编辑,安装reg插件来提供一些小提示)
Windows Registry Editor Version 5.00 // 注册表工具的版本信息
[HKEY_CLASSES_ROOT\word]  
@="word"  // 协议的名称
"URL Protocol"="D:\\software\\WPS Office\\10.1.0.7521\\office6\\wps.exe"   // 可应用程序的路径,只能是exe的程序
[HKEY_CLASSES_ROOT\word\DefaultIcon]
@="D:\\software\\WPS Office\\10.1.0.7521\\office6\\wps.exe,1" 
[HKEY_CLASSES_ROOT\word\shell]
@="open"
[HKEY_CLASSES_ROOT\word\shell\open]
@="open"
[HKEY_CLASSES_ROOT\word\shell\open\command]
@="\"D:\\software\\WPS Office\\10.1.0.7521\\office6\\wps.exe\" \"%1\"" // 应用程序路径,%1表示参数

注意

  1. 路径使用双杠“\
  2. 如果字符串中有双引号("),那么需要加转义字符""
  3. 保存后双击文件执行,将这些项写入到注册表

检验是否注册成功

  • 开始-运行 输入word:,可以运行该程序则表示注册成功了;
  • 在浏览器的地址栏直接输入:word:,可以运行则表示注册成功;

web页面中启动word程序

href里面配置自定义的协议,用于唤醒本地应用

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
    <a href="word:">打开word</a>
</body>

</html>

最后

在谷歌浏览器69版本中测试可正常唤醒wps word程序


网页Web上调用本地应用程序

一、web调用本地应用程序的思路

这个方法主要思路是利用自定义URL Protocol来调用应用程序。浏览器在解析到自定义URL Protocol之后,会寻找注册表,然后通过注册表启动相应的程序,然后启动改程序,传入参数。这样就可以在WEB页面调到你的程序了。比如在浏览器地址栏输入“tencent://message/?uin=88888888&Site=JooIT.com&Menu=yes”就会出现一个QQ对话框。

1、先往注册表写信息。如下:

Windows Registry Editor Version 5.00  
[HKEY_CLASSES_ROOT\Diff]  
"URL Protocol"="这里是小程序的安装路径"  
@="DiffProtocol"  
[HKEY_CLASSES_ROOT\Diff\DefaultIcon]  
@="这里是小程序的安装路径,1"  
[HKEY_CLASSES_ROOT\Diff\shell]  
[HKEY_CLASSES_ROOT\Diff\shell\open]  
[HKEY_CLASSES_ROOT\Diff\shell\open\command]  
@="\"这里是小程序的安装路径\" \"%1\""  

将上面的内容保存为.reg文件运行即可。

2、web页面调用。在网页直接一个超链接,协议://参数就可以了。比如

<a href=" Diff://">  
   alt="点击这里">    
 </a>  
<a href=" Diff://hello">SIMU</a>  

需要指出的是:在上面例子中注册表中代码【@="\"这里是小程序的安装路径\" \"%1\""】中的%1表示传入参数,就是对应这此处的Diff://hello,解析之后就可以得到参数hello了。

二、完整实例。

1、xxxClient.reg文件

Windows RegistryEditor Version 5.00  

[HKEY_CLASSES_ROOT\xxxClient]  
@="xxxClientProtocol"  
"URLProtocol"=""  

[HKEY_CLASSES_ROOT\xxxClient\DefaultIcon]  
@="C:\\ xxx_Client\\client.bat,1"  

[HKEY_CLASSES_ROOT\xxxClient\shell]  

[HKEY_CLASSES_ROOT\xxxClient\shell\open]  

[HKEY_CLASSES_ROOT\xxxClient\shell\open\command]  
@="\"C:\\xxx_Client\\client.bat\" \"%1\""  

2、client.bat文件

@echo off  

rem设置当前目录为C:\ xxx _Client\

setcurrent_dir=C:\ xxx _Client\   

pushd%current_dir%   

call C:\ xxx _Client\xxx _Client.exe  

3、web页面文件

<!DOCTYPEHTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">  
 <head>  
     <meta http-equiv="Content-Type"content="text/html; charset=utf-8" />  
 </head>  
   <body>  
       <div>  
           <a href="xxxClient://">  
          打开客户端软件  
           </a>  
       </div>  
   </body>  
</html>  

三、注意问题:

1、如何动态生成注册表信息,可以在应用程序中写代码操作注册表,写入上面的URL Protocol注册表格式信息。

2、路径问题,如果应用程序包含了很多文件,就涉及到工作路径问题,web调用应用程序,当时的工作路径是的web运行的工作路径。可以通过bat或应用程序来切换路径。

bat为例,建立一个批处理文件,里面切换路径,注册注册表信息时,[HKEY_CLASSES_ROOT\Diff\shell\open\command]使用bat路径。

xxxClient.bat文件

@echo off

rem设置当前目录为C:\ xxx_Client\

setcurrent_dir=C:\ xxx_Client\

pushd%current_dir%

call C:\ xxx_Client\xxx_Client.exe

3、如何获取参数?

MFC Dialog程序的参数值:

首先需要获取传入的参数,在控制台程序中我们都知道main()函数的参数argv里带入了传入的参数,而在MFC程序中则需要在InitInstance()中进行命令行参数解析。

CCommandLineInfo   cmdInfo;   
ParseCommandLine(cmdInfo);

为了给对话框传入待显示的参数,加入了一个SetDisplayInfo方法。

CHelloWorldDlg dlg;
dlg.SetDisplayInfo(cmdInfo.m_strFileName);//设置待显示的信息

void CHelloWorldDlg::SetDisplayInfo(CString& strInfo)
{
this->m_strInfo = strInfo;
}

最后在OnInitDialog函数中进行参数解析

//解析传入的完整地址,e.g "helloworld://hello world/"
int pos = m_strInfo.Find("//");//找到分隔符
m_strInfo = m_strInfo.Mid(pos+2);//取到传入的参数
m_strInfo.Delete(m_strInfo.GetLength()-1);//去掉最后的'/'
m_edit_info.SetWindowText(m_strInfo);
  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要在Web启动Python程序,您需要使用Web框架和服务器来将Python代码与Web应用程序集成在一起。 以下是一些常用的Web框架和服务器: Web框架: - Flask: 一个轻量级的Web框架,适用于小型项目和API。 - Django: 一个全功能的Web框架,适用于大型项目和Web应用程序。 - Bottle: 一个微型Web框架,适用于小型项目和API。 服务器: - Apache:一个流行的Web服务器,支持许多编程语言,包括Python。 - Nginx:一个高性能的Web服务器,也支持Python。 - Gunicorn:一个Python WSGI HTTP服务器,可用于运行Python Web应用程序。 以下是一些启动Python程序的步骤: 1. 安装所需的Web框架和服务器。您可以使用pip安装Flask、Django、Bottle和Gunicorn。Apache和Nginx通常已预安装在许多操作系统中。 2. 编写Python代码,并将其保存到.py文件中。 3. 使用Web框架将Python代码集成到Web应用程序中。具体实现方式根据不同的Web框架而异。通常需要编写路由、控制器和模板等组件。 4. 启动Web服务器,并将Web应用程序部署到服务器上。具体实现方式也根据不同的服务器而异。例如,使用Apache时,您可以将Web应用程序部署到Apache的文档根目录中,然后在浏览器中访问该应用程序的URL即可。 例如,使用Flask框架和Gunicorn服务器,您可以按照以下步骤启动Python程序: 1. 使用pip安装Flask和Gunicorn: ``` pip install flask gunicorn ``` 2. 编写Python代码,并将其保存到app.py文件中: ``` from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' if __name__ == '__main__': app.run() ``` 3. 启动Gunicorn服务器: ``` gunicorn app:app ``` 4. 在浏览器中访问http://localhost:8000/即可看到输出“Hello, World!”的页面。 ### 回答2: 要在Web启动Python程序,可以按照以下步骤进行操作: 1. 选择合适的Web服务器:首先选择与Python兼容的Web服务器,如Apache、Nginx等。确保服务器已正确设置,并且可以运行Python程序。 2. 配置服务器环境:安装必要的软件和库,如Python解释器、WSGI(Web服务器网关接口)等。 3. 编写Python程序:编写Python程序,使用框架(如Django、Flask)或自定义开发的方式。确保程序可以在本地环境中运行良好。 4. 配置Web服务器:根据所选服务器的配置文档,设置服务器以将请求转发到Python程序。这通常涉及创建虚拟主机、配置端口号、路径映射等。 5. 测试程序:在Web服务器上启动Python程序之前,进行必要的测试,以确保程序Web环境中可以正常运行。测试包括调试代码、检查日志信息等。 6. 启动程序:在Web服务器上启动Python程序,将其部署到所选服务器上。这通常涉及将程序文件复制到服务器的特定目录,并确保权限设置正确。 7. 配置域名和网络设置:为Python程序分配一个域名,并设置正确的网络设置,以便Web服务器可以正确地将请求路由到该程序。 8. 监控和维护:定期监控Python程序的运行情况,并根据需要运行维护任务。这包括处理错误、更新代码、优化性能等。 总结起来,要在Web启动Python程序,需要选择适当的服务器,配置环境,编写和测试程序,配置服务器和网络设置,并监控和维护程序。这些步骤将确保Python程序可以在Web上正常运行。 ### 回答3: 在Web启动Python程序可以通过以下步骤实现: 1. 选择一个合适的Web服务器:首先,你需要选择一个适合的Web服务器来运行你的Python程序。常用的Web服务器包括Apache、Nginx和IIS等。 2. 配置Web服务器:接下来,你需要配置Web服务器以便它能够识别和处理Python脚本。具体配置方法因服务器而异,你可以查看相关文档或搜索网络寻找适合你的Web服务器的配置方法。 3. 安装Python解释器:确保你的服务器上已安装了Python解释器。你可以从Python官方网站下载并安装适合你操作系统的Python解释器。 4. 编写Python脚本:根据你的需求编写一个Python脚本。这个脚本可以是一个简单的Hello World程序,也可以是处理Web请求和生成动态内容的复杂应用。 5. 将脚本放置在Web服务器的适当位置:将你编写的Python脚本放置在Web服务器上指定的位置。这通常是服务器文件系统中的一个特定目录,比如Apache服务器的htdocs目录。 6. 设置脚本的执行权限:为了确保你的脚本能够在Web服务器上正确运行,你需要为该文件设置执行权限。这可以通过运行命令`chmod +x your_script.py`来实现。 7. 通过Web浏览器访问脚本:最后,通过在Web浏览器的地址栏中输入你的脚本的URL,就可以访问和执行你的Python程序了。 值得注意的是,这个过程可能因为你使用的Web服务器和操作系统而略有不同,但总体步骤是相通的。在实际操作中,你可能还需要处理其他一些细节,比如安全性和性能方面的考量。总之,通过正确地配置Web服务器和编写Python脚本,你就可以在Web启动Python程序了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值