Windows - URL Scheme - 在Windows上无管理员权限为你的程序添加URL Scheme

Windows - URL Scheme - 在Windows上无管理员权限为你的程序添加URL Scheme

What

想不想在浏览器打开/控制你的电脑应用?

比如我在浏览器地址栏输入wegame://后回车会提示是否打开URL:wegame Portocol

wegame:/

若出现了始终允许选项,你甚至可以写一个Web界面,在始终允许后通过Web控制你的本地程序。

这是怎么实现的呢?很简单,我教你啊!

要张脑子了

想要了解这种协议,可以GoogleURL Scheme

  • 在Windows和MacOS上,你可以使用这种协议打开或控制本地应用(也许Linux也行?)
  • 在Android和iOS上,你可以使用这种协议在应用之间跳转(并传参)

比如某开源音乐播放器就支持通过Scheme URL来控制音乐的播放。

有了这种协议,你也可以在用户访问你的某个软件的官网时,实现“在xx软件中打开并查看”的功能。

本篇只以Windows为例,演示如何在不需要用户的管理员权限的情况下,为你的应用创建URL Scheme。

How

只需要向注册表HKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classes中添加一些子键。其中HKEY_LOCAL_MACHINE对所有用户生效,但需要管理员权限。现在以只对当前用户生效的不需要管理员权限的HKEY_CURRENT_USER为例:(这两个位置叫“HKEY_CLASSES_ROOT”)

首先Win+Rregedit回车打开注册表,进入到HKEY_CURRENT_USER\Software\Classes的位置:

进入HKEY_CLASSES_ROOT

Classes右键→新建项重命名新建的项(文件夹)。这里的名字就是你待会儿在浏览器中输入的scheme。这里以LetTest为例。

LetTest文件夹空白处双击默认并修改默认值,这里的值就是浏览器中显示的内容(就像WeGame显示的URL:wegame Portocol)。这里以URL Scheme测试为例。(其实这里的值写成URL:<myapp> Protocol比较规范)

LetTest文件夹上或空白处右键→新建→字符串值,名字为URL Protocol(不能更改),值一般为你的可执行程序的位置。这里以F:\OtherApps\Program\Python\Python\python.exe为例。(其实这里写什么都能正常执行,但建议这么写)

next step

LetTest文件夹上依次建立shell→open→command文件夹,其中shellopen的默认值都为空,command的值为你要执行的命令。

这里的命令一般为"可执行程序" "%1"(其中"%1"为浏览器等传递的参数)。一般为"C:\LetMeFly.exe" "%1",但是这里以一个简单的Python脚本为例,写为"F:\OtherApps\Program\Python\Python\python.exe" "F:\OtherApps\Program\VsCode\Code\TrySchemeURL\test.py" "%1"。(其中Python.exe的位置和test.py的位置都需要根据实际需求来调整)

next step 2

F:\OtherApps\Program\VsCode\Code\TrySchemeURL目录下(或其他位置)新建test.py,写入以下内容:

import sys
import os

print(sys.argv)
os.system('pause')

在浏览器中输入LetTest://hello/world/?a=1回车,大功告成!

原神启动!

按任意键进入异世界

关于这里为什么显示的是Python而不是URL Scheme测试,我发现command为一个文件的位置时会显示文件名,否则会显示你起的名字。

你还可以为这个Scheme设置一个图标(虽然在浏览器中也不会显示):

LetTest下新建DefaultIcon项,默认值为图标路径。

icon?

这描述太详细(太长)了,能否可视化一点

没问题,结构如下:

HKEY_CURRENT_USER\Software\Classes
    LetTest
        (Default) = URL Scheme测试
        URL Protocol = 
        DefaultIcon
            (Default) = "C:\favicon.ico"
        Shell
            Open
                Command
                    (Default) = "F:\OtherApps\Program\Python\Python\python.exe" "F:\OtherApps\Program\VsCode\Code\TrySchemeURL\test.py" "%1"

导出的.reg文件为:(双击即可食用)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\LetTest]
@="URL Scheme测试"
"URL Protocol"="F:\\OtherApps\\Program\\Python\\Python\\python.exe"

[HKEY_CURRENT_USER\SOFTWARE\Classes\LetTest\DefaultIcon]
@="F:\\OtherApps\\Program\\Python\\Python\\python.exe"

[HKEY_CURRENT_USER\SOFTWARE\Classes\LetTest\shell]

