1

この質問から、 Pythonに色を付ける方法を学びました。私はすべてのカラーコードを理解しました、心配しないでください。
とにかく、私のために働いた答えは、oripによるctypesでした。ctypes.windll.kernel32.SetConsoleTextAttribute(handle, AQUA)テキストに色を付けるたびに入力しなければならないのは少し面倒です。それを関数に変換する方法はありますか?関数を介して変数を送信する方法がわかりません。また、たとえ送信したとしても、それらを実装する方法がわかりません。
前もって感謝します!-ghostmancer私にとって重要なのは、それが私のために機能することです-私は自分のスクリプトを配るつもりはありません。私の色:

BLACK    = 0x0000
BLUE    = 0x0001
GREEN    = 0x0002
RED    = 0x0004
PURPLE    = 0x0005
YELLOW    = 0x0006
WHITE    = 0x0007
GRAY    = 0x0008
GREY    = 0x0008
AQUA    = 0x0009 #Very Blue
4

5 に答える 5

3

うーん...私が正しく理解していれば...

def a_func(handle,color):
   ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)

a_func(handle,AQUA)

またはさらに良い

colorFunc = ctypes.windll.kernel32.SetConsoleTextAttribute
colorFunc(handle,AQUA)
于 2012-09-09T05:17:47.333 に答える
2

defまたはを使用して新しい関数を作成する必要はありませんlambda。長い名前の関数を短い名前に割り当てるだけです。例:

textcolor = ctypes.windll.kernel32.SetConsoleTextAttribute
textcolor(handle, color)
于 2012-09-09T05:33:17.183 に答える
1

1つの方法は

def textcolor(handle, color):
    ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)

あなたはそのように呼びます:

textcolor(handle, AQUA)
于 2012-09-09T05:17:41.470 に答える
0

次を使用できます。

f=lambda handle,color:ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)

f(<Actual handle object>, <color>)そして、どこにでも電話してください。たとえばf(handle, AQUA)、必要な呼び出しになります

于 2012-09-09T05:19:02.453 に答える
0

変数'handle'は定義されていなくてもどこでも見られるので、不思議に思う人のために、stdoutに関する限り、これを取得する方法を示します。これにより、次のように使用できますctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)

STD_OUTPUT_HANDLE = -11
handle = ctypes.windll.kernel32.GetStdHandle(-STD_OUTPUT_HANDLE)
于 2019-11-13T17:29:59.047 に答える