• ベストアンサー

フォルダの大きさ

ittochanの回答

  • ベストアンサー
  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.9

>エラー:オブジェクトがありまん。 >:'WindowsShell.item(....)' これ、たまにでたんですよね。 これはどうでしょう? const HKCU = &H80000001 const REG_SZ = 1 const REG_EXPAND_SZ = 2 const REG_BINARY = 3 const REG_DWORD = 4 const REG_MULTI_SZ = 7 dim StatusChk() dim arrSubKeys dim flag Dim Input Dim obj Dim objTarget dim FldrPath Set WshShell = WScript.CreateObject("WScript.Shell") i = WshShell.PopUp("「すべてのフォルダに適用」をします(ウィンドウサイズも含む)" ,0,"Windows Script Host",65) if i<>1 then WScript.Echo "中止しました" WScript.Quit end if WScript.Echo "基準にしたいフォルダを1つだけ開いてください" Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") strBags="Software\Microsoft\Windows\ShellNoRoam\Bags\" flag=0 set Shell = WScript.CreateObject("Shell.Application") set WindowsShell = Shell.Windows ItmNo = chckfldr() WindowsShell.item(ItmNo).Quit Shell.Open FldrPath ItmNo = chckfldr() Set objTarget = WindowsShell.item(ItmNo) GetSubKey() 'Bagsキーからアドレスバーの状態を取得します。 ReDim StatusChk(UBound(arrSubKeys)) for i=0 to UBound(arrSubKeys) oReg.GetDWORDValue HKCU,strBags & arrSubKeys(i) & "\Shell" ,"Address" , inta if TypeName(inta)="Null" then StatusChk(i) = 2 else StatusChk(i) = inta end if next 'アドレスバーの設定を反転させる StatusChange() objTarget.Navigate FldrPath BusyCheck objTarget flag=0 'アドレスバーの設定が元に戻った場所を探す for i=0 to UBound(arrSubKeys) oReg.GetDWORDValue HKCU,strBags & arrSubKeys(i) & "\Shell" ,"Address" ,inta if TypeName(inta)="Null" then inta = 2 end if if StatusChk(i) <> inta then flag=1 BagNo = arrSubKeys(i) Exit For end if next 'アドレスバーの設定を元に戻す StatusChange() if flag=1 then strKeyPath = strBags & BagNo & "\Shell" AllFolderKeyPath = strBags & "AllFolders\Shell" oReg.DeleteKey HKCU,AllFolderKeyPath oReg.CreateKey HKCU,AllFolderKeyPath oReg.EnumValues HKCU, strKeyPath, arrValueNames, arrValueTypes For i=0 To UBound(arrValueNames) for j=0 to UBound(arrSubKeys) strv = arrValueNames(i) if j<>BagNo then strKeyPath1 = "HKCU\" & strKeyPath & "\" & strv strKeyPath2 = strBags & arrSubKeys(j) & "\Shell" strKeyPath3 = "HKCU\" & strKeyPath2 & "\" & strv strKeyPath4 = "HKCU\" & AllFolderKeyPath & "\" & strv Select Case arrValueTypes(i) Case REG_SZ stra = WshShell.RegRead( strKeyPath1 ) if strv<>"FolderType" then WshShell.RegWrite strKeyPath3,stra,"REG_SZ" WshShell.RegWrite strKeyPath4,stra,"REG_SZ" end if Case REG_EXPAND_SZ stra = WshShell.RegRead( strKeyPath1 ) WshShell.RegWrite strKeyPath3,stra,"REG_EXPAND_SZ" WshShell.RegWrite strKeyPath4,stra,"REG_EXPAND_SZ" Case REG_BINARY oReg.GetBinaryValue HKCU,strKeyPath ,strv,strValue oReg.SetBinaryValue HKCU,strKeyPath2 ,strv,strValue oReg.SetBinaryValue HKCU,AllFolderKeyPath ,strv,strValue Case REG_DWORD inta = WshShell.RegRead( strKeyPath1 ) WshShell.RegWrite strKeyPath3,inta,"REG_DWORD" WshShell.RegWrite strKeyPath4,inta,"REG_DWORD" Case REG_MULTI_SZ End Select end if next Next WshShell.Popup "成功しました",0,"Windows Script Host",64 else WshShell.Popup "失敗しました",0,"Windows Script Host",16 end if function chckfldr() dim i,j,k j=0 k=0 chckfldr = -1 do for i=0 to WindowsShell.Count-1 BusyCheck(WindowsShell.item(i)) if TypeName(WindowsShell.item(i))<>"Nothing" then FldrPath = WindowsShell.item(i).LocationURL if InStr(FldrPath,"file") = 1 then if j=1 then WScript.Echo "フォルダが複数開いているので中止します" WScript.Quit end if chckfldr = i j=1 end if end if next k=k+1 WScript.Sleep 100 if k>600 then msgbox "Explorerの再起動に失敗しました" WScript.Quit end if loop while chckfldr = -1 end function sub GetSubKey() oReg.EnumKey HKCU, strBags, arrSubKeys end sub Sub StatusChange() for i=0 to UBound(arrSubKeys) if StatusChk(i)<>2 then StatusChk(i) = not StatusChk(i) WshShell.RegWrite "HKCU\" & strBags & arrSubKeys(i) & "\Shell\Address" ,StatusChk(i),"REG_DWORD" end if next End sub sub FolderClose() pCnt = WindowsShell.Count WindowsShell.item(ItmNo).Quit do while pCnt = WindowsShell.Count WScript.Sleep 100 loop end sub sub FolderOpen() Set obj = WshShell.Exec("explorer " & FldrPath ) do while pCnt <> WindowsShell.Count WScript.Sleep 100 loop ItmNo = chckfldr() Set objTarget = WindowsShell.item(ItmNo) end sub sub BusyCheck(obj) do WScript.Sleep 100 loop while obj.Busy end sub

