• ベストアンサー

フォルダの大きさ

ittochanの回答

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

改良しました(;´・`)> 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,key2 Dim Input 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\" key2="\Shell\Status" flag=0 set Shell = CreateObject("Shell.Application") set WindowsShell = Shell.Windows FldrPath ="" ItmNo = chckfldr() WindowsShell.item(ItmNo).Quit Set obj = WshShell.Exec("explorer " & FldrPath ) ItmNo = chckfldr() do while ItmNo = -1 WScript.Sleep 100 ItmNo = chckfldr() loop Set objTarget = WindowsShell.item(ItmNo) do while objTarget.Busy WScript.Sleep 100 loop 'WScript.Sleep 1000 GetSubKey() ReDim StatusChk(UBound(arrSubKeys)) for i=0 to UBound(arrSubKeys) oReg.GetDWORDValue HKCU,strBags & arrSubKeys(i) & "\Shell" ,"Status" , inta StatusChk(i) = inta next StatusChange() MovePath "shell:DriveFolder" , True WScript.Sleep 1000 for i=0 to UBound(arrSubKeys) oReg.GetDWORDValue HKCU,strBags & arrSubKeys(i) & "\Shell" ,"Status" ,inta if StatusChk(i) <> inta then flag=1 Exit For end if next StatusChange() MovePath FldrPath , True if flag=1 then BagNo = i strKeyPath = strBags & arrSubKeys(BagNo) & "\Shell" AllFolderKeyPath = strBags & "AllFolders\Shell" oReg.EnumValues HKCU, strKeyPath, arrValueNames, arrValueTypes oReg.CreateKey HKCU,AllFolderKeyPath For i=0 To UBound(arrValueNames) for j=0 to UBound(arrSubKeys) strv = arrValueNames(i) if j<>BagNo then strKeyPath2 = strBags & arrSubKeys(j) & "\Shell" Select Case arrValueTypes(i) Case REG_SZ stra = WshShell.RegRead( "HKCU\" & strKeyPath & "\" & strv ) if strv<>"FolderType" then WshShell.RegWrite "HKCU\" & strKeyPath2 & "\" & strv,stra,"REG_SZ" WshShell.RegWrite "HKCU\" & AllFolderKeyPath & "\" & strv,stra,"REG_SZ" end if Case REG_EXPAND_SZ stra = WshShell.RegRead( "HKCU\" & strKeyPath & "\" & strv ) WshShell.RegWrite "HKCU\" & strKeyPath2 & "\" & strv,stra,"REG_EXPAND_SZ" WshShell.RegWrite "HKCU\" & AllFolderKeyPath & "\" & strv,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( "HKCU\" & strKeyPath & "\" & strv ) WshShell.RegWrite "HKCU\" & strKeyPath2 & "\" & strv,inta,"REG_DWORD" WshShell.RegWrite "HKCU\" & AllFolderKeyPath & "\" & strv,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() j=0 chckfldr = -1 for i=0 to WindowsShell.Count-1 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 end function function GetSubKey() oReg.EnumKey HKCU, strBags, arrSubKeys end function sub MovePath(str,flag) objTarget.Navigate str if flag then do WScript.Sleep 100 loop while objTarget.Busy end if end sub Sub StatusChange() WshShell.AppActivate obj.ProcessID WScript.Sleep 100 WshShell.sendkeys "%vb" End sub

xxxSkyxxx
質問者

お礼

ありがとうございます。 やってみたところフォルダを開いてくださいの後にエラーが発生しました。 スクリプト: C:\Documents and Settingd\ユーザー名デスクトップ\フォルダ.vbs 行:32 文字:1 エラー:オブジェクトがありません。:'WindowsShell.item(....)' コード:800A01A8 ソース:Microsoft VBSScript 実行時エラー

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です。フォルダオプションで一度、表示されるように設定しても、また開いてみると、設定が変更できなくて 元に戻っているのです。  閉じる前に「すべてのフォルダに~」をクリックしても駄目です。再起動しても駄目です。どうすればいいのでしょうか?