AutoRunレジストリの即時反映

解決


クラ  2012-09-16 20:43:17  No: 147803  IP: [192.*.*.*]

動作環境 WinXP,VB2008
USBの自動起動をOFFにする処理を作成していますが、
レジストリを反映する処理が上手くいきません。
どなたかご教授お願いします。
(再起動しないでよい方法を探しています)

変更手順
1.HKLM\Software\Microsoft\Windows\CurrentVersion\
    Policies\ExplorerキーのNoDriveTypeAutoRunエントリ
    を0x91->0x95に変更。

2.すべてのウィンドウに WM_SETTINGCHANGE メッセージ
    を投げてシステム変更を反映。
    SendMessageTimeout(HWND_BROADCAST, WM_WININICHANGE, 0, _
          "Environment", SMTO_ABORTIFHUNG, 5000, 0)

以前ネットワーク周りのレジストリ変更の反映は2の方法で上手
くいきましたが、AutoRunの場合は上手くいきません。

編集 削除
オショウ  2012-09-16 23:07:05  No: 147804  IP: [192.*.*.*]

本来、PC再起動が必須な操作なのですが・・・

ActiveDirectory用のグループポリシー更新の方法が
使えるかも。(未確認です)

gpupdate.exe を実行してみる。

※  システムにどんな影響があるのか解らないので、
    自己責任でお願いします。

※  調べれば他にも方法があることが解ると思います
    が、OS(WinXPと、Vista/Win7)で、AutoRUNに
    ついては、変更が為されている部分もあるので、
    あくまでPC再起動をオススメ。
    どうしてもと言うなら・・・
    自動ログオンをレジストリでいじって、ログオフ
    後に自動ログオンさせ、更新情報を反映させた後
    自動ログオン設定を元に戻すとか・・・

※  もっと荒っぽい方法では、explorer.exeを強制終了
    させて、再度、explorer.exeを起動させる・・・
    なんて方法も行っている人、いるようですが・・・
    要はレジストリ(ユーザープロファイル情報かも)
    を強制的に再ロードさせて更新結果を反映させると
    意図ですネ!

以上。参考まで

編集 削除
クラ  2012-09-17 11:25:10  No: 147805  IP: [192.*.*.*]

オショウさんありがとうございました。

>※  もっと荒っぽい方法では、explorer.exeを強制終了
>    させて、再度、explorer.exeを起動させる・・・
>    なんて方法も行っている人、いるようですが・・・

この方法で出来ました。

ただ、再起動しないほうがよいとはいえ、システムへの
影響が心配になります。

色々と提案いただきましたが、処理はログオフまでとし、
ログオンはオペレーターの手動操作も考えたいと思います。

※ログオフからの起動だったら、復帰までの待ち時間も
少ない。

編集 削除