windows 中有办法知道上一个窗口里的内容么,比如: 文件管理器里的路径 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qping
V2EX    Windows

windows 中有办法知道上一个窗口里的内容么,比如: 文件管理器里的路径

  •  
  •   qping 236 天前 2184 次点击
    这是一个创建于 236 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想实现类似在文件管理器界面上通过快捷键能打开一个我自己的应用,希望能知道之前文件管理器中打开的路径是什么

    使用场景是,根据当前的路径分析工程类型,然后调用 IDE 打开项目,快速打开 rider/intellij/vscode 这个有办法实现么

    https://imgur.com/a/6LDCq9T

    尝试问了下 cursor ,给的几个方案调用了 windows api ,都不管用

    22 条回复    2025-04-25 20:51:49 +08:00
    tabris17
        1
    tabris17  
       236 天前
    我不明白你所谓的“通过快捷键能打开一个我自己的应用”是什么意思

    如果你是地址栏里输入`cmd`打开命令行的话,那么在程序里用`GetCurrentDirectory()`就行
    qping
        2
    qping  
    OP
       236 天前
    @tabris17 "我自己的应用" 是类似 alfred/ raycast 之类的启动器,想自己写个 wpf 程序
    mercury233
        3
    mercury233  
       236 天前
    autohotkey 专门做这个的,安装后附带有个 window spy 能看到一些可以轻松提取的
    qping
        4
    qping  
    OP
       236 天前
    @mercury233 看起来是我要的,谢谢,我去瞅瞅
    qping
        5
    qping  
    OP
       236 天前
    @mercury233 这个 spy 只能获取 windows 的 exe 名等,explorer.exe 内部的一些状态获取不到
    https://imgur.com/a/oOBFejR
    hafuhafu
        6
    hafuhafu  
       236 天前
    你是想实现 Listary 的 Ctrl+G 吧
    lzoje
        7
    lzoje  
       236 天前
    右键在当前路径打开?
    newaccount
        8
    newaccount  
       236 天前
    这玩意不就是 git bash here 吗?
    具体实现还是有点繁琐,要你在大模型上问一下这个 “如何实现类似 git bash here 的功能”
    大概流程就是你要写个 bat 脚本来进行判断分析,路径可以在脚本中获取到,然后把这个脚本通过注册表注册到右键菜单
    qping
        9
    qping  
    OP
       236 天前
    @hafuhafu 差不多,不过是要知道上一个窗口的状态
    xtreme1
        10
    xtreme1  
       236 天前
    mercury233
        11
    mercury233  
       236 天前
    @qping #5 看看 All Text 里有没有
    julyclyde
        12
    julyclyde  
       236 天前
    无名师的 GUI 论

    一晚,无名师和 Nubi 参加一个程序员的探讨会。有个程序员问 Nubi 和他的老师来自哪所学校。当得知他们是 Unix 大道的追随者时,程序员颇为不屑。

    “Unix 命令行工具太粗糙太落后”,他讥讽道。“现代的、设计得当的操作系统可以在图形用户界面中做任何事情。”

    无名师一言不发,只是指着月亮。旁边的一条狗对着他的手狂吠。

    “我不明白。”程序员说。

    无名师依然缄默,指着一幅佛祖像,然后又指着一扇窗。

    “你想说什么?”程序员问。

    无名师指着程序员的头,接着指着一块大石。

    “请把话说清楚!”程序员要求道。

    无名师深深蹙眉,轻拍程序员的鼻子两下,把他扔到旁边的垃圾箱中。

    程序员试图从垃圾堆挣扎出来之时,那条狗跑过来在他身上便溺。

    此时,程序员眼中一亮。
    qping
        13
    qping  
    OP
       236 天前
    @xtreme1 感谢,c++全忘光了,我研究下


    @mercury233 没,不过找到个 AHK 的脚本可以查到 explorer 中选中的文件


    @julyclyde 我喜欢 GUI , 但同样我也不排斥命令行
    julyclyde
        14
    julyclyde  
       236 天前
    @qping 你这个回复并没有任何信息量

    我想说的是,既然那软件已经决定了用视觉而非符号通信的形式来表达,你还非要死磕它,那就很难了
    不如考虑一下能不能让它直接输出符号
    qping
        15
    qping  
    OP
       236 天前 via iPhone
    @julyclyde 嘿,哥们,你之前的回复了一堆字,看着是想表达什么,让人猜谜语的话,不能怪我回复没有信息量啊,你早这么说不就明白了

    不是我死磕,是这些功能在 macos 上是可以已经存在的的,想尝试下能不能在 windows 上复现,生命在于折腾不是么
    ysc3839
        16
    ysc3839  
       236 天前   1
    获取“上一个持有焦点”的窗口,可以参考 KeePass 模拟键盘输入密码的代码,KeePass 模拟键盘输入密码前会自动跳转回上一个持有焦点的窗口。
    获取文件资源管理器窗口的路径,可以考虑从窗口中的一些子窗口提取,Win10 是有一个工具条中包含完整路径的,Win11 就不知道了。
    cnbatch
        17
    cnbatch  
       235 天前   1
    换个思路

    在 Windows 要做这种事,更适合的做法是做个 Explorer Shell 扩展,然后让某个快捷键组合跟这个扩展关联起来。

    这样按下快捷键时就能调用 Shell 扩展,该扩展就可以获取当前 Explorer 的内容了。

    搜索关键词:
    windows explorer.exe shell 扩展
    windows explorer.exe shell extension
    julyclyde
        18
    julyclyde  
       235 天前
    @qping 这谜语很旧了。大概有四十多年了
    mmdsun
        19
    mmdsun  
       235 天前 via iPhone   1
    获得当前鼠标位置下的 Windows 资源管理器路径?
    https://blog.csdn.net/qq_18218335/article/details/56677351 类似这种?
    boy666
        20
    boy666  
       235 天前 via Android
    没看懂啥意思,难道你需要的是这个? https://getquicker.net/
    UnluckyNinja
        21
    UnluckyNinja  
       234 天前 via Android
    猜你想找:右键上下文菜单自定义命令,注册表里抄一下或者看看其他软件怎么添加的(比如 vscode ),路径就在启动参数里,再通过任意进程通信方式,发送到正在运行的应用就行了(或者直接启动新实例)。
    通过窗口获取信息太 hack 了,非常容易兔子洞
    qping
        22
    qping  
    OP
       234 天前
    @mmdsun 不太行,win11 已经无法通过那个获取了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4943 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 03:51 PVG 11:51 LAX 19:51 JFK 22:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86