如何启用单击的单击和拖动python文件

问题描述 投票:0回答:1

我有一个简单的Python脚本,我想在Windows 11中启用拖放文件到Python脚本中。这可行。但是,只有我将Python Launcher设置为Python文件类型的默认应用程序。 双击时,我想启动编辑器。 我的想法是创建一个批处理文件作为Python脚本的默认应用程序,并在没有参数的情况下启动我的编辑器,并在Python Launcher中启动它,如果它具有参数。 我无法完全工作。但是,当创建未自动关闭的编辑器命令窗口时。

test drag.py

import sys import os if __name__ == "__main__": test_file_name = os.path.join(os.path.split(sys.argv[0])[0], "test.txt") if len(sys.argv) > 1: with open(test_file_name, 'w', newline='\n') as f: f.write("file names:") f.write("\n") for file_path in sys.argv[1:]: f.write(file_path) f.write("\n") else: with open(test_file_name, 'w', newline='\n') as f: f.write("no file names") f.write("\n")

C:\drag\python_drag.cmd

@echo off if not "%~2"=="" ( :: Arguments detected, so files were dragged on it. Calling it with python. START /B python.exe %* ) else ( :: No arguments detected, so double clicked. Opening it with editor (vscode) START /B code %1 )
OPEN命令键通过命令行更新:

reg add "HKEY_CLASSES_ROOT\Python.File\shell\open\command" /ve /t REG_EXPAND_SZ /d "\"C:\drag\python_drag.cmd\" \"%L\" %*" /f

SETDROPHANDLER如果需要(如果使用PY Launcher安装最新的Python版本,则应设置它)。 
enable_python_drag_and_drop.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler]
@="{60254CA5-953B-11CF-8C96-00AA00B8708C}"

启动Python窗口短暂打开(您只能看到轮廓),然后关闭自动allatomaticallt。
启动VScode时,它将打开一个不关闭的额外窗口。 如何修复它?

Edit: 我想出了如何至少最小化窗口的方法:

START /w /min cmd /c "call code %1"

或:
START /w /min cmd /c "call code.cmd %1"

python visual-studio-code batch-file
1个回答
0
投票
已从bin文件夹中移出。 bin文件夹内部仅是

code

code.cmd
。现在是一个文件夹。运行
code.exe
直接解决问题。没有创建窗口。
这是
C:\drag\python_drag.cmd
@echo off

if not "%~2"=="" (
    :: Arguments detected, so files were dragged on it. Calling it with python.
    START /B "" python.exe %*  
) else (
    :: No arguments detected, so double clicked. Opening it with editor (vscode)    
    START "" "%LOCALAPPDATA%\Programs\Microsoft VS Code\code.exe" %1
)
exit

它已添加了此命令:
reg add "HKEY_CLASSES_ROOT\Python.File\shell\open\command" /ve /t REG_EXPAND_SZ /d "\"C:\drag\python_drag.cmd\" \"%L\" %*" /f


最新问题
© www.soinside.com 2019 - 2024. All rights reserved.