• ベストアンサー

VB.NETで、[Ctrl]+[Alt]+[Del]を無効にするプログ

VB.NETで、[Ctrl]+[Alt]+[Del]を無効にするプログラムを考えています。 グローバルキーフックを使用しないで、実現する方法はありますでしょうか? ご教示の程お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

>グローバルキーフック これの引数っていろいろありますよね? マウスとキーボードだけは.NETで捕らえることができます。 ただCTL+ALT+DELというショートカットは、これらの管理よりもっと深いところで行われているので、仮にCで作成してフックしても目的の制御の実現は出来ません。 >グローバルキーフックを使用しないで となると、やはり#1さんの方法しかありません。 #1さんの参考URL中に 「SAS発生時の動作:」 というのがあります。そこに 「GINAのWlxLoggedOnSas()」 というところがあるのですが、その近辺を熟読してください。 そしてこれ http://msdn.microsoft.com/en-us/library/aa380570(VS.85).aspx #1さんが示した情報は「古い」のではなく、古くから存在する実現方法というだけです。 そして現在、新たな別方法が出現しているわけではありません。 .NETで作成するDLLとCで作成するDLLは当然異なりますので、質問の 「VB.NETで、[Ctrl]+[Alt]+[Del]を無効にするプログラム」 という質問には、「無理です」としか言いようがありません。

ten002
質問者

お礼

その後色々考えましたが、Vista/7 以降はマイクロソフト社も対応していないので、現実を考えますと無理だとわかりました。 この件は、残念ですが、諦めます。 皆さん、色々お知恵をいただきまして、誠にありがとうございました。 また何かの機会がございましたら、その時はお知恵をお貸しください。 どうもありがとうございました。

ten002
質問者

補足

ご回答ありがとうございます。 なかなか難しい課題ですね。 貴重なご意見、誠にありがとうございます。

その他の回答 (7)

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.8

失礼しました、 私の回答のイメージとしては、 展示会場等に設置する、誰でも触れるパソコンで、 ずっとある特定のプログラムのみが動作している 環境を想定して書いています ですので、[ALT]が無理であれば、[CTRL]でも何でも ハード的に殺してしまって、隠してあるキーボード でユーザーがメンテナンスを行うイメージでの回答 ですので、 そもそもの考えが違うのであれば、無視してください。 連投すみません

ten002
質問者

補足

ご回答ありがとうございます。 お察しの通り、イメージが違いますね。 せっかくご回答いただいたのに、申し訳ございません。 他の方法を検討したいと思います。 ご回答ありがとうございました。

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.7

いえ、USBキーボードを追加して、1台のパソコンに2つのキーボードがあるイメージで 一般向けは ALT を殺した方として、 もう1つのキーボードは隠した状態で使用するイメージです (キーボードは2つ接続すれば、2つとも認識するので)

ten002
質問者

補足

ご回答ありがとうございます。 残念ながら、キーボードは一つだけです。 申し訳ございません。

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.6

特定のPCで動かすのであれば、 キーボードばらして、ハード的に[ALT]キーを殺しておく方が楽な気がしますね

ten002
質問者

補足

ご回答ありがとうございます。 トリッキーな手法ですね。 残念ながら、[Alt]キーを完全無効にするとアクセスキーが使用できなくなりますので、それはできません。 申し訳ございません。 もう少し他の方法等を模索いたします。 どうもありがとうございました。

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.5

#2で補足された方法は、プラットフォーム呼び出し機能でネイティブDLLを利用して、そこからグローバルフックを利用しようよいうものでしょう。既にVBの話ではないと思います。 >[Ctrl]+[Alt]+[Del]を、全部同時に押下された場合はフックが難しいかもしれませんが、現実はタイミングがずれますので、その過程でフックして無効化できると考えています。 では[Ctrl]、[Alt]、[Del]全て無効にでもするのでしょうか? 残念ながら、その3つの入力がそろった時点で、グローバルフックとは別の機構でセキュリティ画面が開いてしまいます。要するにグローバルフックを使っても無理だということです。 #1さんが回答している方法でWindowsXP以前なら無効にできます。Windows Vista以降はおそらく無効にはできないでしょう。

ten002
質問者

補足

ご回答ありがとうございます。 キーフックですが、例えば[Ctrl]と[Alt]が押された場合、[Alt]を無効にする。 (恐らく、[Ctrl]+[Alt]押下後に[Del]押下が一般的だと感じます) [Ctrl]+[Alt]+[Del]の直接制御が難しい場合、上記のような組み合わせを、考えています。 もう少し、色々考えてみたいと思います。 どうもありがとうございました。

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.3

基本的に No.2さんに同意ですが なぜそのようなプログラムを作りたいのでしょうか、 仮に作れたてもウイルスとして検出されそうですね

ten002
質問者

補足

ご回答ありがとうございます。 今回はある方より、VB.NETで[Ctrl]+[Alt]+[Del]を無効にしたい、旨の依頼があり、私のスキルではわからないため、質問させていただきました。 No.2さんの補足を参照していただけましたら、幸いです。 どうぞよろしくお願いいたします。

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.2

>グローバルキーフックを使用しないで、実現する方法はありますでしょうか? >できれば、VB.NETでコード実装したいと考えています。 この条件なら無理でしょう。[Ctrl]+[Alt]+[Del]はOSがその入力を監視しているため、グローバルフックでも取得できないはずです。そもそも、そのグローバルフックを.Netで作れるのですか? まぁそれ以前に、OSの動作を変更するようなプログラムを、.Netで作ろうというのが間違ってると思うのですが・・・

