0

Python を使用してこのチュートリアルに従って Windows サービスを作成できました: http://ryrobes.com/python/running-python-scripts-as-a-windows-service/

ただし、COM 経由で新しい Outlook メールを開くスクリプトをこれに実装しようとしました。このスクリプトはサービスの外部で機能しますが、問題を次の行にまでさかのぼったようです。

obj = win32com.client.Dispatch("Outlook.Application")

これをさらに調べたところ、Vista と Windows 7 の UAC により、ユーザーと対話するサービスがブロックされたようです。詳細情報 - http://msdn.microsoft.com/en-us/library/windows/desktop/ms683502%28v=vs.85%29.aspx

私の質問は次のとおりです。これを回避する最善の方法は何ですか? 確実にオンにすると動作するPythonスクリプトがありますが、起動ディレクトリにバッチ/cmdファイルを残すのはちょっと間違っているようです。

アイデアをお寄せいただきありがとうございます。

Windows 7 x64 (エンタープライズ グループ ポリシーにも拘束されています。ローカル管理者権限しかありません)

4

1 に答える 1

0

あなたの「詳細情報」リンクには、おそらく実現可能な 2 つの手法が記載されています。

  • 「WTSSendMessage 関数を使用して、ユーザーのセッションでダイアログ ボックスを表示する」
  • 「別の非表示の GUI アプリケーションを作成し、CreateProcessAsUser 関数を使用して、対話型ユーザーのコンテキスト内でアプリケーションを実行します。...」

しかし、これらの 回答Simon Mourierのコメントで述べたように、最も簡単な解決策はおそらくサービス + バックグラウンド プロセス イン ユーザー セッション + IPC です。

さらに、Outlook 経由で新しい電子メールを作成しようとしている場合は、適切なコンテキストを得るために、ユーザーのセッションで何かを実行したい/必要とするでしょう。

于 2014-06-06T22:42:39.847 に答える