2017年8月
    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    
無料ブログはココログ

« 2016年3月 | トップページ

2017年8月17日 (木)

引用(blockquote)を挿入するブックマークレット

記事編集で引用(blockquote)を挿入するのは面倒です。

こういうもの。一般に引用であることを示す。

選択範囲に対して<blockquote>を挿入するブックマークレット

blockquote.url

javascript:(function(w){var range=w.getSelection().getRangeAt(0);var newNode=w.document.createElement('blockquote');newNode.appendChild(range.extractContents());range.insertNode(w.document.createElement('br'));range.insertNode(newNode);})(frames[parseInt(frames.length/3)])

対象:
マイクロソフトコミュニティ
Msdnフォーラム
TechNetフォーラム
Niftyココログ

インターネットショートカットをドロップすると、そのページへのリンクを作成して、コピーするhta

記事作成時にwebページのリンクを挿入するのは面倒です。
「インターネットショートカットをドロップすると、そのページへのリンクを作成して、コピーするhta」があれば、インターネットショートカットをhtaのショートカットにドロップして、貼り付けるだけで済みます。

リンクを作成してコピー.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,fso,file
set fso=CreateObject("Scripting.FileSystemObject")
set File=fso.GetFile(Trim(Replace(Mid(hta.commandLine,k+1),"""","")))
Set Link=CreateObject("WScript.Shell").CreateShortCut(file.Path)
document.links(0).href=Link.TargetPath
document.links(0).innerText=fso.GetBaseName(Link.FullName)
document.execCommand "SelectAll"
document.execCommand "Copy"
close
End Sub
</script>
</head>
<body>
<a href=></a>
</body>
</html>
<hta:application id=hta />

標準では、htaにはドロップできないので、mshta.exeのショートカットにドロップする。

リンクを作成してコピー.lnk

mshta.exe "(フルパス)\リンクを作成してコピー.hta"

これをお気に入りに入れておく。

現在のページのリンクを作成して、コピーするブックマークレット

記事作成時にwebページのリンクを挿入するのは面倒です。
「現在のページのリンクを作成して、コピーするブックマークレット」があれば、そのwebページを開いてブックマークレットを実行して、貼り付けるだけで済みます。

リンクを作成してコピー.url

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

Edgeにブックマークレットを入れる方法

edgeでは直接、ブックマークレットを作れない。

ieで作って、ieからhtmlファイルにエクスポートして、edgeでhtmlファイルからインポートする。

edgeでユーザスタイルシート代替ブックマークレット

Edgeにはユーザスタイルシートがない。ブックマークレットで代替するしかない。

javascript:(function(x){x.insertRule('ルール1',x.cssRules.length);})(document.styleSheets[document.styleSheets.length-1])

javascript:(function(x){x.insertRule('ルール1',x.cssRules.length);x.insertRule('ルール2',x.cssRules.length);})(document.styleSheets[document.styleSheets.length-1])

「Bingで翻訳」の代替ブックマークレット

選択、、右クリック、「Bingで翻訳」をクリックしても、翻訳ページが開かない。

Bingで翻訳.url

javascript:open("https://www.bing.com/translator/?to=&from=&ref=IE8Activity&text="+encodeURI(getSelection()),"_blank");void(0)

url#hashに指定するid= name=を調べるために、id= name=を表示するユーザスタイルシート

*[id]:before {content: "id=" attr(id);border: 1px solid red;color:red;}
*[name]:before {content: "name=" attr(name);border: 1px solid red;color:red;}

空白ページをieのホームページにする。戻る/進むhistoryの先頭に一気に戻るブックマークレット

about:blankをieのホームページにしても、戻る/進むhistoryに残らないので、戻れない。
そこでabout:blankの代わりにres://mshtml.dll/blank.htmをieのホームページにする。
res://mshtml.dll/blank.htmは戻る/進むhistoryに残る。

戻る/進むhistoryが長いと展開しても先頭が表示されない。
そんなときでも、戻る/進むhistoryの先頭に一気に戻るブックマークレット

go home.url

javascript:for(k=history.length;k;k--){history.go(-k);}

2017年8月16日 (水)

エクスプローラの「パスのコピー」を加工するブックマークレット

エクスプローラの「パスのコピー」でパス名のリストがクリップボードに入る。

"パス名1"
"パス名2"

から"を削除して

パス名1
パス名2

に加工するブックマークレット

%~1.url

javascript:clipboardData.setData('text',clipboardData.getData('text').replace(/"/gm,''))

"フォルダパス名\ファイル名1"
"フォルダパス名\ファイル名2"

から"フォルダパス名\   "を削除して

ファイル名1
ファイル名2

に加工するブックマークレット

%~nx1.url

javascript:clipboardData.setData('text',clipboardData.getData('text').replace(/^.*\\/gm,'').replace(/"/gm,''))

簡易HTMLエディタ?

webページを選択コピーして、メモ帳に貼り付けると、HTMLが失われます。

メモ帳.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ""><HTML><HEAD>
<META http-equiv="Content-Type" content="text/html; charset=shift_jis">
<SCRIPT>
document.designMode='On';
</SCRIPT>

<META name="GENERATOR" content="MSHTML 11.00.10570.1001"></HEAD>
<BODY></BODY></HTML>

これをお気に入りに入れておきます。

これを開いて、貼り付けると、HTMLが保存されます。
「ファイル」、「名前を付けて保存」するか、「ファイル」、「保存」で元ファイルに保存します。後者の場合は、開く前に予めドラッグドロップなどでコピーを作っておきます。上書き保存したら適宜名前を変えます。

簡易的16進バイナリダンプコマンド

blank.txt

ダンプしたい長さ分だけ空白を詰める。


fc /b ファイルblank.txt
                                                                                                                  

2017年8月15日 (火)

ディレクトリ背景のコンテキストメニューに(コマンドプロンプトの)管理者として実行

管理者として実行.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

2017年8月14日 (月)

ie「お気に入り」巨大化対策

ieの「お気に入り」が巨大化すると、「お気に入りに追加」で数分black outする、など支障が出る。
これは、「お気に入りに追加」で表示されるフォルダ一覧の生成に時間が掛かるせいである。
「お気に入りに追加」で表示されるフォルダ一覧は最大2スクロール分程度にすることを勧める。
そのためには、
普通「リンク」フォルダは使うことがないので隠し属性にしている。
この中に使用頻度の低いフォルダを入れる。
「リンク」フォルダは通常表示されないので、代わりにそのショートカットを入れておく。必要な場合は、それで、「リンク」フォルダをエクスプローラで開く。
あるいは、
リンク表示.vbs

Set Shell=CreateObject("Shell.Application")
Set Folder=Shell.NameSpace("shell:Favorites\リンク")
For Each FolderItem In Folder.Items
  If  InStr(FolderItem.Name,"- ショートカット") Then
      FolderItem.InvokeVerb "delete"
  End If
Next
For Each FolderItem In Folder.Items
  For Each Verb In FolderItem.Verbs
    If  Verb.Name="ショートカットの作成(&S)" Then
      Verb.DoIt
      WScript.Quit
    End If
  Next
Next

を入れておく。これで、「リンク」フォルダが「お気に入りセンタ」に一時的に表示される。
都合により「リンク」フォルダにショートカットがひとつできるが気にしない。

2017年8月13日 (日)

指定フォルダ配下のすべてのフォルダの整合性レベル低を調べるバッチファイル

ILshowDot.cmd フォルダ

ILshowDot.cmd

@echo off
for /r %1 %%1 in (.) do (
set x=
for /f "delims=" %%i in ('icacls "%%~1"') do (
for /f "tokens=1,3 delims=\: " %%j in ("%%i") do (
if "%%j"=="Mandatory" (
set x=%%k       
call echo;%%x:~0,6%% %%~nx1
)
)
)
if not defined x echo;Med    %%~nx1
)

整合性レベル低でないものだけをリストするには、

rem call echo;%%x:~0,6%% %%~nx1

に変える。

指定フォルダ配下のすべてのファイルの整合性レベル低を調べるバッチファイル

ILshowALL.cmd フォルダ

ILshowALL.cmd

@echo off
for /r %1 %%1 in (*) do (
set x=
for /f "delims=" %%i in ('icacls "%%~1"') do (
for /f "tokens=1,3 delims=\: " %%j in ("%%i") do (
if "%%j"=="Mandatory" (
set x=%%k       
call echo;%%x:~0,6%% %%~nx1
)
)
)
if not defined x echo;Med    %%~nx1
)

整合性レベル低でないものだけをリストするには、

rem call echo;%%x:~0,6%% %%~nx1

に変える。

ファイルが整合性レベル低か調べるバッチファイル

ILshow.cmd ファイル...

ILshow.cmd

@echo off
for %%1 in (%*) do (
set x=
for /f "delims=" %%i in ('icacls "%%~1"') do (
for /f "tokens=1,3 delims=\: " %%j in ("%%i") do (
if "%%j"=="Mandatory" (
set x=%%k       
call echo;%%x:~0,6%% %%~nx1
)
)
)
if not defined x echo;Med    %%~nx1
)

結果は

Low    ファイル名
Med    ファイル名

2017年8月11日 (金)

jpegファイルのexifメタデータを読み出すコマンド

画像のExif情報を取得する、設定する .NET Tips C#, VB.NET
をコマンドに加工する。

GetExif.VB

Public Class Class1
Public Shared Sub Main(ByVal Args() As String)
For k As Integer =0 To UBound(Args)
'画像ファイル名
Dim imgFile As String = Args(k)
'読み込む
Dim bmp As New System.Drawing.Bitmap(imgFile)
'Exif情報を列挙する
Dim item As System.Drawing.Imaging.PropertyItem
For Each item In bmp.PropertyItems
    'データの型を判断
    If item.Type = 2 Then
        'ASCII文字の場合は、文字列に変換する
        Dim val As String = System.Text.Encoding.UTF8.GetString(item.Value)
        val = val.Trim(New Char() {ControlChars.NullChar})
        '表示する
        Console.WriteLine("{0:X}:{1}:{2}", item.Id, item.Type, val)
    Else
        '表示する
        Console.WriteLine("{0:X}:{1}:{2}", item.Id, item.Type, item.Len)
    End If
Next item
bmp.Dispose()
Next k
End Sub
End Class

VBC4.CMD

@ECHO OFF
SETLOCAL
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /out:"%~dpn1.exe" "%~f1"
IF ERRORLEVEL 1 PAUSE

GetExif.VB を GetExif.VB にドラッグドロップすると GetExif.exe ができる。

使用法は、

コマンドラインで

GetExif.exe jpegファイル 複数可

GUIで、jpegファイル 複数可を GetExif.exe にドラッグドロップする。

jpegファイルのexifのメタデータを全削除するpowershellバッチファイル

Jpeg ファイルの GPS Exif を PowerShell で削除する
をpowershellバッチファイルに加工する。

removeExif.cmd

PowerShell.exe -command "function RemoveGPSExif( $JpegFile ){$FileName = Split-Path $JpegFile -Leaf;if( (($FileName -split '\.')[1] -ne 'jpg' ) -and (($FileName -split '\.')[1] -ne 'jpeg' )){return;}$JpegFileFullName = Convert-Path $JpegFile -ErrorAction SilentlyContinue;if( $JpegFileFullName -eq $null){echo '$JpegFile not convert full path.';return;}if( -not ( Test-Path $JpegFileFullName )){echo '$JpegFile not found';return;}$TempFile = $JpegFileFullName + '.tmp';Add-Type -AssemblyName System.Drawing;$bmp = New-Object System.Drawing.Bitmap($JpegFileFullName);$Index = $bmp.PropertyItems.Length;for ( $i = 0; $i -lt $Index; $i++ ){$Item = $bmp.PropertyItems[$i];$ID = $Item.Id;$Item.Len = 0;$Item.Value = $null;$bmp.SetPropertyItem($Item);}$bmp.Save($TempFile, [System.Drawing.Imaging.ImageFormat]::Jpeg );$bmp.Dispose();del $JpegFileFullName;ren $TempFile $JpegFileFullName;}RemoveGPSExif '%~1'"

使用法は

コマンドラインで

removeExif.cmd jpegファイル

GUIで、jpegファイルをremoveExif.cmdにドラッグドロップ。

ディレクトリ背景のコンテキストメニューにコマンドプロンプト

コマンドプロンプト.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd2]
@="コマンドプロンプト"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd2\command]
@="cmd.exe /s /k pushd \"%V\""

デスクトップ背景のコンテキストメニューにエクスプローラ

DesktopBackground.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\explorer]
@="エクスプローラ"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\explorer\command]
@="explorer.exe \"%V\""

2017年8月 6日 (日)

powershellでスリーブのショートカット

PowerShell.exe "Add-Type -AssemblyName System.Windows.Forms;[Windows.Forms.Application]::SetSuspendState([Windows.Forms.PowerState]::Suspend,$false,$false);"

ショートカットは最小化。

URLのhash(#name)がずれるとき、reloadするブックマークレット

URLのhash(#name)がずれるとき、再度、アドレスバーをエンターするなどで、指定位置にスクロールされる。これをブックマークレットで行う。

reload

javascript:location.replace(location.href)

« 2016年3月 | トップページ