PythonでUACのような環境を作成する方法はありますか?基本的にWindowsのロック画面を使わずにワークステーションをロックしたいのですが。ユーザーは、ワークステーションのロックを解除するためにパスワードを入力する以外は何もすることはできません。Pythonですべての入力を受け取ります(UACなど)
答えて
GUIツールキットを使用すると、画面全体をカバーするウィンドウを描画し、次にキーボードイベントのグローバルグラブを実行して、効果を得ることができます。しかし、私はそれがctrl-alt-delのようなものをウィンドウで捕まえるかどうかはわかりません。
たとえば、Tkinterではメインウィンドウを作成してから、overrideredirect
メソッドを呼び出して、すべてのウィンドウ装飾(ウィンドウマネージャにそのようなことがあると仮定して、標準のウィンドウタイトルバーとウィンドウ枠)をオフにします。モニターのサイズを照会し、このウィンドウをそのサイズに設定することができます。しかし、これでOSXのメニューバーを重ねることができるかどうかはわかりません。最後に、grab
を実行すると、すべての入力を特定のウィンドウに強制します。
この効果は、ユーザーになるためのロックアウトの方法によって異なります。 * nix/X11システムでは、それらをほぼ完全にロックすることができます(テスト中にリモートログインが可能か、コードにバグがある場合は強制的に再起動する必要があります)。 WindowsまたはOSXでは、有効性が少し低下する可能性があります。
ありがとう、それは私が必要としたものです。 –
オペレーティングシステムとの協力なしには、この操作を行うことはできません。あなたが何をするにしても、Ctrl-Alt-Delはユーザーがあなたのロックを迂回できるようにします。
どのようにしてOSとPythonを連携させることができますか?あるいは、Ctrl-Alt-Delやタスクマネージャを無効にする方法はありますか? –
Ctrl-Alt-Delまたはタスクマネージャを無効にしたいのはなぜですか?これらの仕組みは、ユーザが悪質なプログラムを殺すために不可欠です。ワークステーションのロックを偽装し、パスワードを盗もうとするトロイの木馬。 –
あなたがここに与えられた指示に従って適切な方法でワークステーションをロックすることができます。 '輸入ctypesの ctypes.windll.user32.LockWorkStation()' http://timgolden.me.uk/python/win32_how_do_i/lock_my_workstation.html しかし、これは回避したいデフォルトのロック画面を表示します。 – stanwise
Win32で検索するAPI呼び出しは、CreateDesktop
とSetThreadDesktop
の組み合わせです。
Vista +デスクトップの内部では、MSDN covers thisと同様にthis blog postとなります。これは、あなたがしていることを知るための必要な背景を与えるでしょう。
UACダイアログのように見えますが、consent.exe
は実際にデスクトップのスクリーンショットを取り、それを新しいデスクトップの背景にコピーします。それ以外の場合、デスクトップは空になります。
他の回答者が指摘しているように、Ctrl + Alt + Deleteは引き続き機能します。とにかく、キーボードドライバを交換することなく、少なくともその周りには道はありません。
Pythonでこれを行う方法については、pywin32はSetThreadDesktopなどを実装しているようです。私はWin32との互換性がわかりません。必要に応じて動作しない場合は、python extensionが必要になる場合があります。彼らは聞こえるほど難しいとは言えません。
私はpygameを試してみましょう。それはマウスを自分自身にロックして、それですべての入力を保持することができるからです。しかし、このテストは多くのテストなしでは安全ではないでしょう、ctr-alt-delはおそらくエスケープします。今すぐウィンドウで。
(ブライアン・オークリーの答えは、パイゲームを除いて全く異なりません)
- 1. RubyでSTDINからの入力を受け取ります
- 2. Yii2コンソールコマンドでユーザー入力を受け取ります
- 3. Pythonでユーザー入力としてイメージを受け取る方法
- 4. Webページからの入力をPythonプログラムに受け取ります
- 5. 任意のユーザー入力を受け取ります
- 6. GTK +アプリケーション:ワーカースレッドからの入力を受け取ります
- 7. ドロップダウンメニュー、ユーザーからの入力を受け取ります
- 8. Shiny:モジュールからの入力を受け取ります
- 9. VB.net/Oracleは、テキストボックス入力からデータグリッドへの入力を受け取ります
- 10. Pythonはスタックされずにキーボード入力を受け取ります
- 11. ログインテンプレートすべての入力を受け入れる
- 12. Twilio Gather、遅延なしでユーザーの入力を受け取ります
- 13. ノックアウトJS Computed Observableもユーザー入力を受け取ります
- 14. Haskell - ランタイム中に入力を受け取ります
- 15. do whileステートメントからユーザー入力を受け取ります
- 16. Actionscript入力を受け取りIntと比較します
- 17. Speechからユーザー入力を受け取りますか?
- 18. Cプログラムは標準入力を受け取ります
- 19. マイクで音声の入力を受け取る方法 - python
- 20. BufferedReaderを使用してJavaで入力を受け取ります
- 21. whileループでは、fgets()は改行を入力として受け取ります。
- 22. 投稿フォームを入力する前に入力フォームの入力を受け取ります
- 23. Pythonで入力と応答を受け取るチャットロボット
- 24. ユーザーの入力を受け取り、execvpを実行する
- 25. cinが入力として入力を受け付けない
- 26. グラフィックスを使用してユーザーからの入力を受け取ります
- 27. ユーザからの行列入力を受け取りました
- 28. NSStatusBarのNSDatePicker NSSMenuItemは入力を受け取りません
- 29. 固定長文字列をCの入力として受け取ります
- 30. Panelbarの入力がkendo-ui-angular2の入力を受け取っていない
私は調査しました。私はctypesからLockWorkstationについて知っていますが、それは私が探しているものではありません。 –
"何もできない"とは、すべてのファンクションキーと特殊キー(ウィンドウのctrl-alt-delなど)を無効にしたいということですか? –