2022年5月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
無料ブログはココログ

« 2010年9月 | トップページ | 2010年11月 »

2010年10月31日 (日)

開いているフォルダの自動整列を切り換える。

ToggleAutoArrange.vbs

Const  FWF_AUTOARRANGE=&H00000001
For Each ie In CreateObject("Shell.Application").Windows()
  If InStr(LCase(ie.FullName),"\explorer.exe") Then
    ie.Document.FolderFlags=CLng(ie.Document.FolderFlags) Xor FWF_AUTOARRANGE
  End If
Next

OnAutoArrange.vbs

Const  FWF_AUTOARRANGE=&H00000001
For Each ie In CreateObject("Shell.Application").Windows()
  If InStr(LCase(ie.FullName),"\explorer.exe") Then
    ie.Document.FolderFlags=CLng(ie.Document.FolderFlags) Or FWF_AUTOARRANGE
  End If
Next

OffAutoArrange.vbs

Const  FWF_AUTOARRANGE=&H00000001
For Each ie In CreateObject("Shell.Application").Windows()
  If InStr(LCase(ie.FullName),"\explorer.exe") Then
    ie.Document.FolderFlags=CLng(ie.Document.FolderFlags) And Not FWF_AUTOARRANGE
  End If
Next

2010年10月28日 (木)

デスクトップのアイコンを更新日時の昇順にソートする。

更新日時の昇順は、本当は、
.SortColumns="prop:System.DateModified;"
で出来るはずですが、どうやっても降順、
.SortColumns="prop:-System.DateModified;"
になってしまします。なぜ?

しかし、FMTID,PIDを指定するとよいようです。
.SortColumns="prop:{B725F130-47EF-101A-A5F1-02608C9EEBAC},14"

更新日時の昇順にソートする.vbs

CreateObject("Shell.Application").Windows().Item().Document.SortColumns="prop:{B725F130-47EF-101A-A5F1-02608C9EEBAC},14"

2010年10月27日 (水)

IE8で「名前を付けて画像を保存する」フォルダが記憶されない。(その2)

「画像の保存」ダイアログのフォルダは、保護モード無効のページでは記憶されますが、保護モード有効のページでは記憶されません。毎回既定値に戻ります。

なので、既定の設定では、保護モード有効のインターネットゾーンでは記憶されず、保護モード無効の信頼済みサイトでは記憶されます。

当該情報はレジストリに記憶されますが、保護モード有効の整合性レベル低のプロセスから書きこめないからです。

保護モードを無効にしたり、信頼済みサイトに登録したりすれば、一応回避できますが、セキュリティが。。。。

そこで、フォルダの記憶に関しては、以下の.htmファイルを作って、

「画像の保存」ダイアログのフォルダの記憶.htm

<img src="res://ieframe.dll/info_48.png">

これを開き、右クリックして「画像の保存」ダイアログを出します。

保護モード有効側の「画像の保存」ダイアログのアドレスバーから、記憶したいフォルダパスをコピーして、こっちのアドレスバーに入れて、フォルダペインを開き、ダイアログを閉じます。
これで、アドレスバーの履歴に残ります。このアドレスバーの履歴は保護モード有効側でも利用できます。

2010年10月26日 (火)

フォルダを複数カラム、複数キーでソートする。

例えば、第1ソートキーが種類の昇順、第2ソートキーが更新日時の降順なら、

GUI操作では、カラムヘッダの種類をクリックし、シフトキーを押しながら更新日時をクリックします。

スクリプトでは、

ie.Document.SortColumns = "prop:System.ItemType;-System.DateModified;"

デスクトップなら、

CreateObject("Shell.Application").Windows().Item().Document.SortColumns = "prop:System.ItemType;-System.DateModified;"

2010年10月25日 (月)

概要(Summary Information)をインターネットショートカット(.url)に書く。(その3)

メモ帳で作成、変更するとき、日本語はそのままでは表示されません。

[{F29F85E0-4FF9-1068-AB91-08002B27B3D9}.A]
Prop6=31,System.Commentコメント

は、

[{F29F85E0-4FF9-1068-AB91-08002B27B3D9}]
Prop6=31,System.Commentコメント

と同じで済みますが、

[{F29F85E0-4FF9-1068-AB91-08002B27B3D9}.W]
Prop6=31,System.Comment+MLMw4TDzMMg-

は、UTF-7なのでちょっと面倒です。なので、

[{F29F85E0-4FF9-1068-AB91-08002B27B3D9}]
Prop6=31,System.Commentコメント

だけにして、Unicodeで保存するとよいでしょう。

あるいは、シフトJISで、

Prop6=31,System.Commentコメント

の代わりに、

Prop6=4127,System.Commentコメント

で代用してもよいようです。

