LoginSignup
0
0

More than 1 year has passed since last update.

Pythonを管理者権限で実行するためのスクリプトを作成した。

Last updated at Posted at 2022-11-16

pythonを管理者権限で実行するにはショートカットを作成して、管理者権限で実行すればいい。
そのため、pythonのスクリプトのショートカットを作成するスクリプトを作成した。

実行環境

  • windows 10 home
  • python 3.9
  • pip 22.0.4

スクリプト

pip install pywin32
pip install winshell
make_shortcut.py
import os, sys, winshell
from win32com.client import Dispatch

def main():
    if len(sys.argv) != 2:
        return

    # スクリプトの存在確認をする
    target_path = sys.argv[1]
    if os.path.isfile(target_path) is False:
        return 

    save_path = target_path + ' - shortcut.lnk'

    # python の場所を探す
    python_work = None
    paths = os.environ["PATH"].split(os.pathsep)
    for path in paths:
        if path.split(os.path.sep)[-2][:6] == 'Python':
            python_work = path
            python_path = path + 'python.exe'
            break
    
    # python_workの存在確認をする
    if python_work is None:
        return 

    # ショートカットを作成
    shell = Dispatch('WScript.Shell')
    shortcut = shell.CreateShortCut(save_path)
    shortcut.Targetpath = python_path
    shortcut.WorkingDirectory = python_work
    shortcut.Arguments = target_path
    shortcut.save()

if __name__ == '__main__':
    main()

ハマったこと

参考文献にはmklnkとpylnkで作成する方法があったが、パスに日本語があると文字化けして正しいショートカットが作成できなかった。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0