ブックマーク管理その3

不具合の修正

早速見つかったので、とりあえず修正。あとちょこちょこ改善。
とりあえず書いてみる。ほんとは、前回の記事のほうを修正した方がいいのかな。まあいいや。

ShorterRead.ahk

CoordMode, Menu, Screen

Loop, Read,D:\data\AHKdata\bookmark.txt
{
	Src=%A_LoopReadLine%
	StringSplit, word_array, Src,`|,%A_Space%%A_Tab%
	Menu,Shorter,add, %word_array1%, Menu
}

Menu,Shorter,Show,450,600
return

Menu:
GetKeyState, state, Ctrl
If state=D

{
MsgBox,3,,%A_ThisMenuItem%を削除していいですか?
IfMsgBox, No
return
IfMsgBox,Cancel
return
Loop, Read, D:\data\AHKdata\bookmark.txt, D:\data\AHKdata\Temp.txt
{
	if(A_Index=A_ThisMenuItemPos)
	continue

	FileAppend, %A_LoopReadLine%`n

}
FileDelete,  D:\data\AHKdata\bookmark.txt
FileMove, D:\data\AHKdata\Temp.txt, D:\data\AHKdata\bookmark.txt
return
}
If state=U

{
	FileReadLine, Src, D:\data\AHKdata\bookmark.txt, %A_ThisMenuItemPos%
	StringSplit, word_array, Src,`|,%A_Space%%A_Tab%

Run,%word_array2%
return
}

ShorterWright.ahk

ControlGetText, Urltext, Edit1, ahk_class TKikiMain
WinGetTitle, Title, ahk_class TKikiMain
; kiki以外を使っている人は、うえの二つの行をうまく書き換えれば対応できる…はず。
StringTrimRight, Title, Title,7
InputBox, Title , , , , 200, 100, , , , , %Title%
if ErrorLevel <> 0
return
Loop, Read, D:\data\AHKdata\bookmark.txt

{
	StringSplit, word_array, A_LoopReadLine,`|,%A_Space%%A_Tab%
	if (word_array1=Title)
	{
	Msgbox,その名前登録済みです;;`nすいません違う名前でお願いしまう><
	return
	}
}

Msgbox,タイトル%Title%`nURL%Urltext%`nを書き込んでもいいですか?

FileAppend,%Title%` | %Urltext%`n,D:\data\AHKdata\bookmark.txt
return

説明

ShorterRead.ahkは、削除をするときの挙動を、変だったのから修正した。 ShorterWright.ahkでは、同じ名前のサイトを登録できないようにした。同じのだと、A_ThisMenuItemPosを使っている関係でラベルが変なふうにはられてしまうの。本当は、サイト名を変更して再入力ダイアログを出すのがいいんだけど、これでも別に困らないかな、と。
 あと、bookmark.txtに改行が入っているとうまくいかない。bookmark.txtの最後が改行で終わっていると、ShorterWright.ahkを使ったときに改行が入って不具合になる。うまいことやったら、問題ないのかな…また考えてみる。最後が改行で終わっている状態にShorterWright.ahkを合わせることで、たぶん解決したの(´・ω・`) 。 操作によっては、なんか勝手に改行入っちゃったりするな…とりあえず修正は施したけど、またこの部分で不具合でるヨカーン。bookmark.txtを読み込むときに文字列の入っていない行を無視することとかできないのかしらん。

具体的な使い方

前回書いたのよりも、もう少しだけ具体的に。
fenrirに、まず、ShorterRead.ahkとShorterWright.ahkを登録。instant.iniに、

r/="D:\bin\AutoHotkey\Autohotkeyfile\ShorterRead.ahk"
w/="D:\bin\AutoHotkey\Autohotkeyfile\ShorterWrite.ahk"

を付け足す。こうすると、fenrirにr/を入力すると登録したブックマークがポップアップメニューで表示される。w/で、kikiで現在表示中のサイトが登録される。

AutoHotkeyの検索ボックスについて

web検索の方法その1で、AHKguiがもっさりとかなんとかいってたけど、変更できるみたい。

Gui,+AlwaysOnTop +ToolWindow +Border -SysMen

みたいなのを、付け加えるだけ。細かい説明は、AutoHotkeyを流行らせるページを見てください。

じゃあねー(^o^)ノ