[HKEY_CURRENT_USER\SOFTWARE\Classes\LetTest\shell\open]

[HKEY_CURRENT_USER\SOFTWARE\Classes\LetTest\shell\open\command]
@="\"F:\\OtherApps\\Program\\Python\\Python\\python.exe\" \"F:\\OtherApps\\Program\\VsCode\\Code\\TrySchemeURL\\test.py\" \"%1\""

参考

  • 吕毅的博客写得不错。

原创不易,转载经作者同意后请附上原文链接哦~
https://letmefly.blog.csdn.net/article/details/136083203

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/380617.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高效测试利器:Jmeter+Ant+Jenkins定时监控接口揭秘!

基于JmeterantJenkins的接口性能监控框架 Jenkins的安装和配置 简介 部署到持续集成平台可以实现脚本的定时运行&#xff0c;这是接口测试的核心。 这里我们选用了jenkins,jenkins是一个强大的持续集成系统&#xff0c;使用起来也很简单。 使用步骤如下&#xff1a; 1、 安装…

Redis核心技术与实战【学习笔记】 - 23.Redis 主从切换故障,有哪些坑

前言 Redis 的主从同步机制不仅可以让从库服务更多的读请求&#xff0c;分担主库的压力&#xff0c;而且还能在主库发生故障时&#xff0c;进行主从库切换&#xff0c;提供高可靠服务。 不过&#xff0c;在实际使用主从机制时会踩到一些“坑”&#xff1a;主从数据不一致、读…

保育员怎么搜题答案?用这5款神器就够了!!! #媒体#笔记#知识分享

专供大学生使用的搜题神器&#xff0c;支持拍照搜题、文字搜题、语音搜题等多种搜题方式&#xff0c;能快速找到课本习题的题目答案&#xff0c;而且还会附带详细的答案解析&#xff0c;加深我们对题目的理解。 1.大鱼搜题 这是一个公众号 适合大学生&#xff0c;基本上网课…

动漫风博客介绍页面源码

动漫风博客介绍页面源码&#xff0c;HTML源码&#xff0c;图片背景有淡入切换特效 蓝奏云&#xff1a;https://wfr.lanzout.com/iIDZu1nrmjve

清理神器CleanMyMac X 空间透镜——可视化您的磁盘空间 空间透镜有什么用

不久前&#xff0c;CleanMyMac X 发布了一个新功能&#xff1a; 空间透镜 相信有非常多的小伙伴和小编一样&#xff0c; 对这个功能一脸问号 这啥玩意儿&#xff1f;&#xff1f;&#xff1f; 今天就让我们深入了解一下&#xff0c; CleanMyMac X 的空间透镜功能。 - 更好…

【汇编】简单的linux汇编语言程序

一、Linux系统汇编语言 Linux系统上的汇编语言可以使用不同的语法风格&#xff0c;主要包括Intel语法和AT&T语法。这两种语法有各自的特点和风格区别&#xff0c;尽管它们表示的底层机器指令相同。下面分别对两种语法进行简要说明&#xff1a; Intel语法 Intel语法是由I…

《MySQL 简易速速上手小册》第10章:未来趋势和进阶资源(2024 最新版)

文章目录 10.1 MySQL 在云计算和容器化中的应用10.1.1 基础知识10.1.2 重点案例&#xff1a;使用 Python 部署 MySQL 到 Kubernetes10.1.3 拓展案例 1&#xff1a;在 AWS RDS 上部署 MySQL 实例10.1.4 拓展案例 2&#xff1a;使用 Docker 部署 MySQL 10.2 MySQL 和 NoSQL 的整合…

Web课程学习笔记--JavaScript操作DOM常用的API

JavaScript操作DOM常用的API 1 什么是DOM 文档对象模型 (DOM) 是HTML和XML文档的编程接口。它提供了对文档的结构化的表述&#xff0c;并定义了一种方式可以使从程序中对该结构进行访问&#xff0c;从而改变文档的结构&#xff0c;样式和内容。 文档对象模型 (DOM) 是对HTML文…

基于BiLSTM-CRF模型的分词、词性标注、信息抽取任务的详解,侧重模型推导细化以及LAC分词实践

