You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10下如何识别程序处理的URL来自哪个调用应用?

获取触发链接的源应用并实现智能浏览器跳转

完全可以实现!你可以通过获取父进程信息来确定触发链接的源应用,结合链接规则就能自动在不同浏览器/配置文件打开链接,具体方法如下:

  • 获取源应用:通过父进程查询
    你的Python程序被调用时,自身进程的父进程就是触发它的程序(或中间进程),用psutil库就能轻松拿到父进程名称:

    1. 先安装psutil:pip install psutil
    2. 在代码里加这段逻辑:
      import psutil
      import os
      
      def get_source_app():
          current_pid = os.getpid()
          parent_pid = psutil.Process(current_pid).ppid()
          try:
              return psutil.Process(parent_pid).name()
          except (psutil.NoSuchProcess, psutil.AccessDenied):
              return "未知应用"
      
      # 调用后就能拿到触发应用的进程名,比如Discord.exe、Steam.exe
      source_app = get_source_app()
      

    要是遇到explorer.exe这类系统中间进程,可以再遍历上层进程树,找到真正的触发应用。

  • 实现智能跳转:结合链接和源应用判断
    拿到链接和源应用后,写判断逻辑调用对应浏览器就行,用subprocess启动浏览器进程:

    import subprocess
    
    def open_url(url, browser_cmd):
        # browser_cmd是浏览器路径,带启动参数的话直接加进去,比如Chrome指定配置文件
        subprocess.Popen(browser_cmd + [url])
    
    # 示例判断逻辑
    target_url = "命令行传入的链接参数"
    source_app = get_source_app()
    
    if "app.slack.com" in target_url:
        # 工作浏览器,比如带特定配置文件的Chrome
        open_url(target_url, ["C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe", "--profile-directory=Work"])
    elif source_app == "Steam.exe":
        # 测试浏览器路径
        open_url(target_url, ["C:\\Path\\To\\TestBrowser\\browser.exe"])
    else:
        # 常规默认浏览器
        open_url(target_url, ["C:\\Path\\To\\DefaultBrowser\\browser.exe"])
    
  • 小提示

    • 不同浏览器的启动参数不一样,比如Firefox用-P "ProfileName"指定配置文件,提前查好对应参数就行。
    • 处理异常情况,比如浏览器路径不存在、权限不够,避免程序崩溃。

内容的提问来源于stack exchange,提问作者wolfinabox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 16:12:14