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        
無料ブログはココログ

« 2011年6月 | トップページ | 2011年8月 »

2011年7月26日 (火)

Webページを一定時間ごとに自動更新する。

以下のようなhtmファイルを作ります。

<!-- saved from url=(0014)about:internet -->
<HTML>
<HEAD>
<META HTTP-EQUIV="REFRESH" CONTENT=5>
</HEAD>
<frameset>
<frame src="http://~~~">
</frame>
</frameset>
</HTML>

ここで、「ページの自動読み込み」は「有効にする」になっている必要があります。

あるいは、スクリプトが有効なら、

<!-- saved from url=(0014)about:internet -->
<HTML>
<HEAD>
<script language=vbscript>
sub window_onload
setinterval "document.all.f1.src=document.all.f1.src",5000
end sub
</script>
</HEAD>
<frameset>
<frame id=f1 src="http://~~~">
</frame>
</frameset>
</HTML>

2011年7月25日 (月)

CPU温度計

ノートPCが熱暴走したので。底面の吸気口が下敷きのチラシ紙を吸着したのかも。PC下に筆箱を挟んで空気の通りをよくしてからは再発せず。

管理者として実行します。

CPU温度計.hta

<html>
<head>
<script language=vbscript>
resizeTo 200,100
Set WMI=GetObject("winmgmts:\\.\root\WMI")
Sub window_onload
For Each oItem In WMI.ExecQuery("SELECT * FROM MSAcpi_ThermalZoneTemperature")
  t=(oItem.CurrentTemperature - 2732) / 10
  d1.innerText=t
  d2.style.width=t
  If t>90 Then
    d2.style.backgroundColor="red"
  ElseIf t>80 Then
    d2.style.backgroundColor="orangered"
  ElseIf t>70 Then
    d2.style.backgroundColor="orange"
  ElseIf t>60 Then
    d2.style.backgroundColor="yellow"
  Else
    d2.style.backgroundColor="blue"
  End If
  document.title=t & String(t/10-5,"■")
  setTimeout "window_onload",10000
Next
End Sub
</script>
</head>
<body>
<table border=0>
<tr>
<td id=d1></td><td><div id=d2 style="background-color: red;   width: 142px; font-size:10px;">&nbsp;</div></td>
</tr>
</table>
</body>
</html>

2011年7月24日 (日)

信頼済みサイトに含まれるスクリプトサイト一覧を取得するブックマークレット

ページを開いて、ページサイトを信頼済みサイトに登録しても、<script src=~>のスクリプトサイトも登録しなければ、動作しません。

そのため、ソースを表示して"<script"を検索しても、スクリプトで<script src=~>を生成している場合があるので、実行中のソースを調べる必要があります。

そこで、

ScriptUrls.url

javascript:var arr=new Array();for(var k=0;k<document.scripts.length;k++){var src=document.scripts[k].src;if(src){arr.push(src);}}alert(arr.join('\r\n'));

で<script src=~>のurl一覧が得られます。が、ちょっと使いにくい。

そこで、更に、スクリプトのurlからサイト名を取り出して、重複を集約して、サイト一覧に加工します。

ScriptSites.url

javascript:var o=new Object();var a=document.createElement('a');var arr=new Array();for(var k=0;k<document.scripts.length;k++){var src=document.scripts[k].src;if(src){a.href=src;o[a.protocol+'//'+a.hostname]=1;}}for(var p in o){arr.push(p);}alert(arr.join('\r\n'));

2011年7月23日 (土)

「Web アーカイブ、単一のファイル (*.mht)」で「名前を付けて保存」する。(その2)

IE9で「名前を付けて保存」のデフォルトが「Web ページ、完全 (*.htm;*.html)」に変わりました。

デスクトップフォルダなどで作成し、お気に入りバーフォルダに移動で入れます。ieのお気に入りバーから起動します。

Web アーカイブ、単一のファイル (.mht).vbs

WScript.Timeout=10
Set wShell=CreateObject("WScript.Shell")
wShell.SendKeys "^s"
Do While Not wShell.AppActivate("Web ページの保存")
  WScript.Sleep 100
Loop
wShell.SendKeys "%t{home}w%n"

