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

« 2012年4月 | トップページ | 2012年6月 »

2012年5月25日 (金)

Windows Photo Viewerを1ウィンドウで開く。

なかなか名案がありません。そこで前のウィンドウがあればそれを閉じることで代替します。

PhotoViewer.vbs ファイル

with createobject("wscript.shell")
if .appactivate(" - Windows フォト ギャラリー") then .sendkeys "%{f4}"
if .appactivate(" - Windows フォト ビューアー") then .sendkeys "%{f4}"
.run wscript.arguments.item(0)
end with

2012年5月21日 (月)

IEで表示中のページのタイトルとURLをリンクに変えてクリップボードにコピーするブックマークレット

IEで表示中のページのタイトルとURLをリンク、<a href=URL>タイトル</a>に変えてクリップボードにコピーします。

javascript:with(document.body.createTextRange()){collapse();pasteHTML('<a href="'+location+'">'+document.title+'</a>');moveStart('textedit',-1);execCommand('Cut');}void(0)

2012年5月20日 (日)

履歴からURLのWebページのタイトルを調べる。

履歴にはURLをキーとしてWebページのタイトルが記録されています。それは、

CreateObject("Shell.Application").NameSpace(url).Title

で得られます。
もし、履歴にないか、Webページにタイトルがなければ、代わりにhashを除くURLが返ります。

次はインターネットショートカットをドロップすると、タイトルを表示します。

url2title.vbs インターネットショートカット

Set Link=CreateObject("WScript.Shell").CreateShortcut(WScript.Arguments.Item(0))
MsgBox CreateObject("Shell.Application").NameSpace(Link.TargetPath).Title

2012年5月18日 (金)

インターネットショートカットからリンクを作ってコピーする。

Webページのエディタにリンク(<a href=URL>TITLE</a>)を書き込むとき、既存のリンクがあれば、それをコピー貼り付けできるので簡単ですが、インターネットショートカットしかない場合は面倒です。
そこでインターネットショートカットからリンク(<a href=URL>ファイルのベース名</a>)を作ってコピーします。

url2a2copy.htaをお気に入りバーなどに置いてインターネットショートカットファイルをドロップします。

url2a2copy.hta インターネットショートカットファイル

<html>
<head>
<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
Dim Link
Set Link=CreateObject("WScript.Shell").CreateShortCut(Trim(Replace(Mid(hta.commandLine,k+1),"""","")))
document.links(0).href=Link.TargetPath
document.links(0).innerText=CreateObject("Scripting.FileSystemObject").GetBaseName(Link.FullName)
document.execCommand "SelectAll"
document.execCommand "Copy"
close
End Sub
</script>
</head>
<body>
<a href=></a>
</body>
</html>
<hta:application id=hta />

2012年5月12日 (土)

高精度?時計

一応、右下に置いてますが、右上や左上にしたければ、適当に変えてください。

HRClock.hta

<script language=vbscript>
moveto screen.availwidth-110,screen.availheight-25
resizeto 110,25
dim t1,t2,t3
setInterval "proc",10
sub proc
t2=time
if t1=t2 then
  t3=t3+1
  document.title=t1 & "." & Mid(t3,2)
else
  t1=t2
  t3=100
  document.title=t1 & "." & Mid(t3,2)
end if
end sub
</script>
<hta:application minimizebutton=no maximizebutton=no />

2012年5月 6日 (日)

DATE/TIMEコマンドやDATE/TIME環境変数の形式は地域に依存します。(その2)

command.comのdateコマンドはISO形式固定のようです。

for /f "tokens=5 eol=E" %%i in ('"echo.|command /c date"') do echo %%i

for /f "tokens=5 eol=E" %%i in ('"echo.|command /c date"') do set ddd=%%i
echo %ddd%

2012年5月 5日 (土)

ifコマンドの文字列比較はまともに使えない。

rem 半角長音
if aa == aー echo bug

rem 全角長音
if aa == aー echo bug

rem 全角ダッシュ
if aa == a― echo bug

rem ヽ
if aa == aヽ echo bug

rem ゝ
if aa == aゝ echo bug

なので、バッチファイルで文字列処理は全く推奨できません。きっぱり。

2012年5月 4日 (金)

GetIconLocationを代替する。

スクリプトからではGetIconLocationが使えません。その代替法です。

Option Explicit
Dim fso
Dim Shell
Dim Path
Dim FolderItem
Dim Link

Set fso=CreateObject("Scripting.FileSystemObject")
Set Shell=CreateObject("Shell.Application")
For Each Path In WScript.Arguments
  Set FolderItem=Shell.NameSpace(fso.GetParentFolderName(Path)).ParseName(fso.GetFileName(Path))
  Set Link=FolderItem.GetLink
  WScript.Echo FolderItem.ExtendedProperty("{5CBF2787-48CF-4208-B90E-EE5E5D420294},10"),FolderItem.ExtendedProperty("{5CBF2787-48CF-4208-B90E-EE5E5D420294},9")
Next

2012年5月 3日 (木)

選択されたurlをリンクに変えるブックマークレット

urlを選択してブックマークレットを実行すると、そのurlをリンクに変える。

javascript:var t=document.selection.createRange();t.execCommand('CreateLink',false,t.text);

2012年5月 2日 (水)

選択されたurlを開くブックマークレット

urlを選択してブックマークレットを実行すると、そのurlを新しいウィンドウで開く。ieの設定により、新しいタブになる。

javascript:open(document.selection.createRange().text,"_blank")

2012年5月 1日 (火)

「このページの検索」を代替、拡張するブックマークレット(その2)

該当箇所の背景色を黄色と赤で交互に点滅させて目立たせます。setIntervalでスクリプトを繰り返し実行しています。停止するには、「最新の情報に更新」。

javascript:var s=prompt('検索文字列','');if(s){var t=true;setInterval('f();',1000)}function f(){var k=0,r=document.body.createTextRange();while(r.findText(s)){k++;r.execCommand('BackColor',false,t?'yellow':'red');r.collapse(false);}t=!t;}

該当箇所をmarqueeでスクロールさせて目立たせます。marqueeを停止するには、「最新の情報に更新」。

javascript:var s=prompt('検索文字列','');if(s){var k=0,r=document.body.createTextRange();while(r.findText(s)){k++;r.pasteHTML('<marquee width='+r.boundingWidth+'>'+r.text+'</marquee>');r.collapse(false);}alert(k);}

« 2012年4月 | トップページ | 2012年6月 »