2012-04-01 4 views
0

PythonでUACのような環境を作成する方法はありますか?基本的にWindowsのロック画面を使わずにワークステーションをロックしたいのですが。ユーザーは、ワークステーションのロックを解除するためにパスワードを入力する以外は何もすることはできません。Pythonですべての入力を受け取ります(UACなど)

+0

私は調査しました。私はctypesからLockWorkstationについて知っていますが、それは私が探しているものではありません。 –

+0

"何もできない"とは、すべてのファンクションキーと特殊キー(ウィンドウのctrl-alt-delなど)を無効にしたいということですか? –

答えて

1

GUIツールキットを使用すると、画面全体をカバーするウィンドウを描画し、次にキーボードイベントのグローバルグラブを実行して、効果を得ることができます。しかし、私はそれがctrl-alt-delのようなものをウィンドウで捕まえるかどうかはわかりません。

たとえば、Tkinterではメインウィンドウを作成してから、overrideredirectメソッドを呼び出して、すべてのウィンドウ装飾(ウィンドウマネージャにそのようなことがあると仮定して、標準のウィンドウタイトルバーとウィンドウ枠)をオフにします。モニターのサイズを照会し、このウィンドウをそのサイズに設定することができます。しかし、これでOSXのメニューバーを重ねることができるかどうかはわかりません。最後に、grabを実行すると、すべての入力を特定のウィンドウに強制します。

この効果は、ユーザーになるためのロックアウトの方法によって異なります。 * nix/X11システムでは、それらをほぼ完全にロックすることができます(テスト中にリモートログインが可能か、コードにバグがある場合は強制的に再起動する必要があります)。 WindowsまたはOSXでは、有効性が少し低下する可能性があります。

+0

ありがとう、それは私が必要としたものです。 –

3

オペレーティングシステムとの協力なしには、この操作を行うことはできません。あなたが何をするにしても、Ctrl-Alt-Delはユーザーがあなたのロックを迂回できるようにします。

+0

どのようにしてOSとPythonを連携させることができますか?あるいは、Ctrl-Alt-Delやタスクマネージャを無効にする方法はありますか? –

+2

Ctrl-Alt-Delまたはタスクマネージャを無効にしたいのはなぜですか?これらの仕組みは、ユーザが悪質なプログラムを殺すために不可欠です。ワークステーションのロックを偽装し、パスワードを盗もうとするトロイの木馬。 –

+0

あなたがここに与えられた指示に従って適切な方法でワークステーションをロックすることができます。 '輸入ctypesの ctypes.windll.user32.LockWorkStation()' http://timgolden.me.uk/python/win32_how_do_i/lock_my_workstation.html しかし、これは回避したいデフォルトのロック画面を表示します。 – stanwise

2

Win32で検索するAPI呼び出しは、CreateDesktopSetThreadDesktopの組み合わせです。

Vista +デスクトップの内部では、MSDN covers thisと同様にthis blog postとなります。これは、あなたがしていることを知るための必要な背景を与えるでしょう。

UACダイアログのように見えますが、consent.exeは実際にデスクトップのスクリーンショットを取り、それを新しいデスクトップの背景にコピーします。それ以外の場合、デスクトップは空になります。

他の回答者が指摘しているように、Ctrl + Alt + Deleteは引き続き機能します。とにかく、キーボードドライバを交換することなく、少なくともその周りには道はありません。

Pythonでこれを行う方法については、pywin32はSetThreadDesktopなどを実装しているようです。私はWin32との互換性がわかりません。必要に応じて動作しない場合は、python extensionが必要になる場合があります。彼らは聞こえるほど難しいとは言えません。

1

私はpygameを試してみましょう。それはマウスを自分自身にロックして、それですべての入力を保持することができるからです。しかし、このテストは多くのテストなしでは安全ではないでしょう、ctr-alt-delはおそらくエスケープします。今すぐウィンドウで。

(ブライアン・オークリーの答えは、パイゲームを除いて全く異なりません)

関連する問題