従来の方法は、
タイトルに拡張子を付けてデフォルトを変える方法は、IE9で無効になりました。
コンテキストメニュー拡張は、IE7以降の保護モードでオブジェクト作成が無効になりました。
そこで、原始的なSendKeysに頼らざるを得なくなりました。

2011年7月22日 (金)

現ieのdefaultCharsetをutf-8に設定する。

デスクトップフォルダなどで作成し、お気に入りバーフォルダに移動で入れます。ieのお気に入りバーから起動します。

defaultCharset=utf-8.vbs

WScript.Timeout=5
Set wShell=CreateObject("WScript.Shell")
wShell.SendKeys "^{f6}"
For Each ie In CreateObject("Shell.Application").Windows()
  If ie.ReadyState=4 Then If TypeName(ie.Document)="HTMLDocument" Then If ie.Document.hasFocus() Then Exit For
Next
If IsEmpty(ie) Then
  MsgBox "Current IE not found."
  WScript.Quit
End If
ie.Navigate "about:blank"
Do While ie.Busy Or ie.ReadyState<>4
  WScript.Sleep 100
Loop
ie.Document.body.innerText=ie.Document.defaultCharset
wShell.SendKeys "%(vdu)"
WScript.Sleep 100
ie.Document.body.innerText=ie.Document.defaultCharset
Do While ie.Document.defaultCharset<>"utf-8"
  Select Case ie.StatusText
  Case "編集に関するコマンドです。" wShell.SendKeys "du"
  Case"この Web ページを表示するために使用する文字コードを指定します。" wShell.SendKeys "u"
  Case Else wShell.SendKeys "%(vdu)"
  End Select
  WScript.Sleep 500
  ie.Document.body.innerText=ie.Document.defaultCharset
Loop

2011年7月21日 (木)

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

新しいアイコンが、理由はわかりませんが、最後に追加されたり、なぜか2番目に挿入されたりします。

更新日時の昇順にしておけば、新規ファイルは最後に追加されますが、コピーや移動が途中になります。

作成日時の昇順にしておけば、新規ファイルやコピーも最後に追加されますが、移動は途中になります。

作成日時の昇順にソートする.vbs

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

2011年7月18日 (月)

IE9で「お気に入り」ボタンを左に置く。

お気に入り.vbs

CreateObject("WScript.Shell").SendKeys("^+i")

を「お気に入りバー」に入れて、「お気に入りバー」を表示します。

お気に入り.vbs の代わりにそのショートカット お気に入り.lnk を作って「お気に入りバー」に入れれば、アイコンを星印にできます。アイコンはshell32.dll内にあります。

注意!
お気に入り.vbs や お気に入り.lnk はデスクトップなどで作成し、「お気に入りバー」に「移動」で入れます。
「お気に入り」でファイルを作成(コピーを含む)すると、整合性レベル低になります。

2011年7月16日 (土)

shell:cacheのfavicon.icoを詳細表示する。

shell:cacheを開いて検索ボックスにfavicon.icoを入れて一覧表示できますが、この検索条件は保存できません。
代わりに、

Set ie=GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
ie.Visible=True
ie.Navigate2 "shell:cache"
Do While ie.Busy Or ie.ReadyState<>4
  WScript.Sleep 100
Loop
ie.Document.CurrentViewMode=4
ie.Document.FilterView "favicon.ico"

2011年7月14日 (木)

dup(uniq -d)バッチファイル

重複行を出力します。

dup.cmd 入力ファイル 出力ファイル

@echo off
type nul>%2
for /f "delims=" %%I in (%1) do (
for /f %%J in ('findstr /x /c:"%%I" ^<%1 ^|find /c /v ""') do if %%J GTR 1 findstr /x /c:"%%I"<%2 >nul||echo %%I>>%2
)

2011年7月 6日 (水)

バッチファイルでLTrim()する。

数字の頭に0が付いてると8進数になったりして困ります。

set /a 010

そういうとき、先行する0を削除したいがどうするか?

for /f "delims=0 tokens=*" %%I in ("010") do set /a %%I

« 2011年6月 | トップページ | 2011年8月 »