本来、4127(=4096+31)は複数の文字列で、System.Keywords タグやSystem.Author 作成者で、

Prop5=4127,文字列1; 文字列2; ...

のように使われますが、31と違って日本語が表示されます。

また、インターネットショートカット(.url)をメモ帳などで変更しても、エクスプローラやIEのプロセス内のメモリにキャッシュされているため、エクスプローラの表示や動作には反映されません。

他のインターネットショートカット(.url)のプロパティでOKするか、当該インターネットショートカット(.url)のファイル名を変更すると反映されます。

WScript.ShellやShell.Applicationで任意のインターネットショートカット(.url)のオブジェクトをSaveしても反映されます。

2010年10月24日 (日)

ディレクトリのコメントやタグを desktop.ini に書く。

XPでは、ディレクトリのコメントを desktop.ini の InfoTip に書いておけば、マウスを翳すとポップアップ表示されました。
これが、Vistaでは無効になりました。

しかし、代わりに、Vistaでは、概要(Summary Information)が desktop.ini に書けます。

[{F29F85E0-4FF9-1068-AB91-08002B27B3D9}]
Prop2=31,System.Titleタイトル
Prop3=31,System.Subject表題
Prop4=31,System.Author作成者
Prop5=31,System.Keywordsタグ
Prop6=31,System.Commentコメント

ここで、もし日本語を書くときは、Unicodeで保存します。

これで、エクスプローラのカラムで、タイトル(System.Title)、表題(System.Subject)、作成者(System.Author)、タグ(System.Keywords)、コメント(System.Comment)が表示されます。
このうち、コメントが InfoTipに表示されます。

※ desktop.ini をメモ帳などで変更しても、エクスプローラのプロセス内のメモリにキャッシュされているため、エクスプローラの表示には反映されません。
任意のフォルダのプロパティ、カスタマイズでOKするか、当該フォルダ名を変更すると反映されます。

レジストリの
[HKEY_CLASSES_ROOT\Directory]
"PreviewDetails"="Prop:~"
に*System.Commentなどを入れると、詳細ペインに表示されます。変更も可能なように見えますが、実際に保存しようとするとエラーになります。
なので、これはやめておいたほうがよいでしょう。

2010年10月23日 (土)

概要(Summary Information)をインターネットショートカット(.url)に書く。(その2)

.urlファイルのフォーマットは以下のようになっています。

[InternetShortcut]
URL=about:blank
[{F29F85E0-4FF9-1068-AB91-08002B27B3D9}]
Prop2=31,http://System.Titleタイトル
Prop3=31,System.Subject表題
Prop4=4127,System.Author作成者
Prop5=4127,System.Keywordsタグ
Prop6=31,System.Commentコメント
[{5CBF2787-48CF-4208-B90E-EE5E5D420294}]
Prop21=31,System.Link.Description説明
[{5CBF2787-48CF-4208-B90E-EE5E5D420294}.A]
Prop21=31,System.Link.Description説明
[{5CBF2787-48CF-4208-B90E-EE5E5D420294}.W]
Prop21=31,System.Link.Description+iqxmDg-
[{B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}]
Prop5=31,System.Link.Commentメモ
[{B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}.A]
Prop5=31,System.Link.Commentメモ
[{B9B4B3FC-2B51-4A42-B5D8-324146AFCF25}.W]
Prop5=31,System.Link.Comment+MOEw4g-
[{F29F85E0-4FF9-1068-AB91-08002B27B3D9}.A]
Prop5=4127,System.Keywordsタグ
Prop6=31,System.Commentコメント
Prop3=31,System.Subject表題
Prop2=31,http://System.Titleタイトル
Prop4=4127,System.Author作成者
[{F29F85E0-4FF9-1068-AB91-08002B27B3D9}.W]
Prop5=4127,System.Keywords+ML8wsA-
Prop6=31,System.Comment+MLMw4TDzMMg-
Prop3=31,System.Subject+iGiYTA-
Prop2=31,http://System.Title+ML8wpDDIMOs-
Prop4=4127,System.Author+T1xiEIAF-

ここで、

{F29F85E0-4FF9-1068-AB91-08002B27B3D9} は Summary Information の FMTID です。

Prop6 の 6 は、System.Comment の Property ID です。

31 は、Propvariant type の VT_LPSTR の値です。
4127 は VT_VECTOR | VT_LPSTR です。

System.Comment は、Windows Property の名前です。

タグ は、エクスプローラのカラム名です。

なぜか、タイトルには、http://がくっつきます。

.urlファイルのFolderItemに対して、
FolderItem.ExtendedProperty("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}.6")
FolderItem.ExtendedProperty("System.Comment")
Folder.GetDetailsOf(FolderItem,タグのカラム番号)
で取り出せます。

