- ベストアンサー
"C:\Windows" フォルダに「ミュージックのタスク」?
- Windows XP Home Edition (SP1 適用済み) を使用しています。Windows XP では、「マイミュージック」や「マイビデオ」フォルダを開くと、ウィンドウの左側に「ミュージックのタスク」や「ビデオのタスク」というのが表示されますよね。
- C ドライブのルートディレクトリや "C:\Windows" フォルダを開いたときには、「システムのタスク」が表示されてフォルダを非表示にしたりできるようです。
- ところが私のパソコンでは、いつの間にか、"C:\Program Files" を開くと「画像のタスク」が、"C:\Windows" を開くと「ミュージックのタスク」が表示されるようになってしまいました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
XPのバグのようです。 私のも時々起こります。 すべてのフォルダ設定を初期化しちゃえばいいんです Σ(゜ё゜)!! スタート→「マイコンピュータ」を開いて 「ツール」→「フォルダオプション」をクリック 「表示」タブをクリック 「全フォルダをリセット」をクリックします 私の場合は スクリプトを自作して 異常になったフォルダだけ直しています。 ほしい(・ε・?
その他の回答 (1)
- ittochan
- ベストアンサー率64% (2667/4137)
>そのスクリプトもお教えいただければと…… 拡張子はvbsです。 うまくいかないときは補足ください。 set WshShell = WScript.CreateObject("WScript.Shell") set objArgs = WScript.Arguments WScript.Echo "タスク名を変更したいフォルダを1つだけ開いてください" dim StatusChk(1000) dim flag,key1,key2 Dim Input Dim FldrTyp(12) FldrTyp(1)="Documents" FldrTyp(2)="Pictures" FldrTyp(3)="PhotoAlbum" FldrTyp(4)="Music" FldrTyp(5)="MusicArtist" FldrTyp(6)="MusicAlbum" FldrTyp(7)="Videos" FldrTyp(8)="MyDocuments" FldrTyp(9)="MyPictures" FldrTyp(10)="MyMusic" FldrTyp(11)="CommonDocuments" FldrTyp(12)="" Dim FldrName(12) FldrName(1)="ファイルとフォルダのタスク" FldrName(2)="画像のタスク" FldrName(3)="画像のタスク(フォトアルバム)" FldrName(4)="ミュージックのタスク" FldrName(5)="ミュージックのタスク(アーティスト)" FldrName(6)="ミュージックのタスク(アルバム)" FldrName(7)="ビデオのタスク" FldrName(8)="マイドキュメント" FldrName(9)="マイピクチャ" FldrName(10)="マイミュージック" FldrName(11)="共有ドキュメント" FldrName(12)="タスク名の削除" key1="HKCU\Software\Microsoft\Windows\ShellNoRoam\Bags\" key2="\Shell\Status" flag=0 set Shell = CreateObject("Shell.Application") set WindowsShell = Shell.Windows pCnt = WindowsShell.Count FldrPath ="" ItmNo = chckfldr() WindowsShell.item( ItmNo ).Quit Set obj = WshShell.Exec("explorer " & FldrPath ) do while pCnt <> WindowsShell.Count WScript.Sleep 100 loop ItmNo = chckfldr() do while WindowsShell.item(ItmNo).Busy WScript.Sleep 100 loop 'キーのBagsキーからステータスバーの状態を取得します。 On Error Resume Next for i=1 to 1000 StatusChk(i) = WshShell.RegRead(key1 + Cstr(i) + key2) if Err.Number<>0 then StatusChk(i) = 0 Err.Clear end if next WshShell.AppActivate obj.ProcessID WScript.Sleep 100 WshShell.sendkeys "%vb" WindowsShell.item(ItmNo).Navigate "shell:DriveFolder" WScript.Sleep 1000 for i=1 to 1000 if StatusChk(i) <> WshShell.RegRead(key1 + Cstr(i) + key2) then if Err.Number=0 then flag=1 Exit For end if Err.Clear end if next WshShell.AppActivate obj.ProcessID WshShell.sendkeys "%vb" WshShell.sendkeys "%{left}" On Error GoTo 0 if flag=1 then fname = WshShell.RegRead(key1 + Cstr(i) + "\Shell\FolderType") if fname="" then fname = "ありません" else fname = fname + " です" end if stra = "" for j=1 to 12 stra = stra & Cstr(j) & " : " & FldrName(j) & vbCr next Input = InputBox(_ FldrPath +vbCr+ " の現在のタスクは " & fname +vbCr+vbCr+_ "下記の数字から選択してください。"+vbCr+_ "システムのタスクの場合は 12 を選択してください"+vbCr+_ stra,"数値を入力してください",1) if Input>0 and Input<12 then WshShell.RegWrite key1 + Cstr(i) + "\Shell\FolderType",FldrTyp(Input),"REG_SZ" WScript.Echo(FldrName(Input)+" に変更しました。") Elseif Input = 12 then WshShell.RegWrite key1 + Cstr(i) + "\Shell\FolderType","","REG_SZ" BtnCode = WshShell.Popup("削除しました。",2,"Windows Script Host",16) else BtnCode = WshShell.Popup("変更をキャンセルしました",2,"Windows Script Host",16) end if else BtnCode = WshShell.Popup("変更を確認できませんでした",2,"Windows Script Host",16) end if function chckfldr() for i=0 to pCnt-1 if TypeName(WindowsShell.item(i))<>"Nothing" then FldrPath = WindowsShell.item(i).LocationURL chckfldr = i exit for end if next end function
お礼
またまたありがとうございます。 スクリプトは問題なく動いたようです。 やはりレジストリに関係があるとは予想しておりましたが、私もあまり慣れておらず、スクリプトでレジストリを自由に操る方を見ると本当に尊敬してしまいます。
お礼
おぉぉぉ! 直った! まさかこんな方法で直るとは…… 私にとっては盲点でした。 一回もこの機能を使ったことが無かったもので、思いつきませんでした。教えてくださってありがとうございます。 ついでに、といってはなんですが…… > スクリプトを自作して > 異常になったフォルダだけ直しています。 気になるのでよろしければそのスクリプトもお教えいただければと……