ten002
質問者

補足

ご回答、ありがとうございます。 グローバルフックの件ですが、マイクロソフト社は http://support.microsoft.com/kb/319524/ja で、「.Net」でのグローバルフックをサポートしていませんが、実際には http://hongliang.seesaa.net/article/7651626.html のようにできます。 [Ctrl]+[Alt]+[Del]を、全部同時に押下された場合はフックが難しいかもしれませんが、現実はタイミングがずれますので、その過程でフックして無効化できると考えています。 今回の私の質問は、それをさらに前進させて、今依頼されていますVB.NET開発の環境の中で、グローバルフックを用いずにできないか?、と問い合わせていただきました。 もしそれができるのでしたら、大変わがままっぽいお願いではありますが、ご回答の程お願いいたします。

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  下記サイトをご参照ください。   http://nienie.com/~masapico/doc_DisableSAS.html   OSの一部を書き換えるため、慎重にテストしてください。 では。

ten002
質問者

補足

ご回答ありがとうございます。 できれば、VB.NETでコード実装したいと考えています。 わがままをいって、申し訳ございません。 それと、同参照先の情報は少し古いと感じます。 できれば、「.NET 2.0」以上で対応したいと考えています。 重ね重ねわがままばかりで、申し訳ございません。 上記わがままにご回答いただけましたら、幸いでございます。 どうぞよろしくお願いいたします。

関連するQ&A

  • VCでCtrl + Alt + Del を無効にする

    VCでCtrl + Alt + Del を無効にするにはどうしたらよいでしょうか? Windows2000で使いたいのですが・・・ スクリーンセーバでパスワードを設定するとCtrl + Alt + Delが無効になるので方法はあると思うのですが、色々やってみた結果うまくいきません。 ちなみに、Alt + Tabすらも無効に出来ません。 SystemParametersInfoも WindowProcでreturn TRUEもやってみました。 よろしくお願いします。

  • VCでCtrl + Alt + Del を無効にするには?

    VCでCtrl + Alt + Del を無効にするにはどうしたらよいでしょうか? WindowsVISTAで使いたいのですが・・・ スクリーンセーバでパスワードを設定するとCtrl + Alt + Delが無効になるので方法はあると思うのですが、色々やってみた結果うまくいきません。 ちなみに、Alt + Tabすらも無効に出来ません。 SystemParametersInfoも WindowProcでreturn TRUEもやってみました。 よろしくお願いします。

  • CTRL+ALT+DEL(タスクマネージャー)の無効化

    WindowsXPでCTRL+ALT+DELを押すとタスクマネージャーが出てきますよね! それをある事情で出ないようにしたいのです。 無効にするにはどうすればよいのですか?

  • しばらく放っておくと、Ctrl+Alt+Delを押してくださいという画面が出てきますが・・・。

    10分ほどパソコンに触らず放っておくと、Ctrl+Alt+Delを押してくださいという画面が出てきて、入力しなければパソコンを動かせなくなってしまいます。DVDを見ている時にもその画面になったりするので困っています。無効にしたり、2時間触らなかった場合にだけ作動したりするようには出来ないでしょうか?

  • 「Ctrl + Alt + 矢印」の有効・無効切り

    「Ctrl + Alt + 矢印」の有効・無効切り替え 「Ctrl + Alt + 矢印」で画面の方向を90°単位で回転して表示できますよね。 このショートカットが、なぜか効かなくなったのですが、どうすれば有効にできますか? 無反応なんですけど。

  • Ctrl + Alt + Del を押しても

    以前はタスクマネージャーが出たのですが最近になって Ctrl + Alt + Del を押してもCPU使用率とかいう緑のグラフ しか出なくなりました。どうすれば以前のようなタスクマネージャー が出ますか?ちなみにいつこうなったのかは忘れてしまったので システムの復元はできないです; 回答よろしくお願いします。

  • Ctrl+Alt+Del でログインまでが遠いんです

    会社でWindowsXPを使っているのですが 起動時に“Ctrl+Alt+Delを押す”の画面までいくと 自動的にWindowsXPの立ち上げ画面に戻ってしまいます。 それを3回位繰り返してからやっと“Ctrl+Alt+Del”を 押せるようになります。 このおかげで立ち上げに10分位かかってしまいます。 どうすれば直るのでしょうか。 教えてください

  • Ctrl+Alt+Delを押すのがうっとうしい。

    NT4.0です。 パソコンを立ち上げると『Ctrl+Alt+Del』と要求してくるのですが、 うっとうしいのでこの要求を無視したいのですが、どのように設定したら 要求してこなくなるんでしょうか? 宜しくお願い致します。

  • CTRL+ALT+DELのログイン画面

    Windows2000Serverで気がつくとCTRL+ALT+DELのログイン画面になっていることがあります。なにかの設定ででしょうか?CTRL+ALT+DELのログイン画面にならないように設定したいです。

  • CTRL+ALT+DELキーでの再起動

    FreeBSD5.3を使用しています。 ctrl+alt+delキーを押すとどのユーザでもシステムが 再起動するのですが、これを防ぐにはどうすればいいのでしょうか?

専門家に質問してみよう