こんなプログラムを書いてみました。
適当なファイル名で拡張子をVBSとして保存してください。
Option Explicit Dim shell, i Set shell = CreateObject("WScript.Shell") shell.Run("rundll32.exe shell32.dll,Options_RunDLL 1") Do Until shell.AppActivate("タスク バー") Wscript.Sleep 100 If i > 10 Then Wscript.Quit i = i + 1 Loop shell.Sendkeys("%U{ENTER}")
仕掛けとしては、タスクバーのプロパティを開いて、「自動的に隠す」の設定ON/OFF切り替えて、プロパティを閉じています。
開いているウィンドウが多いと、切替に時間がかかることがあります。
----
「自動的に隠す」の設定を直接変更するAPIを探したが見つからない。無いのかも知れない。(設定を取得するAPIはある)
「自動的に隠す」の設定はレジストリに書かれているので、それを書き換える方法も試したけど、失敗した。(レジストリが書き換わったことをタスクバーに通知する方法がない。そのレジストリ項目はログイン時にしか読み取られないらしい)
■プログラム コードで Windows のタスク バーの表示と
非表示を切り替える方法
http://support.microsoft.com/kb/290150/ja
Visual Basic Scriptって、VBとほぼ一緒でしたよね。
参考になるかと思います。
お答えいただいたのはVBではなくVBAでのサンプルです。Wordなどのマクロとしては実行できましたが、トグルを実現するvbsファイルとしては幾つか変更が必要です。そのまま実行可能な形で教えていただけると助かります。また「自動的に隠す」のではなく、非表示にした際にカーソルを最下部に持ってきてもタスクバーが表示されなくなってしまうので、今ひとつです。
こんなプログラムを書いてみました。
適当なファイル名で拡張子をVBSとして保存してください。
Option Explicit Dim shell, i Set shell = CreateObject("WScript.Shell") shell.Run("rundll32.exe shell32.dll,Options_RunDLL 1") Do Until shell.AppActivate("タスク バー") Wscript.Sleep 100 If i > 10 Then Wscript.Quit i = i + 1 Loop shell.Sendkeys("%U{ENTER}")
仕掛けとしては、タスクバーのプロパティを開いて、「自動的に隠す」の設定ON/OFF切り替えて、プロパティを閉じています。
開いているウィンドウが多いと、切替に時間がかかることがあります。
----
「自動的に隠す」の設定を直接変更するAPIを探したが見つからない。無いのかも知れない。(設定を取得するAPIはある)
「自動的に隠す」の設定はレジストリに書かれているので、それを書き換える方法も試したけど、失敗した。(レジストリが書き換わったことをタスクバーに通知する方法がない。そのレジストリ項目はログイン時にしか読み取られないらしい)
英語版のWindows Xpですが"タスク バー"を"Taskbar and Start Menu Properties"に書き換えるだけでバッチリ動きました。大変助かりました。有難うございます。
英語版のWindows Xpですが"タスク バー"を"Taskbar and Start Menu Properties"に書き換えるだけでバッチリ動きました。大変助かりました。有難うございます。