6.02.2013

pythonでWindows APIのMessageBoxを呼び出してキャンセルを押すと終了する





なんだかんだ言って、windows APIのMessage Boxって、プログラミングしてる感っていうかしずる感っていうかできる奴感が出て好きなんです。


Pythonの場合はctypesモジュールから簡単に呼び出せるんで、おぼえた当初は至る所に発生させて、OKをひたすら連打しなきゃならない最低なプログラムを書いてました。
と言っても、python始めたの4月とかだから2ヶ月前くらいだけど。

Message Boxの基本的な書き方としては、MessBox = ctypes.windll.user32.MessageBoxAみたいな感じでMessageboxを定義する。別にしなくてもいいけど。
そんでそいつのフォーマットというか表示みたいののパラメータを埋めてやればいいってことです。

rep = MessBox(None, 'Message','Caption',1)
()の中のNoneはよくわかんないけど、必須みたい。
で、''の中がメッセージのボディ、タイトルと続いて、最後の数字(上の例だと1)を0にしたり、2にしたりすると、いろいろMessage boxの形が変わる。
設定できる数字は6くらいまであるみたいだけど、だいたい使い勝手がいいのは0か1なので、それ以外は使ったことない。
0=>OKしかでてこないやつ
1=>OKとキャンセルが出てくるやつ

rep=でmessageboxを定義しているのは、messageboxのボタンによって動作を分けたいからで、rep == 1ってのはOKを押されたよってことで、elseだったらキャンセルを押されたから処理を終了。
その後は適当に続いて書いてく感じ。

if __name__ == '__main__':
    MessBox = ctypes.windll.user32.MessageBoxA
    rep = MessBox(None, 'Message','Caption',1)
    if rep == 1:
        process1()
        sys.exit()
    else:
        STOP = True;
        sys.exit()


-->

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...