【问题标题】:How to associate my TKinter application to .txt files [duplicate]如何将我的 TKinter 应用程序关联到 .txt 文件 [重复]
【发布时间】:2021-07-28 07:01:44
【问题描述】:

我在 Tkinter,python 中开发了一个 .txt 文件打开器应用程序。我创建了 .exe 的代码,然后我还使用 InnoSetup 创建了一个setup.exe。所以现在我希望所有的 .txt 文件都应该用我的应用程序打开。

就我的编码技能而言,我认为这不是 Python 可以处理的。我认为一些 PowerShell 命令或 InnoSetup 可能能够处理它。

所以我在应用程序中有一个打开的功能。像这样的:

def open(filepath):
    bla bla bla

一段时间后,我开始思考它将如何使用位于我的代码中的 open 函数。谁能帮我弄清楚如何将我的应用程序与所有 .txt 文件关联起来?

如果此问题缺少信息,请发表评论。我一定会澄清的。

【问题讨论】:

    标签: python python-3.x tkinter inno-setup


    【解决方案1】:

    这需要 Windows 注册表的一些解决方法。这个问题的答案可能会有所帮助:Associate file extension to python script, so that I can open the file by double click, in windows

    在你的情况下,因为它是一个 EXE,你可能需要稍微改变一下命令。

    首先,以管理员身份运行 cmd(命令提示符)。 您可以通过搜索 cmd 并右键单击它以单击“以管理员身份运行”选项来执行此操作。 路径可以只是“C:\WINDOWS\system32>”。

    我尝试更改“%*”,将其删除,最后,我得到了一个有效的命令! 我尝试了以下命令,它适用于 EXE:

    ftype txtfile=C:\Users\<Your name goes here>\main.exe %1
    

    或者您的 EXE 所在的任何位置(复制并粘贴带有文件名的路径)。

    EXE 的语法是ftype txtfile=&lt;path&gt;\&lt;filename&gt;.exe %1

    现在,您应该更改了打开 .txt 文件的默认应用!

    可以使用assoc .foo = foofile 更改名称“txtfile” 您可以在 Honest Abe 的回答中找到更多相关信息。

    我猜你也可以对其他注册的文件类型做同样的事情。

    由于您希望分发设置,我认为更改 python 文件中的某些内容可能会有所帮助,因为它需要管理员权限... 可能是这样的:

    import win32com.shell.shell as shell
    commands = 'ftype txtfile=C:\Users\<Your name goes here>\main.exe %1'
    shell.ShellExecuteEx(lpVerb='runas', lpFile='cmd.exe', lpParameters='/c '+commands)
    

    此问题提供了有关如何以管理员身份运行命令提示符的更多信息:How to run cmd command in Python with admin

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多