0

ログメッセージを読む必要があるときにコンソールを表示/非表示にできるアプリもあります。たとえば、Blender3Dはそれを可能にします(blender.org)。

これがPythonで実行できるかどうか、そしてどのように実行できるのか疑問に思いました。

私のメインウィンドウはPanda3D(panda3d.org)ウィンドウです。「実際の」コンソール(pythonw)を非表示にして別のコンソールを作成し、「実際の」コンソールを「表示」するたびに、すべてを「実際の」コンソールからそのコンソールにリダイレクトするというオプションがあることをどこかで読みました。これをどのように行うことができるかわかりません。

または、少なくとも、構成ファイルなどを読み取って、コンソールを使用してプログラムを開始するか、コンソールを使用せずにプログラムを開始するかを選択する方法。

4

1 に答える 1

1

ブレンダーでのこのコンソールの切り替えはWindows専用であるため、Windowsについて話していると思います。Blender はWindowsGetConsoleWindowで とShowWindowを使用していると思います。

これは、pywin32を使用して python で行う方法です。

import win32gui, win32console, win32api, win32con
import time

console_window = win32console.GetConsoleWindow()
time.sleep(1)
win32gui.ShowWindow(console_window, win32con.SW_HIDE)
time.sleep(1)
win32gui.ShowWindow(console_window, win32con.SW_SHOW)
time.sleep(1)

このプログラムを pythonw ではなく python で実行すると、コンソールが表示され、1 秒間スリープし、コンソールが非表示になり、さらに 1 秒間スリープしてから再び非表示になります。

このコードは Windows でのみ機能することに注意してください。他のプラットフォームでは、このようなばかげたことは必要ありません。プログラムにコンソールを表示させたい場合は、コンソールから実行するからです。

于 2013-01-30T20:18:12.137 に答える