2016-04-22 32 views
0

私はSendKeysでブラウザを制御するアプリケーションを作成しています。しかし、SendKeysがキーボードを完全に制御できるようになるので、私は別のユーザーの下でこのアプリを実行したい。このように私は働くだろう、アプリケーションはそれが何をしなければならないか、そして我々はお互いに問題を起こさない)。Windowsで別のユーザーによって開始されたPython制御アプリケーション

最も簡単なコードでは、私は「ハロー」私のテキストを挿入して、待ちたい分野に焦点を当て、それを実行

import time 
import SendKeys 

time.sleep(10) 
SendKeys.SendKeys('hello') 

です。ユーザーを変更しないと、すべてが期待通りに実行されます。 しかし、私はそれを実行すると、ユーザーを変更し、10秒後に戻って、私はSendKeysは、プログラムに何も送られて参照してください。

別のユーザーのプログラムにキーストロークを送信するにはどうすればよいですか?

(私はパイナイトと同じことをしようとしていましたが、結果はほぼ同じでした。ユーザーを変更していないとすべてが良いですし、変更してもエラーですので、はるか簡単ですSendKeysだけでこの問題を解決する)。

+1

ユーザーXがユーザーYからアプリケーションにキーストロークを送信できるアプリケーションは、大きなセキュリティ上の問題となります。それは設計上可能ではないはずです。 –

+0

ユーザーYの下で自動化スクリプトを実行する方法はありますか?もちろん、そのための簡単なランチャースクリプトが必要です。 –

+0

@JoãoPintoいいえ、ユーザーXはプログラムを実行し、Xの環境で実行する必要があります。ユーザーが変更された場合でも、すべてのプログラムは引き続き動作する必要があります。たとえば、何かを計算してユーザーを別のスクリプトに変更するスクリプトを実行すると、再配置後にそのスクリプトがそのすべての時間にわたって動作していたことがわかります。 – SKulibin

答えて

1

コメントとチャットでの議論を要約するだけです。あなたの希望は非常に広いです。私はちょうどあなたに学ぶべき方向性を示すことを試みています。

SendKeys/TypeKeys/ClickInputメソッド(実際のユーザーとして動作する)を使用する場合は、ローカルではなくリモートセッションでオートメーションスクリプトを実行する必要があります。これは私の他の答えで詳細に説明されています:SetCursorPos fail with "the parameter is incorrect" after rdp session terminated

自動化を同じマシン上でサイレントモード(最小化状態)で実行する場合は、非表示ウィンドウを処理する例があります。Python - Control window with pywinauto while the window is minimized or hidden。ウィンドウを最小化して、サイレントメソッド(ほとんどすべてClickInputTypeKeysを除く)を使用してください。

pywinautoとGUIの自動化に関するさらに詳しい質問があります。

関連する問題