VB6
Win2000
あるEXEを起動させます
そしたら他のアプリ(Excel、NotePadやデスクトップ上のショートカットEXE、スタート内のいろんなEXE)を起動できなくさせることはできますか??
私的には、あるEXEがアクティブでない時にマウスやキーボードを監視するしかないような気がするのですが・・・
IShellExecuteHookについて調べてみてください。
K.J.Kさん返答ありがとうございます。
IShellExecuteHookを調べたんですがVBではサンプルが無くどうしたら良いのかと・・・
DelphiとC++ならサンプルがあり解読すればできそうなのですがIShellExecuteHook自体の宣言の仕方がわからず・・・
他アプリが起動しようとする前に割り込みが出来る関数という理解で宜しいですよね??
や。関数ではなく、インターフェイスでしょう。
Declareステートメント等で宣言定義できるものでは無いので、VB6の場合は
別途、タイプライブラリを作成し、それを参照設定する必要があるかと。
IShellExecuteHookでなんとかできるのは、おそらくExplorer上で
クリックして実行とか、それに類するもの程度だけだと思われます。
また、このインターフェースは、もしかしたらVB6ではImplements
できないかも知れません。オブジェクトが作成されたスレッドと
メソッドが呼び出されるスレッドが異なるかも知れないからです。
あえて、このインターフェースを提示したのは、おそらくHigh Lv
APIでは他はそのような機能をほとんど無いであろう、と考えたから
です。
# NT系OSだから動的に権限を変える、という手もありはしますが。
一般的には1つのプログラムでどうにかするようなものではなく、
ポリシーなどを含めた運用でカバーすべき問題でしょうね。
> ポリシーなどを含めた運用でカバーすべき問題でしょうね。
承認されていないアプリケーションを制限したい場合には、
Windows XP や Windows Server 2003だと、『secpol.msc』の
「ソフトウェア制限のポリシー」にて設定できるのですけれどね。
http://support.microsoft.com/kb/310791
Windows 2000の場合はどうだったかな……。
K.J.Kさん、魔界の仮面弁士さん返答ありがとうございます。
理解も乏しい状態の今は、今回の処理は見送りたいと思います。
もしそんな事が出来ればすごいなぁと思いついたのがきっかけでしたので、
出来ないながらも勉強させて頂きました。
レベルの高い返答を感謝いたします。
ツイート | ![]() |