ちょっと調べればわかることですが、WindowsTerminalでコマンドプロンプトも扱うようにしたので、タブがいくつもあってどれが何のタブなのかわかりにくくなってしまい、実行しているPythonスクリプトからタブに表示されるタイトルを変更できないかと思いまして。
調べてみると、コンソールからコマンドで "title" というのがあり、Pythonからは
subprocess.run(["cmd", "/c", "title", "アブラカタブラ"])
みたいにすればできることがわかりました。
ところでこのtitleコマンドがどこにあるのか調べてみたら、cmd.exeのビルトインコマンドだということがわかりました。
C:\Users\kats$ wsl strings /mnt/c/Windows/System32/cmd.exe | grep -i title
GetConsoleTitleW
SetConsoleTitleW
GetConsoleTitleW
SetConsoleTitleW
ここで、Win32 APIのSetConsoleTitleW()というのが呼ばれていることがわかりました。wslマジ有能。
それじゃあこのWin32 APIを叩けるPythonモジュールはないかと探したら、Pywin32にありました。
Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from win32api import SetConsoleTitle
>>> SetConsoleTitle("アブラカタブラ")
>>>
Type "help", "copyright", "credits" or "license" for more information.
>>> from win32api import SetConsoleTitle
>>> SetConsoleTitle("アブラカタブラ")
>>>
とまあこれだけでタイトルが変わりました。
どっとはらい。
0 件のコメント:
コメントを投稿