1

ctypes を使用して winsparkle C ライブラリを呼び出す最小限の python スクリプトを作成しようとしています。コードは、行ごとに実行した場合にのみ機能win_sparkle_check_update_without_ui()し、ウィンドウがポップアップして、期待どおりに更新をダウンロードします。しかし、スクリプトを通常どおり実行すると、この関数は呼び出されてすぐにスキップされ、ハッキーな time.sleep オプションを追加しない限り、開いたままになりません。

この関数を実行し、ユーザーがポップアップを閉じるまで開いたままにする適切な pythonic の方法は何ですか?

from ctypes import CDLL
import logging, time

class UpdateAgent(object):

    def __init__(self, appcast_url):

        self.appcast_url = appcast_url

    def check_for_update(self):

        winsparkle = CDLL("WinSparkle.dll")

        url = self.appcast_url

        winsparkle.win_sparkle_set_appcast_url(url.encode('ascii', 'ignore'))

        winsparkle.win_sparkle_set_app_details(
                                unicode('Company'),
                                unicode('myapp'),
                                unicode(9))

        winsparkle.win_sparkle_init()

        winsparkle.win_sparkle_check_update_without_ui()

        #time.sleep(10)

    def run(self):
        try:
            self.check_for_update()
        except Exception as e:
            logging.info('%s' % (e))
4

0 に答える 0