; LayerLabel_to_ID.ahk ; ▽ 概要 ; 既存のレイヤー名(label)とidを同じ名前に書き換えます。 ; ▽ 使い方 ; XMLエディタの左ペインでツリーが展開されていない場合は展開し、svg:g id を選択した状態で ; LayerLabel_to_ID.ahkを開始してください。 ; キャレットが右ペインにある状態で開始すると、少なくとも最初のidは変換されません。 ; もしレイヤー以外の要素が選択されていた場合、次の要素に移動して続行の可否を求めます。 ; レイヤー以外のインデントを畳んでいれば連続変換できます。 ; ▽ 仕様 ; svg g:id にインデントされている svg:path id などを選択した状態で実行してしまうと、 ; レイヤーが見つかるまで探し続けます。強制停止はタスクトレイアイコンから行えます。 SetTitleMatchMode, 2 ;IfWinNotExist, XMLエディタ(X) (Shift+Ctrl+X) IfWinNotExist, XML Editor (Shift+Ctrl+X) { MsgBox, 16, error, XMLエディタが開かれていません。`nスクリプトを終了します。 ExitApp } MsgBox, 4148, LayerLabel_to_ID, ( レイヤー名(label)とidを同じ名前に書き換えます。`n XMLエディタで svg:g id を選択し、キャレットが右ペインにない状態でなければ`n確実に誤動作します。 `n`n本当に実行しますか? ) IfMsgBox, No ExitApp WinActivate, XML Editor (Shift+Ctrl+X) Loop { Sleep, 500 BlockInput, Send Send, {Tab} Send, ^{Home}{Down 2}{Space}^a^c Sleep,200 l_label := Clipboard Send, +{Tab 2}^c if (Clipboard <> "inkscape:label") { Send, +{Tab 3}{Down}{Space} Sleep, 200 Continue } Send, +{Tab}^{Home}{Space} Sleep, 200 Clipboard := l_label Send, ^a^v Sleep, 200 Send, ^{Enter} Send, +{Tab 5}{Down}{Space} Sleep, 200 BlockInput, Off MsgBox, 4161,,次の変換を許可, IfMsgBox, ok { Continue } else{ break } } MsgBox, done. return