1 :
名無しさん@お腹いっぱい。 :
04/03/11 22:18 ID:2b3fASSi
_.. ,,.-'ヽ ヽ "゙ー-、、 / : :! i 、 :. ヽヽ_,,.....、,,,....._;/ ,;' ;,.! i., ..;;;ヽ ヾ ,,;_ , / ヾ_:::,:' -,ノ ヾ;. '''''' '''''' ;:、 _____ ;; (●), 、(●);: / `; ,,ノ(、_, )ヽ、,; ;: < スレ完全終了 ,;' `-=ニ=- ' ,;:'、 \ ;' `ニニ´ ;:.  ̄ ̄ ̄ ̄ ̄ ;: ';;
3 :
名無しさん@お腹いっぱい。 :04/03/11 22:21 ID:2b3fASSi
前スレでの資産
Ctrl+GでGoogle
SetEvent((key/c-g)(Shell.Execute(cat((
http://www.google.co.jp/search?q= )GetText())))
SetEvent(
(hotkey/wa-a)
(
(アクティブウインドウをDataに追加)
var((hwnd)Window.GetForeground())
var((path)
if(
explorer:is-window($hwnd)
(explorer:get-idlist($hwnd))
(Window.GetModule($hwnd))))
AddData($path)))
一応スレ立て乙だな
5 :
名無しさん@お腹いっぱい。 :04/03/12 13:31 ID:9UHIM+uR
6 :
名無しさん@お腹いっぱい。 :04/03/15 16:44 ID:pCl2Oq+D
おい、描画がマルチスッドレになりましたよ
7 :
名無しさん@お腹いっぱい。 :04/03/21 00:10 ID:NmAJopOj
落ちるぞ
8 :
名無しさん@お腹いっぱい。 :04/03/23 19:12 ID:Vg1hgYEx
あげ
9 :
要望 :04/03/23 19:32 ID:uZidjEbj
おい作者さんよ OS X版作ってくれよ Macだとこの手のソフトに無駄に装飾やら無意味な巨大カタログ(HDD内のディ レクトリ名全部を自動登録とか)やらついてて起動するだけで20MBくらいメモ リ使うんだ。なんとかしてくれよ。 今すぐマカーになって作ってくれよ
10 :
名無しさん@お腹いっぱい。 :04/03/24 16:24 ID:3p4rMLIa
落ちてたのか。あげとく
11 :
名無しさん@お腹いっぱい。 :04/03/29 04:08 ID:DFxhYxwN
復帰
12 :
名無しさん@お腹いっぱい。 :04/03/29 23:36 ID:ei7L/uj2
こいつとMeadowがありゃマウスなんぞ触る必要も無くなるね
13 :
名無しさん@お腹いっぱい。 :04/04/03 19:44 ID:veNZENM0
dat落ちすっぞゴルァage
俺は特殊なスクリプト使ってるぞって奴はいねえのか?
超人lisperな俺に任せれば半年で世界中が真っ白になるくらいのスクリプト書けるよ
Giraffe+のスクリプトはLispじゃないけどな
18 :
名無しさん@お腹いっぱい。 :04/04/16 21:09 ID:quOdpuVo
age
>>5 氏のスクリプトで
魚魚というテキストを食わせると一文字目の魚しかencodeされない
ナンデ?www.giraffe?_| ̄|○
20 :
名無しさん@お腹いっぱい。 :04/04/27 19:11 ID:Hu7rHd+5
わからない
コレいいな。
22 :
名無しさん@お腹いっぱい。 :04/04/29 10:47 ID:H/ffWzRk
24 :
作者 :04/04/29 23:59 ID:DphOLkyl
なんか要望ある?
26 :
名無しさん@お腹いっぱい。 :04/04/30 06:04 ID:nv7TluEf
こういう使い方もあるよ的スクリプトを教えてください…
28 :
名無しさん@お腹いっぱい。 :04/05/03 13:42 ID:K4YXRJQP
2004/05/03 Giraffe+が0.3.1.0にVersion Up 高速化のため、DLLとその関数のロードのタイミングを変更 それに伴いDLLディレクトリの変更不可化 Time.Format関数がおかしくなってたのを修正 オートコンプリート時の一連の動作をスクリプトによる実装にした 関数、AddEvent, InsertEvent, DuplicateEvent, EvalEventを定義してイベントを扱いやすくした フレームの描画イベントをPaintFrameに纏めた 変数が参照の参照などになっていた場合に最終的な参照先がアサインの対象になってなかったのを修正 .giraffeに"一文字目の打鍵はオートコンプリート後にリストを開かない"を追加 .giraffeに"Google Mode"を追加 path.giraffeがparam(0)とすべきところをparam()にしてたのを修正 operator(int()double)が、一時的にoperator(int()int)となるのを、operator(double()double)となるようにした スクリプトのエラーメッセージにコンテキストを追加 一時的に設定を変えるためのmode.giraffeを追加
0.2.x系に比べてGiraffe.exeのメモリ使用量が減っている
起動時にGiraffe.iniのWindow.TopとWindow.Leftの数値が頻繁にリセットされるんですが、いわゆる不具合でしょうか。 タスクバーを上にして使っているのが原因かなと素人考えながら推測しているのですが。 もしタスクバーを下に置くとGiraffeのウィンドウと重なる位置にWindow.TopとWindow.Leftを設定しているので。
31 :
名無しさん@お腹いっぱい。 :04/05/20 21:58 ID:kS/W+I7j
age
32 :
名無しさん@お腹いっぱい。 :04/05/21 23:37 ID:4iDkNG+E
2004/05/17 Giraffe+が0.3.2.0にVersion Up マークでリストの複数アイテムを扱えるようにした forとfor-eachを組み込み関数にした Google Mode終了時にIMEを閉じるようにした Shell.ShowContextMenuのパスを受ける引数に配列があれば展開するようにした GiraffePlugInSDK.hは文字列をstd::stringで返すようにした ControlPanelのScheduled Tasksなんかにアクセスすると落ちてたのを修正 file:get-last-modとかがITEMIDLISTに対応してなかったのを修正 2004/05/17 窓使いの憂鬱のプラグインのページを更新 ie_increを更新 sound_volumeとCommonCtrlを公開
2004/05/24 Giraffe+が0.3.3.0にVersion Up Shift+Up, Down, PageUp, PageDownでマークを連続してできるようにした base.giraffeにminとmaxを追加 Giraffe.giraffeにSetListCurSel*を追加 Alt+AによるDataの追加をマークに対応した Giraffe+からのドラッグアンドドロップをマークに対応した リストボックスでCtrl+クリックでマークできるようにした リストボックスからもドラッグアンドドロップできるようにした イベントGetTextColorを追加 マーク時、テキスト部分も色が暗くなるようにした
Giraffe+からYahoo辞書に漢字をencodeして送っても化けちまう YahooもGoogleみたいに文字コード指定させてクレヨー
>>34 nkf32.dllを使ってみたらいけた。
----------------------------------------------
func(
(sjis2euc)
(
var-arg((sjis))
var((mem_euc)memory:news($sjis))
nkf32.SetNkfOption(addr-str((e)))
nkf32.NkfConvert($mem_euc() addr-str($sjis))
var((euc)gets($mem_euc))
delete($mem_euc)
$euc()))
include((www))
Shell.Execute(cat((
http://dic.yahoo.co.jp/bin/dsearch?p= )www:url-encode(sjis2euc((キリン)))(&stype=0&dtype=0)))
>>35 DLLですか…考えてもいなかった
その気になれば本当にGiraffe+だけいろいろできるんだな
これは…おれにはきついな、 すごい良さげなのに。 とりあえず使ってみよう、そのうちわかってくるかもしれないし。
ver 0.3.4.0
39 :
名無しさん@お腹いっぱい。 :04/06/06 00:54 ID:PNlr8nI6
何かを期待してageてみる。
コードをコピーしたら、eval(get-cb)と入力してF1
41 :
名無しさん@お腹いっぱい。 :04/06/22 01:34 ID:ud5ns7Js
が!
つまんないのでもいいからスクリプト張ってほしい。
AddEvent( (Activate) ( var((p_rect)new($RECT)) User32.GetWindowRect(User32.GetDesktopWindow() $p_rect) User32.InvertRect(User32.GetDC(0) $p_rect) delete($p_rect)) (Deactivate) ( User32.InvalidateRect(0() 0() 0)))
45 :
名無しさん@お腹いっぱい。 :04/06/27 17:54 ID:JFCBb58K
47 :
名無しさん@お腹いっぱい。 :04/07/02 00:45 ID:B8nx+sNb
ageといた方がいい?
version: 0.3.4.1 last modified: 2004/07/01
0.3.4.1になってワイルドカードでのマッチングが使いやすくなって幸せ。 -------------- AddEvent( (Deactivate) ( var((hWnd)GetGiraffeHandle((Edit))) var((hImc)Imm32.ImmGetContext($hWnd)) Imm32.ImmSetOpenStatus($hImc() 0) Imm32.ImmReleaseContext($hWnd() $hImc)))
50 :
名無しさん@お腹いっぱい。 :04/07/04 15:21 ID:PlzCDX7+
麒麟って倉より軽い?
自分で使って判断しろ
自爆した人 ノシ ------------------------------ SetEvent( (key/c-f) ( (Giraffe+内でファイルの検索) if(==s(GetDataPart(GetText()(Target)) ()) ( if(!=s(GetNormalDir(GetText()) ()) ( @find))))))
上のはほとんど自爆防止になってなかった。スマソon_ Target;Parameter と入力してCtrl+Fと押したとすると、 TargetがDataでもPathでもない上、Parameterが無かったり*とかだと ファイルの検索が c:\;* になって延々…ということなのだろうか。 Parameterで*と?を禁止にしてやれば良いかな…。
SetEvent( (key/c-f) ( (Giraffe+内でファイルの検索) if(!=s(GetNormalDir(GetText()) ()) ( var((str)GetParamPart(GetText()(Parameter))) var((char)) while( (||(!=s($str() ()) ==s($char() (*)) ==s($char() (?)))) ( $char(left($str() 1())) $str(mid($str() 1() len($str))) if(&&(!=s($char() (*)) !=s($char() (?))) ( @find))))))))
何度もすいません… (key/c-f) ( (Giraffe+内でファイルの検索) if(!=s(GetNormalDir(GetText()) ()) ( var((str)GetParamPart(GetText()(Parameter))) var((char)()(success)) while( (&&(!=s($str() ()) !=n($success() 1))) ( $char(left($str() 1())) $str(mid($str() 1() len($str))) if($success(&&(!=s($char() (*)) !=s($char() (?)))) ( @find)))))))
56 :
作者 :04/07/10 11:57 ID:4oWAYqjo
とりあえずfind.giraffeを修正しときました。
ほんとに更新してる。
58 :
名無しさん@お腹いっぱい。 :04/07/13 16:33 ID:JwHfbIWF
Giraffe+ 作者様 あなたには、 ・使いやすい ・洗練された ・変な無駄がない ・使っていて気分がいい ・人に自慢したくなる 機能はもちろん、UI デザインにいたるまで、 こういうソフトを作るセンスがあると思います。 ダサいところがない。 ぜひ、お暇があったらファイラーを作っていただきたい。
きりーん、れもーん
アイテムのマークやワイルドカードなどの諸機能のおかげで ファイラーを起動することがなくなってきた…。 mode: を使ってリストを閉じないファイラーモードを用意して、 その間ファイルサイズなども常時表示すれば意外とファイラーっぽく なるような気が…、誰かやってない?
ver0.3.4.2 EvalModeでデフォの配色が…?
62 :
名無しさん@お腹いっぱい。 :04/07/22 07:02 ID:H2KF2VXz
落ちそうなのでageときますね
ソフトウェア板をなめちゃいかんよ。一ヶ月やそこらで落ちるほどヤワじゃない。
上級者向けの詳しいtips集とかを誰かに作ってもらいたい・・・・ 今のままだと、100%の力を引き出してあげることができないから・・・
アプリを起動する もし起動してたらアクティブにする これって一つのキーで出来ない?
>>65 デフォルトの.giraffeにコメントアウトされてる。
Winampをアクティブにとかxyzzyをアクティブにとか。
67 :
65 :04/08/05 06:21 ID:6LZ0pMKE
>>66 giraffe参考にしながら書いてみました
よく分かってないけど一応動きました。
<xyzzy.giraffeで保存>
(xyzzyアクティブ)
(xyzzy.ico)
if( eq-n(
Window.Activate(Window.FindWild(( )(*)) )
(Shell.Execute((xyzzy))) )
(Shell.Execute(
(C:\xyzzy\xyzzy.exe)
cat((")path:if-idlist-get-path(GetNormalFile(GetText()))(")))) )
>67 .giraffeにはなからあるじゃん。 # (hotkey/w-x) # ( # (xyzzyをアクティブに) # Unless( # Window.Activate(Window.FindWild(( )(*))) # (Shell.Execute((xyzzy))))) #外せばいいだけ。
69 :
名無しさん@お腹いっぱい。 :04/08/10 16:38 ID:CQTvWdX4
age
bluwindから乗り換えようとしてるんですが コマンドが”notepad-MS-editor”で登録しておいて、 ms とかeditorでも呼び出したいんだけど、 どうしたらいいですか?
*ms とか *editor と入力して [Shift]+[Space] じゃだめか?
>>70 スクリプト書けばいけるだろうけど、無理と思っちゃっていいかと。
なんか、思想に反する感じもするし。
73 :
70 :04/08/11 02:51 ID:gqnQ2cnZ
>>71 72
それで十分です。ありがとう。
うーん分かり易く覚えられる名前をつけるべきなんだけど、
どうしても忘れちゃうから、部分一致はよくつかってた。
74 :
名無しさん@お腹いっぱい。 :04/08/22 08:30 ID:G2t43Po4
age
保守 …書き込み少ないね。 難しいからなのか、ただ人がいないだけなのか。
難しいから人がいない。
アプリとフォルダしか登録してないんですが、 ハッカーの皆さんはどんな面白い使い方をしてらっしゃいますか? お話聞かせてもらいたいです。
お気に入り代わりにも使ってる。
ネットワーク内のほかのサーバのファイルにアクセスする時に 認証ダイアログが出るときと出ないときがあるような気がする。 最近ずっと出ない。
出ますね。 だからエクスプローラでログインして、エクスプローラ閉じて、 それから Giraffe でアクセス。っていう変な方法で使ってる。 ネットワークのことがよくわからないので、 Giraffe のせいじゃないかもしれないんだけど。
自分のOSは?接続先のOSは?
age
>>82 自分のは XPPro で接続先も XP だと思います。
自分は2K->XPだけど、\\pc\fileを実行しようとしてもパスワード入力のダイアログは出ずに、 ユーザ名とパスワードが違うというエラーダイアログが出る。 でも、\\pcを実行しようとするとパスワード入力のダイアログが出る。 \\pc\filesという存在しないパス(path)にした場合もなぜか出る。 Win+Rでやっても同じ結果だったんでWindowsの問題ぽい。
ところでみなさん、ファイラー使ってますか? Giraffe+使ってると要らないような気がしてくるんですが。
version: 0.3.5.0 last modified: 2004/09/15 言われてみれば最近ファイラーを起動した覚えがない。 要らないとまではいかなくてもExplorerがあれば足りる気もする。
88 :
名無しさん@お腹いっぱい。 :04/09/18 21:34:55 ID:XvW5thS7
質問です。 .girrafe の中にはメインメニュー呼び出しキーとキーボードショートカットに 関する設定がないのですが、 それを変更することはできないのでしょうか? 自分はキーが少ない英語キーボードを使っているので、winキーもAppキーも 「ろ」キー(\2キー)も存在しません。 win2000上でキーリマップでAppキーを別キーに割り当てると 一応メインメニューは出せるのですが、 その他のキーボードショートカットも割り当てようとするとちょっとキーが足りないので、 任意の組み合わせでやりたいと思っています。
>>88 デフォルトのキー設定はScript/Default.giraffeにあるけど、
これは更新時のことを考えると、書き換えないほうがいい。
DuplicateEvent関数でイベントを複製することができるので、
それを利用して、自分は下記をsiteinit.giraffeに追加してEmacs風にしてる。
DuplicateEvent(
(key/a-p) (key/c-p)
(key/a-n) (key/c-n)
(key/a-d) (key/c-d)
(key/c-p) (key/up)
(key/c-n) (key/down)
(key/c-f) (key/right)
(key/c-b) (key/left)
(key/c-d) (key/delete))
90 :
名無しさん@お腹いっぱい。 :04/09/18 22:39:12 ID:XvW5thS7
>>89 ありがとうございました。
DuplicateEvent(
(key/as-5) (key/app)
(hotkey/s-end) (hotkey/w-space))
こんな感じでいけました。
この関数を使うと元の設定も残るので別のPCでも使えますね。感謝です。
91 :
名無しさん@お腹いっぱい。 :04/09/19 21:03:39 ID:BdYV1PJe
age
93 :
名無しさん@お腹いっぱい。 :04/09/30 00:57:07 ID:5RJZz4Wf
sage
msg((hoshu))
とりあえずちょっとしたスクリプトからでも貼りません? 他の人が自分じゃ思いつかないことやってるかもしれないし。
ActiveかつEditが空のときアイコンをアニメーションさせる がんばれば見た目anemoneモドキにもできるかも? #じらふ\Icon\アイコン[0-2].ico ← 各自用意しておく var-g((anicon:anime)1()(anicon:icon)(アイコン0.ico)) if(is-var-g((anicon:thread)) (terminate-thread($anicon:thread))) var-g((anicon:thread) thread( ( var((anicon:state)0()(anicon:next)1) while( (1) ( sleep(200) if(&&($anicon:anime() ==n($Giraffe:Handle()Window.GetForeground())) ( switch(+=($anicon:state() $anicon:next) 0() ($anicon:next(1)) 1() () 2() ($anicon:next(-1))) $anicon:icon(cat((アイコン)$anicon:state()(.ico))) (GetIcon) Giraffe.RedrawAllWindow())))))))
つづき InsertEvent( (GetIcon) ( if($anicon:anime(is-empty(param(0))) ( return($anicon:icon))) $anicon:anime(0))) AddEvent( (Unload) ( terminate-thread($anicon:thread)))
xAfterTextChange.giraffe とかにして(undoとかは引数与えて) AfterTextChangeの代わりにこれ呼ぶ…と名前だけ表示されて ちょっとファイラっぽくなるかも。 var((p)param()) if(is-empty($p)( AfterTextChange )) for((i)0()(<($i()GetListCount()))(++($i)) ( var((file)Shell.GetFileName(GetListItem($i))()()(ext)Shell.GetExt(GetListItem($i()))) if(==n(len($ext)5)(var((name) cat(( )right($ext()4)(| )left($file()-(len($file) len($ext))))))()) if(==n(len($ext)4)(var((name) cat(( )right($ext()3)( | )left($file()-(len($file) len($ext))))))()) if(==n(len($ext)3)(var((name) cat(( )right($ext()2)( | )left($file()-(len($file) len($ext))))))()) if(==n(len($ext)2)(var((name) cat(( )right($ext()1)( | )left($file()-(len($file) len($ext))))))()) if(||(>(len($ext)5)<(len($ext)2))(var((name)cat(( | )$file())))()) if(Shell.IsFile(GetListText($i)) (SetListText($i()()$name())) (SetListText($i()()cat(( ) Shell.GetFileName(GetListItem($i))))) ) ))
見ただけで難しいな。
CreateThreadってどういう時に使うんですか?
マークしたアイテムってクリップボードに渡したりしたら改行されて出てくるよね? あれをスペース区切りにすることって出来るの?
>>102 コピー前に$array:delimiterを空白にして、
コピー後に元に戻すって感じでいいんじゃないかと。
SetEvent( (key/c-1) ( (コマンドのREADME表示) var((path) GetNormalFile(GetText)) var((dir) Shell.GetDir($path)) if( if(Shell.IsExist(var((readme)cat($dir()(\readme.txt)))) (1) (if(Shell.IsExist(var((readme)cat($dir()(\)Shell.GetFileTitle($path)(.txt)))) (1)))) (@view-file-in-list($readme)))))
ファイラと連携する方法をおしえてください
106 :
名無しさん@お腹いっぱい。 :04/11/03 13:11:48 ID:I+wS0BKy
ファイラとの連携って具体的に何? 渡されたパスを引数に置くだけ?
""で囲って引数にしてほしいです。
--------------------------------- SetText( (;) replace(array:for-each(param()(cat((")param()("))))$array:delimiter()( ))) SetSel() OptimizeWidth() ShowGiraffe() --------------------------------- を、filer.giraffeとかでScript2に保存して、 Giraffe.exe filer 引数 って感じで呼び出せばいいかと。 俺はショートカットをSendToに置いてる。
109 :
名無しさん@お腹いっぱい。 :04/11/15 03:31:42 ID:GDVsugG0
保守age
110 :
名無しさん@お腹いっぱい。 :04/11/26 19:21:52 ID:RiQdf9sx
質問です。 作者サイトにある「リストアイコン有り」は どうすれば出来るのでしょう? 教えてください。
111 :
名無しさん@お腹いっぱい。 :04/11/27 08:23:10 ID:zxXND2tf
ctrl+tab
owatta?
113 :
名無しさん@お腹いっぱい。 :04/12/11 18:34:53 ID:79ImBsFq
--------------------------- Giraffe.exe - DLL が見つかりません --------------------------- ダイナミック リンク ライブラリ MFC71.DLL が指定されたパス C:\Program Files\giraffe;.;C:\WINNT\system32;C:\WINNT\system;C:\WINNT;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem に見つかりませんでした。 --------------------------- OK --------------------------- 0.3.6.0にしたらこう言われるようになったけど、これは意図どおり?
コンパイラをVisual C++ 7.1にした だからだろう。
ランタイムとかのリンクくらいサイトなりreadmeになり貼っておいてくれてもいいのにな。
必要なランタイムなどは? VC++7のMFCの最新版のランタイムを使用します。 起動できない場合はインストールしてください。
age
何この()だらけ? LISP?
119 :
名無しさん@お腹いっぱい。 :05/01/03 02:24:33 ID:V0GHAy2u
giraffeでフォルダを開くときにDFで開くようにしたいんですがどうやればいいんでしょうか・・・
shift+enterで開くやつなら下記だけでいける。 enterで、開こうとしたものがフォルダだったとき、っていうのは、また別。 func-g( (NormalOpenDir) ( for-each((file) param(0) ( Shell.Execute((C:\Program Files\DF\DF.EXE)cat((")Shell.GetDir(GetNormalFile($file))(")))))))
121 :
119 :05/01/03 19:24:30 ID:V0GHAy2u
>>120 感謝感激感謝感激感謝感激感謝感激感謝感激感謝感激感謝感激感謝感激感謝感激
>enterで、開こうとしたものがフォルダだったとき、っていうのは、また別。
やっぱりこれは難しいんでしょうね・・・
いっそエクスプローラって書いてある部分を全部DFに置き換えてやろうとDFのフォルダ内を検索したら、、、
さっぱり意味が分かりませんでしたorz
122 :
119 :05/01/03 19:26:50 ID:V0GHAy2u
ああはずかしいはずかしい orzorzorzorzorzorzorzorzorzorzorz > いっそエクスプローラって書いてある部分を全部DFに置き換えてやろうとDFのフォルダ内を検索したら、、、 いっそエクスプローラって書いてある部分を全部DFに置き換えてやろうと”giraffe”のフォルダ内を検索したら、、、
>>121 event:key/enterの場合はNormalExecuteをオーバーライドする。
ぬるぽ
125 :
名無しさん@お腹いっぱい。 :05/01/22 18:35:48 ID:cTYwciFT
kimoi
127 :
名無しさん@お腹いっぱい。 :05/02/07 20:11:28 ID:6h2Y+ydr
どぅ
閉鎖キター
ver.うpキター
これでF1ならウィザードが起動するが、 Shell.Execute((::\マイ コンピュータ\コントロール パネル\ネットワーク接続\新しい接続ウィザード)) これでF1はきりんのディレクトリが表示される thread((Shell.Execute((::\マイ コンピュータ\コントロール パネル\ネットワーク接続\新しい接続ウィザード)))) ナゼ?
131 :
名無しさん@お腹いっぱい。 :05/02/15 02:42:25 ID:HdxrvbZU
関数threadは、素のスレッドを動かす。 Ole関係のOleInitializeだとか、CommonControl関係のなんかとか、 そういったもがなされたものこそを普通の環境や状況と考えると、 threadに導かれる環境や状況は、純粋でありながら異常な環境や状況と言える。
ようするに、自分が確認した限りでは、 ole32.OleInitialize()をShell.Executeの前に実行すれば同じようになるみたい。
ありがとう。 Shell.Executeの前におまじないが必要だったのか。 thread動かしてまでやることって限られてるだろうから、 必要な場合だけ必要な関数を呼びなさい、ということかな。
パス区切りを / に変えて使っている人ってどれくらいいるのかな。 シェルネームスペースとかPasteFileなどの関係で 少々弄っただけでは意外とスマートに動かないようにも思えるのだが。
>>134 WindowsのAPI自体がスラッシュを受け入れたりそうじゃなかったりするから、かなりめんどい。
Shell.ExecuteでVerbが指定されてるとWindowsがエラー吐く・・・ のかと思いきやrunasは通るんだな。 スラッシュを弾く基準もよくわからん。
func-g( (CopyFile) ( Shell.Execute( GetNormalFile(param(0)) () () (copy) () () $Giraffe:Handle))) これでスラッシュ入りでもファイル1つだけならコピーができる。 実用的じゃないけど。
思うんだが作者さんなんであの仕様のスクリプトのしたんだか。 スクリプトエンジン作成によっぽど自身があるなら別だけど 一般的に使われてる言語の方が、使用者を増やしやすいはず。 開発効率が関数型のほうがいいといっても使用者は慣れない言語をやりたがらないような。 これからいじる人も、互換性のある文法の方が勉強も兼ねてという感じで使用しやすいとか思うんだが。 いっそLispならxyzzyから人がくる気も。その点クラフトランチがPythonを外から呼び込んでるのは何となくツボをついてる。 開発効率を考えると使用者は無視できないような。もったいない。
>>138 readme.txtのToDo、スクリプトの位置付け、読んだ?
>スクリプトエンジン作成によっぽど自身があるなら別だけど
さすがにこの書き方はちょっと・・・。
アプリ開発用の言語ですというレベルの話じゃないし。
そもそも、ランチャーってスクリプトに何使うかで選ぶものなの?
Cを勉強してれば適用も応用も十分利く・・・と思ってたのだが。
>>139 作者さんかな?正直読んでなかったLuaとかいうのを使うのね。どんなのか知らないからなんともいえないが
私はコマンドライン型のランチャがこれだけ溢れているとスクリプトで選ぶ人もいると思うよ。
このランチャも私が見たくらいじゃ倉とかbluewind、月光辺りと比べてどういうメリットがあるのか良く分からん。
VCで作ってるから多少リソースの効率がDelphi系のよりは良いのかなぁとか思うくらいで。
まあ漏れがアホだから判別できない、という可能性も否定できないが。
>>140 作者じゃないよ。
自分自身がCをかじった程度のレベルなんでそういう立場でレスした。
>私はコマンドライン型のランチャがこれだけ溢れているとスクリプトで選ぶ人もいると思うよ。
そうだな、スクリプト使うものが溢れてくれば言語が有力な基準になるか。
でも、今のとこ大事なのはreadme.txt-設計思想のとこの下2行と思ってる。
クラフトはGUI周りがちと弱く、それをスクリプトで強化可能か不透明。
bluewind、Moonlightはスクリプトが未実装だし。
まあ、まだ存在意義を問われるほどに溢れてはないんじゃないかと。
言語を立派なものにすると、既存でも自前でも巨大なものにならざるを得ないから、 DLLを呼び出すだけの言語として作ったそうだ。 Luaは小さいから使う気になったんだろう。
>>141 >そうだな、スクリプト使うものが溢れてくれば言語が有力な基準になるか。
溢れなくても、ないのが良い奴だっているからな。
>でも、今のとこ大事なのはreadme.txt-設計思想のとこの下2行と思ってる。
だな。まだ開発が意欲的に続いてる所で色々可能性はあるね。
まあ、もっとも、そういう漏れは視覚的な効果重視でメニュー型の使ってるんだけどな。
そういやスクリプトでリストにアイコン表示もできるし、 コンテキストメニューの表示や編集もできる。 ホットキーでリストやメニューを表示させるとかして、 無理やり擬似メニュー型に変えるツワモノが出るかも。
spfolder-moonlight-bluewind-蔵-オーキス
と流れてきてオーキスっての使ってる。
>>144 が軽くて動作も軽快ならそれでもいいけど
起動してると同じくらいメモリり取ってるしなぁ、そこからスクリプトで動かすのかぁ。
チョット使った感想
bluewindをVCで作って、スクリプトつきにしたって感じっぽいと思った。
あと機能はbluewindと違って色々はいってる。単機能ツールで外に任せてる感じとは違う
蔵と比べると見た目は綺麗だけど重い
>>144 を真に受けられてもなあ。
他のランチャへの挑戦だと思ったんなら悪かったと思う。
あと、倉みたいにアイコンがいらないんなら
faq.txtにあるようにアイコン非表示にすればそれなりに軽くなる。
最近のレスを見て思うにスクリプト系は
付属ドキュメントは後回しな気味な一見さんには厳しいと思った。
147 :
名無しさん@お腹いっぱい。 :05/03/15 22:30:50 ID:O0hRt4dS
giraffeは確かに便利なんだけど、 bluewindができるスキップマッチングができないのがつらい。
>>146 いや、むしろ挑戦しろ。というかしてください。
2ch見てれば分かるけど、良い物にアンチは付き物ですよ
つか、テンプレ作ってないとココから来ても使わないと見たな。
取り合えず入れたけど読むの面倒で使ってみたが意味不明という人は
Alt+Spaceだけでも押してみると、コマンドが出るの少しいじってみようかという気になりそう。
(EditChange)の if(AutoCompleteSetList($text_part) の箇所を↓に置き換える。 あとはNormalExecuteをオーバーライドするなりなんなりと。 var((name)Shell.GetFileName(left($text_part() $sel_start))) var((dir)Shell.GetDir($text_part)) var((name_wild)unless(is-empty($name)((*)))) while( (!=s($name() ())) ( $name_wild(cat($name_wild() left($name() 1) (*))) $name(mid($name() 1() len($name))))) var((text_wild)cat($dir() unless(is-empty($dir)((\))) $name_wild)) if(AutoCompleteSetList($text_wild)
150 :
追加 :05/03/17 00:56:32 ID:QduWI2fg
InsertEvent( (key/enter)(SetSkipMatchingItem) (key/\)(SetSkipMatchingItem)) func-g( (SetSkipMatchingItem) ( unless(Giraffe.ListIsHistory() ( unless(Shell.IsExist(GetNormalFile(GetTextPart)) ( SetText(GetListItem(0))))))))
151 :
名無しさん@お腹いっぱい。 :05/03/17 21:32:43 ID:PreXaFwh
Giraffe3.61での報告です。
script/Default.giraffe
を
>>149-150 に書き換えると、以下のエラーが出て強制終了します。
----------------------
Runtime Error!
Program: D:\usr\local\Giraffe\Giraffe.exe
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
"0x7c1768a1" の命令が "0x00135c34" のメモリを参照しました。メモリが "read" になることはできませんでした。
----------------------
なお、
>>149 の内容のみの追加では正常にスキップマッチングできる模様です。
152 :
名無しさん@お腹いっぱい。 :05/03/17 21:34:01 ID:PreXaFwh
書き忘れました。 OSはwindows2000SP4です。
うちはXPSP2使ってる。
そのせいかかわからんが
>>151 のエラーを再現できなかった。
上では説明を端折ったけど、Script2/siteinit.giraffeに
EditChangeをコピーしてSetEventした上でそれを
>>149 で書き換えていい。
とりあえず手探り状態で↓
>>150 の代替案。
これもsiteinit.giraffeに追加で。
func-g( (BeforeExecute) ( SetSkipMatchingItem() AddHistory(GetText())) (BeforeTextChange) ( SetSkipMatchingItem()) (SetSkipMatchingItem) ( unless(Giraffe.ListIsHistory() ( unless(Shell.IsExist(GetNormalFile(GetText())) ( SetText(GetListItem(0))))))))
155 :
修正 :05/03/18 01:10:07 ID:VHjxW3L3
>>154 × unless(Shell.IsExist(GetNormalFile(GetText()))
○ unless(==s(GetListItem(GetListCurSel()) GetTextPart())
156 :
154修正 :05/03/18 19:23:49 ID:9Jg3/B6R
>>154 に不備。度々すまん。
func-g(
(BeforeExecute)
(
SetSkipMatchingItem()
AddHistory(GetText()))
(BeforeTextChange)
(
SetSkipMatchingItem())
(SetSkipMatchingItem)
(
unless(Giraffe.ListIsHistory()
(
unless(==s(GetListItem(GetListCurSel()) GetTextPart())
(
SetText(GetListItem(0))
Move((End))))))))
それでWin98SEで試せたのだがこれはちゃんと動いた模様。
あと
>>149 は明らかな無駄があるんで書き直した方が良いだろうか。
158 :
名無しさん@お腹いっぱい。 :05/03/19 22:22:54 ID:lz+s6xuC
151です。
教えていただいた通りsiteinit.giraffeに
>>149 >>156 を加えてみたところ、正常に動作しました。
ありがとうございました!
159 :
名無しさん@お腹いっぱい。 :05/03/19 22:47:06 ID:VO7gxGPP
>>149 の無駄な部分を削った。これで最後にする。
(EditChange) if(AutoCompleteSetList($text_part)
の箇所を置き換え。
var((name) Shell.GetFileName(left($text_part() $sel_start)))
var((dir) Shell.GetDir($text_part))
var((text_wild) unless(is-empty($dir)(cat($dir()(\)))))
while(
(!=s($name() ()))
(
$text_wild(cat($text_wild() (*) left($name() 1)))
$name(mid($name() 1() len($name)))))
if(AutoCompleteSetList($text_wild)
見辛いなあ。 コード書いたり動作報告したりそれを修正したりってのは ツリー型の掲示板の方が向いてることがよく判った。
つか2chは人が来る以外特にメリットないだろ
ここは宣伝向けのURLとかどんなソフトかとか比較してどういいか とか書いておけば人が来て勝手に色々してくれるのがメリットなきがす
164 :
名無しさん@お腹いっぱい。 :皇紀2665/04/01(金) 15:26:01 ID:zHx7QAmP
バージョンこない
165 :
名無しさん@お腹いっぱい。 :皇紀2665/04/01(金) 15:43:55 ID:1z+IHkdW
「なぜ本国に戻らない」 同じ言葉を在日韓国人朝鮮人に言いたい!
あげ
ver.0.3.6.2
168 :
名無しさん@お腹いっぱい。 :2005/04/19(火) 23:38:21 ID:6Gv49ju7
うむ
169 :
名無しさん@お腹いっぱい。 :2005/04/26(火) 17:44:58 ID:vh0hy212
migemo使って検索できないもんでしょうか
version: 0.4.0.0 !!
設定ダイアログが追加されて、設定しやすくなったね。
キタ━━━━(゚∀゚)━━━━!!
ちょいと動作報告。 以下の症状がグローバル変数を参照する別スレッドが動いてる時に発生。 設定ダイアログを出してOKや適用をするとエラー。 key/f5 で terminate-thread を挿入しても設定ダイアログを閉じずに 適用、OKの操作を2度以上やるとやはりエラー。 例えばsiteinit.giraffeに以下を加えると発生する。 thread( ( while((1) ( $Giraffe:Handle() sleep(100)))))
バージョンうpしてみた 起動しない人はMFC71.dll入れる 追加された設定ダイアログ(F5押す)がとってもグッドな感じ ちなみにタスクトレイのアイコンを右クリックして「Reload Setting」を押すと 「error:function not defined」ってでる。実害ないから放っておいてるが
>>174 できるだけ thread より timer/... を使うべきかも知れない。
ClockInactive.giraffe で監視スレッドを使わなくなってるので。
version 0.4.1.1 改善されてる。
ver 0.4.2.0 INIファイルを初期化してもDataDefaultへアクセスができない? Dataの中にDataDefaultをディレクトリごとコピーした場合は アクセスできたけど*.giraffeをevalしてくれない?
>>178 Script2に古いDefault.giraffeがあるとか
>>179 Script2他もろもろ全部消して新規に入れなおしたら動きました。
ありがとう。
パス区切りがスラッシュでも普通にいけるようになってた。
デフォルト設定でも使い勝手が他のランチャと遜色なくなった感じ。
version 0.4.3.0
>5のスクリプトはgiraffe+にキーワードを入れて
Ctrl-gを押すと動作させることができました。
ですが、
readme.txtの:::Script in Data:::に書かれている
スクリプトの動作方法がわかりません。
[google.giraffeとして保存]
(Googleで検索)
(google.ico)
include((www))
Shell.Execute(cat((
http://www.google.co.jp/search?lr=lang_ja&ie=sjis&q= )www:url-encode(param())))
giraffe+からparam()の値を設定するにはどうすればよいのでしょうか?
google キーワード とか google param(キーワード) とか
いろいろやってみたのですが駄目でした。
ちなみに引数をつけずに google だけで実行すると
ブラウザが起動し、param()の戻り値は'%'になっているようです。
doc/script.txt には
外部からのスクリプト実行時に引数として渡す方法は書いてあるんですが
肝心の giraffe+ から引数を渡す方法が書いてありません。
前のバージョンのdocには書いてあるのでしょうか?
ぐぐってみても見つかりませんでした。
>>182 自己解決
readme.txt の :::ShellExecute::: に書いてありました。
; で区切ればできました。
184 :
名無しさん@お腹いっぱい。 :2005/05/31(火) 09:30:00 ID:3FKUMP0D
version 0.4.3.1
0.4.3.1 &&と||を最後に見た値を返すようにした、ついでに&&&と|||を組み込み関数にした view-and-sortのOptimizeWidthをAutoResize.ByListboxTextを参照するようにした 忘れてたjoin関数を実装 設定ダイアログのキー設定で同じキーを設定できないようにした
186 :
名無しさん@お腹いっぱい。 :2005/05/31(火) 21:35:04 ID:navcNBcy
すごくいいソフトだと思うし 更新ごとにどんどん使いやすくなってるし なのにネット上に話題が全然ないのはなぜだろう 大幅にカスタマイズできるソフトだからmayuやEmacsなんかが好きな人に向いてると思うんだけどな
mayu、EmacsにあってGiraffeにないもの。 前2つは既に多数いるUNIX使いのためのという面もあるんじゃないか。 Giraffeはアイデアは前から存在したとしても形になったのは最近の話で、 これがなくてもUNIX使いはやっていける。 カスタマイズ性よりも慣れ、癖、惰性が話題なるには必要かもしれん。
>>186 作者の人も見てるみたいだから私も意見を書いてみたりしておく
逆に聞いてみたいが、コレを使う理由はなんだろな?
別のでいいや、とかなると普通は慣れてるそっちを使うと思うよ。
187の意見ののように、mayuやEmacsにはやっぱりUnixがあるけど、これにはないね。
カスタマイズ性についても、それに対しては
>>139 見たいな感じで認識してると
カスタマイズした故に遅くなったりしてたんじゃランチャとして致命的かと思う。
Bluewindはそうならないように機能を外部に出したりクラフトみたいに機能自体を軽くしていたりと
他のランチャも相当工夫があるし、GUI勝負じゃメニュー型にながれるし。競合相手も十分優れてるしなぁ。
>>138-148 あたりでもでてるけど、その辺が全てだと思うな。とくに
>>148 。
最低今あるのを超えるか、機能的に競合するのを避けるかしないと使わないと思う。
>逆に聞いてみたいが、コレを使う理由はなんだろな? そりゃカスタマイズだろ。 とかかくと不毛な議論がループしそうだが。 人それぞれ癖や環境が違うんだからソフトの方で合わせれるのは重要だぜ。 >カスタマイズした故に遅くなったりしてたんじゃランチャとして致命的かと思う。 なんか Giraffe=機能てんこ盛りで重い ととれる極論はカンベンしてほしい。 機能を外して軽くするできるのもカスタマイズだぞ。 [F5]叩いて Confic-Preset-Light だけでも何のためにあると思っている? なんか競合ソフトを挙げてGiraffeを叩く意見には懐疑的になってきた。 そんな片手間で使っただけでレッテル貼れるような浅いソフトじゃないぞ。 批判したいんならメインで使い切ってくれ。
Giraffe+をメインで使うまで他にもいろいろランチャを使った。 ランチャ探しをしてどれも馴染まなかった挙句、 最果ての地にGiraffe+がいたという感じがする。 だからGiraffe+について語るときは、これをああしたいんだけど、 スクリプトでなんとかならない?みないな話題になると思う。普通。 なのに別のランチャを物差しに一刀両断されると違和感を覚える。 使い込むことが必須のソフトなのに使い込まずに選別されてるから。 当然、Giraffe+を物差しに他のランチャを選別するのも変だと思う。
使い始めて1週間、非常によいソフトだと思う。 3年くらい使っていたシーエルからの乗り換え。 mayu + xyzzy + giraffe+はもう手放せないだろう。 以下、ユーザが増えないと思われる理由 ・機能の説明が不十分 FindFileInGiraffe(Ctrl-f)とか、スクリプトのソースを見て初めて使い方が解ったのがいくつかあった。 引数を伴う機能の説明は最低限ほしいと思った。 ・ショートカットキーの設定項目の多さ 初期設定では全部ONになっておりどれが必要で どれが不必要なのかを判定するのが大変だった。 私は全部OFFにしてから、必要な機能とキーを決めていった。 ゴミ箱を使わず削除とかのキーも初期設定で有効なので、 間違えたキーを押したとき何が起こるかわからないというのは、正直怖い。 ・スクリプト言語 やはり()が多すぎるし付属のドキュメントだけでは説明が不十分。 ()についてはxyzzyのparenで助かったが、これがなければ関わりたくないと思った。 func-list.csvにある関数が750個ってのもたまげた。 スクリプトの標準関数は別のファイルなどに詳しい説明があればいいと思った。 eval()とか==siw()とか使っている箇所を見てなんとなく予想はできるが 正確に理解できない関数がいくつかあった。
・結論 mayu や xyzzyは なんちゃってUnix使いだったせいもあると思うが、 デフォルトの設定に数箇所変更するだけで困らない程度には使えた。 しかし、giraffeの場合、キー設定は大幅に変更し、いくつかの機能はスクリプトも修正することで あるていど満足いく設定になった。初期設定にかなりの時間が必要。 とりあえずランチャとして使いたい人用の設定、ファイラとしても使いたい人の設定、 Emacsに汚染されている人の設定とか初期設定でいくつか選択できればいいのにと思った。 情報が増えないとユーザが増えない、ユーザが増えないと情報も増えない。 機能豊富だが、なかなかユーザが増えなかったzshみたいだなと思った。
以下、設定していてわかった点を少々 【ちょっとした小技集1】 ・FindFileInGiraffe(Ctrl-f)の使い方 ファイルを探す場所;探したいファイル名 を入力して Ctrl-f ファイルを探す場所はフルパス 探したいファイル名はワイルドカード使用可 ・CreateNewFile(Ctrl-n)でディレクトリ作成 ファイル名の最後を\にするとディレクトリが作れる ・SortListLastModified(Alt-t)のソート順変更 ファイル更新時刻が最近のものを上にするには /Script/settings/key/SortListLastModified.giraffe の3行目を以下のように書き換える view-and-sort:last-mod(1()) ※ /Script/内のファイルを書き換えるとアップデート時消えてしまうので /Script2/settings/key/SortListLastModified.giraffe にコピーして書き換える。
【ちょっとした小技集2】
・ショートカットキーを変更、修正したい
詳細は
>>89 参照
/Script2/siteinit.giraffeに以下を追加
DuplicateEvent(
(key/c-p) (key/up) #Ctrl-pをupと同じ機能にする
)
・SetEvent() などの.giraffeファイルを起動時に有効にしたい
>>5 のようなスクリプトを/Data/google.giraffとして保存すると
一度googleのコマンドを実行してから出ないと有効にならない。
そこで、google.giraffを/Data/ではなく/Script2/に置き
/Script2/siteinit.giraffeに以下の2行を追加することで、
起動時に自動的に有効になる。
if(is-script-exist((google)) #google.giraffeが存在したら
(@google())) #google.giraffeを実行
【ちょっとした中技集1】 デフォルトのExecute.giraffe(エンターキー)の動作が気に入らない。 ・標準Execute.giraffeとの違い - /Data/内のディレクトリだったら中に入る - コマンドがディレクトリへのショートカットだったらファイラモードへ ;をつけるとエクスプローラで開く (;はSeparator) - ファイらモードでディレクトリだったら中に入る ・インストール方法 以下を/Script2/settings/key/Execute.giraffeに保存。(/Script/ではない) ############ 適当に作ったんでバグありかも ##########
(コマンド実行) var((execute)) var((target) GetParamPart(GetText() (Target))) if( <(len($target) GetCaretIndex()) ( $execute(1()) ) ( var((datapath) GetDataPath(GetText())) if( $datapath() ( #コマンドモード if( Shell.IsDir($datapath()) ( Window.SendMessage(Window.GetFocus() WM_CHAR() CharToCode((\))) ) ( BeforeTextChange() TextChangeLinkFile(GetText()) if( Shell.IsDir(GetText()) ( AfterTextChange() ) ( $execute(1()) ) ))))
( if( Shell.IsFile( GetText() ) ( $execute(1()) ) ( if( Shell.IsDir( GetText() ) ( Window.SendMessage(Window.GetFocus() WM_CHAR() CharToCode((\))) ) ( $execute(1()) )))))))) if( $execute() ( BeforeExecute() AfterExecute(NormalExecute(GetTextOrMarkedItems()))))
以上、長文で失礼しました。
>>193 すいません、大嘘ついてました。
・SortListLastModified(Alt-t)のソート順変更で
view-and-sort:last-modに引数つけてもソートしなくなるだけでした…。
ソート順を変えるのはview-and-sort.giraffeをいじらないと駄目です。
そういうのは一時的にSetConfigするのが常道かと。 SetEvent( (key/as-t) ( (view-and-sort:last-mod reverse version) include((view-and-sort)) var((temp) GetConfig((List.SortReverse))) SetConfig((List.SortReverse) !($temp)) view-and-sort:last-mod() SetConfig((List.SortReverse) $temp)))
>>200 ありがとうございます。勉強になりました。
SetConfigで設定できるということは、
Giraffe.iniからも設定できたんですね。
ところで、
>>199 を例にすると
最初に押されたときは必ず新しい順にソートする。
再度同じキーが押されたらトグルするってことはできるんでしょうか?
>>199 の最後の行をコメントアウトするだけでは、
前回終了した状態によって、最初に押されたときは必ず新しい順にソートするとは限らないし
他のview-and-sortにも影響してしまうので。
これは、次のどれかが出来れば可能だと思うんですが。
1.前回実行したイベントを調べる事ができる。
2.Alt-Shift-t以外のキーが押された時用のイベントが作れる。
3.他にもあるかも。
出来れば、timerイベントとかがあるので
イベントごとに最後に実行されたイベントがわかる。
イベントにかかわらず一番最後に実行されたイベントがわかる
の両方ができたら最高なんですが。
イベントリストを眺めてみると、 keyイベントだけ前回実行したキーがわかれば良いかも。 それかキーイベントをフックできるとか。
ローカル変数($temp)を使うのをやめて グローバル変数でList.SortReverseの値を保持したらどう?
リストのテキストを保持しておいて、一緒なら前と逆の順に、ってふうにしてみた。 SetEvent( (key/a-t) ( (view-and-sort:last-mod toggle version) include((view-and-sort)) unless(is-var-g((view-and-sort:last-mod-toggle-version:prev-texts)) (var-g((view-and-sort:last-mod-toggle-version:prev-texts)))) unless(is-var-g((view-and-sort:last-mod-toggle-version:prev-order)) (var-g((view-and-sort:last-mod-toggle-version:prev-order)))) var((texts) GetListText()) var((prev-is-same) ==($view-and-sort:last-mod-toggle-version:prev-texts() $texts())) if($prev-is-same() (SetConfig((List.SortReverse)!($view-and-sort:last-mod-toggle-version:prev-order)))) view-and-sort:last-mod() $view-and-sort:last-mod-toggle-version:prev-order(GetConfig((List.SortReverse))) if($prev-is-same() (SetConfig((List.SortReverse)!(GetConfig((List.SortReverse)))))) $view-and-sort:last-mod-toggle-version:prev-texts(GetListText())))
205 :
202 :2005/06/03(金) 18:31:20 ID:KGZBzx/9
>>203 グローバル変数にしても同じでは?
>>234 ありがとうございます。
やっぱり、そうなりますか。
1個前のキーイベントが同じキーイベントかどうかがわかると
かなり楽になると思ったんですけどね。
そのほかにもいろいろ幸せになれそう。
ところで、みなさん
デバッグ時や動作確認時
この変数には何が入ってるの?って調べたい時どおしてます?
私ははじめにSetText() とか msg()とか使ってみましたがいろいろ問題点有。
今はクリップボードビューアを起動し
SetClipboard()で出力ってのに落ち着きました。
206 :
203 :2005/06/03(金) 20:58:59 ID:pGZpYqdD
思い違いだったな?次のようにするのかと思ってたんだけど。 var-g((sort-reverse-last-mod) GetConfig((List.SortReverse))) SetEvent( (key/as-t) ( (view-and-sort:last-mod reverse version) include((view-and-sort)) var((temp) GetConfig((List.SortReverse))) SetConfig((List.SortReverse) $sort-reverse-last-mod(!($sort-reverse-last-mod))) view-and-sort:last-mod() SetConfig((List.SortReverse) $temp))) ごめんtempはやっぱり要る。
207 :
202 :2005/06/03(金) 21:39:50 ID:KGZBzx/9
>>206 こうなると思う。
var-g((sort-reverse-last-mod) GetConfig((List.SortReverse)))
SetEvent(
(key/as-t)
(
(view-and-sort:last-mod reverse version)
include((view-and-sort))
var((temp) GetConfig((List.SortReverse)))
SetConfig((List.SortReverse) !($sort-reverse-last-mod))
$sort-reverse-last-mod(!($sort-reverse-last-mod))
view-and-sort:last-mod()
SetConfig((List.SortReverse) $temp)))
ただ、これだと、
Alt-t, Alt-t, なんか作業・・・, Alt-t
と入力した場合と
Alt-t, Alt-t, Alt-t, なんか作業…, Alt-t
とやった場合で最後のAlt-tの動作が異なる。
ようは、なんか作業が入ったときにsort-reverse-last-modをリセットできる仕掛けが
あるといいなと思っただけです。
まあ、まあ今回の例であればもう一回Alt-tを押せばいいじゃんって話なんだけど。
208 :
202 :2005/06/03(金) 21:43:28 ID:KGZBzx/9
>>207 >>206 をちゃんとみたら,
SetConfig((List.SortReverse) $sort-reverse-last-mod(!($sort-reverse-last-mod)))
となってたんで合ってます。
ただ、1回目の動作が前回のソート状態によって変わってしまうって現象は起こるかと
209 :
203 :2005/06/03(金) 22:10:41 ID:pGZpYqdD
>なんか作業が入ったときにsort-reverse-last-modをリセットできる仕掛け ファイラー的使い方ならその方が便利っぽいですね。 >出来れば、timerイベントとかがあるので じゃあ、このアイデアを戴いてtimerで設定した時間内に再度a-tを押す案。 AddEvent( (key/a-t) ( if(GetEvent((timer/sort_reverse)) ( eval(GetEvent((timer/sort_reverse)))) ( SetConfig((List.SortReverse) !(GetConfig((List.SortReverse)))) SetEvent( (timer/sort_reverse-1000) ( SetEvent((timer/sort_reverse)) SetConfig((List.SortReverse) !(GetConfig((List.SortReverse)))))))))) InsertEvent( (unload) ( if(GetEvent((timer/sort_reverse)) (eval(GetEvent((timer/sort_reverse)))))))
210 :
203 :2005/06/03(金) 22:41:04 ID:pGZpYqdD
上の案は昇順、降順を立て続けに計算させるので
ファイルが大量にあるディレクトリだと重たくなるかも。
動作確認時に変数の中身が見たいときは
restore-edit.giraffe使った関数を挿入して一時的にEditに表示させてます。
既存の関数をコピーして弄ってるだけなのでこの程度で足りるんだけど。
>>209 もAfterExecute参考。
でもクリップボードビューア使うってのは良さそう。
これで自前で関数がガンガン書けるようになれ…。いや、無理かな。
>>209 力技ですねw
ちょっと不明な点があります。
SetEvent, AddEvent, InsertEventってなにが違うんでしょう。
func-list.csvを見ると次のようになっているんですがイメージがつかめません。
AddEvent,,[strName strValue], equalto SetEvent(cat(GetEvent(strName)strValue))
InsertEvent,,[strName strValue], equal to SetEvent(cat(strValue()GetEvent(strName)),
SetEvent,bSuccess,strEventName strEventValue,イベント一覧はevent-list.csvを参照
あと、eval()もいまいちイメージがわきません。よく目にするんですが。
>リップボードビューア
これに気づいてからは結構楽になりました。
自分はWindowsプログラミング第5版のlist12-2を少し改良して使ってます。
;の後ろのオートコンプリートとかも考えてるんですが大変そうです。
212 :
202 :2005/06/03(金) 23:38:22 ID:KGZBzx/9
こんなことができたら最高なのになと思った事 ・カレントディレクトリを設定できる。(cd コマンド) ・cdでカレントディレクトリを移動できる。pwdでカレントディレクトリを確認できる。 ・cp, mv といったUnixライクのコマンドが使用できる(相対パス、ワイルドカードも使用可) ・1文字目を'.'にするとカレントディレクトりのファイルリスト標示 ・はじめの2文字を".."にすると親ディレクトリのファイルリスト標示 ・/Dir/内のコマンドにプライオリティを決められる。 オートコンプリート時にアルファベット順ではなくプライオリティ順に表示できる。 ・コマンド;ファイル名 といった場合ファイル名の部分もオートコンプリートできる。 ・上記の場合、コマンドによってファイルリストに標示する拡張子を設定できる。
>>212 追加
・Migemoのようにローマ字で日本語のファイルなど絞り込める
イベントについては doc\script.txt => 2.イベント を見るとわかると思います。 eval は引数で渡された文字列をスクリプトみなして実行するみたい。 GetEventの戻り値はGetTextのようにただの文字列として扱われるようで eval に渡さないとスクリプトとして実行できません。
>>212 readme.txt => 設計思想
>>CUIシェルのように、実行ファイルやカレントディレクトリを中心とはしない。
>>Windowsの機能をできるだけ使う。
UNIXっぽいところもあるけど、
頑なにUNIXのしきたりを踏襲するというわけでもないみない。
DataがなくてもEditにcalcといれると電卓が起動するし、
Shell.Excute((*.exe))として引数(Directry)を渡さなくても
*.exeがあるディレクトリにそのINIファイルがちゃんと保存される。
こういうところはWindowsユーザーの方の習慣を重視してるのかも。
>>214 ありがとうございます。
ようは、同じ名前のイベントを複数定義することができて
追加したいときはAddEventやInsertEventを使うって事なんですかね。
>>215 /Data内のコマンドを扱っているときをコマンドモード
フルパスを扱っているときをファイモードとすると
コマンドモードの時は今のままでいいと思ったんですが、
ファイラモードの場合はカレントディレクトリの概念があるといいなと感じました。
>>216 もう少し説明すると
エクスプローラでも1度開いたフォルダはずっと開いてますが、
何かのファイルをクリックするたびにエクスプローラが終了してしまい、
よくいくフォルダはデスクトップ上にショートカットを置いてください
という仕様だったら使いづらいと思う。
ファイラモードのときにカレントディレクトを意識しないことによる
メリットがよく解らないです。
どの道、/Data/にディレクトリのショートカットを入れておけば
自由にジャンプできるんだし。
ようははじめの1文字目が'.'かどうかでコマンドモードかファイラモードを識別して
ファイラモードならカレントディレクトリの概念をサポートするのが
自然な気がします。
もちろんコマンドモードなら今のままでOKだと思います。
ランチャなんだからファイラとして使うなといわれればそれまでですが。
>>217 さらに追加
"//"を入力すると"
http:// "に自動的に置き換わるんで、これを応用して
"."だったら最後に開いたディレクトリを表示するって機能がほしいということです。
”..”だったら最後に開いたディレクトリの親ディレクトリを表示できれば
と思っただけです。
厳密にカレントディレクトリという意味で無くてよい。
>>212 プライオリティあるよ、
結構簡易なものだけど。
ctrl+alt+pでプライオリティを上げられる。
仮に最後に開いた親ディレクトリを記憶するとなると 新たにパスを展開した時点でそのパスの親ディレクトリが記憶されてしまう。 つまりこのことをCUIに例えれば C:\abc>c:\def と入力した瞬間に C:\def> と次々変わっていきそうな気がします。 スクリプトでやろうとすればできそうだけど実用的かどうか・・・。 ちょっと脱線するけど、key/c-q, key/cs-qにディレクトリ記憶のイベントがあります。 スタックの要領で複数のディレクトリを記憶できるので慣れれば便利そう。
>>216 念のため例を挙げときます。
SetEvent((key/c-1)(Function1()))
があると仮定します。この状態で
AddEvent((key/c-1)(Function2()))
とすると
⇒SetEvent((key/c-1)(Function1()Function2()))
のように最後に追加されます。更に、
InsertEvent((key/c-1)(Function3()))
とすると
⇒SetEvent((key/c-1)(Function3()Function1()Function2))
のように前方に挿入されます。
また新たにSetEventで同名のイベント(key/c-1)を定義すると上書きしてしまいます。
つまり同名のイベントは共存できません。
あ、こんな説明より set-cb(GetEvent((key/....))) した方が早いような。
>>219 プライオリティあったんですね。
ちょっと調べてみます。
>>221 詳しい説明、ありがとうございます。
C#のイベント処理と同じ考えですよね。
登録するとき
SetEvent(
(key/c-.) ←ここ
(あんな処理))
AddEvent(
(key/c-.) ←ここ
(こんな処理))
←ここの部分をイベント名として
同じ名前のイベントを複数定義することができる
と表現しました。誤解受けますね。
>>220 ファイラモードでカレントディレクトリ機能作ってみました。
使い方:
1.Ctrl+'.' で今いるディレクトリの位置を保存
「コマンドモード」
コマンドモードのリンクファイルの場合: リンク先のディレクトリを設定
/Data, /Data2内のディレクトリ: /Data, /Data2内のディレクトリを設定
http://や適当な文字列 : 無視
「ファイラモード」
今いるディレクトリの位置を設定
2.何も入力されていない状態で'.'を押す
1.で設定したディレクトリへジャンプ
結構使えると思いますが、どうですかね。
var-g((mark-path) (C:)) InsertEvent( (EditChange) ( if(==s(GetText()(.)) ( SetText(cat($mark-path()(\))) Move((end)) ))))
SetEvent( (key/c-.) ( (SetMartPath) var((fullpath) GetNormalFile(GetText())) var((dirpath) GetNormalFileDir(GetText())) #ファイラモード if(path:is-path(GetText()) ( $mark-path($dirpath()) return() )) #コマンドモード if(Shell.IsDir($fullpath()) ( $mark-path($fullpath()) return() )) if(Shell.IsFile($fullpath()) ( $mark-path($dirpath()) return() )) ))
226 :
211 :2005/06/04(土) 05:53:11 ID:PYJVdGE3
>>211 結局、ソートについては 更新時間の場合のみ
>>200 で対応し
反転については、反転専用のイベントを追加することにしました。
これで、ソート方法とかに関わらずリストが表示されていれば
反転させることができます。
ソースは↓
>>226 SetEvent(
(key/c-r)
(
(LestReverse)
var((listcount)GetListCount())
var((list))
var((text))
a-resize($list() $listcount)
a-resize($text() $listcount)
for(
(i) 0() (<($i() $listcount)) (++($i))
(
a-set( $list() sub($listcount()$i()1) GetListItem($i))
a-set( $text() sub($listcount()$i()1) GetListText($i))
))
SetListItem(0()$list)
SetListText(0()$text)
ShowList(1)
)
)
key/c-sにBash起動が割り当てられてるのでファイラーというか 本格的にShell的なことをしたければ素直に外部ソフトを推奨しているみたい。 Giraffe+は一見ランチャを越えて何でもやってるように見えるけど 外部ソフトを起動する中継役としてのランチャーの機能と 任意のWindowsAPIへアクセスする中継役としての機能を持つ。 この中継機能の二本柱がこのソフトの特徴だと思う。 シャットダウンとかもスクリプト見ればAPI利用してるだけなのになあ。 単機能ごとにバイナリをくっつけて肥大化してるわけじゃないんだけど 判ってもらえない・・・。
話は変わって、当初、ディレクトリを記憶というレスを見たとき
>>224 (EditChange)じゃなくて(key/\)でやるのかと思ってました。
\を押す手間をどう見るかですね。
InsertEvent(
(key/\)
(
if(
GetConfig((AutoComplete.Enable))
(
switch(
GetText()
(.) (SetText($mark-path)Move((End)))
(..) (SetText(Shell.GetDir($mark-path))Move((End))))))))
>>229 その方法いいですね、いただきました。
そして、少し改良してみました。
InsertEvent(
(key//)
(
if(
GetConfig((AutoComplete.Enable))
(
switch(
GetText()
(.) ( SetText($mark-path) )
(..) ( SetText(Shell.GetDir($mark-path)) ))))
SetText(cat(GetText()(\)))
Move((End))
OnEditChange()
))
>>228 sygwin の導入とかも考えたんですけど、
たとえば、他人のパソコンを使うとき、
とりあえずxyzzyとgiraffe+だけもってけば
そこそこ快適に使えるってのは、
悪くないなって思ってるんですよね。
まあ、レジストリ使わずに
単体で動くbashとかあったら使ってみたいんですけど。
そういえば
C:\aaa\bbb\ccc\ という状態から
C:\aaa\bbb\ccc\..\..\..\ と
"..\"を連続で入力できるんですね。
>>230 再度修正しました。
下から4行目を次のように修正
SetText(cat(GetText()(\)))
↓
if(GetText() (SetText(cat(GetText()(\)))))
Giraffeやxyzzyに比べてCygwinは手軽に導入できないですね。
ちょっとWebを漁ってみたら単体で動くCUIソフトがありました。
UNIXを強く意識しているみたい。
アンインストールはファイルを消すだけらしい。
NYACUS
http://www.nyaos.org/index_ja.html tcshなんて今まで触ったこともない(多分)ですが、
良さそうならc-sに割り当ててみようと思う。
>>233 ありがとう、ございます。
giraffの設定が落ち着いたら、
今度はシェルのほうを試してみようかと思います。
bashもtcshも設定ファイルの書き方が少し違うだけで
できることは大して変わらなかったと思います。
>>232 OnEditChange() だとオートコンプリートに問題ありのようなんで
SendMessage()を使うよう変更しました。
InsertEvent(
(key//)
(
if(
GetConfig((AutoComplete.Enable))
(
switch(
GetText()
(.) ( SetText($mark-path) )
(..) ( SetText(Shell.GetDir($mark-path)) ))))
if(GetText()
( Move((End)) Window.SendMessage(Window.GetFocus() WM_CHAR() CharToCode((\))) )
))
>>235 "....../" のように'.'をたくさん打って'/'を押しても'\'が表示されない、
GetText() は "......"の場合falseになるんだろうか?
文字列はサイズが0だとfalseとscript.txtに書いてあったんだが。
まあ、"....../"なんてのは明らかにミスタイプなんで、
今のままで一向に構わないのだが、
予期したとおりに動かないのは少し不安になる。
GetText()の戻り値は文字列だから原因はほかにあるんでない? 以下、GetText()を使わないテスト if( (aaa) ( SetText((true)) )) これはtrueと表示される。 if( (...) ( SetText((true)) )) しかし、これはtrueと表示されない。 ちなみにこの場合もだめ while( ((...)) ( SetText((true)) return() ))
doc/script.txtより |bool値の表現ですが、値が数値であるか文字列であるかを自動的に判断し、 |文字列である場合は文字数が0の場合をfalseに、 中略 |数値かどうかの判断法は、表記された進数に使われない文字が存在するかどうかです。 |例えば、0xで始まるのにG以上の文字がある場合、それは文字列として扱われます。 値の型すら無い言語だった頃の名残で、 値の型が文字列だった場合は改めて数値かどうかを判断するみたい。 んで、(...)はたぶん小数点が連続してる感じのゼロなんだと思う。 これはfalse SetText(if((000) ((true)) ((false))) これはtrue SetText(if((001) ((true)) ((false)))
>>237 len((...)) を調べると3でした。
ですが、(...) は false と判定されるようですね。
バグかな?
そういえば、VC++6.0で簡単な関数のみのDLL作ったら、普通に動きました。
ちょっと感動。
文字列編集とか絡んでくると、
GiraffePlugInSDK を使わないといけない感じですが、
引数だけ送って戻り値はBoolでいいというような場合
DLLで対応するのが楽そうです。
ちょうど、rubyでcの関数使いたいなと思っていたんで、
DLLを勉強するいい機会かも。
>>238 リロードしてなかったんで見逃してました。
私も試してみましたが、
たぶん判定の時だけ小数点と勘違いしてdoubleの0.0扱いになっているというので間違いなさそうですね。
241 :
240 :2005/06/07(火) 20:08:15 ID:ohaJFVrd
一通り設定終了しました。 お相手して下さった方、ありがとうございました。
key/cs-\、key/a-leftなどでもListを表示させる。 func-g( (AfterTextChangePlus) ( var((file)GetTextPart) var((dir)cat(Shell.GetDir($file)(\))) if( ||(==s($file()$dir) !(GetConfig((AutoComplete.Enable)))) (OnEditChange()return)) if(AutoCompleteSetList($dir) ( AutoCompleteSetText(len($dir)len($file)$file) ShowListAfterAutoComplete) ( SetText($file) ShowList(0) Giraffe.ListSetHistory)) OptimizeWidth))
上のつづき func-g( (AfterTextChange) ( if( eq-s(left(GetText()3)(::-)) ( if( eq-s(right(GetText()1)(\)) ( SetText( Shell.GetDisplayIDList(left(GetText()sub(len(GetText())1))) (\))) ( SetText(Shell.GetDisplayIDList(GetText)))))) Move((End)) AfterTextChangePlus))
version0.4.3.2 早速DebugViewを導入しよう。
暑い。。。 age
>>195 の改良版(Execute.giraffe)
しばらく使って問題なさそうなんで公開(ちょい長め)
【変更点】
・file; のようにparameter部に何も入力しないとそのディレクトリを開く
(リンク先がある場合はリンク先を開く、今まではxyzzy;とかが出来なかった)
(例) xyzzy; や System\Hibernate; や C:\Program Files\; など ;だけでもOK
・file;parameterと入力したときparameter部がフルパスだったら""で囲む
(例) xyzzy;C:\Program Files\Giraffe\readme.txt などスペ−ス入りのファイルを開ける
・file部がコマンドの時だけ fileとparameterを入れ替えることが出来る。
(例) C:\Program Files\Giraffe\readme.txt;xyzzy と実行できる。
・明らかにミス入力(存在しないフルパス等)の入力を無効
・可能な限り正常に実行出来たものを履歴に残す
※説明で使用しているfile や parameter はreadme.txt :::ShellExecute::: 参照
>>246 のソース1/5
(コマンド実行)
var((execute))
var((command))
var((target) GetParamPart(GetText() (Target)))
var((datapath) GetDataPath($target()))
var((linkpath) GetNormalFile($target))
unless( GetText()
( $execute(-1) ))
>>246 のソース2/5
#;で終端しているがパラメータがない場合(エクスプローラで開く)
if( ==(+(len($target)1) GetCaretIndex())
( var((dirpath) Shell.GetDir($target))
if(!(Shell.IsDir($dirpath))
( $dirpath(GetNormalFile($target))
if(!(Shell.IsDir($dirpath))
( $dirpath(GetNormalFileDir($dirpath))))))
if(Shell.IsExist($dirpath)
($execute(2) $command(GetText()) SetText($dirpath))
($execute(-1)))
unless( $target()
( $execute(2) ))))
>>246 のソース3/5
if( !($execute)
( if( <(len($target) GetCaretIndex())
#パラメータがある場合
( var((parameter) GetParamPart(GetText() (Parameter)))
if(&&(path:is-data($target) !(Shell.IsDir($linkpath)))
( $execute(1) ))
# Parameter部がファイルなら""で囲む
if( Shell.IsExist($parameter())
( $command(GetText())
var((leng) +(len($target)len($parameter)1))
var((option)mid(GetText()$leng()-(GetCaretIndex()$leng)))
SetText(cat($target()(;")$parameter()(")$option))))
# Target部がファイル Parameter部が/Data/内のコマンドなら入替え
if( &&(Shell.IsExist($target) path:is-data($parameter))
( $command(GetText())
$execute(1)
var((leng) +(len($target)len($parameter)1))
var((option)mid(GetText()$leng()-(GetCaretIndex()$leng)))
SetText( cat($parameter()(;")$target()(")$option) ))))
>>246 のソース4/5
#パラメータがない場合
(
if(Shell.IsFile($linkpath)
( $execute(1) )
( if(Shell.IsDir($linkpath)
($execute(3)
if( Shell.IsFile($datapath)
( SetText($linkpath) )))
( if(Shell.IsExist(GetNormalFile(Shell.GetDir($linkpath)))
($execute(3) SetText(Shell.GetDir($linkpath)))
($execute(2)))))))))))
>>246 のソース5/5
switch(
$execute()
(-1) ( ClearText() )
(0) ( )
(1) ( if( NormalExecute(GetTextOrMarkedItems()) (if($command()(SetText($command))) BeforeExecute() AfterExecute(1))) )
(2) ( if( NormalExecute(GetTextOrMarkedItems()) (if($command()(SetText($command))) BeforeExecute() HideGiraffe() ClearText())) )
(3) ( Move((End)) Window.SendMessage(Window.GetFocus() WM_CHAR() CharToCode((\)))
>>223-225 ,
>>229-232 も修正(カレントディレクトリモード)
ごちゃごちゃしてるので再整理
【修正理由】
//を
http://に自動変換する機能に支障があったため 【使い方】
・c-.でカレントディレクトリ設定
(リンク先がある場合はリンク先のディレクトリが設定される)
・./ で設定したカレントディレクトリへジャンプ
・../ で設定したカレントディレクトリの親ディレクトリへジャンプ
・デフォルトのディレクトリはvar-g((mark-path) (C:))を修正のこと
>>252 のソース1/2
#デフォルトのディレクトリ、C:の部分を各自で設定
var-g((mark-path) (C:))
### カレントディレクトリへジャンプ
InsertEvent(
(EditChange)
(
var((chdir))
if(
GetConfig((AutoComplete.Enable))
(
switch(
GetText()
(./) ( SetText($mark-path) $chdir(1))
(../) ( SetText(Shell.GetDir($mark-path)) if(GetText()($chdir(1))))))
if($chdir()
( Move((End)) Window.SendMessage(Window.GetFocus() WM_CHAR() CharToCode((\))) ))))
>>252 のソース2/2 (
>>225 から変更なし)
### カレントディレクトリを設定する
SetEvent(
(key/c-.)
(
(SetMartPath)
var((fullpath) GetNormalFile(GetText()))
var((dirpath) GetNormalFileDir(GetText()))
#ファイラモード
if(path:is-path(GetText())
( $mark-path($dirpath()) return() ))
#コマンドモード
if(Shell.IsDir($fullpath())
( $mark-path($fullpath()) return() ))
if(Shell.IsFile($fullpath())
( $mark-path($dirpath()) return() ))))
>>253 (訂正)
ごめんなさい、貼り付けた時に括弧1つ取れちゃったみたいです。
#デフォルトのディレクトリ、C:の部分を各自で設定
var-g((mark-path) (C:))
### カレントディレクトリへジャンプ
InsertEvent(
(EditChange)
(
var((chdir))
if(
GetConfig((AutoComplete.Enable))
(
switch(
GetText()
(./) ( SetText($mark-path) $chdir(1))
(../) ( SetText(Shell.GetDir($mark-path)) if(GetText()($chdir(1)))))))
if($chdir()
( Move((End)) Window.SendMessage(Window.GetFocus() WM_CHAR() CharToCode((\))) ))))
>>255 もし、リストが表示されなかったら
最後の行にreturnを追加してみてください。
( Move((End)) Window.SendMessage(Window.GetFocus() WM_CHAR() CharToCode((\))) return))))
>>255 >>242 のAfterTextChangePlusを使いたい場合は
(../) ( SetText(Shell.GetDir($mark-path)) if(GetText()($chdir(1)))))))
の行を
(../) ( SetText($mark-path) if(GetText()(Move((End)) AfterTextChangePlus() return) )))
と置き換えてください。
>>242 便利に使わせてもらってます。感謝
タスクバーがデスクトップ左端以外の位置にある環境で var((rect)new(RECT)) var((SPI_GETWORKAREA) 0x0030) user32.SystemParametersInfoA($SPI_GETWORKAREA()0()$rect()0) Trace(RECT->left($rect)) Trace(>(RECT->left($rect) -1)) Trace(<(-1() RECT->left($rect))) delete($rect) これをDebugViewで見るとDebugPrintのとこが 0 0 1 になるのはなんでだろ?0,1,1じゃないのかなあ。
>>258 構造体のメンバの関数の戻り値はgetnの戻り値だからuintで、
比較演算関数は右辺がdoubleやfloatで無い場合は、
左辺の引数の型に右辺の引数を変換して比較するから、そうなってたみたい。
ややこしいから左右の型が違う場合は全部doubleになるように今修正しといた。
258から2時間も経ってないじゃなですか。早いなあ。
パスの\はイヤだが2バイト文字などは表示したい人限定。 パス区切りに/を使ったときのエラー、アイコン非表示を回避。 array:collect() の $element(each-func($element)))) を $element(replace(each-func($element)(/)(\))))) に書き換え。 (GetIcon) の param(0)) を replace(param(0)(/)(\))) に書き換える。
ずらっとスクリプトが出てるけど、カスタマイズすると結局どういう機能がついたんだ。 それと、その結果は使いやすいの?Giraffeは使うとどういうメリットがあるの? スクリプトでカスタマイズしたときの動作は軽い? とか親切に聞いてみる。
>>262 あなたは使わないほうがいいかも。
というか、別に親切でもないし(w
だれかまとめサイト作って
相当親切でしょ
>>263 激しく同意
>>262 >結局どういう機能がついたんだ
機能の説明は書かれてるんでよく読みましょう
そして、実際に使ってみて動作を確認してみましょう。
それでもわからなかったらもっと具体的な質問をしましょう。
>その結果は使いやすいの?
あんたはどう感じるかわからんが、自分にとっては使いやすい。
>Giraffeは使うとどういうメリットがあるの?
細かいとこまでカスタマイズできる。DLLで機能追加も出来る。
>スクリプトでカスタマイズしたときの動作は軽い?
10年以上前のPCにたくさんのソフトを起動して実行したら重かったかな。
あんたの環境で実行して、あんたが軽いと感じるかなんてことは私にわかるはずがない。
と親切に回答してみる。
こんな質問を親切な質問とか言って恥ずかしくない?
親切な質問とは、回答してくれる人が答えやすい質問をすることだと思うぞ。
せめて、抽象的な質問と具体的な質問くらいは理解しといたほうがいいぞ。
質問者は以下の4点をクリアしてないと答えるのは難しいよ。 最低Readme.txtは目を通す。 実際に使ってみて判らない箇所を絞り込む。 うろ覚えで良いから構造化言語をひとつは知っている。 いろんなランチャーを試してきた。
スタートアップの変わりに使える?
>>269 出来るけど、
普通にスタートアップじゃ駄目なの?
271 :
名無しさん@お腹いっぱい。 :2005/06/25(土) 14:54:59 ID:NowkIQJs0
0.4.3.4 age
まとめサイトとまで行かなくてもこれまで書き込まれたスクリプトを 整形して並べたページくらいあった方が良いだろうか?
>>272 絶対良い。WikiでもまとめサイトでもFAQでもせめて2chスレのテンプレでも
ココぱっと見たら何やってるのかわからんよ。
>>267 無駄に挑発的なのが頭の悪さが露出してアレだけど
折角親切に解答してるんだか、もうちょっと考えて
テンプレ風味にしたらどうだ。2chは第三者が見て良くなるように書かないと駄目なんだよ。
274 :
267 :2005/06/27(月) 12:33:45 ID:BHRwICtp0
>>273 ちなみに、
>>267 は
>>262 に対する皮肉や一般常識を
>>262 でもわかるだろう?というレベルで書いたもので、
それを本気で親切な回答と受け取ってもらっては困る。
まあ、批判だけじゃ可愛そうだから一般常識に対するアドバイスや、
くだらない質問は書き込むなというオーラをこめたつもりだったけど。
>>269 の質問や
>>273 の反応を見て全てが無駄だったということは理解した。
まあ、私の頭が悪いということは昔から自覚していることだが、
他人を馬鹿にする時は、せめて誤字脱字には注意したほうが良いと思う。
説得力がなくなるから。(これも一般常識のアドバイス)
それにしても、本来なら無視すべき質問までテンプレ風に回答しないと駄目というのは
はじめて知りました。(今後は無視することにします。)
これ以上は荒れそうだしスレ違いになるんでコメント控えます。
275 :
267 :2005/06/27(月) 13:03:50 ID:BHRwICtp0
作者サイトのToolにある ShortcutViewer のご紹介 \Dataフォルダ管理ツールで.lnkファイルを編集したり.sesファイルに変換したりできます。 .lnkで使ってる人は一度.sesファイルに変換してみてください。 .iniに以下を追加すると良いかと (特にShortCutDirectoryはフォルダの参照ダイアログのデフォルトディレクトリで使われます。) [View] Toolbar="1" [Config] ShortCutDirectory="C:\Program Files\Giraffe\Data"
作ってみました。
今のとこスクリプトを見やすくしただけです。
ttp://www.geocities.jp/giraffeplus/ スクリプトをオリジナルから改変した基準
・統一感を出すためなるべくDefaultのフォーマットに合わせた
・なんか行数を切り詰めてる感じがするので改行、変数を足した
・siteinit.giraffeに追加しやすい方が便利かな
乙
ListBoxが表示されていない時に Up or Downキーを押すと履歴のリストボックス表示 下記もあわせて設定すると良い [congig] General.HistoryCount AutoResize.ByListboxText
279 :
278 :2005/06/28(火) 15:06:30 ID:BfEH9LjM0
>>278 #SelectListItemDown.giraffe
(Listboxの選択中のアイテムの下のアイテムを選択 & 履歴Listbox表示)
unless(Window.IsVisible(GetGiraffeHandle((ListBox)))
( unless( Giraffe.ListIsHistory() ( Giraffe.ListSetHistory ))
(ShowList(1)) ))
if((GetListCount)
(SetListCurSelUnderLine()return))
280 :
278 :2005/06/28(火) 15:06:56 ID:BfEH9LjM0
>>278 #SelectListItemUp.giraffe
(Listboxの選択中のアイテムの上のアイテムを選択 & 履歴Listbox表示)
unless(Window.IsVisible(GetGiraffeHandle((ListBox)))
( unless( Giraffe.ListIsHistory() ( Giraffe.ListSetHistory ))
(ShowList(1)) ))
if((GetListCount)
(SetListCurSelAboveLine()) )
281 :
278 :2005/06/28(火) 15:07:37 ID:BfEH9LjM0
【履歴ちょっと上級編1】 大改造Executeだが、 正常に実行できたもののみ履歴に残す都合、BeforeExecute を NormalExecuteの後で実行している。 しかし、スクリプトによっては実行後コマンドボックスがクリアされてしまうようなので、 switch文の中の1,2の場合を次のように修正 ちなみに1,2の違いはAfterExecuteのタイマーイベントを使うか使わないかの違い。 (1) ( unless($command()($command(GetText))) if( NormalExecute(GetTextOrMarkedItems()) (SetText($command) BeforeExecute() AfterExecute(1))) ) (2) ( unless($command()($command(GetText))) if( NormalExecute(GetTextOrMarkedItems()) (SetText($command) BeforeExecute() HideGiraffe() ClearText())) )
282 :
278 :2005/06/28(火) 15:09:49 ID:BfEH9LjM0
【履歴ちょっと上級編2】 AutoResize.ByListboxTextは3と4の違いがよくわからないが 3か4の動きが好き。 しかし履歴に大きな行があるとgiraffe起動時 コマンドBoxが大きくなってしまうのはちょっと格好が悪いと思った。 そこで私は、 GetText()が空の時必ずEditChangeイベントが呼ばれているようなので、 EdhitChangeでGetText()が空の時にAutoResize.ByListboxTextを1に設定し SelectListItemDown.giraffe,SelectListItemUp.giraffeの ShowList(1)の手前で3と設定するようにした。 注)この設定をすると[config]の設定が無視される。
283 :
278 :2005/06/28(火) 15:12:45 ID:BfEH9LjM0
【履歴ちょっと上級編3】 giraffeの履歴はログに近い感じがするが、私は履歴も結構使うので 重複履歴の登録は避けたいと思い簡単なDLLを作成。 しかし,AddHistoryはfuncでもfunc-gでもないらしくオーバーライドの出来なかった。 取り合えずばBeforeExecuteをオーバーライドすることで対応 しかし、AddHistoryはBeforeExecute以外からも呼ばれてたりする。 同様なDLLを作成する方は参考に。
>>276 更新、乙です。
一言コメントです。
Execute(),SelectListItemDown(),SelectListItemUp()
の3つですが、/Script/settings/key/にあるものの改良なので
SetEventやsiteinit.giraffeを使わなくても
/Script2/settings/key/に置くだけでオーバーライド出来ます。
(この場合ファイル名が異なるとデフォルトのものが使われる)
現状でも全く問題ないと思いますが、参考までに。
大改造Executeについて ;をつけてエクスプローラで開く時、現状は次のような動作になっている C:/home/hoge; => C:/homeのフォルダを開く C:/home/hoge/; => C:/home/hogeのフォルダを開く しかし、過去の履歴を使う場合やフォルダ作成などを行っていると 下記のように動作して欲しいと思うようになった。 C:/home/hoge; => C:/home/hogeのフォルダを開く C:/home/hoge/; => C:/home/hogeのフォルダを開く 同じように思った人は、ソースの #;で終端しているがパラメータがない場合(エクスプローラで開く) の3行下を 変更前: ( var((dirpath) Shell.GetDir($target)) 変更後: ( var((dirpath) $target) としてください。 なんか、変更多くて申し訳ないです…。
>>284 ども。そのようですね。
旧バージョンでは作者推奨のオーバーライドは
siteinit.giraffeに追加だったのですが、今はどうなんでしょうね。
単に[F5]からスクリプトを編集するとScriptディレクトリにあるものが
書き換わってしまうようだし。
どの方法でも全くかまわないのなら、コメントしてもらった
オーバーライドの方法もあわせて紹介したほうが親切かな。
ちょっと悩ましいところです。
>>286 >単に[F5]からスクリプトを編集するとScriptディレクトリにあるものが
>書き換わってしまうようだし。
Ver. 0.4.3.4 ですが
F5で右クリック、コンテキストメニューで"Edit This Script"を選択して編集すると
ちゃんとScript2が対象になりましたけど、この方法じゃなくてですか?
まあ、作者推奨の方法が一番良いと思うので、
現状のままで問題ないような気がします。
/Script2/settings/key/に適当な名前のスクリプトを置いて Setting.ini の[key] で設定したら普通に使えて、[F5]でも見られた。 ちょっと感動。
>>287 すみません、うっかりしてました。
事前にScript2にScriptのファイルをコピー済みだと変わるんですね。
どうやら、最もスマートな方法は
既存キーイベントは
>>284 のような方法を取る。
新規キーイベントは
>>288 のような方法を取る。
関数などの追加、編集にはsiteinit.giraffeなのかなあと思えてきます。
ただ、イベントと関数が密接に絡まってるカスタマイズのケースを考えると、
スクリプトを試しに使う→気に入らなかったら簡単削除
を考えると、いきなり別ファイルにバラバラに導入するのもどうなのかなあ、と。
でもSetEvent()決め打ちで紹介するのも問題があるような気がしてきたので、
この辺は近いうちになんとか改めたいと思います。
>>289 スクリプト変更したら、[F5]又はトレイアイコンを右クリック[Reload Setting]が良いかと。
>>284 ,
>>288 は気に入ったものを長期で使う時に使うといいのかな?という気もする。
>>270 立ち上げる順番変えるとか、タイムラグとかつけたいの
どういう風に使うとGiraffe+で幸せになれるんだ?
あえてGiraffe+で簡単にやりたいというなら
Script2\siteinit.giraffeにShell.Execute()とsleep()を使って設定する。
だが、[F2]で設定の再読み込みをする場合が問題になる。
例えば常駐する上、二重起動するソフトとかはまずい。
また、頻繁にスクリプトを編集する場合もPCに余計な負荷がかかる。
だから、確実さを追求するなら
>>293 の方法が一番だと思う。
スクリプトをダブルクリックしたら、ジラフで実行とかしてくれないの?
うーん、ただのコマンドランチャじゃなくて、カスタマイズできるという特徴があるって事だけど 結局カスタマイズされても唯のコマンドランチャな気が、うわ、何をするやm(ry
「ジラフ、初めてのスクリプト」とかってページない?
>>296 Giraffe+は確かにスクリプトがあつかえるんだけど、
その主な目的はランチャーの動作を変えるためであって、
シェルスクリプトのような使われ方とはちと違う。
>>297 ホットキーランチャでもあります。・・・マジメに答えてすみません。
>>298 初めてGiraffe+でスクリプトやる場合、既存のスクリプトをコピペして
それをちょこっとずつ編集しながら慣れた方がいいんじゃないかな。
目的はカスタマイズであって、ゼロからアプリを作るわけじゃないからね。
>>295 二重起動はWindow.FindとかWindow.FindWildを使えば防止できそう。
>>296 >>299 script.txtの3.外部からのスクリプトの実行を参照。
これと拡張子の関連付けを使えば簡単に実現できる。
ただ、siteinit.giraffeとかもダブルクリックで実行できてしまうというのには問題ありかもしれない。
>>300 2種類の拡張子(例えば.giraff と .giraf) をスクリプトファイルとして認識。
.giraff を起動時に読み込まれるスクリプトやSetEventを定義するスクリプトで使用。
.giraf 拡張子の関連付けも行いたいスクリプトで使用。
なんて仕様はどうでしょう。>作者殿
今使ってるスタートアップアプリが妙なエラーを出すので、giraffできれば良いなと思った次第です
>>302 その作者に相談とか、他のスタートアップアプリを探すのではなく、
いきなり、Giraff+でやろうとしたり、1行の質問で済ませようとする
その発想がある意味すごい…。本来なら100%無視です。
一応、2重起動防止で3秒後にwinampを起動する例
もともとwimampは2重起動防止だが気にするな。
FindWildは複数マッチした場合はダイアログが出るから注意
SetEvent(
(timer/start_winamp-3000)
(
SetEvent((timer/start_winamp))
unless( Window.FindWild((Winamp v1.x)(*))
( NormalExecute((winamp)) )
)))
普通に2重機能防止なら
unless( Window.FindWild((Winamp v1.x)(*))
( NormalExecute((winamp)) ))
>>301 Giraffe+にどこまで機能を取り込むか、微妙な問題なんだよな。
Windowsの機能をできるだけ使う。
他のプログラムとの連携も無意識にできる。
せっかくあるんだから利用すべき、とも考える。
要望するならなぜ関連付けをGiraffe+スクリプトが考慮しなければ
ならないか積極的な理由も添えたほうが良いんじゃないだろうか。
>>301 自己レス。
ためしに.girafの拡張子に関連付けて
/Dataに置いたらgiraffからでも普通に使えた。
siteinit.giraffeからはeval-f()で読み込めばよい。
>>304 どうもです。
要望するまでもなく、簡単に実現できました…。
ResetList() AddListItem((Test)) SetListCurSel(0) SetListCurSel(0) SetListCurSel(0) これを実行するとコマンドボックスはTestなのに ResetList() AddListItem((Test;)) SetListCurSel(0) SetListCurSel(0) SetListCurSel(0) こっちを実行するとTest;;;と;が増殖するのは何でなろう?? Up/Downキーを押すたびに;が増えていく・・・
>>307 どうやらGiraffe.ListIsHistory()がfalseの時に、この症状が起こるようだ。
コマンドライン引数の変化無しにリストのアイテムを選べるようになってるからさ。 SetText((;param)) ResetList() AddListItem((Test)) SetListCurSel(0) ってやるとテキストが"Test;param"になるわけさ。
なる。 ターゲットが変わっただけで、パラメータが消えたりすると面倒だもんなあ。
>>309 ごめん、聞き方がわるかったのかな?
コマンドボックスが;で始まってたらそれを後ろに付けてくれるってのはまあいいとして。
SetText((;aaa))
ResetList()
AddListItem((Test;bbb))
ShowList(1)
SetListCurSel(0)
SetListCurSel(0)
SetListCurSel(0)
これを実行した時に
Test;bbb;bbb;bbb;aaa と ;bbbが増殖するのが気になたわけです。
>>311 に補足
AddListItem((Test;bbb)) の下に
AddListItem((Test;ccc)) を追加して
実行後、Up/Downキーを押してみてくれ。
>>312 これは・・・リストの状態が履歴なのに、
AddListItem()で履歴ではないものを加えたから?
そのせいで矛盾が生じたのではないだろうか。
履歴を配列に蓄えて編集した上でリストに再配置とかじゃだめなのかなあ。
履歴を強制的に書き換えないといけない理由があるのだろうか?
Test;aaa Test;bbb Test;ccc のように入力したファイルを作成してa-vでも同じ症状が出るな。
>>313 >履歴を配列に蓄えて編集した上でリストに再配置とかじゃだめなのかなあ。
そうしてるよ。ようは自分で独自のリストを登録する場合、
登録するリストに;をつけたら上下キーを押したら駄目ってこと。
やってることは、いったん履歴リストを配列に保存して
コマンドボックスにaと入力したら、
aから始まる履歴のみをリストボックスに再登録してる。
同様にabと入力したらabで始まるものをリストに登録。
そして、数が絞り込まれたら上下キーで選択したり、
パラメータを変更したりしたい。
もう、SetListCurSel()を自作して解決した。
>>315 todo.txtのユーザーインターフェイスの仕様について書いてあること
そのものじゃないか。
>>316 ごめん、このレスよくわかりません
主題はあくまでSetListCurSel()の動作についてだったのですが、
質問と回答がかみ合わずにどんどんそれていって
何をどうやろうとしてSetListCurSel()が問題になったのかを説明してるだけなのですが…。
それにTodoにあるよう標準で履歴の絞りこみが出来ないから
しかたなく自分で機能を追加したのですが、
何か問題ありますか?
なんか、質問と回答がかみ合わないし、
最近敵を増やしたように感じるのでこのスレから退却します。
この1ヶ月、情報か少ないからこそ
かなりの情報とスクリプトを提供したつもりでしたが、
ご理解いただけず残念です。
通じてないわけじゃなくて、バグか仕様かという、感覚の違いなんでしょう、たぶん。
319 :
316 :2005/07/04(月) 23:55:53 ID:9XlPb4g/0
>>317 残念です。
私に理解がないというのは、ため口で意見を述べたことも含むのでしょうか?
賛意や感謝の表し方も足らなかったのでしょうか?
反論が出た程度であなたが消えるべきと思う人はいないと思います。
以下、言い訳。
過去のレスで付属のドキュメントも読まずにGiraffe+の存在意義を疑うレスが相次いだ。
それで神経質になってたのは確か。
とりあえずため口使わない相手にため口で反論書くのは控えようと思う。
>>319 いやいや、別にあなたが悪いわけではないので気にしないでください。
単に、2chだと行数減らすために、説明不足になって相手にうまく伝わらない。
その結果、ちぐはぐなコメントのやり取りになるのなら、
書かないほうがいいのかなと思ったしだいです。
もともと、文章を書くのは苦手ですし、
私の情報が第三者に役に立っているのかもちょっと疑問に感じてましたので。
まあ、いろいろ重なった結果というやつです。
version 0.4.4.0 早いな。todoで既出だったとは言え、 なんか作者をスレの流れに付き合わせてしまった気が。 今回は特に作者さんにお疲れと言いたい。
作者の中の人はこのスレ熱心に見てるみたいだし、レスもかなり答えてみたいだよ。 反応があからさまなので結構意識して私もレスしてる。
個人的な要望なら、選択肢を視覚的に選べたりするような軽いけど 視覚的に補助される機能が使いやすいといいなぁと そういう面がないと普通にDOSでもCygwinでもいいというか むしろその方が色々できて使いやすいし
>>323 メニュー型かボタン型ランチャーとか使ってみたら?
それとCUIシェルを併用すればいいじゃん。
作者は見ているみたいだけどレスはあまりしてないと思う。 ここ最近のレスは319と320で占められてるんじゃね?
>>324 今はそうしてますよ。しかしCUIシェルは画面の場所をとりすぎて同時に作業したいときとか不向きだし
視覚的な支援が薄いとファイル名前とか忘れてて行為自体を思いつかなかったりと不便な面もあるので
スクリプト付いていたりするコマンド型のランチャには割と期待してたり
>>325 そうかもしれないけど、個人的な感じでは相当作者っぽいんじゃないかおt
かなり信者っぽく擁護してる人が居るので、作者じゃないと不思議なほど心酔してる感じだと思う。
この手のツール好きな人って結構オンラインソフト使い込んでて比較してる人が多いと思うんだよね
蔵スレでも月光スレでもランチャスレは色々他のランチャの挙動とか可能か比較しあっているしね
>>326 320だが、325が正しいと思う。
作者のコメントは全体通して10個もないんじゃない?
作者はコメントの代わりバージョンアップとそれに付随するドキュメントで対応してくれてる。
ちなみに私のコメントは
>>182 からで、半分位が私のコメントだと思う。
まあ信者と思われてもしかたないが、他のランチャソフトはシーエルくらいしか使ったことはないし、
まだ使い始めて1ヶ月位なので、やっと愛着が沸いてきた程度なので信者のつもりはない。
ただあまりに情報が少なかったので、
メモ書き程度でもできるだけ情報を残すようにしていただけです。
その反応で新たなアイデアや作者へのフィードバックにもなると思っていたので。
それにGiraffe+はまだ発展途上で、ある程度コンピュータの知識があり、
人柱的に使っても良いとう人でないと、とても人にはお勧めできないと感じてるし。
ちなみに私のsiteinit.giraffeは400行超えで、それ以外でも20個近くの関数オーバーライドして
やっと満足いくレベルになった。ここまで苦労するとは思っていなかったが…。
書き込み控えるつもりだったのに…。
>>326 今使ってるランチャの視覚効果ってどんなの?
MADとかMpg123の超軽量フロントエンドとかで使いたいけど出来そうですか?
330 :
319 :2005/07/08(金) 18:22:02 ID:7OAkW1CD0
>>326 信者、ですか。ちょっと耳が痛いです。
それでは、比較するんなら具体的に機能ごとに比較しては?
以前、Giraffe+でもbluwindみたいにスキップマッチングしたいという
レスがあって、それを実現するスクリプトが挙がってました。
それに対して、
>>323 はさすがに抽象的過ぎないですか。
スクリプトでできるものなのかもわからないし、
これで作者にどうにかしろって言うのは酷だと思います。
スクリプトが使えるのに、スクリプトでどうかにしようとする過程が
抜け落ちたまま要望してないだろうか?と自問自答してしまいます。
ちなみにエディットで * といれればリストにコマンドが全て表示されます。
<コマンドのCommentを表示する> 前もってShortCutViewerなどでComment欄に説明を書いておくこと その1 func-g( (GetParamPart) ( split( param(0) GetConfig((General.Separator)) switch-i( param(1) (Target) (0) (Parameter) (1) (Directory) (2) (Verb) (3) (Show) (4) (Comment) (5)))))
その2 SetEvent( (key/ca-c) ( (コマンドのコメントを表示) restore-edit:push() SetText(GetDataPart(GetTextPart()(Comment))) Move((end)) RedrawEdit() sleep(1000) restore-edit:pop()) (key/cas-c) ( (リスト内のコマンドのコメントを表示) var((listtexts)()(listitem)) for( (i) 0() (<($i() GetListCount())) (++($i)) ( $listitem(GetListItem($i)) $listtexts( array:add( $listtexts() cat($listitem() $TAB() GetDataPart($listitem() (Comment))))))) SetListText(0()$listtexts) OptimizeWidth(1) ShowList(1)))
敷居が高くて入れないよ ってのがほとんどの人ではないかと そんな俺は玄関で留まっている・・
知らない言語を使わなければいけない上に、特別便利という部分が見当たらない そんな俺も玄関で留まってる。
AfterTextChangePlus使用時 カーソル位置が戻りすぎと感じる人用 C:\hoge\aaまで入力し key/cs-backslash、key/a-leftで戻る時 カーソル位置がC:\まで戻るのではなくC:\hoge\に戻る。
>>335 func-g(
(TextChangeFileDir)
(
var((target)GetParamPart(GetText() (Target)))
var((path)GetNormalFile(GetParamPart(GetText() (Target))))
var((parentdir)Shell.GetDir($path))
var((pos)GetCaretIndex)
if(<(len($target)len(GetText))
(SetText($target) return)
)
if(&&(==($pos()3())==sw((?:)$parentdir)) ($parentdir(())))
unless($parentdir() (ClearText() return))
unless(==(+(len($parentdir)1)$pos())
( SetText($path) SetSel(len(GetText)+(len($parentdir())1)) )
( SetText($parentdir) )
)
))
a-vでファイルの中身を見る時1行目にファイル名を表示したい。 利点:そのファイルが置かれているディレクトリへ戻ることが出来る。 \Script\settings\key\ViewFileInGiraffe.giraffe \Script\view-file-in-list.giraffe をオーバーライド
>>337 \Script\settings\key\ViewFileInGiraffe.giraffe
(ファイル内容をリスト内に表示)
$operation-mode((view))
@view-file-in-list(path:if-idlist-get-path(GetNormalFile(GetText))1)
Move((Start))
SetListCurSel(0)
>>337 \Script2\view-file-in-list.giraffe(その1)
var((f)c.fopen(param(0)(rt)))
if(
$f()
(
var((color) a-make(
GetColor((ListItem.File.Text))
GetColor((ListItem.File.Back))
GetColor((ListItem.File.Icon))
GetColor((ListItem.File.SelText))
GetColor((ListItem.File.SelBack))
GetColor((ListItem.File.SelIcon))))
var((p_str)new(0x400))
var((i))
if(param(1)
(
SetListItem(param(0))
$i(1)))
>>337 \Script2\view-file-in-list.giraffe(その2)
while(
(
&&(
c.fgets($p_str()0x3ff()$f)
<($i()0x400)))
(
var((str)gets($p_str))
$str(replace($str()$TAB()( )))
$str(replace($str()$LF()()))
SetListItem($i()$str)
SetListItemColor($i()$color)
SetListItemIcon($i()())
++($i)))
c.fclose($f)
delete($p_str)
SetListCount($i)
OptimizeWidth(1())
ShowList(1())))
リストボックスでマークされているものをテキストとしてクリップボードへコピー 選択されていなければエディットボックスの内容をコピー SetEvent( (key/c-insert) ( var((mark-items) Giraffe.GetListMarkedItems) var((text)) for-each((item) $mark-items() ( if($text() ( $text(cat($text()CodeToChar(0x0D()0x0A)$item())) ) ( $text($item()) ) ) )) if($text() (SetClipboard($text)) (if(GetText() ( SetClipboard(GetText) )) )) ))
リストボックス内を検索 c-s :ダイアログで検索 F3 :次を検索 s-F3 :前を検索 var-g((search-word)) SetEvent( (key/c-s) ( $search-word(NormalGetInput((Search Word)(Search)$search-word())) ListBoxSearchNext() ))
>>342 SetEvent(
(key/F3)
(
ListBoxSearchNext()
))
SetEvent(
(key/s-F3)
(
ListBoxSearchPrev()
))
>>342 func-g(
(ListBoxSearchNext)
(
for(
(i) +(GetListCurSel()1) (<($i() GetListCount)) (++($i))
(
if(!=(var((pos)find(GetListText($i)$search-word()0))-1)
(
SetListCurSel($i)
SetSel($pos()+($pos()len($search-word)))
break-for()
))
))
))
>>344 func-g(
(ListBoxSearchPrev)
(
for(
(i) -(GetListCurSel()1) (>($i() 0)) (--($i))
(
if(!=(var((pos)find(GetListText($i)$search-word()0))-1)
(
SetListCurSel($i)
SetSel($pos()+($pos()len($search-word)))
break-for()
))
))
))
>>335 〜
>>345 大量乙です。
>>338 の$operation-mode((view))
はこのままだとエラーになるので多分省いても良いっぽい。
>>335 と
>>337 の利点は使ってみて直感的にわかる。
>>342 はやはりファイル内容をリストに表示したときのためだろうか。
細かいことであんまり穿って考えるのもアレだとは思ったが、
$operation-mode((view))
を見て未投稿のスクリプトでmode:enter()系のようなことをしてるのだろか
とつらつら想像したりした。
>>347 $operation-mode((view))は取ってOKです。
これは、
view : a-vでファイルの内容を表示中
url : url.txt にurlの羅列を書き込み//で補完したとき、url.txtの内容をリストに表示
path: カレントディレクトリモードの履歴対応版
などなど、いろいろなモードによって
同じキーを押した時でも処理をかえたり、
そのモードでしか使えないキーを設定したりしてるためです。
とったつもりが残っていたようです。
>>432 は
テキスト内のコピペをよく行うので、
a-vでファイルを開き、
>>342 でその場所へジャンプ、
>>341 でコピーって感じで使ってます。
高機能ではないので、利便性よりスクリプトのサンプルとしての意味合いが強いかも。
そういう使い方もあるのか。 アイデア次第で使い勝手が相当違ってきそうだ・・・。 何でもそうなんだろうけど。
右手age
そういえばこのスレにとっては朗報があるね。 窓使いの憂鬱がXPでも使えるようになったくさい。勿論以前のバージョンを使えばNT系以外でも使えるみたいだし。 今までこのソフトがいいなぁと思っていても窓使えなくて困ってた人とかは機能がフルに使えるようになってるかもよ。
>>330 その肝心のスクリプトが変な言語だし、そのままじゃなんか微妙できること少なそうで、せめてJavaScriptでもPerlでも何でもいい
からも少しメジャーなのだったらなぁ。コンセプトとか繭つかってとかそういうのは凄く魅力的なだけに
誰か自分には出来ないくらいの、いいスクリプト書いてくれないかなぁ
とかDLL作ってくれないかなぁと指をくわえてみてるユーザが多いんじゃないかと思う。私みたいに・・・。
>>351 数年前からXP上でも使えてたと思うけど・・・
最近の葉Giraffeとの連携が強化されたってこと???
よく分からないので説明してくれるとありがたい
>>353 数年前にでていた繭のVe3.29だったかのXP用rは一部のPCでしか使えなかった。
理由はXPのドライバのバグとかなんとか。
そのバグが致命的でいろいろな方法をとってXPで使うための措置が取られていた
特にキーボード派が多いノートパソコンにおいてドライバが独自の物が使われていたりして
それが原因で動かないなんて報告も繭スレであったり
酷いときにはOS自体が立ち上がらなくなるなどという事も合ったらしい。
最近のVer3.30は2005年の4月くらいにでてNT系の専用となったがXPでも動く率が上がったとみたい。
今でも一応立ち上がらなくなったときのために復旧用のドライバとかが説明されているのはその為。
何故それを繭スレに貼り付けたのさ・・・。 まあいいけど
言っちゃ悪いけど、Giraffe+を使いこなせない理由を 言語のせいにしてる人のレスは屁理屈にしか聞こえない。 そういう人は例えば倉Exを使ってもやはり挫折すると思う。
言語言語って言うなら
>>237-
>>240 みたいにちょっとは突っ込んだ話しよーぜ。
自分が理解できん=変な言語じゃ恥ずかしすぎる。
>>356 このスレに居た住人で上のほうでスクリプト書いてくれてた人とかもそれが理由で蔵に移ったりしてる。
そういう貴重な自分で書いてくれてる人とかまで、逃しては結局資産がたまらないと思う。
逆に倉よりもできることが多いから Giraffeに移ってきた人もいますよ
例えば?
Giraffeを使いこなせる上で倉に移った人と、 使いこなせていないあなたを一緒にしてはいけません。 しかも資産とやらは使いこなせない自分のためにあると 思い込んでいませんか?
358とか相手にするだけ時間の無駄だと思うぞ。 スクリプトを投稿した人達が本当に倉に移ったか検証が至難なのを いいことに誇張したり、嘘書いてる可能性すらある。 そもそも批判する割には具体的な話は避けているとこなんか ユーザーに成りすましたアンチのやり口に酷似している。
>>362 スクリプトの纏めページからいけるところとか見てないの?
他の人のスクリプトとか参考にしたり入れてたりするなら気づくと思うが・・・。
ほんとに使ってるのかなぁ。
一部の乗換えた人を指してあたかも使える人は 大勢が乗り換えているような書き方をする。 まさに誇張。
要は
>>363 は乗り換えた人がいるから自分は正しいの一点張りで、
自分のブログにでも書いとけばいいような内容。
しかも言語のどういう仕様が悪いとか細部は何一つ語れてないよ。
ちゃんとログ読んでれば詳しく書くことで議論が進むスレだとわかるはず。
問題点を絞って改善に繋げようという意思は最初からなくて、
スレの住人を不愉快がらせようと足掻いてるだけじゃないかな。
なにやら難しい言い合いになってますが 素人でもそれなりに使い満足している俺が来ましたよ
まあ、ドンドン人を追い出して拡張を作ってくれてる人もどこかに行きましたとさ。 プログラム自体は結構気に入ってるから、ここに来てるわけだが。毎回同じ時間に固まってレスしてるのは何で? >一部の乗換えた人を指してあたかも使える人は >大勢が乗り換えているような書き方をする。 >まさに誇張。 そうね。
追い出されたと感じてたわけだね。
学生ならともかく早朝と夜にレスが集中することは普通だろ。 それに疑問に疑問で返したりと誠実なレスをしてないな。 ことの始めの言語うんぬんの書き込みは撤回か?
21時だね。その前は5時。その前に4時というのもあるね。 5時4時が普通の人が多い時間とは言わないな。
確かにこんな時間までBSのガンダムぶっ通しで見てた俺は普通の人じゃないな
お前らの普通は普通じゃない この世でおれだけがスタンダード
こんなことで普通の人扱いされなくてもべつに困らない。 気分転換に眺めてたのにもう終わり?
普通じゃない時間にカキコ 変な言語の人降臨まだー?
いま、現在日時を表示させているのですが、パソコン起動時間を表示させたいです。 どのような文を書けばいいのかわかる方がいましたら教えてください。 よろしくお願いします。
>>376 現在日時を表示する設定のままで、siteinit.giraffeに下のを追加。
---------------------------
func-g(
(clock-display:display)
(
$clock-display:displaying(true)
var((tick) /(kernel32.GetTickCount()1000))
var((sec) %($tick() 60))
var((min) %(/($tick() 60) 60))
var((hour) cast-i(/($tick() *(60()60))))
var((time) format((%02d:%02d:%02d)$hour()$min()$sec))
if(==s($time()GetText())
(return()))
SetRedraw((edit)0())
SetText($time)
unless(is-empty($clock-display:color)
(eval($clock-display:color)))
unless(is-empty($clock-display:icon)
(SetEditIcon($clock-display:icon)))
unless(is-empty($clock-display:icon-color)
(SetEditIconColor($clock-display:icon-color)))
unless(is-empty($clock-display:window-width)
(SetGiraffeWidth($clock-display:window-width))
(OptimizeWidth(0())))
SetRedraw((edit)1())
RedrawGiraffe()))
378 :
376 :2005/08/27(土) 22:36:36 ID:RIOm+pe20
>>377 さん
わぁぁ、ありがとうございます。
今からやってみます!ううぅ、嬉しいなぁ
出来たら報告に来ます!!
379 :
376 :2005/08/27(土) 22:49:59 ID:RIOm+pe20
できたー!377さん、ありがとうございます。 見ず知らずの私のリクエストにポンと答えてくださって・・・尊敬>< 本当にありがとうございました。 わーい、刻々と進んでるー 感謝!!
380 :
名無しさん@お腹いっぱい。 :2005/09/10(土) 08:19:28 ID:W9gnpRY30
(゚∀゚)うpだて!!
0.4.5.1 ディレクトリかどうかやファイルが存在するかどうかの判定を少し改善した GCのスレッド数制限を解除 描画スレッドの作成に失敗した場合に強制終了しないようにした doc\settings.txtに「保存されるファイル」と「スクリプトの実行の順番」を追加 settings\key\QueueDirectoryPopがQueueではなくStackになっていて使い物にならなかったのを修正 settings\key\QueueDirectoryMenuを追加
382 :
名無しさん@お腹いっぱい。 :2005/09/13(火) 19:11:36 ID:s5U9Q5Bs0
\2の動作が変わった?
383 :
作者 :2005/09/13(火) 21:14:10 ID:yGjBM6Jm0
>>382 ごめんさい、忘れてました。
バージョンアップの場合は設定ダイアログのSettingsのkeyの、
backslashを、?-backslashにする必要があります。
384 :
382 :2005/09/13(火) 22:23:49 ID:s5U9Q5Bs0
コマンドのディレクトリをxyzzyで開きたいんだけど,どうすればいいでしょうか?
386 :
385 :2005/09/23(金) 17:03:25 ID:b1mj4+F30
すいません。 「xyzzyのファイラで開きたい」の間違いでした。
>>385 F5押して、settings/keyのs-enterをメニューからDuplicateして、それをメニューからEditして、
そのファイルの内容を下記にしたら、期待してる感じになる、たぶん。
xyzzy側でそういう関数を用意するのがいいんだけど、ファイラはbuiltinだからちょっとめんどい。
----------------------------------------------------
(コマンドのディレクトリをxyzzyのファイラで開く)
BeforeExecute()
var((xyzzycli) (C:\Program Files\xyzzy\xyzzycli.exe))
var((dir) replace(path:be-backslashed(GetNormalFileDir(Giraffe:GetExecutee()))(\)(/)))
Shell.Execute($xyzzycli() (-f open-filer))
Sleep(300)
Shell.Execute($xyzzycli() format(
(-e "(let () (filer-chdir \"%1%\") (filer-chdir \"%1%\" t) (filer-left-window))")
$dir))
AfterExecute(1)
388 :
385 :2005/09/24(土) 18:15:36 ID:wb4xUIRo0
>>387 さん
ばっちり動きました!どうもありがとうございました。
感謝感激で,本当にお礼の言葉もございません。
どうもありがとうございました!!
389 :
名無しさん@お腹いっぱい。 :2005/09/26(月) 06:38:01 ID:Xrr/3Dw00
test
ログイン時に自動起動させたいんですがスタートアップにショートカット突っ込んだら Giraffe+ Boot Sequence Error error: file not found function: @.giraffe parameter: context: .giraffe Current Directory: C:\Documents and Settings\hoge こんなエラーでました。 .giraffeが$HOMEに無いよってことですかね
ショートカットのプロパティを適当に書き換えたらエラーが再現する。 作業フォルダの箇所がじらふのフォルダになってないんじゃない?
0.4.5.2 -Keyboard.Strokeを、modキー(Ctrlキー等)を押しながら実行しても指定どおりになるようにした -Keyboard.StrokeとKeyboard.SendInputがEXTENDED KEYを考慮してなかったのを修正 -ワイルドカード比較の実装がおかしかったのを日本語対応も含めて修正 -GetNormal*関数とTextChange*関数をObsolete(廃止だけど互換性のため残す)とし、新しくGiraffe:ComposeExecutee等を定義した -settings\key\SetText*.giraffeをGiraffe:ComposeExecutee等を使った新しいスタイルに書き換えた -settings\key\SetTextFilePath.giraffeを?-backslashでもbackslashでもどちらでも動作するようにしておいた
最近いじり始めたんで,激遅ですが質問させてください。
>>108 のように,ファイラと連携しようとすると,
function: array:for-each
parameter: C:\hogehoge, cat((")param()("))
context: WM_SETTEXT
->EvalFile(cat((filer))cat((C:\hogehoge)))
って怒られてしまうんですが,設定がおかしいのでしょうか?もしくはバージョンの問題でしょうか?
ReadMeを参考に, filer→AddData に変えてみると,きちんと動作します。
Giraffeのバージョンは,0.4.5.2 OSは,XP Pro です。よろしくお願いいたします。
>>394 array:for-eachをarray:collectに書き換えればいける、たぶん。
396 :
394 :2005/10/22(土) 16:27:56 ID:+cWENoIR0
>>395 いけました。ありがとうございます。
複数のマークファイルにも何気に対応していてすごいです。
397 :
名無しさん@お腹いっぱい。 :2005/11/05(土) 14:27:40 ID:wbSFebgU0
version0.4.5.3 ショートカットディレクトリの*.giraffeの実行の戻り値が0ならAfterExecuteが実行されないようにした Keyboard.Strokeの動作をもう少し堅牢にした パース時実行と関数の引数のパースの順番をスクリプトの見た目どおりにした リストボックスのスクロールバーの指し示す位置がおかしくなることがあったのを修正 GCのせいで落ちることがごく稀にあったのを修正
あらら、すっかり寂れて・・・。 ソフト板のあふぉのせいで作者もかわいそうに。
0.4.5.4 ITEMIDLISTの表示文字列への変換をキャッシュしたりして高速化した 組み込み関数pipeを実装 SetTextで選択が解除されないようにした コマンドラインを実行してリストボックスに結果を出力するsettings\key\PipeToListbox.giraffeを追加 エディットウインドウの文字列のGeneral.Separator以降を消去するsettings\key\ClearParameters.giraffeを追加
ageage
これって使い方とかどこにかいてあるの?
なんかディレクトリとかをショートカットに割り付けて実行すると メチャメチャ遅いんだよね? なんか思い当たる理由あります? Xp ProでCPUがモバイルペンティアム1.5 メモリ 1.5GBなんでハード的に厳しいって事はないと思うんだけど
>>402 Giraffe+のアイコン表示を有効にしているときに
遅くなるのなら思い当たることがある。
以前、特定のソフトのショートカットをオートコンプリートするとき
しばらく応答しなくなることがあった。
そのときはc-tabなどでアイコン表示をしないようにするか、
アンチウイルスソフトを切るかすると正常に動くようになったから
おそらくアイコンの取得時に横槍を入れられてたんだろうと思う。
あと、UPXかなにかはわからんが実行ファイルに圧縮がかけられている
一部のソフトでも遅くなることがあった気がする。
あと、ファイルが何千もあるディレクトリを部分一致で表示しようとしても遅くなる。
405 :
402 :2005/12/21(水) 02:59:26 ID:6lzVLYrX0
>>403 サンクス
アイコンを無くしたらちょっと早くなった
けどかなりしょぼくなった
なんとかならんもんかw
定期アゲ
話題ないね
まあ、誰も拡張しないからだろうね。使用ユーザがあんまりいないってのもありそうだけど
>>409 候補一覧が表示された状態で↑か↓(または対応するホットキー)を押すと
候補一覧の一番上の候補に変換されて、決定できると思うのですが、
それじゃ駄目?
>>410 適当な文字列で実行出来るように曖昧な文字列ばかり登録していて
それが簡単で便利だと感じていたので↑などを押すのが少々辛いです
よし、ちょっと盛り上げる為に質問を 他のプログラムと連携する機能とかないの? ファイラと課と連携できるの? fenrirみたいなディレクトリ移動とか出来るの? エディタの補完をGiraffeとかで出来る? 呼び出し方法によってモードみたいなのを切り替えれる? AHK程度のことがスクリプトで出来る? 選択中の文字を取り込めるとさらに・・
413 :
409 :2006/01/16(月) 19:08:02 ID:qkoJLLnL0
410>>さんありがとうございます 適当に勘で編集したらできるようになってしまったので一応晒します if(NormalExecute(GetTextOrMarkedItems()) という場所が二つあるんですがそれを if(NormalExecute(Giraffe:GetExecutees()) に書き換えると出来ますが不具合がある予感がひしひしとしますがw ひとまずフォルダは開けて動かせてます
>>414 ありがとうございます
直してくれるなんて思いもしなかったので感動です
# ・明らかにミス入力(存在しないフルパス等)の入力を無効
# ・可能な限り正常に実行出来たものを履歴に残す
この二つは確認方法が分からなかったので判断出来ませんでしたが
他の機能は全て動きました
本当にありがとうございました
>>412 分からんけど
とりあえず呼び出し方法によってモード切り替えるのは出来る事は確認した
wiki作っていい? あんまり情報書けないかもしれないけど
>>412 ファイラとかと連携出来る?
SetText(
(;)
replace(array:collect(param()(cat((")param()("))))$array:delimiter()( )))
SetSel()
OptimizeWidth()
ShowGiraffe()
D:\feature\hitmen.jpg
これをfiler.giraffeとか適当な名前付けてScript2に置く
giraffe.exe filer パス名
と設定すると出来るみたいです。paperplanの例だと
D:\Bin\App\Giraffe\Giraffe.exe filer %#FDC
引数付けるのが空白ではなく;なのこれやって初めてしったくらいだから他の質問分からね
難しいなあこれは。coolだし使いこなしたいんだけど。
期待して待つ。
>>421 乙
Giraffeらしからぬハイテンション(・∀・)イイ
メタ検索してる猛者はおらんか?
「覚えらんない人のためのオンラインソフト備忘録」に触発されたのはバレバレだが
出来たらすげー便利だなーと思ってさ。
あと、wikipediaの検索もうまくいかぬので、誰かご教示下され。
おまけ(2chのスレッドを検索)
###
SetEvent(
(key/***)
(
include((www))
Shell.Execute(
cat(
(
http://gulab.ruitomo.com/~gulab/s.cgi?k= )
www:url-encode(GetText()))))
###
Google Mode ([F5] Settings-hotkey)状態時に [ALT]-[Enter] でメタ検索
※単機能ツール集の SearchWeb をインストールしてDataに登録しておく。
func-g(
(WebSearch)
(
var-arg((search_text)(key_mod))
require((www))
$search_text(www:url-encode($search_text))
BeforeExecute()
AfterExecute(
cond(
==($key_mod()0) (Shell.Execute(cat((
http://www.google.co.jp/search?ie=sjis&q= )$search_text)))
==($key_mod()$MOD_SHIFT) (Shell.Execute(cat((
http://www.google.co.jp/search?lr=lang_ja&ie=sjis&q= )$search_text)))
==($key_mod()$MOD_CONTROL) (@web-search-menu($search_text))
==($key_mod()$MOD_ALT) (MetaSearch()) )))
(MetaSearch)
(
for-each(
(site)
file:read-as-array(cat(Giraffe:Data:Get:Directory((SearchWeb))(\SiteList.txt)))
(
Shell.Execute(
Giraffe:Data:Get:Path((SearchWeb))
cat((/Site=)left($site()find($site()(=))) ( ) GetText()))))))
SearchWeb に丸投げしました。 猛者になれなかった…。
>>426 スクリプトの位置付けからすると丸投げするための言語って書いてあるからベストなんじゃない?
nkf32.dllとか使った方がGiraffe+らしいのかなあと思ってた。
ちょい訂正 × ==($key_mod()$MOD_ALT) (MetaSearch()) ))) ○ ==($key_mod()$MOD_ALT) (MetaSearch($search_text)) ))) × cat((/Site=)left($site()find($site()(=))) ( ) GetText())))))) ○ cat((/Site=)left($site()find($site()(=))) ( ) param0))))))
migemoってやっぱりまだ使えないんですよね?
エディットに ::- といれてさらに続けて - を入力したら アプリケーションエラーでGiraffe+が落ちたんですが再現する人います?
再現したぽい windowsprosp2にて
xp home sp2でも再現
やってみたけど駄目ダターヨ XP pro SP2 ひとつ教えてけれ。 Software memoさんのスクリプトで動かないのがあるんだけど、どうすりゃ直る? 例えばこれ (マークを選択フォルダへ移動) (if(Shell.IsDir(GetText()) (BeforeFileManipulation() AfterFileManipulation( CutFile(array:for-each(Giraffe.GetListMarkedItems() (Shell.GetLongPath(GetNormalFile(param(0)))))) PasteFile(GetText())))()))
>>434 array:for-each を array:collect にする。
/// doc\version.txt
0.4.0.0
array:for-eachをarray:collectに改名
///
ということらしい。
列挙するサイトのスクリプト中でバージョンアップに伴って うまく動かなくなったものを書き直してみました。 もしWikiへの転載を断念していれば参考にしてください。>Wiki管理人
>>435 レスthx
けど、それでもうちだと動かないのよね (´・ω・`)ショボーン
>>437 ひょっとしてキーを押してもエラーも何も起こらないとか?
ごめん、もしそれだったらifの直前の括弧と最後の括弧が余計だわ
(マークを選択フォルダへ移動)
if(Shell.IsDir(GetText())
(
BeforeFileManipulation()
AfterFileManipulation(
CutFile(array:collect(Giraffe.GetListMarkedItems()
(Shell.GetLongPath(GetNormalFile(param(0))))))
PasteFile(GetText())))())
439 :
名無しさん@お腹いっぱい。 :2006/03/12(日) 18:09:31 ID:k46mJWgu0
age
442 :
名無しさん@お腹いっぱい。 :2006/04/08(土) 15:43:33 ID:VC8i2DLa0
Giraffe+ 最高だよね
うん、最高 青風に乗り換えたけどね
ブログに0.5b来てる
正式版公開はWin9x対応後ということだろうか? いや、βだろうがγだろうが使わせてもらいますが。
俺はδ次元が好きだ
エランシアかよ
448 :
446 :2006/04/11(火) 23:33:08 ID:4NTDrISK0
こりゃまたobsoleteが多いな。 バージョン0.5というよりGiraffe2+になってしまいそうだ。
なんか機能追加が普通に凄すぎる
451 :
名無しさん@お腹いっぱい。 :2006/05/30(火) 21:20:55 ID:QkvgrNuW0
定期age
大改造ExecuteってGiraffe+ 0.5.0.36bで動くようにならないかな? これがネックでb版使えないんだけど
>>452 引数や戻り値の型が一致してないのが原因。
じゃないかと思います。
とりあえず報告しときます。
454 :
452 :2006/06/16(金) 20:01:56 ID:vvaQZAzB0
>>453 どうもありがとうございます。Giraffe+ 0.5.0.62bだと問題なく動きました
出来る事が多いのが凄い魅力なんですが、色々難しいんですね。
455 :
名無しさん@お腹いっぱい。 :2006/07/02(日) 00:52:26 ID:/8soJ/Mw0
定期age ageage↑↑
456 :
名無しさん@お腹いっぱい。 :2006/07/21(金) 21:12:05 ID:1Y6oINWN0
新言語どう? 誰も使ってない?
新言語ポウ
age
なんで盛り上がらないんだろうか
ランチャー機能以外どう使うのかさっぱり分からないw
>>460 そのものズバリって感じだw
俺はmigemo入れてお気に入りの表示するのが最近のマイブーム
migemo入れるのも二、三日前にフルパスで指定する事に気づいてやっと出来た
http://softmemo.bblog.jp/category/giraffe/ ここのスクリプト新しい奴でも使えるようにしたのでとりあえずはっとく
script2\settings\keyにBackspaceText.giraffeとでもして使うと便利
(ファイルは1つ上のディレクトリ、Dataの時は1文字削除、空の時はディアクティブ)
if(is-empty(GetText())
(HideGiraffe()))
unless(path:is-data(GetText())
#file
(if(==s(Right(left(GetText()GetSelStart())1)(\))
(SetText(Shell.GetDir(Shell.GetDir(GetText()))(\))AfterTextChange)
(SetText(Shell.GetDir(GetText())(\))AfterTextChange)))
#data
(Giraffe.EditBackSpace(1)))
単機能ツールSearchWeb使用。google-modeでc-enter。 未実装なのが寂しくて。 var((menu) a(Window.GetPos(GetGiraffeHandle()(right)) Window.GetPos(GetGiraffeHandle()(top)))) var((target) Giraffe:Data:Get:Target((SearchWeb))) func( (get-menu) ( cat( (Shell.Execute) OPEN_PAREN() ($target) OPEN_PAREN() CLOSE_PAREN() OPEN_PAREN() param(0) CLOSE_PAREN() CLOSE_PAREN))) for-each( (site) file:read-as-array(cat(Giraffe:Data:Get:Directory((SearchWeb))(\SiteList.txt))) ( $site(left($site() find($site() (=)))) if(is-empty($site) (break((for-each)))) push($menu() $site) push($menu() get-menu(cat((/Site=)$site()( )param(0)))))) call-a((ShowMenu) $menu)
しかし、このスレ伸びないね。
新スクリプトに少しさわってみた。チラシの裏っぽい感想でも。 ・括弧の省略、演算子の並び順など変わってコードが見やすくなった ・型を厳密にチェックされる ・起動が重くなった ・バルーンが出せる、他把握しきれない機能強化 ・とにかくスロットの仕組みを理解しないと for((i)0() (<($i() 10)) (++($i)) ( ... ) ) ↓ for((i)0 [$i.< 10] [$i.++] [ ... ] ) xyzzy使わねーと絶対無理ってほどでもなくなった。
466 :
465 :2006/08/19(土) 18:02:02 ID:s3wsJJNc0
チラシっぷりをエスカレートさせて良いだろうか? イベントのオーバーライドは Giraffe.Event.EditChange@ `*[ ... ] こんな感じでいける。が、InsertEventなどの代用はどうするのかわからん。 タイマーイベントは Giraffe.Event.Timer.name-100: `*[ ... ] で設定できる。が、その後に Giraffe.Event.Timer.name-200@ `*[ ... ] としてもインターバルだけは変化しない。なので、場合によっては一度、 Giraffe.Event.Timer.undef(:name) か、 Giraffe.Event.Timer.undef_safe(:name) しないといけないようだ。 関数はスロットでオーバーライドできないみたい。 これもdel-func-gとかしないとだめだろうか。
467 :
465 :2006/08/19(土) 20:51:07 ID:s3wsJJNc0
こんどは失敗談なのだが m: `n[n@ n.++] //m: `n[b: n.copy b.++] とすればaは変化しない a: 0.copy m(a).out //m(a)は1 \/.out a.flush //引数aも1になってしまった 使わずにすむならn@などを不用意に用いてはいけない。 n: Giraffe.Color.Window.Back //.copy が必要だった Giraffe.Color.Window.Back.= 0x000000 Giraffe.Color.Window.Back.= n RedrawGiraffe //これでは元の色に戻らない .copyすると変数っぽく使えるので.copyしなければ定数だろうと 勝手に思い込んでいた。 実際は定数ではなく引数と連動して変化することを判ってなかった。
全然分からんけど将来参考になるかも知れんので続けてくれ。
Giraffe+ 0.5.0.79b 前リリースからの変化 言語部分(gs) ・GCがcyclic referenceでメモリリークしてたのを修正 言語部分以外(Giraffe+) ・Keyboard.Strokeを、すでに押されてるmodキーは押さないようにした ・ショートカットディレクトリにあるディレクトリにドットが含まれる場合にそれ以下を拡張子として扱っていたのを修正 ・ショートカットディレクトリにある隠しファイルがリストアップされるようになっていたのを修正 ・General.CheckDataLinkToが動作してなかったのを修正 > 以前の更新から二ヶ月が過ぎていることで分かるように、最近まったくGiraffe+に触れておりません。 > 他に忙しいことがあるとか、そういうことはまったく無く、Giraffe+どころか、 > ソフトウェアやプログラミングそのものに対する興味が薄れているのが原因です。 (つд`)
>>469 会社でも家でも使いまくってるソフトだから、なんか寂しいな
>>471 倉と麒麟が両方だめになったのか(つд`)
SwitchWindowでWindowを閉じる機能(c-enter)を追加する(ver 0.5.0.79) settings-hotkey-SwitchWindowを[Duplicate This Script]してから以下を追記 mode:set-event( 'key/c-enter' [ indices: Giraffe.ListBox.GetMarkedIndices indices_size: indices.size indices.size.?( [ 0...indices_size.each& `i[ hWnd: Giraffe.ListBox.GetItemData(indices.at(i)) CloseWindow(User32.GetLastActivePopup(hWnd)) ] indices.size.= 0 ][ nCurSel: Giraffe.ListBox.GetCurSel nCurSel.!= -1.? [ hWnd: Giraffe.ListBox.GetItemData(nCurSel) CloseWindow(User32.GetLastActivePopup(hWnd)) ] ] ) Giraffe.MainWnd.HideWindow EvalEvent('Deactivate') //全てのWindowを閉じると何故かDeactivateが実行されないため ] )
473 :
472 :2006/08/28(月) 22:48:05 ID:PWZI4rEL0
indices.size.= 0 は余計でした。消してください。 というだけなのもなんなので、Deactivateの2重実行を避けるため、 全ウィンドウを閉じたときのみ呼ぶように修正。 mode:set-event( 'key/c-enter' [ indices: Giraffe.ListBox.GetMarkedIndices indices_size: indices.size wnd_count: Giraffe.ListBox.GetCount indices.size.?( [ 0...indices_size.each& `n[ hWnd: Giraffe.ListBox.GetItemData(indices.at(n)) CloseWindow(User32.GetLastActivePopup(hWnd)) ] wnd_count.-= indices_size ][ nCurSel: Giraffe.ListBox.GetCurSel nCurSel.!= -1.? [ hWnd: Giraffe.ListBox.GetItemData(nCurSel) CloseWindow(User32.GetLastActivePopup(hWnd)) wnd_count.-- ] ] ) Giraffe.MainWnd.HideWindow //全てのWindowを閉じたとき何故かDeactivateが実行されないための対策 wnd_count.! [EvalEvent('Deactivate')] ] )
Giraffe+ 0.5.0.85b 前リリースからの変化 ・言語部分(gs) スロット操作を簡略化するObject.set_or_defとObject.get_or_defを定義 ・言語部分以外(Giraffe+) find.giraffe(Ctrl+Fで実行されるやつ)で検索関数を自由に定義できるようにした(Migemoを使えるようにした)
siteinit.giraffe に追加するなり script2/setup/... に置くなりと 'ウインドウ枠をグラデーションで' [ //WinUser/GRADIENT_FILL GRADIENT_FILL_RECT_H: 0 GRADIENT_FILL_RECT_V: 1 GRADIENT_FILL_TRAIANGLE: 2 ].eval(global) Giraffe.Event.PaintFrame@ `*[ hWnd: arg.at(0) //color: {red green blue alpha} light_rgba: {0xdd(Short) 0xee(Short) 0xff(Short) 0xff(Short)} twilight_rgba: {0x99(Short) 0xbb(Short) 0xee(Short) 0xff(Short)} dark_rgba: {0x66(Short) 0x88(Short) 0xcc(Short) 0xff(Short)} wnd_width: Window.GetPos(hWnd 'width') wnd_height: Window.GetPos(hWnd 'height') frame_width: Giraffe.Config.Window.FrameWidth hdc: User32.GetWindowDC(hWnd) Msimg32: Dll.new('Msimg32') VERTEX: Struct.new(:Int :x :Int :y :Ushort :red :Ushort :green :Ushort :blue :Ushort :alpha) vertices: Struct.new(:VERTEX :upperLeft :VERTEX :lowerRight) mesh: Struct.new(:Int :upperLeft :Int :lowerRight) つづく
set_fill_rect: `vertices x y width height colorLight colorDark[ vertices.upperLeft.x.= x vertices.upperLeft.y.= y vertices.upperLeft.red.= (colorLight.at(0).<< 8) vertices.upperLeft.green.= (colorLight.at(1).<< 8) vertices.upperLeft.blue.= (colorLight.at(2).<< 8) vertices.upperLeft.alpha.= (colorLight.at(3).<< 8) vertices.lowerRight.x.= width vertices.lowerRight.y.= height vertices.lowerRight.red.= (colorDark.at(0).<< 8) vertices.lowerRight.green.= (colorDark.at(1).<< 8) vertices.lowerRight.blue.= (colorDark.at(2).<< 8) vertices.lowerRight.alpha.= (colorDark.at(3).<< 8) ] mesh.upperLeft.= 0 mesh.lowerRight.= 1 set_fill_rect(vertices 0 0 frame_width wnd_height light_rgba twilight_rgba) //left frame Msimg32.GradientFill(hdc vertices 2 mesh 1 GRADIENT_FILL_RECT_V) set_fill_rect(vertices 0 0 wnd_width frame_width light_rgba twilight_rgba) //top frame Msimg32.GradientFill(hdc vertices 2 mesh 1 GRADIENT_FILL_RECT_H) set_fill_rect(vertices wnd_width.- frame_width 0 wnd_width wnd_height twilight_rgba dark_rgba) //right frame Msimg32.GradientFill(hdc vertices 2 mesh 1 GRADIENT_FILL_RECT_V) set_fill_rect(vertices 0 wnd_height.- frame_width wnd_width wnd_height twilight_rgba dark_rgba) //bottom frame Msimg32.GradientFill(hdc vertices 2 mesh 1 GRADIENT_FILL_RECT_H) User32.ReleaseDC(hWnd hdc) ] 以上
478 :
名無しさん@お腹いっぱい。 :2006/09/10(日) 06:54:55 ID:nCuS5l5A0
http://d.hatena.ne.jp/ijuhs/ Giraffe+ 0.5.0.89b
・前リリースからの変化
簡易な文法の文字列からAND検索やOR検索の正規表現を返すMigemo.query_groupingを実装
> たったひとつメソッドを追加しただけですが、いいものを作ったと思えたので更新しました。
----
たまにはあげ。
AHKとかが人気があるならGiraffe+もアリなんじゃないかと思うけど。人は増えないね。 目立たないのは、やっぱりドキュメントとかなのかな。AHKもGiraffeもそんなに 使ったことないけど少し不思議。
ん?何故 ahk と比べるの?守備範囲そんなにかぶってないでしょ
そう?スクリプトで何かをするときに、どこから実行するかが違うだけじゃない?まあ、多少のスクリプトの制限に違いはあると思うけど。
AHKはキー設定ソフトで、Giraffe+は登録型ランチャー兼ファイラ。
スクリプトの実行は、違う目的のための同じ手段でしかない。
>>482 >スクリプトで何かをするとき
その「何か」が違うわけだ。
おれはmayu&Giraffe+でAHKみたいなことやってるけど。
まあ、確かにソフトの目的とか名目は違うけどね。 実際できることを考えればそんなに違わないような。
485 :
481 :2006/09/18(月) 05:18:38 ID:4qHZtPdd0
繭の名前も挙がってるけど、AHK Giraffe+ 繭それぞれで出来ること出来ないこと、得意不得意がある。 Giraffe+ や 繭には GUIアプリは作れないし、AHK で Giraffe+ 的 (ランチャ) なことやろうとすると手間かかりすぎるし 繭に出来て AHK に出来ないこともある。適材適所だと思うけどね。
>>485 多分、使用感とか主に対象としたユーザー層が似てるって意味だと思う。
ランチャも星の数ほどあって、そのスクリプトやマクロもいろいろあるし。 だから、画一的にまとめたくなる気持ちも分かるけどね。 でも、数の多さは使いこんでみて違いを実感できる人達のためにあるのだと思う。 使わない人にはUNIXなシェルスクリプトの同類にしか見えないかもしれない。
488 :
480 :2006/09/19(火) 18:57:07 ID:bU7ibnaT0
>>485 mayuはスクリプトじゃないから全然機能が違うだろw
どんな項目で分類してるのか知らんが
mayuは余程頑張らないと変わったことはできないし限界がある。
GUIもGiraffeでGUIが作れないって事もないんじゃない?
>>487 同類にしているわけじゃなくて、AHKを使うなら
Giraffeも使う人が増えてもおかしくないのに
増えないから不思議と言う意味ね。
使える人と使う人の数の剥離って話だな、たぶん。 キー入れ替えソフトとコマンドランチャとの需要の差が一番大きいだろうけど、 AHKはホットキーランチャ兼自動化スクリプトソフトとしても知られてる割に、 Giraffe+はスクリプトどころか、ファイラとしての素晴らしさや、 ホットキーに至ってはその存在すら知られることなく、 単なるコマンドランチャとして捉えられてる感がある。 他コマンドランチャとの違いはリストにアイコンが表示できることぐらいと思われてそうだ。 実際使ってる人も大抵は、なんか凄いけどよく分からないって感じなんじゃなかな。 あと、同じような難易度だと思うが、印象としての敷居の高さにはかなり差があるように見える。 AHKは初心者でもキー入れ替えぐらいなら簡単にできそうだけど、 Giraffe+はWinAPIとか知らないと何も出来なそうっていうか。 Giraffe+のポテンシャルというか、その機能や性能の凄さを考えると、 今の知名度やシェアは異常に低いと俺は思ってる。 画像満載の初心者向け宣伝風ドキュメントがサイトにあるだけで解決しそうな気もするが。
まあ、ドキュメントどころか ここが便利とか言う話も、 このスレですら余り出てこないね。
492 :
481 :2006/09/20(水) 00:03:24 ID:43heG4xT0
最初に反論した手前恥を忍んで書いてみる。 > AHKを使うならGiraffeも使う人が増えてもおかしくないのに まずここの繋がりが分からない。Giraffe に搭載されてるスクリプトはどのくらいのもんなんだ? AHK のスクリプトは割りとよく自分でも書いてるんだけど、Giraffe は他人様の成果をコピペしてるに過ぎないので分かってないんだ。 なので俺が間抜けな発言をしてるかもしれない。 # 繭に関しては名前が挙がってたのでついでに書いてみただけで違うものなのは分かってるつもり。
>>492 上の方でも出てるけど、難しいことがやりたいなら
dllとか読み込んでやってくれよ見たいな感じ。
実際は作る人が面倒でなければかなり色々できそう。
作者のブログを見ると
今はスクリプトの仕様が気に食わなくて変えてるようなので
良く知らないけど。
AHKが国内で流行っていった過程を知りたい気もする。
>>494 俺の記憶ではhoekey関連(海外フリーソフトスレだった気がする)のどこかでautohotkeyが紹介されていた。
メモリー使用量でhoekeyより劣るとかそんな理由でかなりケチつけられてた。
8月に流行らせるページがオープン
それで9月下旬から年末ぐらいまでフリーソフト系のブログで結構話題になっていたのが大きかったんじゃないかな。
あの時ブログ結構流行っていたし。
ところでgiraffeの関数ってほとんど説明みたいのが無いんですが、ある程度なにか他の言語と一緒だったりするんですか?
>>495 ブログが流行りだした頃となると急速に広まったっぽいなあ。う〜む。
>giraffeの関数
似ているものはありそうな気もするんだがわからない。
ver.0454 までの関数リファレンスはハンガリー記法で引数と戻り値の型が書いてある。
それで、引数、戻り値、型を理解した上で関数名で類推していた。
初めから用意されてるスクリプトがある意味一番参考になる。
新スクリプトだとコードの量自体がまだ少ないのが痛い。
過疎ってるからこの関数って何ですかスレにしても良いような気がするのだがどうだろう。
AutoHotkeyを流行らせるページの存在が大きいと思う。
日本語訳されたドキュメントがそろっているし、
BBSやアップローダとかも一応機能している。
ぬる℃さんの個人プレーによって
広がっているんじゃないかと推測
>>495 古いGiraffeの基本的な部分はLuaとかいうのらしいから、
何かありそうな気もするね。
>>496 やはり類推するのが一番ですか。どうもありがと。
お二人のお陰でやっとこさ
ファイルはポチエスに渡す、エクスプローラーをファイラに変える、ボックスが空の状態で実行するとgiraffeのフォルダを開く
機能を大改造executeに追加出来ました。いやなんか本当に嬉しいです。
本当にありがとうございました。
giraffeでCPU使用率監視して、何%以下で何分経過したらwindowsをシャットダウンみたいな事できるん?
500 :
名無しさん@お腹いっぱい。 :2006/09/28(木) 02:23:39 ID:LemvJOfj0
http://d.hatena.ne.jp/ijuhs/20060927/1159377004 Giraffe+ 0.5.0.96
前リリースからの変化
・Nil.copyがconstオブジェクトを返していたのを修正(エディットに何も入力せずにEnterしたらエラーになってた)
・def-varやvarが変数宣言時に値を無駄に二回コピーしてたのを修正
・Yet Another Alt+Tab Replacementのウインドウ一覧生成がいい加減だったのを修正
・オートコンプリートの関数に渡す部分一致を示す引数を2にすると登録アイテムのサブフォルダ内もリストアップするようにした
----
β取れた!!ので、あげ。
あぼーん
>>499 Data/*.giraffe 若しくは settings/key/*.giraffe
GetEvent('timer/processor_time:monitoring').empty.! [
Giraffe.Event.Timer.processor_time:monitoring@ `*[]
Balloon.show('中止' 'processor_time:monitoring')
true.return
]
[
processor_time:maxPercents:@ 10 // CPU使用率 (%)
processor_time:maxTime:@ 3 // 経過時間 (分)
Pdh:* Dll.new('pdh')
processor_time:query:@ 0(Uint).copy
processor_time:counter:@ 0(Uint).copy
processor_time:tickCount:@ 0.copy
].eval(global)
processor_time:tickCount.= (Kernel32.GetTickCount)
Pdh.PdhOpenQuery(0 0 addr-uint(processor_time:query))
Pdh.PdhAddCounter(processor_time:query '\\Processor(_Total)\\% Processor Time' 0 addr-uint(processor_time:counter))
Pdh.PdhCollectQueryData(processor_time:query)
Balloon.show('開始' 'processor_time:monitoring')
Giraffe.Event.Timer.processor_time:monitoring-5000:@ `*[ PDH_FMT_DOUBLE: 0x200 fmtValue: Struct.new( :Int :status :Int :long :Double :double :Int64 :large :Uint :string :Uint :wildString ) //PDH_FMT_COUNTERVALUE Pdh.PdhCollectQueryData(processor_time:query) Pdh.PdhGetFormattedCounterValue(processor_time:counter PDH_FMT_DOUBLE 0 fmtValue) fmtValue.double.> processor_time:maxPercents.?( [processor_time:tickCount.= (Kernel32.GetTickCount)] [ Kernel32.GetTickCount.- processor_time:tickCount.> (processor_time:maxTime.* 60000).? [ Giraffe.Event.Timer.processor_time:monitoring@ `*[] Pdh.PdhCloseQuery(processor_time:query) Balloon.show('終了' 'processor_time:monitoring') NormalExecute('System/Shutdown') ] ] ) ] true
おお、すごい これ、どやって使うの?
例えば Giraffe\Data\hogehoge.giraffe みたいなファイル作ってをコピペ processor_time:maxPercents:@ 10 // CPU使用率 (%) processor_time:maxTime:@ 3 // 経過時間 (分) 10 と 3 はお好みの値 エディットで hogehoge [Enter] → "processor_time:maxPercents"%以下で"processor_time:maxTime"分経過したらwindowsをシャットダウン
506 :
名無しさん@お腹いっぱい。 :2006/09/30(土) 19:08:54 ID:qpji/iPX0
giraffeって候補リストが表示されてるときにフォーカスはずしたら リストが消えるように出来る?
>>506 Giraffe.Event.Deactivate@ `[
require('winuser/sw')
Giraffe.ListBox.GetParent.deref.ShowWindow(SW_HIDE)
].& (Giraffe.Event.Deactivate$)
NormalExecute('System/Shutdown') の部分を NormalExecute('System/Poweroff') だな
ttp://d.hatena.ne.jp/ijuhs/20061004/1159951416 Giraffe+ 0.5.1.127
前リリースからの変化
* DWORD等のWindowsの基本型をWindows_DWORD等と定義した
* gs::class_が@sizeofの定義を間違ってたのを修正
* ShowMenu2で表示されるメニューをマウスでクリックするとフォーカスが移動していたのを修正
* Object.constizeとconstize!とunconstizeとunconstize!を定義
* Struct.newが実用的でなかったのでStruct.new2を定義
* Pointer.newをC_array.newとかに合わせて定義
* C言語のunionを扱うC_unionを定義
* view-and-sort(Alt+Tとかのソート)で、連続で同じソートをすると逆順になるようにした
* switchの新言語版Object.switchとその比較方法定義可能版Object.switch_withを定義
* selfと結びついたメソッドを返すObject.delegateを定義
* 引数と結びついたメソッドを返すMethod.bindを定義
* テキストのドラッグとドロップの両方がちゃんと出来なくなってたのを修正
* ゴミ箱からのドラッグをできないようにしておいた
* Giraffe+からのドラッグをGiraffe:GetExecuteeを使うようにして、リストボックス優先等の設定が有効なようにした
* キャレットの位置を取得するGetCaretPOINT.giraffeをStruct.new2のサンプルとしてScriptフォルダに追加した
* ステータスウインドウを形だけ実装した
* view-file-in-list実行後、リストボックスが履歴モード(非オートコンプリートモード)になってなかったのを修正
giraffeでスタートアップの制御ってできない?
>>511 無理とは言わないが専門外かも。
GUIとかは苦手だから多分かなり面倒になると思うよ。
スタートアップってスタートメニューじゃなく、Giraffe起動時にあれこれアプリを起動するってことじゃない?
siteinit.giraffe に '[full path]'.shell_execute とか、 '[Data]'.shell_execute とか、 '[full path]'.shell_execute('[parameter]') なんかでGiraffe起動時に設定できるが違うのだろうか。
'[startup1]'.shell_execute と一行書いた startup1.giraffe を作る。 '[startup2]'.shell_execute と一行書いた startup2.giraffe を作る。 以下必要なソフトの数だけつくる。 そして、それらのファイルを Script2\settings\setup に置く。 設定ダイアログで settings → setup を見ると!!! …私の元にあほの神様が光臨しました
単純に時間差で立ち上げたいなと思っただけでして。
519 :
名無しさん@お腹いっぱい。 :2006/10/11(水) 22:58:21 ID:8iejQvHB0
version 0.5.2.143 last modified 2006/10/11 ばーじょんうpキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
>>518 Script2\siteinit.giraffeに。
NormalExecute('NALT') //NALTがアイテム登録されているとする
sleep(3000) // 3秒ほと間を取る
NormalExecute('nPOP')
sleep(3000)
NormalExecute('caldix')
設定を決めうちで良いならこんな感じで書ける。
時間差はsleepの値の書き換えで。
スクリーンセーバーのオンオフってできる?
>>521 //
http://content.epson.de/en/robots/index.1556.htmを元にした 。動作確認はしてない。
SPI_GETSCREENSAVEACTIVE$: 16
SPI_SETSCREENSAVEACTIVE$: 17
SPIF_SENDWININICHANGE$: 2
EnableScreenSaver: `enable[
User32.SystemParametersInfo(SPI_SETSCREENSAVEACTIVE enable 0 SPIF_SENDWININICHANGE)
]
IsScreenSaverActive: `[
pvParam:: 0
User32.SystemParametersInfo(SPI_GETSCREENSAVEACTIVE 0 pvParam.ref 0)
pvParam
]
ToggleScreenSaver: `[
EnableScreenSaver(IsScreenSaverActive.not)
]
ToggleScreenSaver
'Screensaver has been '.+ (IsScreenSaverActive.?('enabled.' 'disabled.')).flush
これをどうすれば?
Dataに置くのがいいんじゃない?
オフの時はオンにするだけとか、オンの時はオフにするだけって改造しようと思ったけどわかんなかったOnz
>>526 最後から二行目のToggleScreenSaverを置き換える。
EnableScreenSaver(true)でオン
EnableScreenSaver(false)でオフ
ありがとう これでかなり快適になりました。
529 :
ひみつの文字列さん :2024/11/28(木) 00:04:41 ID:MarkedRes
日本国またはアメリカ合衆国、もしくはその両方の著作権法に触れる内容であると疑われることから表示できません。
>>529 それで正しいです。
サイトのほうが間違ってました。ごめんなさい。
ウェブページのアップロードに失敗してたみたいです。
532 :
名無しさん@お腹いっぱい。 :2006/11/04(土) 14:21:45 ID:XLx2pib00
age
ログアウトしてからウィルスチェックして電源切るって事できるのかな?
giraffe+に付箋としての機能ってscriptでつけることできますか?
>>534 //バルーンなので編集すらできない付箋だが気にしない
//拡張子をhusen.giraffeなどとしてDataディレクトリに放り込む
//表示したい位置にマウスカーソルを移動してエディットでhusen;text
//textはエスケープシーケンスを含む文字列
//常に最前面表示にするにはhusen;text;1
text:: '"'.+ (Giraffe.Edit.Text.ComposeExecutee.Parameter).+ '"'.eval(local)
text.empty.? [text.= NormalGetInput('Input a text.' '付箋')]
title: '付箋'
style:: Balloon.SHOW_CLOSE_BUTTON.| (Balloon.SHOW_INNER_SHADOW)
Giraffe.Edit.Text.ComposeExecutee.Directory.to_Int.? [style.|= (Balloon.SHOW_TOPMOST)]
pt: Windows_POINT.clone
User32.GetCursorPos(pt.ref)
himc: Imm32.ImmGetContext(GetGiraffeHandle)
Imm32.ImmGetOpenStatus(himc).? [Imm32.ImmSetOpenStatus(himc 0)]
Imm32.ImmReleaseContext(GetGiraffeHandle himc)
Balloon.show(text title IDI_INFORMATION pt.x pt.y 0 style)
true
>>135 予想していたのと違いますが、これはこれでうれしいです。
ありがとうございます。
定型文入力とか、クリップボード拡張みたいな使い方はできないのかな?
>>533 ログアウトするとGiraffe+が終了してまうのでいろいろ条件がいる
1.サービス"Task Scheduler" が開始されていること
2.管理者権限が必要
3.次のバッチファイルを用意する
1行目 ウイルスチェッカーにスキャンを開始させるためのコマンド
2行目 shutdown -s
ウィルスチェッカーのコマンドラインは調べてくれ。
ログオフ状態でスキャンできることはもちろんログも取れないと。
539 :
538 :2006/11/10(金) 01:01:33 ID:iJ//7sew0
Giraffe.Event.Timer.defined?(:sleep_before_logoff).? [ Giraffe.Event.Timer.undef(:sleep_before_logoff) 'cmd'.shell_execute('/k at') Balloon.show("Input the following commands in a prompt.\n\n>at [id] /delete" 'The logoff was canceled.') true.return ] require('winuser/sw') waitingTime: 2 //指定時刻までの待ち時間(分) batchFilePath: 'C:\...\Batch_File.cmd' //バッチファイルのフルパス min:: Time.Format('' '%M').to_Int.+ waitingTime hour:: Time.Format('' '%H').to_Int min.>= 60.? [hour.++.%= 24 min.%= 60] time: hour.to_String.+ ':'.+ (min.to_String) parameter: time.+ ' /interactive "'.+ batchFilePath.+ '"' 'at'.shell_execute_wait(parameter '' '' SW_SHOWMINNOACTIVE) dir: Shell.GetSpecialFolderPath(CSIDL_DESKTOP) out: pipe('at' dir '' SW_SHOWMINNOACTIVE) Balloon.show(out 'command AT.EXE') Giraffe.Event.Timer.sleep_before_logoff-5000: `*[ NormalExecute('System/Logoff') ] false
忘れてた。 スクリプトはDataディレクトリに置いて使うことを想定してる。
541 :
名無しさん@お腹いっぱい。 :2006/11/11(土) 11:07:01 ID:zB+QBfLz0
giraffe+って案外メモリ食わない? それとも設定が悪いのかなぁ?
シェル関数使うアプリは食う。 ってか、シェル関数が食う。
543 :
名無しさん@お腹いっぱい。 :2006/11/13(月) 23:52:32 ID:q5L23hq10
アプリケーションのアイコンにファイルをD&Dして渡せるようにできる?
ShowMenu2を呼んで何も選択せずにEnterだとアプリケーションエラー発生。
再現します?
ShowMenu2(50 50 'そのままEnter' [])
>>543 ?
リストボックスからD&Dは元からできるから違う意味だと思うんだけど。
545 :
1/5 :2006/11/16(木) 00:31:50 ID:4CJ+p0f90
>>537 何もかもスクリプトでやろうと思わなくても良いと思う。
ソフトを起動するためのランチャでもあるんだから
専用のソフトを探して使うのも立派な選択肢。
と言いつつ、それっぽいものを。
siteinit.giraffeか...\setup\*.giraffeで使う。
ホットキーの変更はGiraffe.Event.Hotkey.w-vの行のw-vを書き換える。
定型文はテキストファイルに書いて用意しておく。
global.Clipboard: Object.clone
Clipboard.filePath: 'c:\Marme\tmp\clipboard_fixed_text_list.txt' //定型文を保存した場所 フルパス
Clipboard.textSizeDisplayed: 20 //これ以上の文字数はメニューでは省略されて表示する
Clipboard.maxCount: 15 //クリップボードの履歴の保持数
Clipboard.text_list: {}
Clipboard.fixed_text_list: {}
Clipboard.hwnd: 0
Clipboard.nextWnd: 0
Clipboard.delete_clipboard_viewer: `[
User32.ChangeClipboardChain(self.hwnd self.nextWnd)
]
Clipboard.read_file: `filePath[
filePath.path_exists.? [self.fixed_text_list@ file:read-as-array(filePath).to_Array]
]
Clipboard.read_file(Clipboard.filePath)
546 :
2/5 :2006/11/16(木) 00:32:37 ID:4CJ+p0f90
Clipboard.get_text: `[ CF_TEXT: 1 User32.IsClipboardFormatAvailable(CF_TEXT).? [ text: get-cb self.text_list.empty.! [ self.text_list.[0].== text.? [self.text_list.pop_front] ] self.text_list.push_front(text) self.text_list.size.> (self.maxCount).? [self.text_list.pop_back] ] ] Giraffe.Event.Hotkey.w-v: `*[ pt: Windows_POINT.clone User32.GetCursorPos(pt.ref) menu: {pt.x pt.y} paste_text: `index isHistory[ isHistory.?( [ str: Clipboard.text_list.[index] Clipboard.text_list.erase(index) set-cb(str) ][set-cb(Clipboard.fixed_text_list.[index])] ) EmulatePasteKey ]
547 :
3/5 :2006/11/16(木) 00:33:18 ID:4CJ+p0f90
create_menu: `text_list isHistory[ index:: 0 text_list.each& `text.empty.not[ text.size.> (Clipboard.textSizeDisplayed).? [text@ text.slice(0 Clipboard.textSizeDisplayed).+ '...'] menu.push_back(text) menu.push_back( 'paste_text('.+ (index.to_String).+ ' '.+ (isHistory.to_String).+ ')'.to_Block ) index.++ ].|`*[] ] create_menu(Clipboard.text_list true) menu.push_back('') menu.push_back('+定型文') create_menu(Clipboard.fixed_text_list false) menu.push_back('') menu.push_back('再読込') menu.push_back([Clipboard.read_file(Clipboard.filePath)]) menu.push_back('-') call_with_array_as_argument(:ShowMenu2 menu) ] thread( [ require('winuser/color' 'winuser/ws' 'winuser/ws_ex' 'winuser/sw') msg: Windows_MSG.clone className: 'ClipbordViewerHiddenWnd' wndName: '' instance: Kernel32.GetModuleHandle(0)
548 :
4/5 :2006/11/16(木) 00:33:57 ID:4CJ+p0f90
wnd_proc: `hwnd msg wp lp[ msg.switch( WM_CREATE [Clipboard.nextWnd@ User32.SetClipboardViewer(hwnd)] WM_DRAWCLIPBOARD [ Clipboard.nextWnd.? [User32.SendMessage(Clipboard.nextWnd msg wp lp)] Clipboard.get_text ] WM_CHANGECBCHAIN [ Clipboard.nextWnd.== wp.?( [Clipboard.nextWnd@ lp] [User32.SendMessage(Clipboard.nextWnd msg wp lp)] ) ] WM_CLOSE [User32.ChangeClipboardChain(hwnd Clipboard.nextWnd)] WM_DESTROY [User32.PostQuitMessage(0)] User32.DefWindowProc(hwnd msg wp lp) ) ] wc: Struct.new2( Uint :style Uint :wndProc Int :clsExtra Int :wndExtra Uint :instance Uint :icon Uint :cursor Uint :background Windows_LPCTSTR :menuName Windows_LPCTSTR :className)//WNDCLASS wc.wndProc.= make_function_pointer(:wnd_proc 4) wc.instance.= instance wc.className.= (className.to_C_argument) wc.style.= (wc.clsExtra).= (wc.wndExtra).= (wc.icon).= (wc.cursor).= (wc.background).= 0 User32.RegisterClass(wc)
549 :
5/5 :2006/11/16(木) 00:34:34 ID:4CJ+p0f90
Clipboard.hwnd@ User32.CreateWindowEx( WS_EX_TOOLWINDOW className wndName WS_DISABLED 0 0 40 20 0 0 instance 0) ReloadSettings$.&= `*[Clipboard.delete_clipboard_viewer] Giraffe.Event.Unload$.&= `*[Clipboard.delete_clipboard_viewer] User32.GetMessage(msg.ref 0 0 0) [ User32.TranslateMessage(msg.ref) User32.DispatchMessage(msg.ref) ].while% [User32.GetMessage(msg.ref 0 0 0)] ] )
すみません。
>>545-549 だけど
>>544 のShowMenu2関係以外にReloadSettingsの度に
クリップボードの履歴が残らなかったり残ったりと不安定になります。
それ以外にもしばらくしてエラーが出ることがあったりと問題があります。
特にエラーは原因がまだ掴みきれてないので使用しないほうが良いです。
551 :
名無しさん@お腹いっぱい。 :2006/12/03(日) 23:42:05 ID:crwp6nr30
定期あげ version 0.5.7.196
ttp://d.hatena.ne.jp/ijuhs/20061216 Giraffe+ 0.5.9.210
前リリースからの変化
* Container.searchが破壊的なものとして宣言されていたのを修正
* Reinitialize時、メインウインドウの親ウインドウのスタイルが元に戻ってなかったのを修正
* Reinitialize時、たまにGetIconイベントから$Giraffe:Pathが見つからないというエラーが発生していたのを修正
* ShowMenu2のメニューアイテムにTabが含まれるとき、Tab以降を右寄せで表示するようにした
* ShowMenu2でメニューが画面に収まらない場合、画面大にしてスクロールバーが表示されるようにした
* ShowMenu2を実行してメニューが表示されるまでの間にキーボード操作が発生しても問題ないようにした
* ShowMenu2でサブメニューにメニューアイテムが無い場合、そのサブメニューを表示しないようにした
* event-menu.giraffeがあまりにも低速だったのでメニュー生成部分を書き直した
報告乙 イベントメニューが前より軽くなったのはありがたい
Giraffe+ 0.5.10.228 ファイル壊れてる?
>554 >information 2006/12/30: アーカイブのアップロードに失敗していたため、再アップロードしました。
556 :
名無しさん@お腹いっぱい。 :2007/01/16(火) 23:11:12 ID:Y1uMAzbg0
定期上げ
パスの中間一致とかって出来ますか?
C:\Giraffe\readme.txt に、"gi read"でアクセスってのなら出来ない。
C:\Giraffe\readme.txt っていうので、 c:\*raf*とかっていうのならできる。
履歴をリスト表示できませんか? CraftlaunchやBluewindのようなな感じで、 履歴一覧、パスの補完候補一覧、コマンド一覧が一つのリストに表示出来たらと思うのですが。
入力履歴とクリップボードの履歴を インクリメンタルに検索できたら実質中間一致見たいになるかもね。
Giraffeをどこに配置してますか?自分は右下のかどっこ。
画面の中心からやや下
左上 タスクバー(上)の下
左下 ぴったり角につけるんじゃなくて少し間あけてる タスクバーは右に縦配置
>>558 C:\Giraffe\readme.txt に
"gi"で
C:\Giraffe\hoge
C:\Giraffe\hage
C:\Giraffe\fuga
C:\gi\hoge
C:\gira\hoge
C:\hoge\giraffe
とかの候補を表示する感じとかも無理?
>>566 異なるディレクトリをまたいで部分一致したパスをリストアップするということかな。
それだと一般的なオートコンプリートというより検索になるような気が。
"c:;gi"と入力してc-fとすればそれらしい結果が得られると思う。
これだとその都度Cドライブに検索をかけるので遅いけど。
そういうのはfenrirみたいな検索型ランチャの得意分野だったりする。
>>566 まず、入力窓の状態がパスの場合、そのディレクトリにあるファイルのみが補完対象になる。
例:
入力窓が
C:\Giraffe\gi
の場合、
C:\Giraffe\にあるgiを含むものが補完対象になる。
んで、入力窓の状態がパスじゃない場合、登録アイテムが対象になる。
例:
入力窓が
gi
の場合、
登録アイテム名にgiを含むものが補完対象になる。
これが基本動作なんだけど、パスそのものもテキストファイルで登録アイテムにできるから、
C:\Giraffe\hoge
C:\Giraffe\hage
C:\Giraffe\fuga
C:\gi\hoge
C:\gira\hoge
C:\hoge\giraffe
が登録アイテムにあるなら、
gi
の候補として表示される。
テキストファイルにもアイテムを登録できることを失念してた。 下はエディットのディレクトリ以下のパスを登録するスクリプトなのだが…。 テキストファイルに大量にアイテムを登録するとオートコンプリートがかなり重たくなってしまう。 今のとこオートコンプリート毎に参照する仕様らしいから仕方ないかな。 Giraffe.Event.Key.f12: `*[ dataFile: 'test_data.txt' data_list: dataFile.file_load.split(CRLF) new_items: {} AddTextData: `path[ data:: true data_list.each% `item[ item.iequals(path).? [data.= false return] ] data.? [new_items.push_back(path)] ] 'Script/find.giraffe'.file_load.replace('AddListItem' 'AddTextData').eval(local) dataFile.file_save(dataFile.file_load.+ (new_items.join(CRLF)).+ CRLF) ]
>>566 的使い方でGiraffe.RegisteredItemsを用いたスクリプト。
siteinit.giraffeか、setting-setupで使うことを想定。
test_data.txtはConfig.Path.Dataには設定しない。
新機能を試すために書いたのでアイテムひとつだけ登録などいろいろ欠けてます。
使ってやろうと思う人は補ってください。
それでもパスを登録し過ぎると速度的に厳しいので注意。
テキストファイルのアイテム登録は補助的な機能だと割り切ろう。
'テキストファイルをアイテムとして登録する'
global.ItemsFileName: 'test_data.txt'
ItemsFileName.file_load.split("\r\n").each% `item[
Giraffe.RegisteredItems.push_back(item)
]
Giraffe.Event.Key.f12: `*[
'ParameterをフィルタにエディットのTarget以下の未登録パスをアイテムに登録'
old_items:: Giraffe.RegisteredItems
RegisterItem: `path[
old_items.each% `item[
item.iequals(path).? [parent.return]
]
Giraffe.RegisteredItems.push_back(path)
]
'script/find.giraffe'.file_load.replace('AddListItem' 'RegisterItem').eval(local)
ItemsFileName.file_save(Giraffe.RegisteredItems.join("\r\n"))
]
Giraffe.Event.Key.c-f12: `*[ '登録されたパスが存在しなければアイテムから削除' old_size: Giraffe.RegisteredItems.size index:: 0 Giraffe.RegisteredItems.each& `item.is_path.|| [item.is_iidl].&& [item.exists.not][ Giraffe.RegisteredItems.erase(index) ].| `*[index.++] Giraffe.RegisteredItems.size.!= old_size.? [ ItemsFileName.file_save(Giraffe.RegisteredItems.join("\r\n")) ] ]
572 :
名無しさん@お腹いっぱい。 :2007/02/16(金) 22:48:10 ID:lJmKO0ht0
0.5.16.309
なんかGiraffe常駐してる状態でRO(Ragnarok Online)起動するとGiraffeが反応なくなる・・・ nProtectの影響なんかな…
574 :
名無しさん@お腹いっぱい。 :2007/02/26(月) 23:04:14 ID:2kxUiyQQ0
Craft Launch EXとGiraffe+。どっちが出来ることが多いの?拡張性の高さも。
俺はGiraffe+だと思うぜ。
Craft Launch EXの方が拡張性は高いよ。 Python使うんだから当たり前だけど。
拡張性=使いやすさ&見易さではないので。念のため。 限界まで使いこなせる力量があれば別だけど。 膨大なスクリプトを書いた上デバッグするはめになるのなら本末転倒。
578 :
名無しさん@お腹いっぱい。 :2007/02/28(水) 05:24:31 ID:ZV4re8R20
>>576 Pythonであることと拡張性には何の関係も無いでしょ。
AHKやmayuもそうだけど、この手のソフトの拡張性ってのは、APIやイベントが全て。
一方通行の拡張なら、DLLを書けばいいし、それに勝る拡張手段なんて無い。
Bluewindや旧giraffeみたいに単機能exeを実行するだけでも十分だったりする。
>>574 が想定してる「拡張性」や「出来ること」は、
リストのアイコンの表示のOn/Offができるとか、
スタートメニューの内容をそのままコマンドリストとして使えるとか、
そういうのだと思うけど。
面白そうだけどなんか重いなぁ。
>>578 DLL書けば良いというなら、自分好みのを作れば良いじゃないか。
574見たいな質問をする人にそんな回答は無意味。
581 :
名無しさん@お腹いっぱい。 :2007/02/28(水) 09:55:42 ID:ZV4re8R20
>>580 そのDLLの行は1行目の「拡張性 = APIやイベント」って話を踏まえての、
それらを無視した「一方通行の拡張」の話なんだが、その辺理解してる?
Pythonスクリプトを実行したいだけならpython.exeを呼ぶなりすればいいだけでしょ?
>DLL書けば良いというなら、自分好みのを作れば良いじゃないか。
DLLをなんか凄いもののように思ってない?
スクリプトより多少手間がかかるのは確かだけど、書く内容は似たようなもんだよ。
ついでに言うと、
>>574 みたいな人にとってもDLLとスクリプトは似たようなもん。どっちも書けない。
>574見たいな質問をする人にそんな回答は無意味。
いや、その部分は
>>576 に対する回答。
拡張性とPythonを結びつけるとそうなるって話。
そういう話が
>>574 に対しての回答にふさわしくないってのは、その下の段落で言及してる。
それぞれの拡張の手段であるGiraffeスクリプトとPythonを比べると 直感的に言語として地位をすでに築いてるPythonが守備範囲が広い気がする。
スクリプトによる拡張と、単なるスクリプトの実行の違いなんて、 分からないほうが普通なんだよな。 APIやイベントなんて言葉、知ってるほうがおかしい。
拡張というより柔軟な設定変更といった方が良い気がする。 設定変更のために複雑なコードを書きたがる人はいない。 拡張性というと「なんでもスクリプトでやらなくては、それならいっそ汎用言語で…」 と使用目的がランチャーから脱線していく罠があるように見える。
スクリプトでやるということはGiraffe.exeのプロセス上で動くってことだろう。 ランチャーと関連の薄いことをスクリプトでやりすぎるとクラッシュしたときがあ ミンナミチヅレダヨ。 以下、Script2/settings/hotkey/...で使うとよさげ。 これもランチャー上で動かす意義はあんまりないが。 'カーソルの座標、ピクセルの色情報を表示' include('number') SRCCOPY: 0x00CC0020 pt: Windows_POINT.clone User32.GetCursorPos(pt.ref) dc: User32.GetDC(0) memdc: Gdi32.CreateCompatibleDC(0) bmpobj: Gdi32.CreateCompatibleBitmap(dc 1 1) obj: Gdi32.SelectObject(memdc bmpobj) Gdi32.BitBlt(memdc 0 0 1 1 dc pt.x pt.y SRCCOPY) color: Gdi32.GetPixel(memdc 0 0) Gdi32.SelectObject(dc obj) Gdi32.DeleteObject(bmpobj) Gdi32.DeleteDC(memdc) User32.ReleaseDC(0 dc) red: color.& 0xff green: color.& 0xff00.>> 8 blue: color.& 0xff0000.>> 16 red16: number:convert(red 16) green16: number:convert(green 16) blue16: number:convert(blue 16) Balloon.show("x, y = %1%,%2%\nr,g,b = %3%,%4%,%5%(#%6%%7%%8%)".format(pt.x pt.y red green blue red16 green16 blue16) 'GetCursorPos' IDI_INFORMATION pt.x pt.y)
>>581 そういう意味では賛成できるが
現状を見るかぎり、やはり、Craftの方が拡張性は高いと思うよ。
例えば、少し上に出ているパスの中間一致とかはCraftなら出来る。
fenrirを使えと出ているけど、Craft使えば、fenrirもどきの動きはする。
>>584 結局自分も、その考えから、使用頻度が高いものは拡張するより
始めからその機能が付いている方が速くていいなと気づいて
ランチャはそういうのにしている。
588 :
名無しさん@お腹いっぱい。 :2007/03/02(金) 16:27:21 ID:9YBckTds0
>>586 >そういう意味では賛成できるが
Pythonであることと拡張性に関係が無いこと、だよね?
その話しかしてないよ?
>現状を見るかぎり、やはり、Craftの方が拡張性は高いと思うよ。
Giraffe+のほうが高いなんて言ってないよ?
比較できるほどCraftのことを知らないから。
>例えば、少し上に出ているパスの中間一致とかはCraftなら出来る。
>fenrirを使えと出ているけど、Craft使えば、fenrirもどきの動きはする。
その次のレスにやり方出てるけど?
比較できるほど本当に両方のソフトのこと知ってる?
>>587 を見ると、どっちも使ってないみたいだけど。
デフォルトで設定ダイアログから使えるスクリプトだけでこんなにあるよ?
http://www.ric.hi-ho.ne.jp/giraffe/giraffe/doc/settings.xml さらにConfigや色の設定もあるし。
589 :
584 :2007/03/03(土) 03:18:40 ID:b2e6fgE80
>>587 なんでコード書くこと自体否定するような解釈をしたがるのか理解に苦しむ。
使う気がないのに何が目的にこのスレにいるの?
好みにうるさくなければbluewindをどうぞ。
見た目も大事。柔軟な設定をしたい方。Giraffeへようこそ。
中身が全て。コード読むのも書くのも任せろ。Craftがあります。
あなたと波長のあわないソフトのスレで議論しなくても良いんじゃないかな?
あれ?
>>587 さんはコード書くことが全くない人か。
汎用言語使うよりもシンプルなコードで設定できるんだよ、と書いたつもりだったんだが。
書かない人にはGiraffeもPythonも複雑だろうから話がかみ合わないよ。
>>588 さんもお互いスクリプトが書ける前提で議論してると見た。
お前らなんか反応キモw Giaffeの中の人も大変だ。まあ、作者かもしれないけど。
General.CheckDataLinkTo やるとかなり動作が遅くなる。 と説明してあるが4年前の箱でも変わらないぞ。
593 :
名無しさん@お腹いっぱい。 :2007/03/25(日) 22:06:40 ID:EKDC7Zha0
version 0.5.19.325
594 :
名無しさん@お腹いっぱい。 :2007/04/05(木) 01:37:37 ID:POAllTyg0
0.5.20.351
どなたかお助けを。 アクティブ時と非アクティブ時に表示位置とフォントの大きさとウィンドウの高さを変えたくて次のようにしてみました。 InsertEvent( (Activate) (ChangeFontHeight(16))) AddEvent( (Activate) (var( (top) Window.GetPos($Giraffe:Handle()(top)) (left) Window.GetPos($Giraffe:Handle()(left)) (width) Window.GetPos($Giraffe:Handle()(width)) (height) Window.GetPos($Giraffe:Handle()(height))) Window.SetPos($Giraffe:Handle() $left(460) $top(300) $width() $height(36)))) 続く
続き InsertEvent( (Deactivate) (ChangeFontHeight(14))) AddEvent( (Deactivate) (var( (top) Window.GetPos($Giraffe:Handle()(top)) (left) Window.GetPos($Giraffe:Handle()(left)) (width) Window.GetPos($Giraffe:Handle()(width)) (height) Window.GetPos($Giraffe:Handle()(height))) Window.SetPos($Giraffe:Handle() $left(18) $top(0) $width() $height(25)))) 一応動いてるんですが、非アクティブ時のウィンドウの高さが 元の高さ(36)を強引に切り詰めた感じ(うまい言い方が見つからない)になってしまいます。 ダイアログで設定したときのようにきちんと(?)高さが縮んで欲しいのですがどうしたらいいでしょう。
ApplyConfig((size))をWindow.SetPos後に挿入
>597 出来ました。ありがとうございます。 こうですね AddEvent( (Deactivate) (var( (top) Window.GetPos($Giraffe:Handle()(top)) (left) Window.GetPos($Giraffe:Handle()(left)) (width) Window.GetPos($Giraffe:Handle()(width)) (height) Window.GetPos($Giraffe:Handle()(height))) Window.SetPos($Giraffe:Handle() $left(18) $top(0) $width() $height(25)) ApplyConfig((size))))
599 :
名無しさん@お腹いっぱい。 :2007/06/10(日) 09:08:30 ID:CD9+6OpN0
おれ、すごい前のバージョンをつかってて 久しぶりにバージョナップしようと思ってこのスレ来てみたら・・・ いったい何に使えばいいんだ・・・確かランチャーだったよな・・・
これはランチャー以外にもやりたいことがある人向けのソフト
601 :
名無しさん@お腹いっぱい。 :2007/06/17(日) 13:59:04 ID:J/M25gDw0
Yet Another Alt+Tab Replacement でリストを絞り込んで表示できるようになりませんか? 該当するwindowタイトル以外は表示しないようにしたい
>>601 作者に要望か
SwitchWindow.giraffeを見て考える
foobarで音楽を再生中の場合に、これにジャケットとか表示できないかな〜?
アクティベイト、ディアクティベイトする度に 少しずつメモリ使用量が上昇していくんだけど、なんかバグっぽくないですか?そんなもん? あとmigemo使用時のメモリ使用量が 他のmigemoを使うソフトウェアに比べて多すぎるんだけど (migemo使用時と未使用時で20Mくらい違う) どーにかする方法ないですか?
>メモリ使用量上昇 GCはそんなもん、だと思う。 ゆっくりと段階的に開放してるはず。 >migemoのメモリ使用量 自分の環境だとxyzzyと同じ。 siteinit.giraffeでオープンしてて、なおかつ設定ダイアログでもやってて二倍になってるとか。 "Migemo.close"でF1して減るメモリ使用量を確認してみるといいかも。
606 :
名無しさん@お腹いっぱい。 :2007/08/13(月) 22:41:40 ID:UEBbRvWu0
定期あげ 0.5.29.460
デスクトップと解像度の違うフルスクリーンのゲームすると、Giraffeの位置が変わっちゃって その後Girffe終了するときに位置を保存したくないんですがどうすればいいですか? フルスクリーン後の位置が変わってしまうのはどうしようもないと思うんですが、 Giraffe.iniをRead-onlyにすると思い通りになりましたが、何かもっとスマートな方法があれば教えてください。
siteinit.giraffeに、 SetConfig('Unload') で、終了時の設定保存を、 SetConfig('OnMove_MainWnd' [true]) で、ウインドウが動いたときのConfig更新を殺せる。
>>608 ありがとう。まったく違うとこさがしてた。
結構前から気になってたからすごい助かりました。
あ、SetConfigじゃなくてSetEventだ。
>>610 aaしっかりEventに変換して記入してたw ありがとう
612 :
名無しさん@お腹いっぱい。 :2007/09/02(日) 20:57:02 ID:DZiHz7fG0
作者様のblog中に、スクリプトの試行には、コードをコピーして、giraffeに get-cb.evalと入力し、F1を押すとありますが、特に何も起きないようです。 何が間違っているのでしょうか? おそらくget-cbのcbはクリップボードの意味と思われるので、コピーしてから クリップボードに保存されたコードをevalする、という意味かと思うので、 操作的には間違いないように思うのですが。
何も起きてないように見える内容のものを評価してるだけじゃないかと。 get-cb.flushでF1押して、クリップボードの中身とF1が有効かどうかの確認をしてみるといいかも。