xxxSkyxxx
質問者

お礼

ありがとうございます。 今度は正しく適用されたようです ところで変更された点はステータスバーですか? しばらく使用して問題が無ければ締め切らせていただきます。 ありがとうございました。

関連するQ&A

  • フォルダサイズ

    WindowsXPHome SP1を使用しています。 XP購入時はマイドキュメントなどを開くとフォルダの大きさが画面いっぱいまで広がっていたんですが最近画面いっぱいにして閉じてもしばらくしてから開くと画面いっぱいになった状態でフォルダが開きません。 これを画面いっぱいに直したいのですがどうすればいいのでしょうか? レジストリの変更でもいいので教えてください

  • フォルダ・ファイルの共有が消える

    WinXP_sp2で2台をLAN接続しており 今まで問題なく動作していましたが 現在以下の症状で困っております ・共有フォルダを直接開けば、全てのファイルが見え、何も問題ない。 ・マイネットワークから共有フォルダを開くと、一部のフォルダ・ファイルが見れない。(ネットワーク上で確認できない) ・既存のファイル・フォルダは見えるが、追加・変更すると、消えてしまう。 ・右クリックのプロパティでファイルサイズを確認すると0バイトとなる。 整理すると ネットワーク上で共有フォルダ・ファイルが見えなくなる。 と言う症状が発生しております。

  • 「すべてのフォルダに適用」のバグ

    WindowsXP SP2を使っていますが、「すべてのフォルダに適用」で表示を「詳細」に何度変更しても「アイコン」モードに戻ってしまいます。 以前は、「詳細」の画面で使っていたのですがなぜでしょうか? 各フォルダの表示設定を保存するにもチェックを入れています。

  • フォルダー内のアイコン間隔&フォルダ表示サイズについて

    現在、フォルダー内のアイコンを 「並べて表示」にしているのですが、新しいウインドウを開いた場合などのフォルダーの表示サイズの関係で、 縦に一列にアイコンが並んだ状態が初期状態になっています。 少しだけフォルダーのサイズを横に広げてあげると、 2列表示になるので、 アイコンの間隔を少し狭くするか、 初期のフォルダー表示サイズがもう少し大きく出来たら便利なのに…と思っています デスクトップのカスタマイズで色々といじったりした事はあるんですが、 具体的に、どれをいじったらアイコン間隔が狭くなるのか分かりにくくて^^; 上記2点について、アドバイスがあればお願いします

  • 開けないフォルダーについて

    昔から文字化けしたファイルはありましたが、 消せなくなってもDOSレベルまで戻れば何とか変更や 削除ができました。 しかし今回のはちょっと違うようで… 属性の変更、名前の変更、削除、すべて出来なくなっています。 システムはMEとXPが共存しているので、XPで作った漢字のフォルダを MEで開いて作業した時に、このような状態になることが多いです。 一応、文字化けしたフォルダは0MBとして存在しています。 文字化けを変更できれば、元のサイズになるのですが… 分かる方、よろしくお願いします。

  • フォルダの内容が画面に表示されません

    昨日一時PCがメモリ不足でフォルダを開けない状態までになって、何度か再起動をしてやっと通常に動くようになってからのことです。ある一つのフォルダだけ、開いても画面に表示されなくなってしまったのです。ちゃんとバーにはそのフォルダがあり、最大化にするとちゃんと表示されるのですが、元の大きさに戻すと画面から消えて、消え方としては右上の角に吸い込まれていってます。画面には見えないところにあるということなのでしょうか?? また、右クリックで移動やサイズ変更をしようとすると、右上の角に十字の矢印ポインタが出てくるのですが、クリックするとすぐ消えてしまい、サイズ変更等で移動できるわけでもありません。 最大化にすれば見えるので支障はないのですが、でも直せるものなら直したいです。 どこで直せるのか教えてください。お願いします。

  • フォルダ開いたときの表示について

    ビスタ使用してます。 フォルダを開いたときに、上に『名前』『更新日時』『サイズ』とか、並び替えに便利なのがあるのですが、これをフォルダごとに変更することができるのでしょうか。 たとえば、動画が入ってるフォルダは、『名前』『サイズ』『フレーム幅』にして、 写真が入ってるフォルダは『名前』『撮影日時』『サイズ』みたいな感じにしたいのです。 下の階層もすべてそうなって欲しいのですが、変更の仕方ご存知の方お願いいたします。

  • フォルダを開くのが遅くなってしまいました。

    新しく解凍したあとに作られるファイルを開くと、表示するのに時間がかかってしまうようになりました。(小さなサイズのフォルダでも、10秒くらいかかってしまい、大きくなるほど時間がかかります。) 同じフォルダを2回目以降に開くときはスムーズに表示されます。最初だけなのです。 開いている途中のフォルダを触ると(クリックしたりすると)『応答なし』という状態になってしまいます。 以前はサクサク開けたので、PCのスペックという問題ではないと思います。 また、メモリの開放を行っても症状が改善されません。 知らない間にどこかの設定を変更してしまったのでしょうか?

  • マイピクチャのフォルダ及びデータの管理・整理について・・・・・

    主に画像データに関しての質問です。 ●目的 すべてのフォルダ及びデータを縮小形態で表示したい。 ●現状手法 すべて末端のフォルダまで追跡して行って、各個撃破で一つずつ設定している。 ●問題点 新規作成のフォルダは「並べて表示」に自動設定されてしまう。 フォルダ名などを変更したり、イジると初期設定に戻ってしまう。 ●知りたいツボ! 一括設定変更出来ないの? フォルダをイジっても設定が変わらない様に、固定出来ないの? 表示の初期設定を「並べて表示」から「縮小版」に変更出来ないの? 同じく、「アイコンの整列」について。 「自動整列」と「等間隔整列」を一括設定・初期設定変更は出来ないものでしょうか? 御指南、何卒よろしくお願いします。

  • 拡張子と 隠しファイルや 隠しフォルダが 表示できません。XPのSP3

    拡張子と 隠しファイルや 隠しフォルダが 表示できません。XPのSP3です。フォルダオプションで一度、表示されるように設定しても、また開いてみると、設定が変更できなくて 元に戻っているのです。  閉じる前に「すべてのフォルダに~」をクリックしても駄目です。再起動しても駄目です。どうすればいいのでしょうか?