Giraffe+のFAQ

基本的な質問

何をするソフトウェア?

登録してあるファイルを実行したり、目的のパスにアクセスするといった日常的な作業を効率化します。スクリプトを利用した多彩な設定が可能です。

動作するOSは?

Windows 2000/XPで動作します。Vistaでの動作は確認してませんが、7ではデフォルトのホットキー以外は問題無いようです。

必要なランタイムなどは?

Visual C++ 7.1(Visual Studio .NET 2003)のMFCのランタイムを使用します。起動できない場合はvc71runtime20060711.zipをシステムディレクトリに展開してください。

ウインドウの名称がよく分からない

起動して表示されるのがメインウインドウ、枠の中にある入力領域がエディット、F4キーを押すと表示されるのがリストボックス、F5で出るのが設定ダイアログです。

登録アイテムの管理の仕方は?

ShortcutViewerを使うのが今のところ最善の方法です。

このFAQに載ってない質問がある

このエントリーのコメント欄に書き込んでください。随時追加していくつもりです。

カスタマイズについての質問

動作を軽くしたい

何が重いのか原因が解かれば、その原因を設定によって取り除くことが可能かもしれません。たとえば、アイコンの取得のためにHDDのアクセスが発生し重く感じるのであれば、アイコンを非表示にすればその重さは解消されるでしょう。
F5キーを押して設定ダイアログを表示し、ConfigでLightボタンを押すと軽い設定になります。それを元にいろいろ試してみるのもいいかもしれません。

メインウインドウをアクティブにするホットキーを変更したい

設定ダイアログのSettingsのhotkeyのチェックされてるw-spaceという部分を書き換えます。リストビューのアイテムの編集には、選択してF2キーを押すか選択中のアイテムをクリックします。

大きいアイコンを表示したい

アイコンを表示する領域が34ピクセルを超えていれば大きいアイコンが表示されます。設定ダイアログのConfigのWindow.HeightやList.ItemHeightから設定できます。
スクリプトを使うことでアイコン枠の大きさに関わらずにアイコンの大きさを決めることも可能です。

//エディットとリストボックスのアイコンを大きくする
Giraffe.Edit.SmallIcon.= false
Giraffe.ListBox.SmallIcon.= false
メインウインドウを最前面にして、インアクティブ時(非フォーカス時)に日時を表示したい

設定ダイアログのSettingsのsetupのClockInactiveをチェックすることで、インアクティブ時に日時が表示されるようになります。表示される書式等はスクリプトグローバル変数を設定することで変更可能です。書式の仕様はhttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/strftime.3.htmlと同じです。

$clock-display:format('%A, %B %d, %Y - %H:%M:%S')

色については、ColorのDeactiveAutocompleteのEach ItemのEdit.Elseを編集してください。最前面にするにはSettingsのsetupのTopMostGiraffeをチェックします。常に表示することを考えると、SwitchInsteadOfHideもチェックすべきかと思います。

ひとつの動作に複数のキーを割り当てたい

設定ダイアログのキー設定の部分で、2とか数字を付けた名前にDuplicateして、キー設定するのが簡単な方法です。
スクリプトを使うほうが簡潔に解決できます。たとえば、Ctrl+MでEnterと同じことをしたいなら、次の一行で可能です。

DuplicateEvent('key/c-m' 'key/enter')
実行区切り文字(コマンドライン引数を置きたいときに使う文字)を変更したい

デフォルトで';'になってる区切り文字は、設定ダイアログのConfigのGeneral.Separatorから変更可能です。設計上は文字列が扱えるようになっています。

特定フォルダのソートを逆順にしたい

ファイル名などが日付になってる場合、逆順になると最新のものが先頭に来て扱いやすくなります。

//D:\howm以下のソートを逆順にしつつフォルダは上に
Giraffe.Event.GetSortMode:@ `*[
  Giraffe.Edit.Text.istarts_with('d:\howm\\').? [{arg.at(0) -1 1}.return]
].& (Giraffe.Event.GetSortMode$)

スクリプトについての質問

スクリプト言語の仕様が知りたい

ブログのスクリプト言語についてのエントリーを読んだり、ソースを見るのがいいと思います。

自分で編集したスクリプトはどこに置く?

Script2に置きます。スクリプトを実行しようとした時の探索順は、デフォルトで、カレントディレクトリ -> Script2 -> Scriptとなっており、Script2にはデフォルトで何もありませんので、アップデート時に自分のスクリプトが上書きされる事故を防げます。

.giraffeとsiteinit.giraffeって何?

起動時に自動的に実行されるスクリプトです。先ず.giraffe、次にsiteinit.giraffeの順です。大きな違いとして、.giraffeはScriptフォルダにデフォルトで存在し、siteinit.giraffeは存在しないというのがあります。デフォルトの.giraffeGiraffe+の動作に必要なスクリプトを実行します。ですから、自動実行されるスクリプトを追加したい場合、.giraffeではなく、siteinit.giraffeを利用します。他のスクリプト同様、自分のスクリプトのためのフォルダであるScript2フォルダにsiteinit.giraffeを作成し、そこに起動時に実行したいスクリプトを書き込みます。

スクリプトでいろいろやってたら起動できなくなった

.giraffeやsiteinit.giraffe、iniファイル、Scriptフォルダやカレントディレクトリなど、さまざまな要因によって起動時のスクリプトにエラーが発生し、起動に失敗します。起動時のスクリプトエラーはエラーダイアログを表示して終了しますが、エラーメッセージから簡単に推測できる場合は少ないです。Script2や.giraffeを一時的にリネームして、それで起動できるか確認するなどして、エラー箇所を特定していくのがいいかと思います。

スクリプトデバッグ方法

Trace関数で引数の文字列をデバッグ出力できます。デバッグ出力には他にもDoutオブジェクトが使えます。デバッグ出力の表示にはSysinternalsのDebugViewを使うと便利です。ブレークポイント等、他に有効な手段は特にありません。