基于BiLSTM-CRF模型的分词、词性标注、信息抽取任务的详解,侧重模型推导细化以及LAC分词实践 1.GRU简介 GRU(Gate Recurrent Unit)门控循环单元,是[循环神经网络](RNN)的变种种,与 LSTM 类似通过门控单元解决 RNN 中不能长期记忆和反向传播中的梯度等问题。与 LSTM 相…

一文带你读懂JSON模块

json模块 JSON (JavaScript Object Notation)&#xff1a;是一个轻量级的数据交换格式模块&#xff0c;受javascript对象文本语法启发&#xff0c;但不属于JavaScript的子集。 常用方法&#xff1a; dump(obj,fp)&#xff1a;将对象以字符串的形式写入文件中。 load(fp)&am…

解密输入输出迷局:蓝桥杯与ACM中C++/C语言常见问题揭秘

关于C中的常见输入输出汇总 带空格的字符串&#xff1a; ​ 对于这种输入方式我们选择使用gets() 函数来进行输入&#xff0c;gets用于从标准输入&#xff08;通常是键盘&#xff09;读取一行文本并将其存储为字符串&#xff0c;直到遇到换行符&#xff08;‘\n’&#xff09…

Mac电脑到手后的配置

一、Homebrew 1、Homebrew安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 桌面的Old_Homebrew文件夹&#xff0c;没有你需要的可以删除。 2、Homebrew卸载 /bin/zsh -c "$(curl -fsSL https://gitee.com/c…

生物——文献笔记

生物——文献笔记 文章目录 前言藻类群体遗传学研究和进展&#xff08;综述&#xff09;海洋动物群体遗传学的研究进展1. 影响群体基因频率的因素2. 根据自然群体的繁殖体系&#xff0c;海洋动物群体遗传类型可分为以下几类3. 海洋动物群体遗传研究中常用的遗传标记4. 研究展望…

QXlsx Qt操作excel

QXlsx 是一个用于处理Excel文件的开源C库。它允许你在你的C应用程序中读取和写入Microsoft Excel文件&#xff08;.xlsx格式&#xff09;。该库支持多种操作&#xff0c;包括创建新的工作簿、读取和写入单元格数据、格式化单元格、以及其他与Excel文件相关的功能。 支持跨平台…

python爬虫入门(一)

使用requests 库获取网站html信息 import requests response requests.get("https://jingyan.baidu.com/article/17bd8e52c76b2bc5ab2bb8a2.html#:~:text1.%E6%89%93%E5%BC%80%E6%B5%8F%E8%A7%88%E5%99%A8F12%202.%E6%89%BE%E5%88%B0headers%E9%87%8C%E9%9D%A2%E7%9A%84…

STM32F1 - 标准外设库_规范

STM32F10x_StdPeriph_Lib_V3.6.0 1> 头文件包含关系2> .c文件内部结构3> 宏定义位置4> 位掩码bit mask5> .c文件中定义私有变量 1> 头文件包含关系 1个头文件stm32f10x.h 就把整个MCU以及标准外设库&#xff0c;就管理了&#xff1b; 2> .c文件内部结构 …

小白都能看懂的力扣算法详解——链表(二)

LC 24.两两交换链表中的节点 题目描述&#xff1a;给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 24. 两两交换链表中的节点 -…

ARP欺骗攻击利用之内网截取图片

Arp欺骗&#xff1a;目标ip的流量经过我的网卡&#xff0c;从网关出去。 Arp断网&#xff1a;目标ip的流量经过我的网卡 1. echo 1 >/proc/sys/net/ipv4/ip_forward 设置ip流量转发&#xff0c;不会出现断网现象 有时不能这样直接修改&#xff0c;还有另外一种方法 修…

时刻陪伴,爱意无限

情人节即将到来&#xff0c;你是否在寻找一份特别的礼物&#xff0c;既能表达你的心意&#xff0c;又能带来实用的陪伴&#xff1f;那么&#xff0c;华为WATCH GT 4或许是你的不二之选。 华为 WATCH GT 4有两种不同的外观&#xff0c;颜值都超能打。一款是简洁大气的圆形表盘&…

2024年10 个好用的AI简历工具盘点推荐

在职场竞争激烈的今天&#xff0c;一份出色的简历就像是你的秘密武器&#xff0c;能帮你在众多候选人中脱颖而出&#xff0c;赢得面试宝座。随着 ChatGPT 引领的 AI 浪潮席卷而来&#xff0c;各式各样的 AI 简历工具如雨后春笋般涌现。面对这样的背景&#xff0c;神器集今天为大…