65.9K
CodeProject 正在变化。 阅读更多。
Home

使用简单的 tkinter 脚本替代“在此处打开命令窗口”

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.86/5 (5投票s)

2017年5月31日

CPOL

1分钟阅读

viewsIcon

7304

Tkinter “在此处打开命令窗口”启动器

引言

这里提供一个简单的 Python 脚本,解决 Windows 环境下 shell 编程的一个主要问题,即:如何在正确的文件夹中打开命令窗口?

多年来,很多人在使用 Microsoft Explorer 内置的“Shift+单击文件夹”快捷方式时,不小心点击错误。就我个人而言,我一直觉得这种方法有点笨拙,容易混淆 Shift 和 Control 键,并且没有点击到激活“在此处打开命令窗口”菜单的正确文件夹图标。

最近,我在 Windows 上使用 Python 和 tkinter 玩耍时,发现了一种新的技巧,可以让你在任何想要的地方打开命令窗口。这个想法非常简单,几乎是显而易见的:程序只是提示用户选择一个目录,然后在选定的目录中打开一个自定义的 Windows 命令框。

为什么使用 Python 解决这个问题?仅仅是因为当时我需要在一个选定的目录中打开命令框时,我正在使用 Python。当然,我可以想象一个用 C# 编写的免费软件,执行类似的功能,并且可以通过提供一个带有可调节参数和可加载配置文件的启动菜单来扩展这个想法,从而创建你的命令框。我只是提供了一个最简单、最通用的方法,使用 Python。

Using the Code

代码非常简单。弹出一个 tkinter 对话框,提示用户选择一个目录。然后,将此信息传递给系统调用,以启动一个命令框。

在这个简单的程序中,在 tkinter 环境下唯一的技巧是隐藏顶级窗口,以便只显示对话框。

这是代码

#!python3
"""
File    : m$term.pyw
Creator : WPM (Bill Moore)

tkinter gui to open windows command box
in a selected directory

SETUP: make sure pyw is associated with "pythonw.exe" from microsoft explorer 
       and place this script on your desktop so that it can be double-clicked
       whenever you need it.
"""

import tkinter as tk
import tkinter.filedialog
import sys
import os

def TkStartTerm():
    result = tk.filedialog.askdirectory(
        initialdir = ".",
        mustexist  = True,
        title = "Open Command Window Here"
    )
    if not result:
        return None

    os.chdir(result)

    os.system(
        'start cmd /k "' +
        'color 1f & ' +
        'mode con: cols=140 lines=15000 &' +
        'title cmd ' +
        '"'
    )

def TkRootHide():
    tk.Tk().withdraw()

##########################################
if __name__ == '__main__':

    TkRootHide()
    TkStartTerm()
    sys.exit(0)

就这样。尽情享受吧!

© . All rights reserved.