2010年10月22日 (金)

概要(Summary Information)をインターネットショートカット(.url)に書く。

Vistaで廃止された概要(Summary Information)をインターネットショートカット(.url)で復活できます。

XPでNTFSの代替ストリームにバイナリ形式で格納していたのに代わって、Vistaではインターネットショートカット(.url)にテキスト形式で格納します。

c:\フォルダ\ファイルに対するインターネットショートカット c:\フォルダ\ファイル.url(リンク先 file://c:\フォルダ\ファイル)を対で作ります。

そのままでも、説明とメモが使えますが、レジストリを変更すると、更に、タイトル(System.Title)、表題(System.Subject)、作成者(System.Author)、タグ(System.Keywords)、コメント(System.Comment)が使えます。

[HKEY_CLASSES_ROOT\InternetShortcut]
"FullDetails!"="prop:System.Link.TargetUrl;System.Rating;System.Link.Description;System.Link.Comment"
"FullDetails"="prop:System.Link.TargetUrl;System.Rating;System.Link.Description;System.Link.Comment;System.Title;System.Author;System.Subject;System.Keywords;System.Comment"
"PreviewDetails!"="prop:System.Link.TargetUrl;System.Rating;System.History.VisitCount;System.History.DateChanged;System.Link.DateVisited;System.Link.Description;System.Link.Comment"
"PreviewDetails"="prop:System.Link.TargetUrl;System.Rating;System.History.VisitCount;System.History.DateChanged;System.Link.DateVisited;System.Link.Description;System.Link.Comment;System.Title;System.Author;System.Subject;System.Keywords;System.Comment"

ここで、!付きは元の値です。

これで、詳細ペイン(PreviewDetails)やプロパティページの詳細タブ(FullDetails)で表示、変更できますし、カラムにも表示されます。

なぜか、タイトルには、http://がくっつきます。

2010年10月21日 (木)

IEやHTAで「(マイ)コンピュータ」を表示する。

frameは使えません。

<frame src="shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}">

代わりに、WebOCを使って、

drives.htm or drives.hta

<object classid="clsid:8856F961-340A-11D0-A96B-00C04FD705A2" width="100%" height="100%">
<param name="location" value="shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}">
</object>

フォルダを移動した場合、IEでは、戻る、進む、最新の情報に更新で初期フォルダに戻れますが、HTAでは、戻る、進む、が使えません。
周辺部の際を右クリックしてブラウザのコンテクストメニューを表示すれば、最新の情報に更新で初期フォルダに戻れます。

2010年10月20日 (水)

IEで任意のフォルダを表示する。

.htmファイルの場合は引数が使えないので、代わりに、

start iexplore.exe file://%cd%\folder.htm?c:\temp

<html>
<head>
<script language=vbscript>
Option Explicit
Sub window_onload
document.all.f1.src=mid(location.search,2)
End Sub
</script>
</head>
<frameset>
<frame id=f1 src="about:blank">
</frameset>
</html>

.htmファイルを使ってHTAに表示することもできます。

mshta.exe file://%cd%\folder.htm?c:\temp

2010年10月19日 (火)

HTAで任意のフォルダを表示する。

.htaファイルの場合は引数が使えるので、

[mshta.exe] folder.hta c:\temp

<html>
<head>
<hta:application id=hta></hta:application>
<script language=vbscript>
Option Explicit
Sub window_onload
Dim fQuoting
Dim k
fQuoting=False
For k=1 To Len(hta.commandLine)
  Select Case Mid(hta.commandLine,k,1)
  Case Chr(34) fQuoting=Not fQuoting
  Case Chr(32) If Not fQuoting Then Exit For
  End Select
Next
document.all.f1.src=Replace(Mid(hta.commandLine,k+1),"""","")
document.title=document.all.f1.src
End Sub
</script>
</head>
<frameset>
<frame id=f1 src="about:blank">
</frameset>
</html>

2010年10月18日 (月)

エクスプローラのフォルダペインだけにする。

昔は、explorer /nで、ナビゲーションペインなしに出来たのですが、今は無効で、フラグでは制御できません。

では、どうするか?

IEやHTAでフォルダペインだけ表示するというのはどうでしょう?

temp.htm or temp.hta

<html>
<frameset>
<frame src="c:\temp">
</frameset>
</html>

表示したいフォルダにファイルを置いて、ファイルのあるフォルダを表示します。

dot.htm or dot.hta

<html>
<frameset>
<frame src=".">
</frameset>
</html>

2010年10月17日 (日)

長いファイル名を用いた Start コマンドの使用(その2)

http://scripting.cocolog-nifty.com/blog/2009/12/start-cc22.html

start \\?\"フルパス" [引数...]

start file://"フルパス" [引数...]

は、また、使えなくされたみたい。:-(

以下のようにパス名を細工する方法はまだ使えますが。。。

start file:///C:\Program%20Files\Internet%20Explorer\iexplore.exe [引数...]

start C:"\Program Files\Internet Explorer\iexplore.exe" [引数...]

start C:\Program" "Files\Internet" "Explorer\iexplore.exe [引数...]

2010年10月13日 (水)

Vista以降のShell.ApplicationのNameSpace(フォルダパス)で"\..\"記法が使えない。

なので、

Shell.NameSpace(fso.GetAbsolutePathName(Path) & "\..\")

は、

Shell.NameSpace(fso.GetParentFolderName(fso.GetAbsolutePathName(Path)))

に修正してください。

ShellはWindowsの顔ですから、version upで仕様が変わるのは、仕様がありません。

2010年10月 6日 (水)

保護モード有効(整合性レベル低)のページから保護モード無効(整合性レベル中)のキャッシュは見えない。

逆もまた真なり。

例えば、http://www.microsoft.com/japan/が信頼済みサイトだとして、これをIEで開くと、ふつう、信頼済みサイトゾーン/保護モード無効なので、整合性レベル中のキャッシュに入ります。

以下のhtmlファイルを作ります。

<a href="http://www.microsoft.com/japan/">aaa</a><br>
<iframe src="http://www.microsoft.com/japan/"></iframe>

IEを閉じ、インターネット接続を切って、オフライン作業で、これを開くと、コンピュータゾーン/保護モード無効で、<iframe>が表示されます。また、<a>にマウスを翳すと、禁止マークが点きません。

もし、このファイルを整合性レベル低にするなどして、インターネットゾーン/保護モード有効で開くと、<iframe>が表示されません。また、<a>にマウスを翳すと、禁止マークが点きます。

2010年10月 5日 (火)

保護モード無効(整合性レベル中)のページから保護モード有効(整合性レベル低)のキャッシュは見えない。

どういうことか?

例えば、http://scripting.cocolog-nifty.com/をIEで開くと、ふつう、インターネットゾーン/保護モード有効なので、整合性レベル低のキャッシュに入ります。

以下のhtmlファイルを作ります。

<a href="http://scripting.cocolog-nifty.com/">aaa</a><br>
<iframe src="http://scripting.cocolog-nifty.com/"></iframe>

IEを閉じ、インターネット接続を切って、オフライン作業で、これを開くと、コンピュータゾーン/保護モード無効で、<iframe>が表示されません。また、<a>にマウスを翳すと、禁止マークが点きます。

もし、このファイルを整合性レベル低にするなどして、インターネットゾーン/保護モード有効で開くと、<iframe>が表示されます。また、<a>にマウスを翳すと、禁止マークが点きません。

2010年10月 3日 (日)

Microsoft Answers スレッド中の記事へ位置付けるURL

http://social.answers.microsoft.com/Forums/ja-JP/ieja/thread/34d21a7a-e4bc-4b5b-86a3-232307dd92e0/#e964c1fd-b890-417f-be82-9b3f7dba5767
のようなURLはどうやって得るか?

[A]
記事の日付(2010年9月22日)をコピー
投稿者のプロファイルを表示して、最近の活動から日付を検索
リンクを右クリック、ショートカットのコピー

[B]
記事の日時(2010年9月22日 4:35)をコピー
ソースの表示、日時(2010年9月22日 4:35)を検索
日時のちょっと前にある<li id="~~~~" class="thread">から~~~~をコピー
スレッドURL/#~~~~ または、スレッドURL#~~~~

[C]
記事の先頭部分を選択コピーして、投稿欄に貼り付け、HTMLの編集に切り換える
日時のちょっと前にある<li id="~~~~" class="thread">から~~~~をコピー
スレッドURL/#~~~~ または、スレッドURL#~~~~

[D]
記事の投稿者名の下(メダルか透明の画像が5個並んでいる)をクリックして、アドレスバーに(※)
javascript:for(var r=document.activeElement;r;r=r.parentElement){if(r.tagName.toUpperCase()=="LI"){r=location.href + "#" + r.id;clipboardData.setData("text",r);alert(r);break;}}void(0);
URLがクリップボードにコピーされる。

[E]
記事の中のテキストをどこか選択して、アドレスバーに(※)
javascript:for(var r=document.selection.createRange(),r=document.elementFromPoint(r.offsetLeft, r.offsetTop);r;r=r.parentElement){if(r.tagName.toUpperCase()=="LI"){r=location.href + "#" + r.id;clipboardData.setData("text",r);alert(r);break;}}void(0);
URLがクリップボードにコピーされる。

※インターネットショートカットにして、お気に入りから起動してもよい。

« 2010年9月 | トップページ | 2010年11月 »