Giraffe+

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
使いこなすのが難しい強力なコマンドランチャ
「Giraffe+」
を語るスレです。

作者のサイト
【Giraffe+ software index】ttp://homepage2.nifty.com/giraffe2/

関連スレ
【おすすめのランチャーを教えるスレ Part2】
http://pc2.2ch.net/test/read.cgi/software/1064275857/
2名無しさん@お腹いっぱい。:04/03/11 22:20 ID:C3dMHhSE
_..                ,,.-'ヽ
ヽ "゙ー-、、        / :  :!
 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)))
4名無しさん@お腹いっぱい。:04/03/11 22:46 ID:gz+lVzU5
一応スレ立て乙だな
5名無しさん@お腹いっぱい。:04/03/12 13:31 ID:9UHIM+uR
google検索encode版

SetEvent(
(key/c-g)
(
include((www))
Shell.Execute(
cat((http://www.google.co.jp/search?q=)
www:url-encode(GetText()))))
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
14名無しさん@お腹いっぱい。:04/04/03 20:34 ID:Ju4M9gJF
俺は特殊なスクリプト使ってるぞって奴はいねえのか?
15名無しさん@お腹いっぱい。:04/04/05 10:01 ID:hZo3IuOc
超人lisperな俺に任せれば半年で世界中が真っ白になるくらいのスクリプト書けるよ
16名無しさん@お腹いっぱい。:04/04/07 03:51 ID:b5mg8zNE
Giraffe+のスクリプトはLispじゃないけどな
17名無しさん@お腹いっぱい。:04/04/13 18:37 ID:KIe8pRm4
>>14
mayuと組み合わせていろいろやってる
18名無しさん@お腹いっぱい。:04/04/16 21:09 ID:quOdpuVo
age
19名無しさん@お腹いっぱい。:04/04/17 02:32 ID:jV5IkVsA
>>5氏のスクリプトで
魚魚というテキストを食わせると一文字目の魚しかencodeされない
ナンデ?www.giraffe?_| ̄|○
20名無しさん@お腹いっぱい。:04/04/27 19:11 ID:Hu7rHd+5
わからない
21名無しさん@お腹いっぱい。:04/04/28 22:23 ID:ZL86tbSh
コレいいな。
22名無しさん@お腹いっぱい。:04/04/29 10:47 ID:H/ffWzRk
 
23名無しさん@お腹いっぱい。:04/04/29 16:25 ID:ZCBatWM3
>>19
Ver.0.3.0.0!
24作者:04/04/29 23:59 ID:DphOLkyl
なんか要望ある?
25名無しさん@お腹いっぱい。:04/04/30 00:58 ID:5Q0QIABs
>>24
ソース見せてくれ。
26名無しさん@お腹いっぱい。:04/04/30 06:04 ID:nv7TluEf
こういう使い方もあるよ的スクリプトを教えてください…
27名無しさん@お腹いっぱい。:04/05/02 10:56 ID:AughDl5m
>>24
もしかして、ぐちスレで愚痴ってた?
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を追加
29名無しさん@お腹いっぱい。:04/05/03 23:19 ID:CK9es3UO
0.2.x系に比べてGiraffe.exeのメモリ使用量が減っている
30名無しさん@お腹いっぱい。:04/05/06 16:49 ID:kcY8NHGP
起動時に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を公開
33名無しさん@お腹いっぱい。:04/05/29 21:01 ID:a6ffaZaF
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を追加
マーク時、テキスト部分も色が暗くなるようにした
34名無しさん@お腹いっぱい。:04/05/31 23:21 ID:m+bsqfy3
Giraffe+からYahoo辞書に漢字をencodeして送っても化けちまう
YahooもGoogleみたいに文字コード指定させてクレヨー
35名無しさん@お腹いっぱい。:04/06/01 00:11 ID:f4DP/Xl7
>>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)))
36名無しさん@お腹いっぱい。:04/06/02 02:00 ID:tZPVYAbN
>>35
DLLですか…考えてもいなかった
その気になれば本当にGiraffe+だけいろいろできるんだな
37名無しさん@お腹いっぱい。:04/06/04 21:53 ID:UIMcTEiw
これは…おれにはきついな、
すごい良さげなのに。
とりあえず使ってみよう、そのうちわかってくるかもしれないし。
38名無しさん@お腹いっぱい。:04/06/05 10:54 ID:EXdJjONz
ver 0.3.4.0
39名無しさん@お腹いっぱい。:04/06/06 00:54 ID:PNlr8nI6
何かを期待してageてみる。
40名無しさん@お腹いっぱい。:04/06/14 10:17 ID:oFTZkW64
コードをコピーしたら、eval(get-cb)と入力してF1
41名無しさん@お腹いっぱい。:04/06/22 01:34 ID:ud5ns7Js
が!
42名無しさん@お腹いっぱい。:04/06/22 05:04 ID:827Bikwp
つまんないのでもいいからスクリプト張ってほしい。
43アクティブ時に全画面反転:04/06/22 22:10 ID:bq5KlXrh
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)))
44名無しさん@お腹いっぱい。:04/06/25 14:59 ID:qj0fPaNw
>>43
びびった
45名無しさん@お腹いっぱい。:04/06/27 17:54 ID:JFCBb58K
>>43
すげー
こんなこともできるんだ!
46名無しさん@お腹いっぱい。:04/06/27 22:14 ID:EMq7w3aR
>>44-45
なになに?何が起こってるの?
47名無しさん@お腹いっぱい。:04/07/02 00:45 ID:B8nx+sNb
ageといた方がいい?
48名無しさん@お腹いっぱい。:04/07/02 06:03 ID:FXbI6IiZ
version: 0.3.4.1
last modified: 2004/07/01
49Deactive時にIMEをOFF:04/07/02 18:51 ID:4kD3uJ3O
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+
麒麟って倉より軽い?
51名無しさん@お腹いっぱい。:04/07/04 15:47 ID:q7O8fpaP
自分で使って判断しろ
52c-f自爆防止措置:04/07/10 05:59 ID:NO2OVftF
自爆した人
ノシ
------------------------------
SetEvent(
(key/c-f)
(
(Giraffe+内でファイルの検索)
if(==s(GetDataPart(GetText()(Target)) ())
(
if(!=s(GetNormalDir(GetText()) ())
(
@find))))))
5352のスクリプトは役に立ちません:04/07/10 07:10 ID:i9a3jVK8
上のはほとんど自爆防止になってなかった。スマソon_

Target;Parameter と入力してCtrl+Fと押したとすると、
TargetがDataでもPathでもない上、Parameterが無かったり*とかだと
ファイルの検索が c:\;* になって延々…ということなのだろうか。

Parameterで*と?を禁止にしてやれば良いかな…。
5452ヲ修正シマス:04/07/10 07:52 ID:8BtyvZZ6
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))))))))
5554に無駄があったので再度修正:04/07/10 08:45 ID:KsfGb1rk
何度もすいません…
(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を修正しときました。
57名無しさん@お腹いっぱい。:04/07/10 19:09 ID:KqVjnrtq
ほんとに更新してる。
58名無しさん@お腹いっぱい。:04/07/13 16:33 ID:JwHfbIWF
Giraffe+ 作者様

あなたには、
・使いやすい
・洗練された
・変な無駄がない
・使っていて気分がいい
・人に自慢したくなる
機能はもちろん、UI デザインにいたるまで、
こういうソフトを作るセンスがあると思います。
ダサいところがない。

ぜひ、お暇があったらファイラーを作っていただきたい。
59名無しさん@お腹いっぱい。:04/07/13 21:22 ID:ZMrvnAa8
きりーん、れもーん
60名無しさん@お腹いっぱい。:04/07/14 00:06 ID:darsI0aR
アイテムのマークやワイルドカードなどの諸機能のおかげで
ファイラーを起動することがなくなってきた…。

mode: を使ってリストを閉じないファイラーモードを用意して、
その間ファイルサイズなども常時表示すれば意外とファイラーっぽく
なるような気が…、誰かやってない?
61名無しさん@お腹いっぱい。:04/07/16 05:58 ID:qzRcB3WQ
ver0.3.4.2
EvalModeでデフォの配色が…?
62名無しさん@お腹いっぱい。:04/07/22 07:02 ID:H2KF2VXz
落ちそうなのでageときますね
63名無しさん@お腹いっぱい。:04/07/22 21:00 ID:dHS2Hwre
ソフトウェア板をなめちゃいかんよ。一ヶ月やそこらで落ちるほどヤワじゃない。
64名無しさん@お腹いっぱい。:04/08/02 23:35 ID:27v9lKyE
上級者向けの詳しいtips集とかを誰かに作ってもらいたい・・・・

今のままだと、100%の力を引き出してあげることができないから・・・
65名無しさん@お腹いっぱい。:04/08/03 06:37 ID:1ARjtUQz
アプリを起動する
もし起動してたらアクティブにする
これって一つのキーで出来ない?
66名無しさん@お腹いっぱい。:04/08/03 06:49 ID:x/oneWo5
>>65
デフォルトの.giraffeにコメントアウトされてる。
Winampをアクティブにとかxyzzyをアクティブにとか。
6765: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()))(")))) )
68名無しさん@お腹いっぱい。:04/08/05 12:21 ID:OsAxKB0n
>67
.giraffeにはなからあるじゃん。
# (hotkey/w-x)
# (
# (xyzzyをアクティブに)
# Unless(
# Window.Activate(Window.FindWild(( )(*)))
# (Shell.Execute((xyzzy)))))
#外せばいいだけ。
69名無しさん@お腹いっぱい。:04/08/10 16:38 ID:CQTvWdX4
age
70名無しさん@お腹いっぱい。:04/08/11 00:49 ID:gqnQ2cnZ
bluwindから乗り換えようとしてるんですが
コマンドが”notepad-MS-editor”で登録しておいて、
ms とかeditorでも呼び出したいんだけど、
どうしたらいいですか?

71名無しさん@お腹いっぱい。:04/08/11 02:03 ID:sN6htZ57
*ms とか *editor と入力して [Shift]+[Space] じゃだめか?
72名無しさん@お腹いっぱい。:04/08/11 02:10 ID:fuG7fGyE
>>70
スクリプト書けばいけるだろうけど、無理と思っちゃっていいかと。
なんか、思想に反する感じもするし。
7370:04/08/11 02:51 ID:gqnQ2cnZ
>>71 72
それで十分です。ありがとう。

うーん分かり易く覚えられる名前をつけるべきなんだけど、
どうしても忘れちゃうから、部分一致はよくつかってた。
74名無しさん@お腹いっぱい。:04/08/22 08:30 ID:G2t43Po4
age
75名無しさん@お腹いっぱい。:04/09/04 22:26 ID:Z/nwIUHa
保守

…書き込み少ないね。
難しいからなのか、ただ人がいないだけなのか。
76名無しさん@お腹いっぱい。:04/09/04 22:27 ID:k9Ywe3S2
難しいから人がいない。
77名無しさん@お腹いっぱい。:04/09/04 22:43 ID:4Ryd8zzg
アプリとフォルダしか登録してないんですが、
ハッカーの皆さんはどんな面白い使い方をしてらっしゃいますか?
お話聞かせてもらいたいです。
78名無しさん@お腹いっぱい。:04/09/05 03:11 ID:+0f0S7v6
お気に入り代わりにも使ってる。
79名無しさん@お腹いっぱい。:04/09/05 09:43 ID:FIbxPS/d
ネットワーク内のほかのサーバのファイルにアクセスする時に
認証ダイアログが出るときと出ないときがあるような気がする。
最近ずっと出ない。
80名無しさん@お腹いっぱい。:04/09/05 15:47 ID:RlH0/+Wv
>>79
エクスプローラでアクセスすると出る?
81名無しさん@お腹いっぱい。:04/09/05 20:35 ID:FIbxPS/d
出ますね。
だからエクスプローラでログインして、エクスプローラ閉じて、
それから Giraffe でアクセス。っていう変な方法で使ってる。
ネットワークのことがよくわからないので、
Giraffe のせいじゃないかもしれないんだけど。
82名無しさん@お腹いっぱい。:04/09/05 22:01 ID:LoxWhoKy
自分のOSは?接続先のOSは?
83名無しさん@お腹いっぱい。:04/09/08 12:07 ID:1CWhudFr
age
84名無しさん@お腹いっぱい。:04/09/08 21:22 ID:+DwjZoQc
>>82
自分のは XPPro で接続先も XP だと思います。
85名無しさん@お腹いっぱい。:04/09/09 00:47 ID:RvkQDDVC
自分は2K->XPだけど、\\pc\fileを実行しようとしてもパスワード入力のダイアログは出ずに、
ユーザ名とパスワードが違うというエラーダイアログが出る。
でも、\\pcを実行しようとするとパスワード入力のダイアログが出る。
\\pc\filesという存在しないパス(path)にした場合もなぜか出る。

Win+Rでやっても同じ結果だったんでWindowsの問題ぽい。
86名無しさん@お腹いっぱい。:04/09/15 01:53:58 ID:9MuzJDTe
ところでみなさん、ファイラー使ってますか?
Giraffe+使ってると要らないような気がしてくるんですが。
87名無しさん@お腹いっぱい。:04/09/15 18:10:23 ID:VSiw5utW
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キーを別キーに割り当てると
一応メインメニューは出せるのですが、
その他のキーボードショートカットも割り当てようとするとちょっとキーが足りないので、
任意の組み合わせでやりたいと思っています。
89名無しさん@お腹いっぱい。:04/09/18 21:47:44 ID:rPt+qEPR
>>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
ニュー速VIPキモ声固定ランキング

1位  ゑゑゑ    声、発言、口調の全てがキモい、これを超えし者は存在するのか?
2位  魔少年D.T デブ声、声が篭っている
3位  マルメン   全体的にキモい
4位  イロモノ   おっさん声


http://web1.nazca.co.jp/hp/wewewe/

ハコ箱フォルダでのラジオの配布

http://www.hakobako.com

ID : wewewe6
PASS: asdf222
92名無しさん@お腹いっぱい。:04/09/27 18:30:27 ID:uLv4bQlh
age
93名無しさん@お腹いっぱい。:04/09/30 00:57:07 ID:5RJZz4Wf
sage
94名無しさん@お腹いっぱい。:04/10/08 19:09:35 ID:xmwp45Wy
msg((hoshu))
95名無しさん@お腹いっぱい。:04/10/11 11:52:59 ID:1AZIfB9u
とりあえずちょっとしたスクリプトからでも貼りません?
他の人が自分じゃ思いつかないことやってるかもしれないし。
96名無しさん@お腹いっぱい。:04/10/11 18:03:29 ID:RG0sRDQY
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())))))))
97名無しさん@お腹いっぱい。:04/10/11 18:05:39 ID:RG0sRDQY
つづき

InsertEvent(
(GetIcon)
(
if($anicon:anime(is-empty(param(0)))
(
return($anicon:icon)))
$anicon:anime(0)))

AddEvent(
(Unload)
(
terminate-thread($anicon:thread)))
98名無しさん@お腹いっぱい。:04/10/11 19:28:54 ID:Kj09MhqR
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)))))
)
))
99名無しさん@お腹いっぱい。:04/10/11 20:44:52 ID:gYfNGFo8
見ただけで難しいな。
100名無しさん@お腹いっぱい。:04/10/12 16:38:19 ID:fUfMn8bZ
CreateThreadってどういう時に使うんですか?
101名無しさん@お腹いっぱい。:04/10/12 19:20:05 ID:ZDYlVCpy
>>100
その終了を待ちたくないとき、かな。
102名無しさん@お腹いっぱい。:04/10/19 09:40:59 ID:TSBO0u2/
マークしたアイテムってクリップボードに渡したりしたら改行されて出てくるよね?
あれをスペース区切りにすることって出来るの?
103名無しさん@お腹いっぱい。:04/10/22 13:32:16 ID:802DRk6Z
>>102
コピー前に$array:delimiterを空白にして、
コピー後に元に戻すって感じでいいんじゃないかと。
104名無しさん@お腹いっぱい。:04/11/02 18:44:57 ID:TJ41Ad1n
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)))))
105名無しさん@お腹いっぱい。:04/11/03 07:54:58 ID:qnClhCL9
ファイラと連携する方法をおしえてください
106名無しさん@お腹いっぱい。:04/11/03 13:11:48 ID:I+wS0BKy
ファイラとの連携って具体的に何?
渡されたパスを引数に置くだけ?
107名無しさん@お腹いっぱい。:04/11/03 14:49:45 ID:qnClhCL9
""で囲って引数にしてほしいです。
108名無しさん@お腹いっぱい。:04/11/03 15:06:00 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
112名無しさん@お腹いっぱい。:04/12/09 14:38:32 ID:/kRlRLQa
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にしたらこう言われるようになったけど、これは意図どおり?
114名無しさん@お腹いっぱい。:04/12/11 20:50:39 ID:hKzc/MZI
コンパイラをVisual C++ 7.1にした

だからだろう。
115名無しさん@お腹いっぱい。:04/12/12 18:38:16 ID:2+K++XKE
ランタイムとかのリンクくらいサイトなりreadmeになり貼っておいてくれてもいいのにな。
116名無しさん@お腹いっぱい。:04/12/15 01:04:31 ID:gB3PBt8v
必要なランタイムなどは?
VC++7のMFCの最新版のランタイムを使用します。
起動できない場合はインストールしてください。
117名無しさん@お腹いっぱい。:04/12/27 00:32:14 ID:GAkEdiSd
age
118名無しさん@お腹いっぱい。:04/12/27 15:15:38 ID:8Y4R0PkV
何この()だらけ?
LISP?
119名無しさん@お腹いっぱい。:05/01/03 02:24:33 ID:V0GHAy2u
giraffeでフォルダを開くときにDFで開くようにしたいんですがどうやればいいんでしょうか・・・
120名無しさん@お腹いっぱい。:05/01/03 14:05:00 ID:t/4IjAG5
shift+enterで開くやつなら下記だけでいける。
enterで、開こうとしたものがフォルダだったとき、っていうのは、また別。

func-g(
(NormalOpenDir)
(
for-each((file) param(0)
(
Shell.Execute((C:\Program Files\DF\DF.EXE)cat((")Shell.GetDir(GetNormalFile($file))(")))))))
121119:05/01/03 19:24:30 ID:V0GHAy2u
>>120
感謝感激感謝感激感謝感激感謝感激感謝感激感謝感激感謝感激感謝感激感謝感激

>enterで、開こうとしたものがフォルダだったとき、っていうのは、また別。
やっぱりこれは難しいんでしょうね・・・
いっそエクスプローラって書いてある部分を全部DFに置き換えてやろうとDFのフォルダ内を検索したら、、、
さっぱり意味が分かりませんでしたorz
122119:05/01/03 19:26:50 ID:V0GHAy2u
ああはずかしいはずかしい
orzorzorzorzorzorzorzorzorzorzorz
> いっそエクスプローラって書いてある部分を全部DFに置き換えてやろうとDFのフォルダ内を検索したら、、、
いっそエクスプローラって書いてある部分を全部DFに置き換えてやろうと”giraffe”のフォルダ内を検索したら、、、
123名無しさん@お腹いっぱい。:05/01/19 23:58:29 ID:931sKI53
>>121
event:key/enterの場合はNormalExecuteをオーバーライドする。
124名無しさん@お腹いっぱい。:05/01/22 15:11:47 ID:GBeB+onM
ぬるぽ
125名無しさん@お腹いっぱい。:05/01/22 18:35:48 ID:cTYwciFT
>>124
ガッ
126名無しさん@お腹いっぱい。:05/01/22 18:42:25 ID:83qss/8d
kimoi
127名無しさん@お腹いっぱい。:05/02/07 20:11:28 ID:6h2Y+ydr
どぅ
128名無しさん@お腹いっぱい。:05/02/07 20:15:04 ID:z+xkYDhd
閉鎖キター
129名無しさん@お腹いっぱい。:05/02/07 20:28:37 ID:W7uoqsLD
ver.うpキター
130名無しさん@お腹いっぱい。:05/02/14 23:08:57 ID:lrSDXmGL
これでF1ならウィザードが起動するが、
Shell.Execute((::\マイ コンピュータ\コントロール パネル\ネットワーク接続\新しい接続ウィザード))

これでF1はきりんのディレクトリが表示される
thread((Shell.Execute((::\マイ コンピュータ\コントロール パネル\ネットワーク接続\新しい接続ウィザード))))

ナゼ?
131名無しさん@お腹いっぱい。:05/02/15 02:42:25 ID:HdxrvbZU
関数threadは、素のスレッドを動かす。
Ole関係のOleInitializeだとか、CommonControl関係のなんかとか、
そういったもがなされたものこそを普通の環境や状況と考えると、
threadに導かれる環境や状況は、純粋でありながら異常な環境や状況と言える。
132名無しさん@お腹いっぱい。:05/02/15 02:46:09 ID:HdxrvbZU
ようするに、自分が確認した限りでは、
ole32.OleInitialize()をShell.Executeの前に実行すれば同じようになるみたい。
133名無しさん@お腹いっぱい。:05/02/16 18:51:08 ID:xZjeLZq8
ありがとう。
Shell.Executeの前におまじないが必要だったのか。
thread動かしてまでやることって限られてるだろうから、
必要な場合だけ必要な関数を呼びなさい、ということかな。
134名無しさん@お腹いっぱい。:05/03/04 23:04:04 ID:xAeE3shG
パス区切りを / に変えて使っている人ってどれくらいいるのかな。
シェルネームスペースとかPasteFileなどの関係で
少々弄っただけでは意外とスマートに動かないようにも思えるのだが。
135名無しさん@お腹いっぱい。:05/03/05 08:56:16 ID:njayl3Ul
>>134
WindowsのAPI自体がスラッシュを受け入れたりそうじゃなかったりするから、かなりめんどい。
136名無しさん@お腹いっぱい。:05/03/05 18:27:27 ID:30Elb9DS
Shell.ExecuteでVerbが指定されてるとWindowsがエラー吐く・・・
のかと思いきやrunasは通るんだな。
スラッシュを弾く基準もよくわからん。
137名無しさん@お腹いっぱい。:05/03/05 22:28:28 ID:j4mN9lof
func-g(
(CopyFile)
(
Shell.Execute(
GetNormalFile(param(0))
()
()
(copy)
()
()
$Giraffe:Handle)))
これでスラッシュ入りでもファイル1つだけならコピーができる。
実用的じゃないけど。
138名無しさん@お腹いっぱい。:05/03/07 09:01:06 ID:VbTf1Kuf
思うんだが作者さんなんであの仕様のスクリプトのしたんだか。
スクリプトエンジン作成によっぽど自身があるなら別だけど
一般的に使われてる言語の方が、使用者を増やしやすいはず。
開発効率が関数型のほうがいいといっても使用者は慣れない言語をやりたがらないような。
これからいじる人も、互換性のある文法の方が勉強も兼ねてという感じで使用しやすいとか思うんだが。
いっそLispならxyzzyから人がくる気も。その点クラフトランチがPythonを外から呼び込んでるのは何となくツボをついてる。
開発効率を考えると使用者は無視できないような。もったいない。
139名無しさん@お腹いっぱい。:05/03/07 20:25:46 ID:0OuFza8q
>>138
readme.txtのToDo、スクリプトの位置付け、読んだ?

>スクリプトエンジン作成によっぽど自身があるなら別だけど
さすがにこの書き方はちょっと・・・。
アプリ開発用の言語ですというレベルの話じゃないし。

そもそも、ランチャーってスクリプトに何使うかで選ぶものなの?
Cを勉強してれば適用も応用も十分利く・・・と思ってたのだが。
140名無しさん@お腹いっぱい。:05/03/07 23:38:10 ID:VbTf1Kuf
>>139
作者さんかな?正直読んでなかったLuaとかいうのを使うのね。どんなのか知らないからなんともいえないが
私はコマンドライン型のランチャがこれだけ溢れているとスクリプトで選ぶ人もいると思うよ。
このランチャも私が見たくらいじゃ倉とかbluewind、月光辺りと比べてどういうメリットがあるのか良く分からん。
VCで作ってるから多少リソースの効率がDelphi系のよりは良いのかなぁとか思うくらいで。
まあ漏れがアホだから判別できない、という可能性も否定できないが。
141名無しさん@お腹いっぱい。:05/03/08 01:29:22 ID:14sI6DSL
>>140
作者じゃないよ。
自分自身がCをかじった程度のレベルなんでそういう立場でレスした。

>私はコマンドライン型のランチャがこれだけ溢れているとスクリプトで選ぶ人もいると思うよ。
そうだな、スクリプト使うものが溢れてくれば言語が有力な基準になるか。

でも、今のとこ大事なのはreadme.txt-設計思想のとこの下2行と思ってる。
クラフトはGUI周りがちと弱く、それをスクリプトで強化可能か不透明。
bluewind、Moonlightはスクリプトが未実装だし。
まあ、まだ存在意義を問われるほどに溢れてはないんじゃないかと。
142名無しさん@お腹いっぱい。:05/03/08 05:02:37 ID:Ryw2aOWr
言語を立派なものにすると、既存でも自前でも巨大なものにならざるを得ないから、
DLLを呼び出すだけの言語として作ったそうだ。
Luaは小さいから使う気になったんだろう。
143名無しさん@お腹いっぱい。:05/03/08 11:11:43 ID:rcRQgkjF
>>141
>そうだな、スクリプト使うものが溢れてくれば言語が有力な基準になるか。
溢れなくても、ないのが良い奴だっているからな。

>でも、今のとこ大事なのはreadme.txt-設計思想のとこの下2行と思ってる。
だな。まだ開発が意欲的に続いてる所で色々可能性はあるね。
まあ、もっとも、そういう漏れは視覚的な効果重視でメニュー型の使ってるんだけどな。
144名無しさん@お腹いっぱい。:05/03/10 01:59:13 ID:R4oLtrPs
そういやスクリプトでリストにアイコン表示もできるし、
コンテキストメニューの表示や編集もできる。
ホットキーでリストやメニューを表示させるとかして、
無理やり擬似メニュー型に変えるツワモノが出るかも。
145名無しさん@お腹いっぱい。:05/03/14 04:32:12 ID:E1wj6lgj
spfolder-moonlight-bluewind-蔵-オーキス
と流れてきてオーキスっての使ってる。
>>144が軽くて動作も軽快ならそれでもいいけど
起動してると同じくらいメモリり取ってるしなぁ、そこからスクリプトで動かすのかぁ。

チョット使った感想
bluewindをVCで作って、スクリプトつきにしたって感じっぽいと思った。
あと機能はbluewindと違って色々はいってる。単機能ツールで外に任せてる感じとは違う
蔵と比べると見た目は綺麗だけど重い
146名無しさん@お腹いっぱい。:05/03/15 19:11:03 ID:pjmY4LNb
>>144を真に受けられてもなあ。
他のランチャへの挑戦だと思ったんなら悪かったと思う。
あと、倉みたいにアイコンがいらないんなら
faq.txtにあるようにアイコン非表示にすればそれなりに軽くなる。




最近のレスを見て思うにスクリプト系は
付属ドキュメントは後回しな気味な一見さんには厳しいと思った。
147名無しさん@お腹いっぱい。:05/03/15 22:30:50 ID:O0hRt4dS
giraffeは確かに便利なんだけど、
bluewindができるスキップマッチングができないのがつらい。

148名無しさん@お腹いっぱい。:05/03/15 23:40:48 ID:dK9umRAX
>>146
いや、むしろ挑戦しろ。というかしてください。
2ch見てれば分かるけど、良い物にアンチは付き物ですよ

つか、テンプレ作ってないとココから来ても使わないと見たな。

取り合えず入れたけど読むの面倒で使ってみたが意味不明という人は
Alt+Spaceだけでも押してみると、コマンドが出るの少しいじってみようかという気になりそう。
149「やっつけ」スキップマッチング:05/03/16 23:34:15 ID:MneyoKUY
(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です。
153名無しさん@お腹いっぱい。:05/03/17 22:23:17 ID:35qMYqDi
うちはXPSP2使ってる。
そのせいかかわからんが>>151のエラーを再現できなかった。

上では説明を端折ったけど、Script2/siteinit.giraffeに
EditChangeをコピーしてSetEventした上でそれを>>149で書き換えていい。

とりあえず手探り状態で↓>>150の代替案。
これもsiteinit.giraffeに追加で。
154150と差し替え:05/03/17 22:25:01 ID:35qMYqDi
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())
156154修正: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))))))))
157名無しさん@お腹いっぱい。:05/03/18 19:26:42 ID:9Jg3/B6R
それで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
**************************
ソフトウェア板の名無しを決める投票が行われています。
http://firefox.geckodev.org/?%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%C8%C4%A4%CE%CC%BE%CC%B5%A4%B7%CC%BE%A4%CE%C5%EA%C9%BC

今度こそ本気らしいです。
そしてこれで決まる予定らしいです。

「名無しなんてなんでもいいよ」という立派な方は結構ですが
そうでない方はぜひ参加してください。
**************************
160これと>>156でスキップマッチング:05/03/20 00:15:01 ID:tkbSCtuC
>>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)
161名無しさん@お腹いっぱい。:05/03/21 02:12:46 ID:CU486BTK
見辛いなあ。
コード書いたり動作報告したりそれを修正したりってのは
ツリー型の掲示板の方が向いてることがよく判った。
162名無しさん@お腹いっぱい。:2005/03/21(月) 11:22:35 ID:Xh+s9luQ
つか2chは人が来る以外特にメリットないだろ
163名無しさん@お腹いっぱい。:2005/03/21(月) 11:24:05 ID:Xh+s9luQ
ここは宣伝向けのURLとかどんなソフトかとか比較してどういいか
とか書いておけば人が来て勝手に色々してくれるのがメリットなきがす
164名無しさん@お腹いっぱい。:皇紀2665/04/01(金) 15:26:01 ID:zHx7QAmP
バージョンこない
165名無しさん@お腹いっぱい。:皇紀2665/04/01(金) 15:43:55 ID:1z+IHkdW
「なぜ本国に戻らない」

同じ言葉を在日韓国人朝鮮人に言いたい!
166名無しさん@お腹いっぱい。:2005/04/13(水) 22:15:06 ID:LK3Nm6aM
あげ
167名無しさん@お腹いっぱい。:2005/04/17(日) 22:42:43 ID:c23K3Pl5
ver.0.3.6.2
168名無しさん@お腹いっぱい。:2005/04/19(火) 23:38:21 ID:6Gv49ju7
うむ
169名無しさん@お腹いっぱい。:2005/04/26(火) 17:44:58 ID:vh0hy212
migemo使って検索できないもんでしょうか
170名無しさん@お腹いっぱい。:2005/04/28(木) 16:49:39 ID:ijZte8UJ
>>1にある作者のサイトは移転。

Giraffe+ software index
http://www.ric.hi-ho.ne.jp/giraffe/
171名無しさん@お腹いっぱい。:2005/05/04(水) 22:18:23 ID:lGW8EM8T
version: 0.4.0.0 !!
172名無しさん@お腹いっぱい。:2005/05/04(水) 22:45:48 ID:Bt8ooXyr
設定ダイアログが追加されて、設定しやすくなったね。
173名無しさん@お腹いっぱい。:2005/05/04(水) 23:50:43 ID:LTdgv6rl
キタ━━━━(゚∀゚)━━━━!!
174名無しさん@お腹いっぱい。:2005/05/05(木) 02:30:00 ID:O6Bm6oP2
ちょいと動作報告。
以下の症状がグローバル変数を参照する別スレッドが動いてる時に発生。
設定ダイアログを出してOKや適用をするとエラー。
key/f5 で terminate-thread を挿入しても設定ダイアログを閉じずに
適用、OKの操作を2度以上やるとやはりエラー。

例えばsiteinit.giraffeに以下を加えると発生する。
thread(
(
while((1)
(
$Giraffe:Handle()
sleep(100)))))
175名無しさん@お腹いっぱい。:2005/05/05(木) 04:31:01 ID:/OVQYkVq
バージョンうpしてみた
起動しない人はMFC71.dll入れる
追加された設定ダイアログ(F5押す)がとってもグッドな感じ

ちなみにタスクトレイのアイコンを右クリックして「Reload Setting」を押すと
「error:function not defined」ってでる。実害ないから放っておいてるが
176名無しさん@お腹いっぱい。:2005/05/05(木) 13:14:13 ID:P+3prMZ0
>>174
できるだけ thread より timer/... を使うべきかも知れない。
ClockInactive.giraffe で監視スレッドを使わなくなってるので。
177名無しさん@お腹いっぱい。:2005/05/10(火) 21:03:20 ID:BLAVs/n8
version 0.4.1.1
改善されてる。
178名無しさん@お腹いっぱい。:2005/05/16(月) 01:10:02 ID:bxItitNt
ver 0.4.2.0

INIファイルを初期化してもDataDefaultへアクセスができない?
Dataの中にDataDefaultをディレクトリごとコピーした場合は
アクセスできたけど*.giraffeをevalしてくれない?
179名無しさん@お腹いっぱい。:2005/05/16(月) 19:34:19 ID:pNiVnY8+
>>178
Script2に古いDefault.giraffeがあるとか
180名無しさん@お腹いっぱい。:2005/05/16(月) 20:24:57 ID:1S9dM2GJ
>>179
Script2他もろもろ全部消して新規に入れなおしたら動きました。
ありがとう。

パス区切りがスラッシュでも普通にいけるようになってた。
デフォルト設定でも使い勝手が他のランチャと遜色なくなった感じ。
181名無しさん@お腹いっぱい。:2005/05/20(金) 21:22:41 ID:RGOIemIl
version 0.4.3.0
182名無しさん@お腹いっぱい。:2005/05/26(木) 23:03:18 ID:Z2z4dnKp
>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には書いてあるのでしょうか?
ぐぐってみても見つかりませんでした。
183名無しさん@お腹いっぱい。:2005/05/27(金) 00:05:20 ID:fpG1exmE
>>182
自己解決
readme.txt の :::ShellExecute::: に書いてありました。
; で区切ればできました。
184名無しさん@お腹いっぱい。:2005/05/31(火) 09:30:00 ID:3FKUMP0D
version 0.4.3.1
185名無しさん@お腹いっぱい。:2005/05/31(火) 12:27:03 ID:IFG037aD
0.4.3.1
&&と||を最後に見た値を返すようにした、ついでに&&&と|||を組み込み関数にした
view-and-sortのOptimizeWidthをAutoResize.ByListboxTextを参照するようにした
忘れてたjoin関数を実装
設定ダイアログのキー設定で同じキーを設定できないようにした
186名無しさん@お腹いっぱい。:2005/05/31(火) 21:35:04 ID:navcNBcy
すごくいいソフトだと思うし
更新ごとにどんどん使いやすくなってるし

なのにネット上に話題が全然ないのはなぜだろう
大幅にカスタマイズできるソフトだからmayuやEmacsなんかが好きな人に向いてると思うんだけどな
187名無しさん@お腹いっぱい。:2005/06/01(水) 00:33:25 ID:NlMMPOtS
mayu、EmacsにあってGiraffeにないもの。

前2つは既に多数いるUNIX使いのためのという面もあるんじゃないか。
Giraffeはアイデアは前から存在したとしても形になったのは最近の話で、
これがなくてもUNIX使いはやっていける。

カスタマイズ性よりも慣れ、癖、惰性が話題なるには必要かもしれん。
188名無しさん@お腹いっぱい。:2005/06/01(水) 16:58:58 ID:i21X3nqH
>>186
作者の人も見てるみたいだから私も意見を書いてみたりしておく

逆に聞いてみたいが、コレを使う理由はなんだろな?
別のでいいや、とかなると普通は慣れてるそっちを使うと思うよ。

187の意見ののように、mayuやEmacsにはやっぱりUnixがあるけど、これにはないね。
カスタマイズ性についても、それに対しては>>139見たいな感じで認識してると
カスタマイズした故に遅くなったりしてたんじゃランチャとして致命的かと思う。
Bluewindはそうならないように機能を外部に出したりクラフトみたいに機能自体を軽くしていたりと
他のランチャも相当工夫があるし、GUI勝負じゃメニュー型にながれるし。競合相手も十分優れてるしなぁ。
>>138-148あたりでもでてるけど、その辺が全てだと思うな。とくに>>148
最低今あるのを超えるか、機能的に競合するのを避けるかしないと使わないと思う。
189名無しさん@お腹いっぱい。:2005/06/02(木) 00:18:59 ID:UajpwfUI
>逆に聞いてみたいが、コレを使う理由はなんだろな?

そりゃカスタマイズだろ。
とかかくと不毛な議論がループしそうだが。
人それぞれ癖や環境が違うんだからソフトの方で合わせれるのは重要だぜ。

>カスタマイズした故に遅くなったりしてたんじゃランチャとして致命的かと思う。

なんか Giraffe=機能てんこ盛りで重い ととれる極論はカンベンしてほしい。
機能を外して軽くするできるのもカスタマイズだぞ。
[F5]叩いて Confic-Preset-Light だけでも何のためにあると思っている?


なんか競合ソフトを挙げてGiraffeを叩く意見には懐疑的になってきた。
そんな片手間で使っただけでレッテル貼れるような浅いソフトじゃないぞ。
批判したいんならメインで使い切ってくれ。
190名無しさん@お腹いっぱい。:2005/06/02(木) 00:59:50 ID:kBh+P9RP
Giraffe+をメインで使うまで他にもいろいろランチャを使った。
ランチャ探しをしてどれも馴染まなかった挙句、
最果ての地にGiraffe+がいたという感じがする。

だからGiraffe+について語るときは、これをああしたいんだけど、
スクリプトでなんとかならない?みないな話題になると思う。普通。

なのに別のランチャを物差しに一刀両断されると違和感を覚える。
使い込むことが必須のソフトなのに使い込まずに選別されてるから。
当然、Giraffe+を物差しに他のランチャを選別するのも変だと思う。
191名無しさん@お腹いっぱい。:2005/06/02(木) 02:06:55 ID:A3U+lKLo
使い始めて1週間、非常によいソフトだと思う。
3年くらい使っていたシーエルからの乗り換え。

mayu + xyzzy + giraffe+はもう手放せないだろう。

以下、ユーザが増えないと思われる理由

・機能の説明が不十分
  FindFileInGiraffe(Ctrl-f)とか、スクリプトのソースを見て初めて使い方が解ったのがいくつかあった。
引数を伴う機能の説明は最低限ほしいと思った。

・ショートカットキーの設定項目の多さ
  初期設定では全部ONになっておりどれが必要で
  どれが不必要なのかを判定するのが大変だった。
  私は全部OFFにしてから、必要な機能とキーを決めていった。
  ゴミ箱を使わず削除とかのキーも初期設定で有効なので、
  間違えたキーを押したとき何が起こるかわからないというのは、正直怖い。


・スクリプト言語
  やはり()が多すぎるし付属のドキュメントだけでは説明が不十分。
  ()についてはxyzzyのparenで助かったが、これがなければ関わりたくないと思った。
  func-list.csvにある関数が750個ってのもたまげた。
  スクリプトの標準関数は別のファイルなどに詳しい説明があればいいと思った。
  eval()とか==siw()とか使っている箇所を見てなんとなく予想はできるが
  正確に理解できない関数がいくつかあった。


 
192名無しさん@お腹いっぱい。:2005/06/02(木) 02:07:19 ID:A3U+lKLo
・結論
mayu や xyzzyは なんちゃってUnix使いだったせいもあると思うが、
デフォルトの設定に数箇所変更するだけで困らない程度には使えた。
  しかし、giraffeの場合、キー設定は大幅に変更し、いくつかの機能はスクリプトも修正することで
  あるていど満足いく設定になった。初期設定にかなりの時間が必要。

  とりあえずランチャとして使いたい人用の設定、ファイラとしても使いたい人の設定、
Emacsに汚染されている人の設定とか初期設定でいくつか選択できればいいのにと思った。
  
  情報が増えないとユーザが増えない、ユーザが増えないと情報も増えない。
機能豊富だが、なかなかユーザが増えなかったzshみたいだなと思った。
  
193名無しさん@お腹いっぱい。:2005/06/02(木) 02:48:58 ID:A3U+lKLo
以下、設定していてわかった点を少々

【ちょっとした小技集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 にコピーして書き換える。
194名無しさん@お腹いっぱい。:2005/06/02(木) 02:49:20 ID:A3U+lKLo
【ちょっとした小技集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を実行

195名無しさん@お腹いっぱい。:2005/06/02(木) 02:51:11 ID:A3U+lKLo
【ちょっとした中技集1】
デフォルトのExecute.giraffe(エンターキー)の動作が気に入らない。

・標準Execute.giraffeとの違い
- /Data/内のディレクトリだったら中に入る
- コマンドがディレクトリへのショートカットだったらファイラモードへ
;をつけるとエクスプローラで開く (;はSeparator)
- ファイらモードでディレクトリだったら中に入る

・インストール方法
以下を/Script2/settings/key/Execute.giraffeに保存。(/Script/ではない)

############ 適当に作ったんでバグありかも ##########

196195のソース1:2005/06/02(木) 02:54:49 ID:A3U+lKLo
(コマンド実行)
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()) )
))))

197195のソース2:2005/06/02(木) 02:55:21 ID:A3U+lKLo
(
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()))))
198名無しさん@お腹いっぱい。:2005/06/02(木) 03:03:08 ID:A3U+lKLo
以上、長文で失礼しました。
199名無しさん@お腹いっぱい。:2005/06/02(木) 07:44:31 ID:A3U+lKLo
>>193
すいません、大嘘ついてました。
・SortListLastModified(Alt-t)のソート順変更で
view-and-sort:last-modに引数つけてもソートしなくなるだけでした…。
ソート順を変えるのはview-and-sort.giraffeをいじらないと駄目です。
200名無しさん@お腹いっぱい。:2005/06/02(木) 09:32:59 ID:nzovuU7H
そういうのは一時的に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)))
201名無しさん@お腹いっぱい。:2005/06/02(木) 13:30:00 ID:A3U+lKLo
>>200
ありがとうございます。勉強になりました。
SetConfigで設定できるということは、
Giraffe.iniからも設定できたんですね。

ところで、>>199を例にすると
最初に押されたときは必ず新しい順にソートする。
再度同じキーが押されたらトグルするってことはできるんでしょうか?
>>199の最後の行をコメントアウトするだけでは、
前回終了した状態によって、最初に押されたときは必ず新しい順にソートするとは限らないし
他のview-and-sortにも影響してしまうので。

これは、次のどれかが出来れば可能だと思うんですが。
1.前回実行したイベントを調べる事ができる。
2.Alt-Shift-t以外のキーが押された時用のイベントが作れる。
3.他にもあるかも。

出来れば、timerイベントとかがあるので
イベントごとに最後に実行されたイベントがわかる。
イベントにかかわらず一番最後に実行されたイベントがわかる
の両方ができたら最高なんですが。
202名無しさん@お腹いっぱい。:2005/06/02(木) 13:44:59 ID:A3U+lKLo
イベントリストを眺めてみると、
keyイベントだけ前回実行したキーがわかれば良いかも。
それかキーイベントをフックできるとか。
203名無しさん@お腹いっぱい。:2005/06/02(木) 21:27:03 ID:qaC2aVGo
ローカル変数($temp)を使うのをやめて
グローバル変数でList.SortReverseの値を保持したらどう?
204名無しさん@お腹いっぱい。:2005/06/03(金) 06:23:11 ID:yiPmAmgA
リストのテキストを保持しておいて、一緒なら前と逆の順に、ってふうにしてみた。

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())))
205202:2005/06/03(金) 18:31:20 ID:KGZBzx/9
>>203
グローバル変数にしても同じでは?

>>234
ありがとうございます。
やっぱり、そうなりますか。
1個前のキーイベントが同じキーイベントかどうかがわかると
かなり楽になると思ったんですけどね。
そのほかにもいろいろ幸せになれそう。

ところで、みなさん
デバッグ時や動作確認時
この変数には何が入ってるの?って調べたい時どおしてます?

私ははじめにSetText() とか msg()とか使ってみましたがいろいろ問題点有。
今はクリップボードビューアを起動し
SetClipboard()で出力ってのに落ち着きました。
206203: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はやっぱり要る。
207202: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を押せばいいじゃんって話なんだけど。
208202:2005/06/03(金) 21:43:28 ID:KGZBzx/9
>>207

>>206をちゃんとみたら,
SetConfig((List.SortReverse) $sort-reverse-last-mod(!($sort-reverse-last-mod)))
となってたんで合ってます。

ただ、1回目の動作が前回のソート状態によって変わってしまうって現象は起こるかと
209203: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)))))))
210203:2005/06/03(金) 22:41:04 ID:pGZpYqdD
上の案は昇順、降順を立て続けに計算させるので
ファイルが大量にあるディレクトリだと重たくなるかも。

動作確認時に変数の中身が見たいときは
restore-edit.giraffe使った関数を挿入して一時的にEditに表示させてます。
既存の関数をコピーして弄ってるだけなのでこの程度で足りるんだけど。
>>209もAfterExecute参考。

でもクリップボードビューア使うってのは良さそう。
これで自前で関数がガンガン書けるようになれ…。いや、無理かな。
211名無しさん@お腹いっぱい。:2005/06/03(金) 23:08:12 ID:KGZBzx/9
>>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を少し改良して使ってます。

;の後ろのオートコンプリートとかも考えてるんですが大変そうです。
212202:2005/06/03(金) 23:38:22 ID:KGZBzx/9
こんなことができたら最高なのになと思った事

・カレントディレクトリを設定できる。(cd コマンド)
・cdでカレントディレクトリを移動できる。pwdでカレントディレクトリを確認できる。
・cp, mv といったUnixライクのコマンドが使用できる(相対パス、ワイルドカードも使用可)
・1文字目を'.'にするとカレントディレクトりのファイルリスト標示
・はじめの2文字を".."にすると親ディレクトリのファイルリスト標示
・/Dir/内のコマンドにプライオリティを決められる。
オートコンプリート時にアルファベット順ではなくプライオリティ順に表示できる。
・コマンド;ファイル名 といった場合ファイル名の部分もオートコンプリートできる。
・上記の場合、コマンドによってファイルリストに標示する拡張子を設定できる。

213名無しさん@お腹いっぱい。:2005/06/03(金) 23:47:28 ID:KGZBzx/9
>>212
追加
・Migemoのようにローマ字で日本語のファイルなど絞り込める
214名無しさん@お腹いっぱい。:2005/06/03(金) 23:51:52 ID:pGZpYqdD
イベントについては doc\script.txt => 2.イベント を見るとわかると思います。

eval は引数で渡された文字列をスクリプトみなして実行するみたい。
GetEventの戻り値はGetTextのようにただの文字列として扱われるようで
eval に渡さないとスクリプトとして実行できません。
215名無しさん@お腹いっぱい。:2005/06/04(土) 00:10:19 ID:PZkWLy14
>>212
readme.txt => 設計思想
>>CUIシェルのように、実行ファイルやカレントディレクトリを中心とはしない。
>>Windowsの機能をできるだけ使う。

UNIXっぽいところもあるけど、
頑なにUNIXのしきたりを踏襲するというわけでもないみない。
DataがなくてもEditにcalcといれると電卓が起動するし、
Shell.Excute((*.exe))として引数(Directry)を渡さなくても
*.exeがあるディレクトリにそのINIファイルがちゃんと保存される。
こういうところはWindowsユーザーの方の習慣を重視してるのかも。
216名無しさん@お腹いっぱい。:2005/06/04(土) 00:24:10 ID:PYJVdGE3
>>214

ありがとうございます。
ようは、同じ名前のイベントを複数定義することができて
追加したいときはAddEventやInsertEventを使うって事なんですかね。

>>215

/Data内のコマンドを扱っているときをコマンドモード
フルパスを扱っているときをファイモードとすると
コマンドモードの時は今のままでいいと思ったんですが、
ファイラモードの場合はカレントディレクトリの概念があるといいなと感じました。

217名無しさん@お腹いっぱい。:2005/06/04(土) 00:45:49 ID:PYJVdGE3
>>216

もう少し説明すると
エクスプローラでも1度開いたフォルダはずっと開いてますが、
何かのファイルをクリックするたびにエクスプローラが終了してしまい、
よくいくフォルダはデスクトップ上にショートカットを置いてください
という仕様だったら使いづらいと思う。

ファイラモードのときにカレントディレクトを意識しないことによる
メリットがよく解らないです。
どの道、/Data/にディレクトリのショートカットを入れておけば
自由にジャンプできるんだし。

ようははじめの1文字目が'.'かどうかでコマンドモードかファイラモードを識別して
ファイラモードならカレントディレクトリの概念をサポートするのが
自然な気がします。
もちろんコマンドモードなら今のままでOKだと思います。

ランチャなんだからファイラとして使うなといわれればそれまでですが。
218名無しさん@お腹いっぱい。:2005/06/04(土) 00:55:49 ID:PYJVdGE3
>>217

さらに追加
"//"を入力すると"http://"に自動的に置き換わるんで、これを応用して
"."だったら最後に開いたディレクトリを表示するって機能がほしいということです。
”..”だったら最後に開いたディレクトリの親ディレクトリを表示できれば
と思っただけです。
厳密にカレントディレクトリという意味で無くてよい。
219名無しさん@お腹いっぱい。:2005/06/04(土) 02:31:03 ID:YBa9KPjL
>>212
プライオリティあるよ、
結構簡易なものだけど。
ctrl+alt+pでプライオリティを上げられる。
220名無しさん@お腹いっぱい。:2005/06/04(土) 02:54:49 ID:k8g12v8H
仮に最後に開いた親ディレクトリを記憶するとなると
新たにパスを展開した時点でそのパスの親ディレクトリが記憶されてしまう。
つまりこのことをCUIに例えれば
C:\abc>c:\def
と入力した瞬間に
C:\def>
と次々変わっていきそうな気がします。
スクリプトでやろうとすればできそうだけど実用的かどうか・・・。

ちょっと脱線するけど、key/c-q, key/cs-qにディレクトリ記憶のイベントがあります。
スタックの要領で複数のディレクトリを記憶できるので慣れれば便利そう。
221名無しさん@お腹いっぱい。:2005/06/04(土) 03:18:30 ID:k8g12v8H
>>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/....))) した方が早いような。
222日本代表かったぞ〜:2005/06/04(土) 05:16:51 ID:PYJVdGE3
>>219
プライオリティあったんですね。
ちょっと調べてみます。


>>221
詳しい説明、ありがとうございます。
C#のイベント処理と同じ考えですよね。

登録するとき
SetEvent(
(key/c-.)  ←ここ
(あんな処理))

AddEvent(
(key/c-.)  ←ここ
(こんな処理))

←ここの部分をイベント名として
同じ名前のイベントを複数定義することができる
と表現しました。誤解受けますね。
223名無しさん@お腹いっぱい。:2005/06/04(土) 05:19:25 ID:PYJVdGE3
>>220
ファイラモードでカレントディレクトリ機能作ってみました。

使い方:
1.Ctrl+'.' で今いるディレクトリの位置を保存
「コマンドモード」
コマンドモードのリンクファイルの場合: リンク先のディレクトリを設定
/Data, /Data2内のディレクトリ: /Data, /Data2内のディレクトリを設定
http://や適当な文字列: 無視
「ファイラモード」
今いるディレクトリの位置を設定

2.何も入力されていない状態で'.'を押す
1.で設定したディレクトリへジャンプ

結構使えると思いますが、どうですかね。
224223のソース1:2005/06/04(土) 05:21:05 ID:PYJVdGE3
var-g((mark-path) (C:))

InsertEvent(
(EditChange)
(
if(==s(GetText()(.))
(
SetText(cat($mark-path()(\)))
Move((end))
))))
225223のソース2:2005/06/04(土) 05:21:38 ID:PYJVdGE3

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() ))

))

226211:2005/06/04(土) 05:53:11 ID:PYJVdGE3
>>211

結局、ソートについては 更新時間の場合のみ >>200 で対応し
反転については、反転専用のイベントを追加することにしました。
これで、ソート方法とかに関わらずリストが表示されていれば
反転させることができます。

ソースは↓

227226のソース:2005/06/04(土) 05:54:19 ID:PYJVdGE3
>>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)
)
)
228名無しさん@お腹いっぱい。:2005/06/04(土) 15:02:40 ID:/rIXseJ+
key/c-sにBash起動が割り当てられてるのでファイラーというか
本格的にShell的なことをしたければ素直に外部ソフトを推奨しているみたい。

Giraffe+は一見ランチャを越えて何でもやってるように見えるけど
外部ソフトを起動する中継役としてのランチャーの機能と
任意のWindowsAPIへアクセスする中継役としての機能を持つ。
この中継機能の二本柱がこのソフトの特徴だと思う。

シャットダウンとかもスクリプト見ればAPI利用してるだけなのになあ。
単機能ごとにバイナリをくっつけて肥大化してるわけじゃないんだけど
判ってもらえない・・・。
229名無しさん@お腹いっぱい。:2005/06/04(土) 15:06:45 ID:/rIXseJ+
話は変わって、当初、ディレクトリを記憶というレスを見たとき
>>224 (EditChange)じゃなくて(key/\)でやるのかと思ってました。
\を押す手間をどう見るかですね。

InsertEvent(
(key/\)
(
if(
GetConfig((AutoComplete.Enable))
(
switch(
GetText()
(.) (SetText($mark-path)Move((End)))
(..) (SetText(Shell.GetDir($mark-path))Move((End))))))))
230名無しさん@お腹いっぱい。:2005/06/04(土) 19:18:07 ID:PYJVdGE3
>>229

その方法いいですね、いただきました。
そして、少し改良してみました。


InsertEvent(
(key//)
(

if(
GetConfig((AutoComplete.Enable))
(
switch(
GetText()
(.) ( SetText($mark-path) )
(..) ( SetText(Shell.GetDir($mark-path)) ))))

SetText(cat(GetText()(\)))
Move((End))
OnEditChange()
))
231名無しさん@お腹いっぱい。:2005/06/04(土) 19:36:25 ID:PYJVdGE3
>>228

sygwin の導入とかも考えたんですけど、
たとえば、他人のパソコンを使うとき、
とりあえずxyzzyとgiraffe+だけもってけば
そこそこ快適に使えるってのは、
悪くないなって思ってるんですよね。
まあ、レジストリ使わずに
単体で動くbashとかあったら使ってみたいんですけど。


そういえば
C:\aaa\bbb\ccc\ という状態から
C:\aaa\bbb\ccc\..\..\..\ と
"..\"を連続で入力できるんですね。
232名無しさん@お腹いっぱい。:2005/06/04(土) 19:43:32 ID:PYJVdGE3
>>230

再度修正しました。
下から4行目を次のように修正

SetText(cat(GetText()(\)))

if(GetText() (SetText(cat(GetText()(\)))))
233名無しさん@お腹いっぱい。:2005/06/04(土) 21:00:33 ID:uEzdBrR1
Giraffeやxyzzyに比べてCygwinは手軽に導入できないですね。
ちょっとWebを漁ってみたら単体で動くCUIソフトがありました。
UNIXを強く意識しているみたい。
アンインストールはファイルを消すだけらしい。

NYACUS
http://www.nyaos.org/index_ja.html

tcshなんて今まで触ったこともない(多分)ですが、
良さそうならc-sに割り当ててみようと思う。
234名無しさん@お腹いっぱい。:2005/06/04(土) 21:30:32 ID:PYJVdGE3
>>233

ありがとう、ございます。
giraffの設定が落ち着いたら、
今度はシェルのほうを試してみようかと思います。

bashもtcshも設定ファイルの書き方が少し違うだけで
できることは大して変わらなかったと思います。
235名無しさん@お腹いっぱい。:2005/06/04(土) 21:37:22 ID:PYJVdGE3
>>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((\))) )
))

236名無しさん@お腹いっぱい。:2005/06/04(土) 21:40:35 ID:PYJVdGE3
>>235

"....../" のように'.'をたくさん打って'/'を押しても'\'が表示されない、
GetText() は "......"の場合falseになるんだろうか?
文字列はサイズが0だとfalseとscript.txtに書いてあったんだが。
まあ、"....../"なんてのは明らかにミスタイプなんで、
今のままで一向に構わないのだが、
予期したとおりに動かないのは少し不安になる。
237名無しさん@お腹いっぱい。:2005/06/05(日) 00:36:59 ID:z2+tgZhG
GetText()の戻り値は文字列だから原因はほかにあるんでない?
以下、GetText()を使わないテスト

if( (aaa) ( SetText((true)) ))
これはtrueと表示される。

if( (...) ( SetText((true)) ))
しかし、これはtrueと表示されない。

ちなみにこの場合もだめ
while( ((...)) ( SetText((true)) return() ))
238名無しさん@お腹いっぱい。:2005/06/05(日) 10:09:47 ID:Ek8nSIQF
doc/script.txtより
|bool値の表現ですが、値が数値であるか文字列であるかを自動的に判断し、
|文字列である場合は文字数が0の場合をfalseに、
中略
|数値かどうかの判断法は、表記された進数に使われない文字が存在するかどうかです。
|例えば、0xで始まるのにG以上の文字がある場合、それは文字列として扱われます。

値の型すら無い言語だった頃の名残で、
値の型が文字列だった場合は改めて数値かどうかを判断するみたい。
んで、(...)はたぶん小数点が連続してる感じのゼロなんだと思う。

これはfalse
SetText(if((000) ((true)) ((false)))
これはtrue
SetText(if((001) ((true)) ((false)))
239名無しさん@お腹いっぱい。:2005/06/05(日) 10:26:28 ID:egsQK0Si
>>237

len((...)) を調べると3でした。
ですが、(...) は false と判定されるようですね。
バグかな?

そういえば、VC++6.0で簡単な関数のみのDLL作ったら、普通に動きました。
ちょっと感動。
文字列編集とか絡んでくると、
GiraffePlugInSDK を使わないといけない感じですが、
引数だけ送って戻り値はBoolでいいというような場合
DLLで対応するのが楽そうです。

ちょうど、rubyでcの関数使いたいなと思っていたんで、
DLLを勉強するいい機会かも。
240名無しさん@お腹いっぱい。:2005/06/05(日) 10:48:06 ID:egsQK0Si
>>238

リロードしてなかったんで見逃してました。
私も試してみましたが、
たぶん判定の時だけ小数点と勘違いしてdoubleの0.0扱いになっているというので間違いなさそうですね。
241240:2005/06/07(火) 20:08:15 ID:ohaJFVrd
一通り設定終了しました。
お相手して下さった方、ありがとうございました。
242名無しさん@お腹いっぱい。:2005/06/08(水) 17:22:18 ID:kdVqHdrl
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))
243名無しさん@お腹いっぱい。:2005/06/08(水) 17:22:34 ID:kdVqHdrl
上のつづき

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))
244名無しさん@お腹いっぱい。:2005/06/14(火) 01:30:20 ID:Q2eUfFc6
version0.4.3.2

早速DebugViewを導入しよう。
245名無しさん@お腹いっぱい。:2005/06/20(月) 13:39:37 ID:8P2I52/K0
暑い。。。

age
246名無しさん@お腹いっぱい。:2005/06/20(月) 16:38:06 ID:Ms5mBqlS0
>>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::: 参照
247名無しさん@お腹いっぱい。:2005/06/20(月) 16:38:48 ID:Ms5mBqlS0
>>246のソース1/5

(コマンド実行)
var((execute))
var((command))
var((target) GetParamPart(GetText() (Target)))
var((datapath) GetDataPath($target()))
var((linkpath) GetNormalFile($target))

unless( GetText()
( $execute(-1) ))
248名無しさん@お腹いっぱい。:2005/06/20(月) 16:39:07 ID:Ms5mBqlS0
>>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) ))))
249名無しさん@お腹いっぱい。:2005/06/20(月) 16:39:32 ID:Ms5mBqlS0
>>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) ))))
250名無しさん@お腹いっぱい。:2005/06/20(月) 16:39:50 ID:Ms5mBqlS0
>>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)))))))))))
251名無しさん@お腹いっぱい。:2005/06/20(月) 16:40:10 ID:Ms5mBqlS0
>>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((\)))
252名無しさん@お腹いっぱい。:2005/06/20(月) 17:10:50 ID:Ms5mBqlS0
>>223-225, >>229-232も修正(カレントディレクトリモード)

ごちゃごちゃしてるので再整理

【修正理由】
//をhttp://に自動変換する機能に支障があったため

【使い方】
・c-.でカレントディレクトリ設定
(リンク先がある場合はリンク先のディレクトリが設定される)
・./ で設定したカレントディレクトリへジャンプ
・../ で設定したカレントディレクトリの親ディレクトリへジャンプ
・デフォルトのディレクトリはvar-g((mark-path) (C:))を修正のこと
253名無しさん@お腹いっぱい。:2005/06/20(月) 17:11:37 ID:Ms5mBqlS0
>>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((\))) ))))
254名無しさん@お腹いっぱい。:2005/06/20(月) 17:12:11 ID:Ms5mBqlS0
>>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() ))))
255名無しさん@お腹いっぱい。:2005/06/20(月) 19:04:41 ID:Ms5mBqlS0
>>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((\))) ))))
256名無しさん@お腹いっぱい。:2005/06/20(月) 19:36:37 ID:Ms5mBqlS0
>>255
もし、リストが表示されなかったら
最後の行にreturnを追加してみてください。

( Move((End)) Window.SendMessage(Window.GetFocus() WM_CHAR() CharToCode((\))) return))))
257名無しさん@お腹いっぱい。:2005/06/20(月) 20:01:54 ID:Ms5mBqlS0
>>255

>>242のAfterTextChangePlusを使いたい場合は
(../) ( SetText(Shell.GetDir($mark-path)) if(GetText()($chdir(1)))))))
の行を
(../) ( SetText($mark-path) if(GetText()(Move((End)) AfterTextChangePlus() return) )))
と置き換えてください。

>>242
便利に使わせてもらってます。感謝
258名無しさん@お腹いっぱい。:2005/06/21(火) 01:37:55 ID:h3A8w2tN0
タスクバーがデスクトップ左端以外の位置にある環境で

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じゃないのかなあ。
259名無しさん@お腹いっぱい。:2005/06/21(火) 03:13:52 ID:A8EKKEHd0
>>258
構造体のメンバの関数の戻り値はgetnの戻り値だからuintで、
比較演算関数は右辺がdoubleやfloatで無い場合は、
左辺の引数の型に右辺の引数を変換して比較するから、そうなってたみたい。

ややこしいから左右の型が違う場合は全部doubleになるように今修正しといた。
260名無しさん@お腹いっぱい。:2005/06/21(火) 19:53:59 ID:/KMVMk0O0
258から2時間も経ってないじゃなですか。早いなあ。
261名無しさん@お腹いっぱい。:2005/06/22(水) 02:20:41 ID:DYGbRuR00
パスの\はイヤだが2バイト文字などは表示したい人限定。
パス区切りに/を使ったときのエラー、アイコン非表示を回避。

array:collect() の
$element(each-func($element))))

$element(replace(each-func($element)(/)(\)))))
に書き換え。

(GetIcon) の
param(0))

replace(param(0)(/)(\)))
に書き換える。
262名無しさん@お腹いっぱい。:2005/06/23(木) 11:07:25 ID:g/iacG560
ずらっとスクリプトが出てるけど、カスタマイズすると結局どういう機能がついたんだ。
それと、その結果は使いやすいの?Giraffeは使うとどういうメリットがあるの?
スクリプトでカスタマイズしたときの動作は軽い?

とか親切に聞いてみる。
263名無しさん@お腹いっぱい。:2005/06/23(木) 22:02:19 ID:rIQzraYK0
>>262
あなたは使わないほうがいいかも。
というか、別に親切でもないし(w
264名無しさん@お腹いっぱい。:2005/06/23(木) 22:56:02 ID:tn63RbA3P
だれかまとめサイト作って
265名無しさん@お腹いっぱい。:2005/06/24(金) 03:38:42 ID:1xg1bpSU0
相当親切でしょ
266名無しさん@お腹いっぱい。:2005/06/24(金) 05:22:57 ID:dvWCs0Cy0
>>264
あなたが作ればいいのでは?
267名無しさん@お腹いっぱい。:2005/06/24(金) 13:17:09 ID:7rHE/2yV0
>>263
激しく同意

>>262
>結局どういう機能がついたんだ
機能の説明は書かれてるんでよく読みましょう
そして、実際に使ってみて動作を確認してみましょう。
それでもわからなかったらもっと具体的な質問をしましょう。
>その結果は使いやすいの?
あんたはどう感じるかわからんが、自分にとっては使いやすい。
>Giraffeは使うとどういうメリットがあるの?
細かいとこまでカスタマイズできる。DLLで機能追加も出来る。
>スクリプトでカスタマイズしたときの動作は軽い?
10年以上前のPCにたくさんのソフトを起動して実行したら重かったかな。
あんたの環境で実行して、あんたが軽いと感じるかなんてことは私にわかるはずがない。

と親切に回答してみる。
こんな質問を親切な質問とか言って恥ずかしくない?
親切な質問とは、回答してくれる人が答えやすい質問をすることだと思うぞ。
せめて、抽象的な質問と具体的な質問くらいは理解しといたほうがいいぞ。
268名無しさん@お腹いっぱい。:2005/06/24(金) 20:59:53 ID:08iYNYZg0
質問者は以下の4点をクリアしてないと答えるのは難しいよ。

最低Readme.txtは目を通す。
実際に使ってみて判らない箇所を絞り込む。
うろ覚えで良いから構造化言語をひとつは知っている。
いろんなランチャーを試してきた。
269名無しさん@お腹いっぱい。:2005/06/25(土) 02:41:17 ID:2CKsDvoZP
スタートアップの変わりに使える?
270名無しさん@お腹いっぱい。:2005/06/25(土) 11:43:26 ID:/tGw/enZ0
>>269
出来るけど、
普通にスタートアップじゃ駄目なの?
271名無しさん@お腹いっぱい。:2005/06/25(土) 14:54:59 ID:NowkIQJs0
0.4.3.4 age
272名無しさん@お腹いっぱい。:2005/06/26(日) 13:50:34 ID:+dDkWIlx0
まとめサイトとまで行かなくてもこれまで書き込まれたスクリプトを
整形して並べたページくらいあった方が良いだろうか?
273名無しさん@お腹いっぱい。:2005/06/27(月) 10:10:31 ID:4FKYWz1m0
>>272
絶対良い。WikiでもまとめサイトでもFAQでもせめて2chスレのテンプレでも
ココぱっと見たら何やってるのかわからんよ。

>>267
無駄に挑発的なのが頭の悪さが露出してアレだけど
折角親切に解答してるんだか、もうちょっと考えて
テンプレ風味にしたらどうだ。2chは第三者が見て良くなるように書かないと駄目なんだよ。
274267:2005/06/27(月) 12:33:45 ID:BHRwICtp0
>>273

ちなみに、>>267
>>262に対する皮肉や一般常識を>>262でもわかるだろう?というレベルで書いたもので、
それを本気で親切な回答と受け取ってもらっては困る。
まあ、批判だけじゃ可愛そうだから一般常識に対するアドバイスや、
くだらない質問は書き込むなというオーラをこめたつもりだったけど。
>>269の質問や>>273の反応を見て全てが無駄だったということは理解した。

まあ、私の頭が悪いということは昔から自覚していることだが、
他人を馬鹿にする時は、せめて誤字脱字には注意したほうが良いと思う。
説得力がなくなるから。(これも一般常識のアドバイス)

それにしても、本来なら無視すべき質問までテンプレ風に回答しないと駄目というのは
はじめて知りました。(今後は無視することにします。)
これ以上は荒れそうだしスレ違いになるんでコメント控えます。
275267: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"
276名無しさん@お腹いっぱい。:2005/06/27(月) 18:35:28 ID:Tn9XwifO0
作ってみました。
今のとこスクリプトを見やすくしただけです。
ttp://www.geocities.jp/giraffeplus/

スクリプトをオリジナルから改変した基準
・統一感を出すためなるべくDefaultのフォーマットに合わせた
・なんか行数を切り詰めてる感じがするので改行、変数を足した
・siteinit.giraffeに追加しやすい方が便利かな
277名無しさん@お腹いっぱい。:2005/06/27(月) 19:14:09 ID:8znRQ1ay0
278名無しさん@お腹いっぱい。:2005/06/28(火) 15:05:15 ID:BfEH9LjM0
ListBoxが表示されていない時に
Up or Downキーを押すと履歴のリストボックス表示

下記もあわせて設定すると良い
[congig]
General.HistoryCount
AutoResize.ByListboxText
279278: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))
280278: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()) )
281278: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())) )
282278: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]の設定が無視される。
283278:2005/06/28(火) 15:12:45 ID:BfEH9LjM0
【履歴ちょっと上級編3】
giraffeの履歴はログに近い感じがするが、私は履歴も結構使うので
重複履歴の登録は避けたいと思い簡単なDLLを作成。
しかし,AddHistoryはfuncでもfunc-gでもないらしくオーバーライドの出来なかった。
取り合えずばBeforeExecuteをオーバーライドすることで対応
しかし、AddHistoryはBeforeExecute以外からも呼ばれてたりする。
同様なDLLを作成する方は参考に。
284名無しさん@お腹いっぱい。:2005/06/29(水) 23:40:29 ID:bkIZwzyX0
>>276
更新、乙です。

一言コメントです。
Execute(),SelectListItemDown(),SelectListItemUp()
の3つですが、/Script/settings/key/にあるものの改良なので
SetEventやsiteinit.giraffeを使わなくても
/Script2/settings/key/に置くだけでオーバーライド出来ます。
(この場合ファイル名が異なるとデフォルトのものが使われる)
現状でも全く問題ないと思いますが、参考までに。
285名無しさん@お腹いっぱい。:2005/06/30(木) 00:13:46 ID:frdQDQ0b0
大改造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)
としてください。

なんか、変更多くて申し訳ないです…。
286名無しさん@お腹いっぱい。:2005/06/30(木) 00:18:31 ID:C4I9kAhG0
>>284
ども。そのようですね。
旧バージョンでは作者推奨のオーバーライドは
siteinit.giraffeに追加だったのですが、今はどうなんでしょうね。
単に[F5]からスクリプトを編集するとScriptディレクトリにあるものが
書き換わってしまうようだし。

どの方法でも全くかまわないのなら、コメントしてもらった
オーバーライドの方法もあわせて紹介したほうが親切かな。
ちょっと悩ましいところです。
287名無しさん@お腹いっぱい。:2005/06/30(木) 00:37:31 ID:frdQDQ0b0
>>286

>単に[F5]からスクリプトを編集するとScriptディレクトリにあるものが
>書き換わってしまうようだし。
Ver. 0.4.3.4 ですが
F5で右クリック、コンテキストメニューで"Edit This Script"を選択して編集すると
ちゃんとScript2が対象になりましたけど、この方法じゃなくてですか?

まあ、作者推奨の方法が一番良いと思うので、
現状のままで問題ないような気がします。
288名無しさん@お腹いっぱい。:2005/06/30(木) 00:47:42 ID:frdQDQ0b0
/Script2/settings/key/に適当な名前のスクリプトを置いて
Setting.ini の[key] で設定したら普通に使えて、[F5]でも見られた。
ちょっと感動。
289名無しさん@お腹いっぱい。:2005/06/30(木) 01:56:40 ID:C4I9kAhG0
>>287
すみません、うっかりしてました。
事前にScript2にScriptのファイルをコピー済みだと変わるんですね。

どうやら、最もスマートな方法は
既存キーイベントは>>284のような方法を取る。
新規キーイベントは>>288のような方法を取る。
関数などの追加、編集にはsiteinit.giraffeなのかなあと思えてきます。

ただ、イベントと関数が密接に絡まってるカスタマイズのケースを考えると、
スクリプトを試しに使う→気に入らなかったら簡単削除
を考えると、いきなり別ファイルにバラバラに導入するのもどうなのかなあ、と。

でもSetEvent()決め打ちで紹介するのも問題があるような気がしてきたので、
この辺は近いうちになんとか改めたいと思います。
290名無しさん@お腹いっぱい。:2005/06/30(木) 10:05:47 ID:frdQDQ0b0
>>289
スクリプト変更したら、[F5]又はトレイアイコンを右クリック[Reload Setting]が良いかと。
>>284,>>288は気に入ったものを長期で使う時に使うといいのかな?という気もする。
291名無しさん@お腹いっぱい。:2005/06/30(木) 10:06:55 ID:frdQDQ0b0
>>290
↑[F5]じゃなくて[F2]
292名無しさん@お腹いっぱい。:2005/07/01(金) 07:36:40 ID:21McpAXHP
>>270
立ち上げる順番変えるとか、タイムラグとかつけたいの
293名無しさん@お腹いっぱい。:2005/07/01(金) 08:24:36 ID:U0SKHfjx0
>>292
そのてのツールならたくさんあるので、
専用のツールを使ったほうが幸せになれるかと。
ttp://computers.yahoo.co.jp/download/vector/win/util/restart/startup/
294名無しさん@お腹いっぱい。:2005/07/01(金) 18:19:17 ID:fyzepBqk0
どういう風に使うとGiraffe+で幸せになれるんだ?
295名無しさん@お腹いっぱい。:2005/07/01(金) 19:00:10 ID:Fu7XkOwD0
あえてGiraffe+で簡単にやりたいというなら
Script2\siteinit.giraffeにShell.Execute()とsleep()を使って設定する。
だが、[F2]で設定の再読み込みをする場合が問題になる。
例えば常駐する上、二重起動するソフトとかはまずい。
また、頻繁にスクリプトを編集する場合もPCに余計な負荷がかかる。

だから、確実さを追求するなら>>293の方法が一番だと思う。
296名無しさん@お腹いっぱい。:2005/07/02(土) 02:15:01 ID:q0cBt0zRP
スクリプトをダブルクリックしたら、ジラフで実行とかしてくれないの?
297名無しさん@お腹いっぱい。:2005/07/02(土) 02:56:45 ID:tQzQBuup0
うーん、ただのコマンドランチャじゃなくて、カスタマイズできるという特徴があるって事だけど
結局カスタマイズされても唯のコマンドランチャな気が、うわ、何をするやm(ry
298名無しさん@お腹いっぱい。:2005/07/02(土) 19:22:14 ID:q0cBt0zRP
「ジラフ、初めてのスクリプト」とかってページない?
299名無しさん@お腹いっぱい。:2005/07/02(土) 21:01:25 ID:RaHdiY7Z0
>>296
Giraffe+は確かにスクリプトがあつかえるんだけど、
その主な目的はランチャーの動作を変えるためであって、
シェルスクリプトのような使われ方とはちと違う。

>>297
ホットキーランチャでもあります。・・・マジメに答えてすみません。

>>298
初めてGiraffe+でスクリプトやる場合、既存のスクリプトをコピペして
それをちょこっとずつ編集しながら慣れた方がいいんじゃないかな。
目的はカスタマイズであって、ゼロからアプリを作るわけじゃないからね。
300名無しさん@お腹いっぱい。:2005/07/02(土) 21:19:58 ID:0Ub7hDzD0
>>295
二重起動はWindow.FindとかWindow.FindWildを使えば防止できそう。

>>296 >>299

script.txtの3.外部からのスクリプトの実行を参照。
これと拡張子の関連付けを使えば簡単に実現できる。

ただ、siteinit.giraffeとかもダブルクリックで実行できてしまうというのには問題ありかもしれない。
301名無しさん@お腹いっぱい。:2005/07/02(土) 22:38:15 ID:0Ub7hDzD0
>>300
2種類の拡張子(例えば.giraff と .giraf) をスクリプトファイルとして認識。
.giraff を起動時に読み込まれるスクリプトやSetEventを定義するスクリプトで使用。
.giraf 拡張子の関連付けも行いたいスクリプトで使用。
なんて仕様はどうでしょう。>作者殿
302名無しさん@お腹いっぱい。:2005/07/02(土) 22:44:20 ID:q0cBt0zRP
今使ってるスタートアップアプリが妙なエラーを出すので、giraffできれば良いなと思った次第です
303名無しさん@お腹いっぱい。:2005/07/03(日) 00:09:38 ID:neDFwrxw0
>>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)) ))
304名無しさん@お腹いっぱい。:2005/07/03(日) 00:36:17 ID:kQBks/X20
>>301
Giraffe+にどこまで機能を取り込むか、微妙な問題なんだよな。

   Windowsの機能をできるだけ使う。
   他のプログラムとの連携も無意識にできる。
   せっかくあるんだから利用すべき、とも考える。

要望するならなぜ関連付けをGiraffe+スクリプトが考慮しなければ
ならないか積極的な理由も添えたほうが良いんじゃないだろうか。
305名無しさん@お腹いっぱい。:2005/07/03(日) 00:50:10 ID:neDFwrxw0
>>301
自己レス。
ためしに.girafの拡張子に関連付けて
/Dataに置いたらgiraffからでも普通に使えた。
siteinit.giraffeからはeval-f()で読み込めばよい。
306名無しさん@お腹いっぱい。:2005/07/03(日) 00:55:10 ID:neDFwrxw0
>>304
どうもです。
要望するまでもなく、簡単に実現できました…。
307名無しさん@お腹いっぱい。:2005/07/03(日) 07:18:32 ID:neDFwrxw0
ResetList()
AddListItem((Test))
SetListCurSel(0)
SetListCurSel(0)
SetListCurSel(0)

これを実行するとコマンドボックスはTestなのに

ResetList()
AddListItem((Test;))
SetListCurSel(0)
SetListCurSel(0)
SetListCurSel(0)

こっちを実行するとTest;;;と;が増殖するのは何でなろう??
Up/Downキーを押すたびに;が増えていく・・・
308名無しさん@お腹いっぱい。:2005/07/03(日) 08:26:57 ID:neDFwrxw0
>>307
どうやらGiraffe.ListIsHistory()がfalseの時に、この症状が起こるようだ。
309名無しさん@お腹いっぱい。:2005/07/03(日) 09:20:02 ID:JSg1rrTt0
コマンドライン引数の変化無しにリストのアイテムを選べるようになってるからさ。
SetText((;param))
ResetList()
AddListItem((Test))
SetListCurSel(0)
ってやるとテキストが"Test;param"になるわけさ。
310名無しさん@お腹いっぱい。:2005/07/03(日) 12:50:51 ID:tP29pgFC0
なる。
ターゲットが変わっただけで、パラメータが消えたりすると面倒だもんなあ。
311名無しさん@お腹いっぱい。:2005/07/03(日) 18:03:32 ID:neDFwrxw0
>>309
ごめん、聞き方がわるかったのかな?
コマンドボックスが;で始まってたらそれを後ろに付けてくれるってのはまあいいとして。
SetText((;aaa))
ResetList()
AddListItem((Test;bbb))
ShowList(1)
SetListCurSel(0)
SetListCurSel(0)
SetListCurSel(0)
これを実行した時に
Test;bbb;bbb;bbb;aaa と ;bbbが増殖するのが気になたわけです。
312名無しさん@お腹いっぱい。:2005/07/03(日) 18:13:45 ID:neDFwrxw0
>>311に補足
AddListItem((Test;bbb)) の下に
AddListItem((Test;ccc)) を追加して
実行後、Up/Downキーを押してみてくれ。
313名無しさん@お腹いっぱい。:2005/07/03(日) 23:40:02 ID:Zmb8/EJ70
>>312
これは・・・リストの状態が履歴なのに、
AddListItem()で履歴ではないものを加えたから?
そのせいで矛盾が生じたのではないだろうか。

履歴を配列に蓄えて編集した上でリストに再配置とかじゃだめなのかなあ。
履歴を強制的に書き換えないといけない理由があるのだろうか?
314名無しさん@お腹いっぱい。:2005/07/03(日) 23:55:02 ID:Zmb8/EJ70
Test;aaa
Test;bbb
Test;ccc

のように入力したファイルを作成してa-vでも同じ症状が出るな。
315名無しさん@お腹いっぱい。:2005/07/04(月) 00:00:35 ID:neDFwrxw0
>>313
>履歴を配列に蓄えて編集した上でリストに再配置とかじゃだめなのかなあ。
そうしてるよ。ようは自分で独自のリストを登録する場合、
登録するリストに;をつけたら上下キーを押したら駄目ってこと。

やってることは、いったん履歴リストを配列に保存して
コマンドボックスにaと入力したら、
aから始まる履歴のみをリストボックスに再登録してる。
同様にabと入力したらabで始まるものをリストに登録。
そして、数が絞り込まれたら上下キーで選択したり、
パラメータを変更したりしたい。
もう、SetListCurSel()を自作して解決した。
316名無しさん@お腹いっぱい。:2005/07/04(月) 20:12:34 ID:9XlPb4g/0
>>315
todo.txtのユーザーインターフェイスの仕様について書いてあること
そのものじゃないか。
317名無しさん@お腹いっぱい。:2005/07/04(月) 21:01:32 ID:m4QbVr4n0
>>316
ごめん、このレスよくわかりません
主題はあくまでSetListCurSel()の動作についてだったのですが、
質問と回答がかみ合わずにどんどんそれていって
何をどうやろうとしてSetListCurSel()が問題になったのかを説明してるだけなのですが…。
それにTodoにあるよう標準で履歴の絞りこみが出来ないから
しかたなく自分で機能を追加したのですが、
何か問題ありますか?

なんか、質問と回答がかみ合わないし、
最近敵を増やしたように感じるのでこのスレから退却します。
この1ヶ月、情報か少ないからこそ
かなりの情報とスクリプトを提供したつもりでしたが、
ご理解いただけず残念です。
318名無しさん@お腹いっぱい。:2005/07/04(月) 22:40:26 ID:UBtU0fk20
通じてないわけじゃなくて、バグか仕様かという、感覚の違いなんでしょう、たぶん。
319316:2005/07/04(月) 23:55:53 ID:9XlPb4g/0
>>317

残念です。
私に理解がないというのは、ため口で意見を述べたことも含むのでしょうか?
賛意や感謝の表し方も足らなかったのでしょうか?
反論が出た程度であなたが消えるべきと思う人はいないと思います。

以下、言い訳。

過去のレスで付属のドキュメントも読まずにGiraffe+の存在意義を疑うレスが相次いだ。
それで神経質になってたのは確か。
とりあえずため口使わない相手にため口で反論書くのは控えようと思う。
320名無しさん@お腹いっぱい。:2005/07/05(火) 16:13:09 ID:fwyqyuVn0
>>319
いやいや、別にあなたが悪いわけではないので気にしないでください。

単に、2chだと行数減らすために、説明不足になって相手にうまく伝わらない。
その結果、ちぐはぐなコメントのやり取りになるのなら、
書かないほうがいいのかなと思ったしだいです。
もともと、文章を書くのは苦手ですし、
私の情報が第三者に役に立っているのかもちょっと疑問に感じてましたので。
まあ、いろいろ重なった結果というやつです。
321名無しさん@お腹いっぱい。:2005/07/05(火) 19:44:52 ID:k1wHmsVz0
version 0.4.4.0

早いな。todoで既出だったとは言え、
なんか作者をスレの流れに付き合わせてしまった気が。
今回は特に作者さんにお疲れと言いたい。
322名無しさん@お腹いっぱい。:2005/07/06(水) 18:08:25 ID:g9EMqERW0
作者の中の人はこのスレ熱心に見てるみたいだし、レスもかなり答えてみたいだよ。
反応があからさまなので結構意識して私もレスしてる。
323名無しさん@お腹いっぱい。:2005/07/06(水) 18:18:49 ID:g9EMqERW0
個人的な要望なら、選択肢を視覚的に選べたりするような軽いけど
視覚的に補助される機能が使いやすいといいなぁと
そういう面がないと普通にDOSでもCygwinでもいいというか
むしろその方が色々できて使いやすいし
324名無しさん@お腹いっぱい。:2005/07/06(水) 23:07:23 ID:0UpfBK840
>>323
メニュー型かボタン型ランチャーとか使ってみたら?
それとCUIシェルを併用すればいいじゃん。
325名無しさん@お腹いっぱい。:2005/07/06(水) 23:23:19 ID:0UpfBK840
作者は見ているみたいだけどレスはあまりしてないと思う。
ここ最近のレスは319と320で占められてるんじゃね?
326名無しさん@お腹いっぱい。:2005/07/07(木) 03:27:54 ID:uAB2XbJ/0
>>324
今はそうしてますよ。しかしCUIシェルは画面の場所をとりすぎて同時に作業したいときとか不向きだし
視覚的な支援が薄いとファイル名前とか忘れてて行為自体を思いつかなかったりと不便な面もあるので
スクリプト付いていたりするコマンド型のランチャには割と期待してたり

>>325
そうかもしれないけど、個人的な感じでは相当作者っぽいんじゃないかおt
かなり信者っぽく擁護してる人が居るので、作者じゃないと不思議なほど心酔してる感じだと思う。
この手のツール好きな人って結構オンラインソフト使い込んでて比較してる人が多いと思うんだよね
蔵スレでも月光スレでもランチャスレは色々他のランチャの挙動とか可能か比較しあっているしね
327名無しさん@お腹いっぱい。:2005/07/07(木) 07:38:36 ID:8a5BBnH90
>>326
320だが、325が正しいと思う。
作者のコメントは全体通して10個もないんじゃない?
作者はコメントの代わりバージョンアップとそれに付随するドキュメントで対応してくれてる。
ちなみに私のコメントは>>182からで、半分位が私のコメントだと思う。

まあ信者と思われてもしかたないが、他のランチャソフトはシーエルくらいしか使ったことはないし、
まだ使い始めて1ヶ月位なので、やっと愛着が沸いてきた程度なので信者のつもりはない。
ただあまりに情報が少なかったので、
メモ書き程度でもできるだけ情報を残すようにしていただけです。
その反応で新たなアイデアや作者へのフィードバックにもなると思っていたので。

それにGiraffe+はまだ発展途上で、ある程度コンピュータの知識があり、
人柱的に使っても良いとう人でないと、とても人にはお勧めできないと感じてるし。
ちなみに私のsiteinit.giraffeは400行超えで、それ以外でも20個近くの関数オーバーライドして
やっと満足いくレベルになった。ここまで苦労するとは思っていなかったが…。
書き込み控えるつもりだったのに…。
328名無しさん@お腹いっぱい。:2005/07/08(金) 14:45:27 ID:hImjYgGT0
>>326
今使ってるランチャの視覚効果ってどんなの?
329名無しさん@お腹いっぱい。:2005/07/08(金) 17:47:32 ID:2TzhhgwR0
MADとかMpg123の超軽量フロントエンドとかで使いたいけど出来そうですか?
330319:2005/07/08(金) 18:22:02 ID:7OAkW1CD0
>>326
信者、ですか。ちょっと耳が痛いです。

それでは、比較するんなら具体的に機能ごとに比較しては?
以前、Giraffe+でもbluwindみたいにスキップマッチングしたいという
レスがあって、それを実現するスクリプトが挙がってました。

それに対して、>>323はさすがに抽象的過ぎないですか。
スクリプトでできるものなのかもわからないし、
これで作者にどうにかしろって言うのは酷だと思います。

スクリプトが使えるのに、スクリプトでどうかにしようとする過程が
抜け落ちたまま要望してないだろうか?と自問自答してしまいます。

ちなみにエディットで * といれればリストにコマンドが全て表示されます。
331名無しさん@お腹いっぱい。:2005/07/08(金) 23:49:45 ID:9t/wjBKz0
<コマンドの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)))))
332名無しさん@お腹いっぱい。:2005/07/08(金) 23:50:12 ID:9t/wjBKz0
その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)))
333名無しさん@お腹いっぱい。:2005/07/09(土) 16:03:16 ID:sg/KvODeP
敷居が高くて入れないよ

ってのがほとんどの人ではないかと

そんな俺は玄関で留まっている・・
334名無しさん@お腹いっぱい。:2005/07/12(火) 02:31:58 ID:LMfc7aQi0
知らない言語を使わなければいけない上に、特別便利という部分が見当たらない
そんな俺も玄関で留まってる。
335名無しさん@お腹いっぱい。:2005/07/12(火) 07:49:43 ID:q8SAZ82O0
AfterTextChangePlus使用時
カーソル位置が戻りすぎと感じる人用
C:\hoge\aaまで入力し
key/cs-backslash、key/a-leftで戻る時
カーソル位置がC:\まで戻るのではなくC:\hoge\に戻る。
336名無しさん@お腹いっぱい。:2005/07/12(火) 07:50:45 ID:q8SAZ82O0
>>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) )
)
))
337名無しさん@お腹いっぱい。:2005/07/12(火) 07:59:26 ID:q8SAZ82O0
a-vでファイルの中身を見る時1行目にファイル名を表示したい。
利点:そのファイルが置かれているディレクトリへ戻ることが出来る。

\Script\settings\key\ViewFileInGiraffe.giraffe
\Script\view-file-in-list.giraffe
をオーバーライド
338名無しさん@お腹いっぱい。:2005/07/12(火) 08:00:18 ID:q8SAZ82O0
>>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)
339名無しさん@お腹いっぱい。:2005/07/12(火) 08:02:09 ID:q8SAZ82O0
>>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)))
340名無しさん@お腹いっぱい。:2005/07/12(火) 08:03:15 ID:q8SAZ82O0
>>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())))
341名無しさん@お腹いっぱい。:2005/07/12(火) 08:07:39 ID:q8SAZ82O0
リストボックスでマークされているものをテキストとしてクリップボードへコピー
選択されていなければエディットボックスの内容をコピー

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)
))
))
))
342名無しさん@お腹いっぱい。:2005/07/12(火) 08:13:47 ID:q8SAZ82O0
リストボックス内を検索
c-s :ダイアログで検索
F3 :次を検索
s-F3 :前を検索

var-g((search-word))

SetEvent(
(key/c-s)
(
$search-word(NormalGetInput((Search Word)(Search)$search-word()))
ListBoxSearchNext()
))
343名無しさん@お腹いっぱい。:2005/07/12(火) 08:14:19 ID:q8SAZ82O0
>>342

SetEvent(
(key/F3)
(
ListBoxSearchNext()
))

SetEvent(
(key/s-F3)
(
ListBoxSearchPrev()
))
344名無しさん@お腹いっぱい。:2005/07/12(火) 08:15:01 ID:q8SAZ82O0
>>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()
))
))
))
345名無しさん@お腹いっぱい。:2005/07/12(火) 08:15:36 ID:q8SAZ82O0
>>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()
))
))
))
346名無しさん@お腹いっぱい。:2005/07/12(火) 16:28:44 ID:hij19gPVP
http://wiki.livedoor.com/
ここにgiraffeのページ作ってよ
347名無しさん@お腹いっぱい。:2005/07/12(火) 18:44:58 ID:BnRNlipj0
>>335>>345
大量乙です。

>>338の$operation-mode((view))
はこのままだとエラーになるので多分省いても良いっぽい。

>>335>>337の利点は使ってみて直感的にわかる。
>>342はやはりファイル内容をリストに表示したときのためだろうか。
細かいことであんまり穿って考えるのもアレだとは思ったが、
$operation-mode((view))
を見て未投稿のスクリプトでmode:enter()系のようなことをしてるのだろか
とつらつら想像したりした。
348名無しさん@お腹いっぱい。:2005/07/12(火) 19:15:15 ID:q8SAZ82O0
>>347
$operation-mode((view))は取ってOKです。

これは、
view : a-vでファイルの内容を表示中
url : url.txt にurlの羅列を書き込み//で補完したとき、url.txtの内容をリストに表示
path: カレントディレクトリモードの履歴対応版
などなど、いろいろなモードによって
同じキーを押した時でも処理をかえたり、
そのモードでしか使えないキーを設定したりしてるためです。
とったつもりが残っていたようです。

>>432
テキスト内のコピペをよく行うので、
a-vでファイルを開き、>>342でその場所へジャンプ、
>>341でコピーって感じで使ってます。
高機能ではないので、利便性よりスクリプトのサンプルとしての意味合いが強いかも。
349名無しさん@お腹いっぱい。:2005/07/12(火) 20:44:45 ID:8TG5khqs0
そういう使い方もあるのか。
アイデア次第で使い勝手が相当違ってきそうだ・・・。
何でもそうなんだろうけど。
350名無しさん@お腹いっぱい。:2005/08/12(金) 23:45:14 ID:WW5pii8q0
右手age
351名無しさん@お腹いっぱい。:2005/08/15(月) 17:47:32 ID:MqtYKXcl0
そういえばこのスレにとっては朗報があるね。
窓使いの憂鬱がXPでも使えるようになったくさい。勿論以前のバージョンを使えばNT系以外でも使えるみたいだし。
今までこのソフトがいいなぁと思っていても窓使えなくて困ってた人とかは機能がフルに使えるようになってるかもよ。
352名無しさん@お腹いっぱい。:2005/08/16(火) 02:20:53 ID:XbMndrEC0
>>330
その肝心のスクリプトが変な言語だし、そのままじゃなんか微妙できること少なそうで、せめてJavaScriptでもPerlでも何でもいい
からも少しメジャーなのだったらなぁ。コンセプトとか繭つかってとかそういうのは凄く魅力的なだけに
誰か自分には出来ないくらいの、いいスクリプト書いてくれないかなぁ
とかDLL作ってくれないかなぁと指をくわえてみてるユーザが多いんじゃないかと思う。私みたいに・・・。
353名無しさん@お腹いっぱい。:2005/08/16(火) 17:41:35 ID:9TManDJ30
>>351
数年前からXP上でも使えてたと思うけど・・・
最近の葉Giraffeとの連携が強化されたってこと???
よく分からないので説明してくれるとありがたい
354名無しさん@お腹いっぱい。:2005/08/17(水) 02:37:21 ID:31kzr+sO0
>>353
数年前にでていた繭のVe3.29だったかのXP用rは一部のPCでしか使えなかった。
理由はXPのドライバのバグとかなんとか。
そのバグが致命的でいろいろな方法をとってXPで使うための措置が取られていた
特にキーボード派が多いノートパソコンにおいてドライバが独自の物が使われていたりして
それが原因で動かないなんて報告も繭スレであったり
酷いときにはOS自体が立ち上がらなくなるなどという事も合ったらしい。
最近のVer3.30は2005年の4月くらいにでてNT系の専用となったがXPでも動く率が上がったとみたい。
今でも一応立ち上がらなくなったときのために復旧用のドライバとかが説明されているのはその為。
355名無しさん@お腹いっぱい。:2005/08/17(水) 14:30:14 ID:31kzr+sO0
何故それを繭スレに貼り付けたのさ・・・。
まあいいけど
356名無しさん@お腹いっぱい。:2005/08/18(木) 03:38:54 ID:IcCW0lhR0
言っちゃ悪いけど、Giraffe+を使いこなせない理由を
言語のせいにしてる人のレスは屁理屈にしか聞こえない。
そういう人は例えば倉Exを使ってもやはり挫折すると思う。
357名無しさん@お腹いっぱい。:2005/08/18(木) 04:08:26 ID:J3llGZhM0
言語言語って言うなら
>>237->>240みたいにちょっとは突っ込んだ話しよーぜ。

自分が理解できん=変な言語じゃ恥ずかしすぎる。
358名無しさん@お腹いっぱい。:2005/08/18(木) 14:09:31 ID:VR6kdOLH0
>>356
このスレに居た住人で上のほうでスクリプト書いてくれてた人とかもそれが理由で蔵に移ったりしてる。
そういう貴重な自分で書いてくれてる人とかまで、逃しては結局資産がたまらないと思う。
359名無しさん@お腹いっぱい。:2005/08/18(木) 16:50:51 ID:4Qh1cmCt0
逆に倉よりもできることが多いから
Giraffeに移ってきた人もいますよ
360名無しさん@お腹いっぱい。:2005/08/18(木) 19:09:09 ID:jL3fcWU40
例えば?
361名無しさん@お腹いっぱい。:2005/08/18(木) 19:13:32 ID:PtgMtenA0
Giraffeを使いこなせる上で倉に移った人と、
使いこなせていないあなたを一緒にしてはいけません。

しかも資産とやらは使いこなせない自分のためにあると
思い込んでいませんか?
362名無しさん@お腹いっぱい。:2005/08/18(木) 19:42:26 ID:Ygi2wRZO0
358とか相手にするだけ時間の無駄だと思うぞ。
スクリプトを投稿した人達が本当に倉に移ったか検証が至難なのを
いいことに誇張したり、嘘書いてる可能性すらある。

そもそも批判する割には具体的な話は避けているとこなんか
ユーザーに成りすましたアンチのやり口に酷似している。
363名無しさん@お腹いっぱい。:2005/08/18(木) 20:20:47 ID:VR6kdOLH0
>>362
スクリプトの纏めページからいけるところとか見てないの?
他の人のスクリプトとか参考にしたり入れてたりするなら気づくと思うが・・・。
ほんとに使ってるのかなぁ。
364名無しさん@お腹いっぱい。:2005/08/19(金) 05:27:21 ID:dM7OQ+py0
>>363
何に言及してるの?
365名無しさん@お腹いっぱい。:2005/08/19(金) 05:32:08 ID:Vj9Qnw8G0
一部の乗換えた人を指してあたかも使える人は
大勢が乗り換えているような書き方をする。
まさに誇張。
366名無しさん@お腹いっぱい。:2005/08/19(金) 05:55:35 ID:oLjmUYwH0
要は>>363は乗り換えた人がいるから自分は正しいの一点張りで、
自分のブログにでも書いとけばいいような内容。

しかも言語のどういう仕様が悪いとか細部は何一つ語れてないよ。
ちゃんとログ読んでれば詳しく書くことで議論が進むスレだとわかるはず。
問題点を絞って改善に繋げようという意思は最初からなくて、
スレの住人を不愉快がらせようと足掻いてるだけじゃないかな。
367名無しさん@お腹いっぱい。:2005/08/19(金) 06:37:47 ID:ppod60cm0
なにやら難しい言い合いになってますが
素人でもそれなりに使い満足している俺が来ましたよ
368名無しさん@お腹いっぱい。:2005/08/19(金) 16:44:13 ID:rbtTWdaP0
まあ、ドンドン人を追い出して拡張を作ってくれてる人もどこかに行きましたとさ。
プログラム自体は結構気に入ってるから、ここに来てるわけだが。毎回同じ時間に固まってレスしてるのは何で?

>一部の乗換えた人を指してあたかも使える人は
>大勢が乗り換えているような書き方をする。
>まさに誇張。

そうね。
369名無しさん@お腹いっぱい。:2005/08/19(金) 21:01:32 ID:JUEItuPx0
追い出されたと感じてたわけだね。
370名無しさん@お腹いっぱい。:2005/08/19(金) 21:15:33 ID:ml+RPvJV0
学生ならともかく早朝と夜にレスが集中することは普通だろ。
それに疑問に疑問で返したりと誠実なレスをしてないな。
ことの始めの言語うんぬんの書き込みは撤回か?
371名無しさん@お腹いっぱい。:2005/08/20(土) 03:37:27 ID:PohupsDg0
21時だね。その前は5時。その前に4時というのもあるね。
5時4時が普通の人が多い時間とは言わないな。
372名無しさん@お腹いっぱい。:2005/08/20(土) 05:14:34 ID:UEATb81x0
確かにこんな時間までBSのガンダムぶっ通しで見てた俺は普通の人じゃないな
373名無しさん@お腹いっぱい。:2005/08/20(土) 05:36:50 ID:9m606fN/0
お前らの普通は普通じゃない
この世でおれだけがスタンダード
374名無しさん@お腹いっぱい。:2005/08/20(土) 06:09:35 ID:oUFVclnZ0
こんなことで普通の人扱いされなくてもべつに困らない。
気分転換に眺めてたのにもう終わり?
375名無しさん@お腹いっぱい。:2005/08/20(土) 07:03:34 ID:fZcypl+00
普通じゃない時間にカキコ
変な言語の人降臨まだー?
376名無しさん@お腹いっぱい。:2005/08/27(土) 16:29:10 ID:RIOm+pe20
いま、現在日時を表示させているのですが、パソコン起動時間を表示させたいです。
どのような文を書けばいいのかわかる方がいましたら教えてください。
よろしくお願いします。
377名無しさん@お腹いっぱい。:2005/08/27(土) 21:20:25 ID:TgOg9BiZ0
>>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()))
378376:2005/08/27(土) 22:36:36 ID:RIOm+pe20
>>377さん
わぁぁ、ありがとうございます。
今からやってみます!ううぅ、嬉しいなぁ
出来たら報告に来ます!!
379376:2005/08/27(土) 22:49:59 ID:RIOm+pe20
できたー!377さん、ありがとうございます。
見ず知らずの私のリクエストにポンと答えてくださって・・・尊敬><
本当にありがとうございました。
わーい、刻々と進んでるー 感謝!!
380名無しさん@お腹いっぱい。:2005/09/10(土) 08:19:28 ID:W9gnpRY30
(゚∀゚)うpだて!!
381名無しさん@お腹いっぱい。:2005/09/10(土) 11:29:37 ID:YkYsAVN30
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にする必要があります。
384382:2005/09/13(火) 22:23:49 ID:s5U9Q5Bs0
>>383
ありがとうございます。
385名無しさん@お腹いっぱい。:2005/09/23(金) 17:02:09 ID:b1mj4+F30
コマンドのディレクトリをxyzzyで開きたいんだけど,どうすればいいでしょうか?
386385:2005/09/23(金) 17:03:25 ID:b1mj4+F30
すいません。
「xyzzyのファイラで開きたい」の間違いでした。
387名無しさん@お腹いっぱい。:2005/09/24(土) 11:42:40 ID:7R10Et6t0
>>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)
388385:2005/09/24(土) 18:15:36 ID:wb4xUIRo0
>>387さん
ばっちり動きました!どうもありがとうございました。
感謝感激で,本当にお礼の言葉もございません。

どうもありがとうございました!!
389名無しさん@お腹いっぱい。:2005/09/26(月) 06:38:01 ID:Xrr/3Dw00
test
390名無しさん@お腹いっぱい。:2005/10/06(木) 18:45:27 ID:aljBzyna0
ログイン時に自動起動させたいんですがスタートアップにショートカット突っ込んだら
Giraffe+ Boot Sequence Error
error: file not found
function: @.giraffe
parameter:
context: .giraffe
Current Directory: C:\Documents and Settings\hoge
こんなエラーでました。
.giraffeが$HOMEに無いよってことですかね
391名無しさん@お腹いっぱい。:2005/10/06(木) 23:59:35 ID:aGAAEIMP0
ショートカットのプロパティを適当に書き換えたらエラーが再現する。
作業フォルダの箇所がじらふのフォルダになってないんじゃない?
392名無しさん@お腹いっぱい。:2005/10/07(金) 18:20:00 ID:GSZsrnT+0
>>391
解決しました。ありがとです。
393名無しさん@お腹いっぱい。:2005/10/12(水) 00:06:05 ID:okqURHfG0
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でもどちらでも動作するようにしておいた
394名無しさん@お腹いっぱい。:2005/10/22(土) 13:16:41 ID:+cWENoIR0
最近いじり始めたんで,激遅ですが質問させてください。

>>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 です。よろしくお願いいたします。
395名無しさん@お腹いっぱい。:2005/10/22(土) 14:46:46 ID:3/Pe/9+b0
>>394
array:for-eachをarray:collectに書き換えればいける、たぶん。
396394: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のせいで落ちることがごく稀にあったのを修正

398名無しさん@お腹いっぱい。:2005/11/13(日) 17:09:22 ID:pBNXPvSJ0
あらら、すっかり寂れて・・・。
ソフト板のあふぉのせいで作者もかわいそうに。
399名無しさん@お腹いっぱい。:2005/11/17(木) 22:08:16 ID:Nro7pi/q0
0.4.5.4
ITEMIDLISTの表示文字列への変換をキャッシュしたりして高速化した
組み込み関数pipeを実装
SetTextで選択が解除されないようにした
コマンドラインを実行してリストボックスに結果を出力するsettings\key\PipeToListbox.giraffeを追加
エディットウインドウの文字列のGeneral.Separator以降を消去するsettings\key\ClearParameters.giraffeを追加
400名無しさん@お腹いっぱい。:2005/12/04(日) 14:39:33 ID:/LLTYW1I0
ageage
401名無しさん@お腹いっぱい。:2005/12/17(土) 19:48:39 ID:tYT2SMX70
これって使い方とかどこにかいてあるの?
402名無しさん@お腹いっぱい。:2005/12/18(日) 12:44:05 ID:858jvRoZ0
なんかディレクトリとかをショートカットに割り付けて実行すると
メチャメチャ遅いんだよね?
なんか思い当たる理由あります?

Xp ProでCPUがモバイルペンティアム1.5
メモリ 1.5GBなんでハード的に厳しいって事はないと思うんだけど
403名無しさん@お腹いっぱい。:2005/12/20(火) 02:28:50 ID:V23HfhdE0
>>402
Giraffe+のアイコン表示を有効にしているときに
遅くなるのなら思い当たることがある。

以前、特定のソフトのショートカットをオートコンプリートするとき
しばらく応答しなくなることがあった。
そのときはc-tabなどでアイコン表示をしないようにするか、
アンチウイルスソフトを切るかすると正常に動くようになったから
おそらくアイコンの取得時に横槍を入れられてたんだろうと思う。

あと、UPXかなにかはわからんが実行ファイルに圧縮がかけられている
一部のソフトでも遅くなることがあった気がする。
404名無しさん@お腹いっぱい。:2005/12/20(火) 02:37:50 ID:V23HfhdE0
あと、ファイルが何千もあるディレクトリを部分一致で表示しようとしても遅くなる。
405402:2005/12/21(水) 02:59:26 ID:6lzVLYrX0
>>403
サンクス
アイコンを無くしたらちょっと早くなった
けどかなりしょぼくなった
なんとかならんもんかw
406 【大吉】 【699円】 :2006/01/01(日) 01:05:34 ID:8yBJF5kB0
定期アゲ
407名無しさん@お腹いっぱい。:2006/01/14(土) 18:51:58 ID:4a0nvEgt0
話題ないね
408名無しさん@お腹いっぱい。:2006/01/15(日) 01:23:47 ID:bFWtP1hf0
まあ、誰も拡張しないからだろうね。使用ユーザがあんまりいないってのもありそうだけど
409名無しさん@お腹いっぱい。:2006/01/15(日) 23:55:07 ID:4K/Pe5b00
http://www.geocities.jp/giraffeplus/
ここにある大改造Executeとオートコンプリートにスキップマッチングを使うを同時に使うと
候補一覧には表示されるんですが決定が出来ないんですけど修正することって出来ませんか?
410名無しさん@お腹いっぱい。:2006/01/16(月) 00:17:06 ID:XOl13mJQ0
>>409
候補一覧が表示された状態で↑か↓(または対応するホットキー)を押すと
候補一覧の一番上の候補に変換されて、決定できると思うのですが、
それじゃ駄目?
411名無しさん@お腹いっぱい。:2006/01/16(月) 00:58:08 ID:qkoJLLnL0
>>410
適当な文字列で実行出来るように曖昧な文字列ばかり登録していて
それが簡単で便利だと感じていたので↑などを押すのが少々辛いです
412名無しさん@お腹いっぱい。:2006/01/16(月) 11:38:52 ID:rBgTXhwA0
よし、ちょっと盛り上げる為に質問を

他のプログラムと連携する機能とかないの?
ファイラと課と連携できるの?
fenrirみたいなディレクトリ移動とか出来るの?
エディタの補完をGiraffeとかで出来る?
呼び出し方法によってモードみたいなのを切り替えれる?
AHK程度のことがスクリプトで出来る?
選択中の文字を取り込めるとさらに・・
413409:2006/01/16(月) 19:08:02 ID:qkoJLLnL0
410>>さんありがとうございます
適当に勘で編集したらできるようになってしまったので一応晒します
if(NormalExecute(GetTextOrMarkedItems())
という場所が二つあるんですがそれを
if(NormalExecute(Giraffe:GetExecutees())
に書き換えると出来ますが不具合がある予感がひしひしとしますがw
ひとまずフォルダは開けて動かせてます
414名無しさん@お腹いっぱい。:2006/01/17(火) 06:06:37 ID:eJ+Iedsq0
>>409
長いのでこちらを参照。
ttp://www.geocities.jp/giraffeplus/siteinit.txt
いろいろ変わってるように見えるのは古い関数を置き換えたせいです。
これで問題なければTOPも更新しようかと思います。
415名無しさん@お腹いっぱい。:2006/01/17(火) 23:50:49 ID:QYCZ/aRC0
>>414
ありがとうございます
直してくれるなんて思いもしなかったので感動です
# ・明らかにミス入力(存在しないフルパス等)の入力を無効
# ・可能な限り正常に実行出来たものを履歴に残す
この二つは確認方法が分からなかったので判断出来ませんでしたが
他の機能は全て動きました
本当にありがとうございました
416名無しさん@お腹いっぱい。:2006/01/21(土) 17:07:03 ID:PM6S6VIw0
>>412
分からんけど
とりあえず呼び出し方法によってモード切り替えるのは出来る事は確認した
417名無しさん@お腹いっぱい。:2006/01/29(日) 21:50:15 ID:aTwhuwig0
wiki作っていい?
あんまり情報書けないかもしれないけど
418名無しさん@お腹いっぱい。:2006/01/29(日) 23:27:25 ID:aTwhuwig0
>>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
引数付けるのが空白ではなく;なのこれやって初めてしったくらいだから他の質問分からね
419名無しさん@お腹いっぱい。:2006/01/31(火) 00:19:57 ID:YCm5uwa30
難しいなあこれは。coolだし使いこなしたいんだけど。
420名無しさん@お腹いっぱい。:2006/01/31(火) 10:41:33 ID:XAUW/exi0
>>417
よろ
421名無しさん@お腹いっぱい。:2006/02/02(木) 01:15:48 ID:RYbQXnKW0
>>420
http://www8.atwiki.jp/giraffe/
7時頃にふと寝てしまって眠れないテンションで明らかに適当になってしまった
まぁいいこれからこれからさ
422名無しさん@お腹いっぱい。:2006/02/02(木) 01:37:59 ID:BDW628oB0
期待して待つ。
423名無しさん@お腹いっぱい。:2006/02/02(木) 16:03:00 ID:b4tq4TKx0
>>421

Giraffeらしからぬハイテンション(・∀・)イイ
424名無しさん@お腹いっぱい。:2006/02/03(金) 14:34:09 ID:bVa1eNWQ0
メタ検索してる猛者はおらんか?
「覚えらんない人のためのオンラインソフト備忘録」に触発されたのはバレバレだが
出来たらすげー便利だなーと思ってさ。
あと、wikipediaの検索もうまくいかぬので、誰かご教示下され。

おまけ(2chのスレッドを検索)
###
SetEvent(
(key/***)
(
include((www))
Shell.Execute(
cat(
(http://gulab.ruitomo.com/~gulab/s.cgi?k=)
www:url-encode(GetText()))))
###
425名無しさん@お腹いっぱい。:2006/02/04(土) 00:36:47 ID:nxmnY0Cc0
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()))))))
426名無しさん@お腹いっぱい。:2006/02/04(土) 00:38:13 ID:nxmnY0Cc0
SearchWeb に丸投げしました。
猛者になれなかった…。
427名無しさん@お腹いっぱい。:2006/02/04(土) 14:09:59 ID:YPj27g5X0
>>426
スクリプトの位置付けからすると丸投げするための言語って書いてあるからベストなんじゃない?
428名無しさん@お腹いっぱい。:2006/02/04(土) 14:40:57 ID:nxmnY0Cc0
nkf32.dllとか使った方がGiraffe+らしいのかなあと思ってた。
429名無しさん@お腹いっぱい。:2006/02/04(土) 17:55:09 ID:nxmnY0Cc0
ちょい訂正

× ==($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))))))
430名無しさん@お腹いっぱい。:2006/02/06(月) 22:07:16 ID:igkj1MTI0
migemoってやっぱりまだ使えないんですよね?
431名無しさん@お腹いっぱい。:2006/02/14(火) 18:37:44 ID:qRaYgiiW0
エディットに ::- といれてさらに続けて - を入力したら
アプリケーションエラーでGiraffe+が落ちたんですが再現する人います?
432名無しさん@お腹いっぱい。:2006/02/14(火) 19:01:26 ID:KPRAmKmZ0
再現したぽい
windowsprosp2にて
433名無しさん@お腹いっぱい。:2006/02/14(火) 19:47:11 ID:JgTo+Dhe0
xp home sp2でも再現
434名無しさん@お腹いっぱい。:2006/02/15(水) 05:04:08 ID:Z6cTtqwb0
やってみたけど駄目ダターヨ XP pro SP2


ひとつ教えてけれ。
Software memoさんのスクリプトで動かないのがあるんだけど、どうすりゃ直る?
例えばこれ

(マークを選択フォルダへ移動)
(if(Shell.IsDir(GetText())
(BeforeFileManipulation()
AfterFileManipulation(
CutFile(array:for-each(Giraffe.GetListMarkedItems()
(Shell.GetLongPath(GetNormalFile(param(0))))))
PasteFile(GetText())))()))
435名無しさん@お腹いっぱい。:2006/02/15(水) 19:58:39 ID:Gqkayncf0
>>434
array:for-each を array:collect にする。

/// doc\version.txt
0.4.0.0
array:for-eachをarray:collectに改名
///

ということらしい。

436名無しさん@お腹いっぱい。:2006/02/17(金) 23:36:58 ID:N/5+tLx/0
列挙するサイトのスクリプト中でバージョンアップに伴って
うまく動かなくなったものを書き直してみました。
もしWikiへの転載を断念していれば参考にしてください。>Wiki管理人
437名無しさん@お腹いっぱい。:2006/02/18(土) 12:46:46 ID:rSr7i0wo0
>>435
レスthx
けど、それでもうちだと動かないのよね (´・ω・`)ショボーン
438名無しさん@お腹いっぱい。:2006/02/18(土) 23:13:55 ID:bA5BsACD0
>>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
440名無しさん@お腹いっぱい。:2006/03/13(月) 21:44:56 ID:9l3wZOWJ0
>>439
NiceAge
441名無しさん@お腹いっぱい。:2006/04/08(土) 01:50:28 ID:TWnubE5j0
>>440
NiceHage
442名無しさん@お腹いっぱい。:2006/04/08(土) 15:43:33 ID:VC8i2DLa0
Giraffe+ 最高だよね
443名無しさん@お腹いっぱい。:2006/04/09(日) 17:52:06 ID:TAFwBpYC0
うん、最高
青風に乗り換えたけどね
444名無しさん@お腹いっぱい。:2006/04/09(日) 20:06:33 ID:xcj9FlV50
ブログに0.5b来てる
445名無しさん@お腹いっぱい。:2006/04/09(日) 22:52:11 ID:M7wFrKzT0
正式版公開はWin9x対応後ということだろうか?
いや、βだろうがγだろうが使わせてもらいますが。
446名無しさん@お腹いっぱい。:2006/04/10(月) 00:45:49 ID:8q5UARob0
俺はδ次元が好きだ
447名無しさん@お腹いっぱい。:2006/04/10(月) 21:31:46 ID:bPtqAU9V0
エランシアかよ
448446:2006/04/11(火) 23:33:08 ID:4NTDrISK0
>>447
お前凄いな!感動した。
449名無しさん@お腹いっぱい。:2006/04/14(金) 00:17:47 ID:bmo9BerF0
こりゃまたobsoleteが多いな。
バージョン0.5というよりGiraffe2+になってしまいそうだ。
450名無しさん@お腹いっぱい。:2006/05/07(日) 20:46:16 ID:mNMrSN+80
なんか機能追加が普通に凄すぎる
451名無しさん@お腹いっぱい。:2006/05/30(火) 21:20:55 ID:QkvgrNuW0
定期age
452名無しさん@お腹いっぱい。:2006/06/14(水) 08:40:58 ID:KYNfWI5f0
大改造ExecuteってGiraffe+ 0.5.0.36bで動くようにならないかな?
これがネックでb版使えないんだけど
453名無しさん@お腹いっぱい。:2006/06/14(水) 21:31:38 ID:kY7Jvtxi0
>>452
引数や戻り値の型が一致してないのが原因。




じゃないかと思います。
とりあえず報告しときます。
454452: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
新言語どう?
誰も使ってない?
457名無しさん@お腹いっぱい。:2006/07/22(土) 00:13:57 ID:+Knbg71Y0
新言語ポウ
458名無しさん@お腹いっぱい。:2006/07/30(日) 21:55:44 ID:me3ycoe60
age
459名無しさん@お腹いっぱい。:2006/08/03(木) 10:23:29 ID:FVUuUV760
なんで盛り上がらないんだろうか
460名無しさん@お腹いっぱい。:2006/08/03(木) 11:53:18 ID:O3y08HAW0
ランチャー機能以外どう使うのかさっぱり分からないw
461名無しさん@お腹いっぱい。:2006/08/03(木) 12:48:35 ID:FVUuUV760
>>460
そのものズバリって感じだw
俺はmigemo入れてお気に入りの表示するのが最近のマイブーム
migemo入れるのも二、三日前にフルパスで指定する事に気づいてやっと出来た
462名無しさん@お腹いっぱい。:2006/08/04(金) 14:47:01 ID:kll9aQaE0
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)))
463web-serch-menu.giraffe:2006/08/17(木) 18:17:01 ID:C9IA2XKm0
単機能ツール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)
464名無しさん@お腹いっぱい。:2006/08/18(金) 23:40:27 ID:Qp0uAzh50
しかし、このスレ伸びないね。
465名無しさん@お腹いっぱい。:2006/08/19(土) 11:40:35 ID:s3wsJJNc0
新スクリプトに少しさわってみた。チラシの裏っぽい感想でも。

・括弧の省略、演算子の並び順など変わってコードが見やすくなった
・型を厳密にチェックされる
・起動が重くなった
・バルーンが出せる、他把握しきれない機能強化
・とにかくスロットの仕組みを理解しないと

for((i)0() (<($i() 10)) (++($i)) ( ... ) )
   ↓
for((i)0 [$i.< 10] [$i.++] [ ... ] )

xyzzy使わねーと絶対無理ってほどでもなくなった。
466465: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とかしないとだめだろうか。
467465: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しなければ定数だろうと
勝手に思い込んでいた。
実際は定数ではなく引数と連動して変化することを判ってなかった。
468名無しさん@お腹いっぱい。:2006/08/19(土) 21:12:34 ID:w2Ad5eTK0
全然分からんけど将来参考になるかも知れんので続けてくれ。
469名無しさん@お腹いっぱい。:2006/08/20(日) 16:44:12 ID:1DC+igvd0
Giraffe+ 0.5.0.79b

前リリースからの変化

言語部分(gs)

・GCがcyclic referenceでメモリリークしてたのを修正

言語部分以外(Giraffe+)

・Keyboard.Strokeを、すでに押されてるmodキーは押さないようにした
・ショートカットディレクトリにあるディレクトリにドットが含まれる場合にそれ以下を拡張子として扱っていたのを修正
・ショートカットディレクトリにある隠しファイルがリストアップされるようになっていたのを修正
・General.CheckDataLinkToが動作してなかったのを修正

> 以前の更新から二ヶ月が過ぎていることで分かるように、最近まったくGiraffe+に触れておりません。
> 他に忙しいことがあるとか、そういうことはまったく無く、Giraffe+どころか、
> ソフトウェアやプログラミングそのものに対する興味が薄れているのが原因です。

(つд`)
470名無しさん@お腹いっぱい。:2006/08/20(日) 17:30:48 ID:3jPlA86V0
>>469
会社でも家でも使いまくってるソフトだから、なんか寂しいな
471名無しさん@お腹いっぱい。:2006/08/25(金) 18:39:15 ID:cbjphkBY0
>>471
倉と麒麟が両方だめになったのか(つд`)
472名無しさん@お腹いっぱい。:2006/08/27(日) 21:42:55 ID:5W6ZKpcO0
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が実行されないため
]
)
473472 :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')]
]
)
474名無しさん@お腹いっぱい。:2006/08/30(水) 17:00:38 ID:jFSp0ihr0
>>472
蝶GJ!!
475名無しさん@お腹いっぱい。:2006/09/01(金) 03:26:55 ID:UZknJBxC0
Giraffe+ 0.5.0.85b

前リリースからの変化

・言語部分(gs)

スロット操作を簡略化するObject.set_or_defとObject.get_or_defを定義

・言語部分以外(Giraffe+)

find.giraffe(Ctrl+Fで実行されるやつ)で検索関数を自由に定義できるようにした(Migemoを使えるようにした)
476名無しさん@お腹いっぱい。:2006/09/03(日) 00:29:58 ID:Us+WrsfT0
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)

つづく
477名無しさん@お腹いっぱい。:2006/09/03(日) 00:31:11 ID:Us+WrsfT0

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を実装

> たったひとつメソッドを追加しただけですが、いいものを作ったと思えたので更新しました。

----
たまにはあげ。
479名無しさん@お腹いっぱい。:2006/09/17(日) 19:24:20 ID:5iREp9au0
>>477
今更ながらGJ!!
480名無しさん@お腹いっぱい。:2006/09/17(日) 21:20:39 ID:30iGay220
AHKとかが人気があるならGiraffe+もアリなんじゃないかと思うけど。人は増えないね。
目立たないのは、やっぱりドキュメントとかなのかな。AHKもGiraffeもそんなに
使ったことないけど少し不思議。
481名無しさん@お腹いっぱい。:2006/09/17(日) 23:51:57 ID:rNMukEAv0
ん?何故 ahk と比べるの?守備範囲そんなにかぶってないでしょ
482名無しさん@お腹いっぱい。:2006/09/18(月) 00:09:09 ID:ecpdTJmA0
そう?スクリプトで何かをするときに、どこから実行するかが違うだけじゃない?まあ、多少のスクリプトの制限に違いはあると思うけど。
483名無しさん@お腹いっぱい。:2006/09/18(月) 01:24:44 ID:GeEkfvh/0
AHKはキー設定ソフトで、Giraffe+は登録型ランチャー兼ファイラ。
スクリプトの実行は、違う目的のための同じ手段でしかない。
>>482
>スクリプトで何かをするとき
その「何か」が違うわけだ。

おれはmayu&Giraffe+でAHKみたいなことやってるけど。
484名無しさん@お腹いっぱい。:2006/09/18(月) 04:10:06 ID:ecpdTJmA0
まあ、確かにソフトの目的とか名目は違うけどね。
実際できることを考えればそんなに違わないような。
485481:2006/09/18(月) 05:18:38 ID:4qHZtPdd0
繭の名前も挙がってるけど、AHK Giraffe+ 繭それぞれで出来ること出来ないこと、得意不得意がある。
Giraffe+ や 繭には GUIアプリは作れないし、AHK で Giraffe+ 的 (ランチャ) なことやろうとすると手間かかりすぎるし
繭に出来て AHK に出来ないこともある。適材適所だと思うけどね。
486名無しさん@お腹いっぱい。:2006/09/18(月) 19:57:52 ID:uxdyR/Sd0
>>485
多分、使用感とか主に対象としたユーザー層が似てるって意味だと思う。
487名無しさん@お腹いっぱい。:2006/09/18(月) 20:59:30 ID:2jZmb9QU0
ランチャも星の数ほどあって、そのスクリプトやマクロもいろいろあるし。
だから、画一的にまとめたくなる気持ちも分かるけどね。
でも、数の多さは使いこんでみて違いを実感できる人達のためにあるのだと思う。
使わない人にはUNIXなシェルスクリプトの同類にしか見えないかもしれない。
488480:2006/09/19(火) 18:57:07 ID:bU7ibnaT0
>>485
mayuはスクリプトじゃないから全然機能が違うだろw
どんな項目で分類してるのか知らんが
mayuは余程頑張らないと変わったことはできないし限界がある。
GUIもGiraffeでGUIが作れないって事もないんじゃない?

>>487
同類にしているわけじゃなくて、AHKを使うなら
Giraffeも使う人が増えてもおかしくないのに
増えないから不思議と言う意味ね。

489名無しさん@お腹いっぱい。:2006/09/19(火) 20:41:16 ID:RJHlX6Wf0
使える人と使う人の数の剥離って話だな、たぶん。
キー入れ替えソフトとコマンドランチャとの需要の差が一番大きいだろうけど、
AHKはホットキーランチャ兼自動化スクリプトソフトとしても知られてる割に、
Giraffe+はスクリプトどころか、ファイラとしての素晴らしさや、
ホットキーに至ってはその存在すら知られることなく、
単なるコマンドランチャとして捉えられてる感がある。
他コマンドランチャとの違いはリストにアイコンが表示できることぐらいと思われてそうだ。
実際使ってる人も大抵は、なんか凄いけどよく分からないって感じなんじゃなかな。

あと、同じような難易度だと思うが、印象としての敷居の高さにはかなり差があるように見える。
AHKは初心者でもキー入れ替えぐらいなら簡単にできそうだけど、
Giraffe+はWinAPIとか知らないと何も出来なそうっていうか。

Giraffe+のポテンシャルというか、その機能や性能の凄さを考えると、
今の知名度やシェアは異常に低いと俺は思ってる。
画像満載の初心者向け宣伝風ドキュメントがサイトにあるだけで解決しそうな気もするが。
490名無しさん@お腹いっぱい。:2006/09/19(火) 20:54:11 ID:ycu0JBy90
>>489頼んだ
491名無しさん@お腹いっぱい。:2006/09/19(火) 22:42:05 ID:bU7ibnaT0
まあ、ドキュメントどころか
ここが便利とか言う話も、
このスレですら余り出てこないね。
492481:2006/09/20(水) 00:03:24 ID:43heG4xT0
最初に反論した手前恥を忍んで書いてみる。

> AHKを使うならGiraffeも使う人が増えてもおかしくないのに
まずここの繋がりが分からない。Giraffe に搭載されてるスクリプトはどのくらいのもんなんだ?
AHK のスクリプトは割りとよく自分でも書いてるんだけど、Giraffe は他人様の成果をコピペしてるに過ぎないので分かってないんだ。
なので俺が間抜けな発言をしてるかもしれない。

# 繭に関しては名前が挙がってたのでついでに書いてみただけで違うものなのは分かってるつもり。
493名無しさん@お腹いっぱい。:2006/09/20(水) 01:13:30 ID:Y3d+4N4T0
>>492
上の方でも出てるけど、難しいことがやりたいなら
dllとか読み込んでやってくれよ見たいな感じ。
実際は作る人が面倒でなければかなり色々できそう。

作者のブログを見ると
今はスクリプトの仕様が気に食わなくて変えてるようなので
良く知らないけど。
494名無しさん@お腹いっぱい。:2006/09/20(水) 19:50:41 ID:LzIosCZj0
AHKが国内で流行っていった過程を知りたい気もする。
495名無しさん@お腹いっぱい。:2006/09/20(水) 22:24:36 ID:/0WPGeqL0
>>494
俺の記憶ではhoekey関連(海外フリーソフトスレだった気がする)のどこかでautohotkeyが紹介されていた。
メモリー使用量でhoekeyより劣るとかそんな理由でかなりケチつけられてた。
8月に流行らせるページがオープン
それで9月下旬から年末ぐらいまでフリーソフト系のブログで結構話題になっていたのが大きかったんじゃないかな。
あの時ブログ結構流行っていたし。

ところでgiraffeの関数ってほとんど説明みたいのが無いんですが、ある程度なにか他の言語と一緒だったりするんですか?
496名無しさん@お腹いっぱい。:2006/09/20(水) 23:03:10 ID:LzIosCZj0
>>495
ブログが流行りだした頃となると急速に広まったっぽいなあ。う〜む。

>giraffeの関数
似ているものはありそうな気もするんだがわからない。
ver.0454 までの関数リファレンスはハンガリー記法で引数と戻り値の型が書いてある。
それで、引数、戻り値、型を理解した上で関数名で類推していた。
初めから用意されてるスクリプトがある意味一番参考になる。
新スクリプトだとコードの量自体がまだ少ないのが痛い。

過疎ってるからこの関数って何ですかスレにしても良いような気がするのだがどうだろう。
497名無しさん@お腹いっぱい。:2006/09/21(木) 21:16:38 ID:lGLAZq6Q0
AutoHotkeyを流行らせるページの存在が大きいと思う。
日本語訳されたドキュメントがそろっているし、
BBSやアップローダとかも一応機能している。

ぬる℃さんの個人プレーによって
広がっているんじゃないかと推測

>>495
古いGiraffeの基本的な部分はLuaとかいうのらしいから、
何かありそうな気もするね。



498名無しさん@お腹いっぱい。:2006/09/21(木) 23:31:26 ID:jhhe/XfN0
>>496
やはり類推するのが一番ですか。どうもありがと。
お二人のお陰でやっとこさ
ファイルはポチエスに渡す、エクスプローラーをファイラに変える、ボックスが空の状態で実行するとgiraffeのフォルダを開く
機能を大改造executeに追加出来ました。いやなんか本当に嬉しいです。
本当にありがとうございました。
499名無しさん@お腹いっぱい。:2006/09/27(水) 19:14:32 ID:9Dz7ucHTP
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にすると登録アイテムのサブフォルダ内もリストアップするようにした

----
β取れた!!ので、あげ。
501あぼーん:あぼーん
あぼーん
502名無しさん@お腹いっぱい。:2006/09/28(木) 20:22:41 ID:ttQhWf2F0
>>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')
503502 つづき:2006/09/28(木) 20:24:35 ID:ttQhWf2F0
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
504名無しさん@お腹いっぱい。:2006/09/29(金) 15:17:47 ID:pR/sJXkaP
おお、すごい

これ、どやって使うの?
505名無しさん@お腹いっぱい。:2006/09/29(金) 23:54:07 ID:ZZWsm2Wy0
例えば 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って候補リストが表示されてるときにフォーカスはずしたら
リストが消えるように出来る?
507名無しさん@お腹いっぱい。:2006/09/30(土) 19:38:20 ID:KFBKgsby0
>>506

Giraffe.Event.Deactivate@ `[
require('winuser/sw')
Giraffe.ListBox.GetParent.deref.ShowWindow(SW_HIDE)
].& (Giraffe.Event.Deactivate$)
508名無しさん@お腹いっぱい。:2006/10/02(月) 16:32:45 ID:8nPbLQLvP
>>502>>503の奴、シャットダウンはするんだけど電源切れない・・
509名無しさん@お腹いっぱい。:2006/10/02(月) 17:33:53 ID:a7jbZ35x0
NormalExecute('System/Shutdown')
の部分を
NormalExecute('System/Poweroff')
だな
510名無しさん@お腹いっぱい。:2006/10/05(木) 03:18:54 ID:xdtCin4Q0
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実行後、リストボックスが履歴モード(非オートコンプリートモード)になってなかったのを修正
511名無しさん@お腹いっぱい。:2006/10/05(木) 12:44:25 ID:8AKVZKVLP
giraffeでスタートアップの制御ってできない?
512名無しさん@お腹いっぱい。:2006/10/05(木) 22:33:05 ID:RNI3oiki0
Giraffe+ Manual
http://www.ric.hi-ho.ne.jp/giraffe/giraffe/doc/manual.html

Manualができているね。まあ、まだ今書かれているくらいなら
Readmeで殆どの人が理解しているような感じだけど。
513名無しさん@お腹いっぱい。:2006/10/06(金) 18:12:13 ID:adJtH/ai0
>>511
無理とは言わないが専門外かも。
GUIとかは苦手だから多分かなり面倒になると思うよ。
514名無しさん@お腹いっぱい。:2006/10/06(金) 22:14:12 ID:K1crwjEk0
スタートアップの制御というと msconfig みたいなやつだろうか?
ウィンドウ出してまでやろうとするくらいなら専用のソフト使ったほうが良いよ。
これとか ttp://www.sysinternals.com/Utilities/Autoruns.html
キーイベントでスタートアップフォルダのLNKファイルを
別のフォルダに退避、復帰させるぐらなら思いつくんだけど。

>>512
スクリプトを書かない。という条件の下なら材料はほぼ揃った感じがする。
F5押せば結構色々変えられるし。
515名無しさん@お腹いっぱい。:2006/10/07(土) 02:19:40 ID:uU7M3mYC0
スタートアップってスタートメニューじゃなく、Giraffe起動時にあれこれアプリを起動するってことじゃない?
516名無しさん@お腹いっぱい。:2006/10/08(日) 03:28:35 ID:nSOtGPCe0
siteinit.giraffe に
'[full path]'.shell_execute とか、
'[Data]'.shell_execute とか、
'[full path]'.shell_execute('[parameter]')
なんかでGiraffe起動時に設定できるが違うのだろうか。
517名無しさん@お腹いっぱい。:2006/10/08(日) 03:42:59 ID:kTmfGole0
'[startup1]'.shell_execute と一行書いた startup1.giraffe を作る。
'[startup2]'.shell_execute と一行書いた startup2.giraffe を作る。
以下必要なソフトの数だけつくる。
そして、それらのファイルを Script2\settings\setup に置く。
設定ダイアログで settings → setup を見ると!!!



…私の元にあほの神様が光臨しました
518名無しさん@お腹いっぱい。:2006/10/11(水) 22:19:38 ID:yHVp0oUNP
単純に時間差で立ち上げたいなと思っただけでして。
519名無しさん@お腹いっぱい。:2006/10/11(水) 22:58:21 ID:8iejQvHB0
version 0.5.2.143
last modified 2006/10/11

ばーじょんうpキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
520名無しさん@お腹いっぱい。:2006/10/12(木) 23:41:18 ID:ywkK/7W60
>>518
Script2\siteinit.giraffeに。

NormalExecute('NALT') //NALTがアイテム登録されているとする
sleep(3000) // 3秒ほと間を取る
NormalExecute('nPOP')
sleep(3000)
NormalExecute('caldix')

設定を決めうちで良いならこんな感じで書ける。
時間差はsleepの値の書き換えで。
521名無しさん@お腹いっぱい。:2006/10/25(水) 16:20:37 ID:Xt9sLDMQP
スクリーンセーバーのオンオフってできる?
522名無しさん@お腹いっぱい。:2006/10/25(水) 18:15:29 ID:AyN1HZUJ0
>>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
523名無しさん@お腹いっぱい。:2006/10/25(水) 20:41:48 ID:Xt9sLDMQP
これをどうすれば?
524名無しさん@お腹いっぱい。:2006/10/26(木) 01:01:39 ID:dCglIkgZ0
Dataに置くのがいいんじゃない?
525名無しさん@お腹いっぱい。:2006/10/26(木) 11:04:09 ID:WHcjUiJ3P
>>522
ありがとう。
ちゃんと動作しました。
526名無しさん@お腹いっぱい。:2006/10/26(木) 11:16:45 ID:WHcjUiJ3P
オフの時はオンにするだけとか、オンの時はオフにするだけって改造しようと思ったけどわかんなかったOnz
527名無しさん@お腹いっぱい。:2006/10/26(木) 12:37:59 ID:Z9q01ohF0
>>526
最後から二行目のToggleScreenSaverを置き換える。
EnableScreenSaver(true)でオン
EnableScreenSaver(false)でオフ
528名無しさん@お腹いっぱい。:2006/10/26(木) 12:59:26 ID:WHcjUiJ3P
ありがとう

これでかなり快適になりました。
529ひみつの文字列さん:2024/11/28(木) 00:04:41 ID:MarkedRes
日本国またはアメリカ合衆国、もしくはその両方の著作権法に触れる内容であると疑われることから表示できません。
530名無しさん@お腹いっぱい。:2006/10/30(月) 00:57:04 ID:7XwpQ+CV0
>>529
それで正しいです。
サイトのほうが間違ってました。ごめんなさい。
ウェブページのアップロードに失敗してたみたいです。
531名無しさん@お腹いっぱい。:2006/10/30(月) 07:02:38 ID:FpJIooBM0
>>530
安心しました
532名無しさん@お腹いっぱい。:2006/11/04(土) 14:21:45 ID:XLx2pib00
age
533名無しさん@お腹いっぱい。:2006/11/04(土) 20:42:19 ID:PUG4VUjoP
ログアウトしてからウィルスチェックして電源切るって事できるのかな?
534名無しさん@お腹いっぱい。:2006/11/06(月) 00:50:44 ID:sYmze66x0
giraffe+に付箋としての機能ってscriptでつけることできますか?
535名無しさん@お腹いっぱい。:2006/11/06(月) 19:53:10 ID:AXGAnvYo0
>>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
536名無しさん@お腹いっぱい。:2006/11/07(火) 21:06:32 ID:J17ZwOAM0
>>135
予想していたのと違いますが、これはこれでうれしいです。

ありがとうございます。
537名無しさん@お腹いっぱい。:2006/11/09(木) 13:21:32 ID:s4aiabezP
定型文入力とか、クリップボード拡張みたいな使い方はできないのかな?
538名無しさん@お腹いっぱい。:2006/11/10(金) 01:00:52 ID:iJ//7sew0
>>533 ログアウトするとGiraffe+が終了してまうのでいろいろ条件がいる

1.サービス"Task Scheduler" が開始されていること
2.管理者権限が必要
3.次のバッチファイルを用意する
  1行目 ウイルスチェッカーにスキャンを開始させるためのコマンド
  2行目 shutdown -s

ウィルスチェッカーのコマンドラインは調べてくれ。
ログオフ状態でスキャンできることはもちろんログも取れないと。
539538: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
540名無しさん@お腹いっぱい。:2006/11/10(金) 01:11:36 ID:iJ//7sew0
忘れてた。
スクリプトはDataディレクトリに置いて使うことを想定してる。
541名無しさん@お腹いっぱい。:2006/11/11(土) 11:07:01 ID:zB+QBfLz0
giraffe+って案外メモリ食わない?

それとも設定が悪いのかなぁ?
542名無しさん@お腹いっぱい。:2006/11/11(土) 12:03:14 ID:9sydllNa0
シェル関数使うアプリは食う。
ってか、シェル関数が食う。
543名無しさん@お腹いっぱい。:2006/11/13(月) 23:52:32 ID:q5L23hq10
アプリケーションのアイコンにファイルをD&Dして渡せるようにできる?
544名無しさん@お腹いっぱい。:2006/11/15(水) 20:13:01 ID:VH4igyF70
ShowMenu2を呼んで何も選択せずにEnterだとアプリケーションエラー発生。
再現します?

ShowMenu2(50 50 'そのままEnter' [])


>>543

リストボックスからD&Dは元からできるから違う意味だと思うんだけど。
5451/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)
5462/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
]
5473/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)
5484/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)
5495/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)]
]
)
550名無しさん@お腹いっぱい。:2006/11/18(土) 01:10:44 ID:fmsp1hbm0
すみません。
>>545-549だけど>>544のShowMenu2関係以外にReloadSettingsの度に
クリップボードの履歴が残らなかったり残ったりと不安定になります。
それ以外にもしばらくしてエラーが出ることがあったりと問題があります。
特にエラーは原因がまだ掴みきれてないので使用しないほうが良いです。
551名無しさん@お腹いっぱい。:2006/12/03(日) 23:42:05 ID:crwp6nr30
定期あげ

version 0.5.7.196
552名無しさん@お腹いっぱい。:2006/12/18(月) 04:07:27 ID:0t1Z6r770
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があまりにも低速だったのでメニュー生成部分を書き直した
553名無しさん@お腹いっぱい。:2006/12/20(水) 23:34:56 ID:BxriYwqY0
報告乙
イベントメニューが前より軽くなったのはありがたい
554名無しさん@お腹いっぱい。:2006/12/30(土) 14:24:25 ID:FrAOHom80
Giraffe+ 0.5.10.228

ファイル壊れてる?
555名無しさん@お腹いっぱい。:2006/12/30(土) 22:37:16 ID:lou6RZpM0
>554
>information 2006/12/30: アーカイブのアップロードに失敗していたため、再アップロードしました。
556名無しさん@お腹いっぱい。:2007/01/16(火) 23:11:12 ID:Y1uMAzbg0
定期上げ
557名無しさん@お腹いっぱい。:2007/01/20(土) 01:33:21 ID:+lp8YTUk0
パスの中間一致とかって出来ますか?
558名無しさん@お腹いっぱい。:2007/01/20(土) 02:03:45 ID:ADg+h1lG0
C:\Giraffe\readme.txt
に、"gi read"でアクセスってのなら出来ない。
559名無しさん@お腹いっぱい。:2007/01/20(土) 11:14:28 ID:jqO71zuS0
C:\Giraffe\readme.txt

っていうので、

c:\*raf*とかっていうのならできる。
560名無しさん@お腹いっぱい。:2007/01/20(土) 21:03:33 ID:VQDbRoLX0
履歴をリスト表示できませんか?
CraftlaunchやBluewindのようなな感じで、
履歴一覧、パスの補完候補一覧、コマンド一覧が一つのリストに表示出来たらと思うのですが。
561名無しさん@お腹いっぱい。:2007/01/20(土) 23:06:35 ID:+lp8YTUk0
入力履歴とクリップボードの履歴を
インクリメンタルに検索できたら実質中間一致見たいになるかもね。
562名無しさん@お腹いっぱい。:2007/01/24(水) 01:20:02 ID:nG3u6Zeb0
Giraffeをどこに配置してますか?自分は右下のかどっこ。
563名無しさん@お腹いっぱい。:2007/01/24(水) 08:42:58 ID:JrnaYkE70
画面の中心からやや下
564名無しさん@お腹いっぱい。:2007/01/28(日) 02:29:38 ID:CNvVIVC30
左上
タスクバー(上)の下
565名無しさん@お腹いっぱい。:2007/02/02(金) 01:07:35 ID:UqCDgm+B0
左下
ぴったり角につけるんじゃなくて少し間あけてる
タスクバーは右に縦配置
566名無しさん@お腹いっぱい。:2007/02/02(金) 18:53:27 ID:1h8XM+TR0
>>558
C:\Giraffe\readme.txt に
"gi"で
C:\Giraffe\hoge
C:\Giraffe\hage
C:\Giraffe\fuga
C:\gi\hoge
C:\gira\hoge
C:\hoge\giraffe

とかの候補を表示する感じとかも無理?
567名無しさん@お腹いっぱい。:2007/02/02(金) 21:54:11 ID:0NPp0B2f0
>>566
異なるディレクトリをまたいで部分一致したパスをリストアップするということかな。
それだと一般的なオートコンプリートというより検索になるような気が。

"c:;gi"と入力してc-fとすればそれらしい結果が得られると思う。
これだとその都度Cドライブに検索をかけるので遅いけど。

そういうのはfenrirみたいな検索型ランチャの得意分野だったりする。
568名無しさん@お腹いっぱい。:2007/02/03(土) 03:48:50 ID:RaBb9riB0
>>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
の候補として表示される。
569名無しさん@お腹いっぱい。:2007/02/04(日) 00:58:32 ID:5kD5tpfi0
テキストファイルにもアイテムを登録できることを失念してた。
下はエディットのディレクトリ以下のパスを登録するスクリプトなのだが…。
テキストファイルに大量にアイテムを登録するとオートコンプリートがかなり重たくなってしまう。
今のとこオートコンプリート毎に参照する仕様らしいから仕方ないかな。

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)
]
570名無しさん@お腹いっぱい。:2007/02/09(金) 20:32:45 ID:CzkWettN0
>>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"))
]
571名無しさん@お腹いっぱい。:2007/02/09(金) 20:33:34 ID:CzkWettN0
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
573名無しさん@お腹いっぱい。:2007/02/21(水) 02:06:49 ID:nxuy/o8E0
なんかGiraffe常駐してる状態でRO(Ragnarok Online)起動するとGiraffeが反応なくなる・・・
nProtectの影響なんかな…
574名無しさん@お腹いっぱい。:2007/02/26(月) 23:04:14 ID:2kxUiyQQ0
Craft Launch EXとGiraffe+。どっちが出来ることが多いの?拡張性の高さも。
575名無しさん@お腹いっぱい。:2007/02/27(火) 01:54:51 ID:QaXXpxZp0
俺はGiraffe+だと思うぜ。
576名無しさん@お腹いっぱい。:2007/02/28(水) 02:11:12 ID:tJxNtu3t0
Craft Launch EXの方が拡張性は高いよ。
Python使うんだから当たり前だけど。
577名無しさん@お腹いっぱい。:2007/02/28(水) 03:33:54 ID:tfmmfdo50
拡張性=使いやすさ&見易さではないので。念のため。
限界まで使いこなせる力量があれば別だけど。
膨大なスクリプトを書いた上デバッグするはめになるのなら本末転倒。
578名無しさん@お腹いっぱい。:2007/02/28(水) 05:24:31 ID:ZV4re8R20
>>576
Pythonであることと拡張性には何の関係も無いでしょ。

AHKやmayuもそうだけど、この手のソフトの拡張性ってのは、APIやイベントが全て。
一方通行の拡張なら、DLLを書けばいいし、それに勝る拡張手段なんて無い。
Bluewindや旧giraffeみたいに単機能exeを実行するだけでも十分だったりする。

>>574が想定してる「拡張性」や「出来ること」は、
リストのアイコンの表示のOn/Offができるとか、
スタートメニューの内容をそのままコマンドリストとして使えるとか、
そういうのだと思うけど。
579名無しさん@お腹いっぱい。:2007/02/28(水) 06:45:57 ID:/53akUTJ0
面白そうだけどなんか重いなぁ。
580名無しさん@お腹いっぱい。:2007/02/28(水) 09:10:51 ID:tJxNtu3t0
>>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に対しての回答にふさわしくないってのは、その下の段落で言及してる。
582名無しさん@お腹いっぱい。:2007/02/28(水) 22:43:31 ID:BeTPZsd30
それぞれの拡張の手段であるGiraffeスクリプトとPythonを比べると
直感的に言語として地位をすでに築いてるPythonが守備範囲が広い気がする。
583名無しさん@お腹いっぱい。:2007/03/01(木) 10:13:04 ID:i/1XhUSx0
スクリプトによる拡張と、単なるスクリプトの実行の違いなんて、
分からないほうが普通なんだよな。
APIやイベントなんて言葉、知ってるほうがおかしい。
584名無しさん@お腹いっぱい。:2007/03/01(木) 16:35:59 ID:TCUE8vUX0
拡張というより柔軟な設定変更といった方が良い気がする。
設定変更のために複雑なコードを書きたがる人はいない。

拡張性というと「なんでもスクリプトでやらなくては、それならいっそ汎用言語で…」
と使用目的がランチャーから脱線していく罠があるように見える。
585名無しさん@お腹いっぱい。:2007/03/02(金) 02:06:39 ID:13K56geq0
スクリプトでやるということは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)
586tJxNtu3t0:2007/03/02(金) 14:10:47 ID:hzi+25ld0
>>581
そういう意味では賛成できるが
現状を見るかぎり、やはり、Craftの方が拡張性は高いと思うよ。
例えば、少し上に出ているパスの中間一致とかはCraftなら出来る。
fenrirを使えと出ているけど、Craft使えば、fenrirもどきの動きはする。
587名無しさん@お腹いっぱい。:2007/03/02(金) 14:12:35 ID:hzi+25ld0
>>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や色の設定もあるし。
589584:2007/03/03(土) 03:18:40 ID:b2e6fgE80
>>587
なんでコード書くこと自体否定するような解釈をしたがるのか理解に苦しむ。
使う気がないのに何が目的にこのスレにいるの?

好みにうるさくなければbluewindをどうぞ。
見た目も大事。柔軟な設定をしたい方。Giraffeへようこそ。
中身が全て。コード読むのも書くのも任せろ。Craftがあります。

あなたと波長のあわないソフトのスレで議論しなくても良いんじゃないかな?
590名無しさん@お腹いっぱい。:2007/03/03(土) 03:34:49 ID:b2e6fgE80
あれ?>>587さんはコード書くことが全くない人か。
汎用言語使うよりもシンプルなコードで設定できるんだよ、と書いたつもりだったんだが。
書かない人にはGiraffeもPythonも複雑だろうから話がかみ合わないよ。

>>588さんもお互いスクリプトが書ける前提で議論してると見た。
591名無しさん@お腹いっぱい。:2007/03/03(土) 09:26:10 ID:MJ+oAb390
お前らなんか反応キモw
Giaffeの中の人も大変だ。まあ、作者かもしれないけど。
592名無しさん@お腹いっぱい。:2007/03/03(土) 11:33:38 ID:DtvAX4l80
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
595名無しさん@お腹いっぱい。:2007/04/30(月) 21:19:55 ID:zFQ5TGBg0
どなたかお助けを。
アクティブ時と非アクティブ時に表示位置とフォントの大きさとウィンドウの高さを変えたくて次のようにしてみました。

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))))

続く
596名無しさん@お腹いっぱい。:2007/04/30(月) 21:21:04 ID:zFQ5TGBg0
続き

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)を強引に切り詰めた感じ(うまい言い方が見つからない)になってしまいます。
ダイアログで設定したときのようにきちんと(?)高さが縮んで欲しいのですがどうしたらいいでしょう。
597名無しさん@お腹いっぱい。:2007/05/01(火) 01:46:09 ID:JWGjQ8Gn0
ApplyConfig((size))をWindow.SetPos後に挿入
598名無しさん@お腹いっぱい。:2007/05/01(火) 02:33:56 ID:ktDZ6+5H0
>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
おれ、すごい前のバージョンをつかってて
久しぶりにバージョナップしようと思ってこのスレ来てみたら・・・


いったい何に使えばいいんだ・・・確かランチャーだったよな・・・
600名無しさん@お腹いっぱい。:2007/06/10(日) 16:28:20 ID:s7J0Y5Vt0
これはランチャー以外にもやりたいことがある人向けのソフト
601名無しさん@お腹いっぱい。:2007/06/17(日) 13:59:04 ID:J/M25gDw0
Yet Another Alt+Tab Replacement
でリストを絞り込んで表示できるようになりませんか?
該当するwindowタイトル以外は表示しないようにしたい
602名無しさん@お腹いっぱい。:2007/06/20(水) 19:20:29 ID:Taa/xCSd0
>>601
作者に要望か
SwitchWindow.giraffeを見て考える
603名無しさん@お腹いっぱい。:2007/07/21(土) 17:10:19 ID:1Sn9lDH/P
foobarで音楽を再生中の場合に、これにジャケットとか表示できないかな〜?
604名無しさん@お腹いっぱい。:2007/07/26(木) 14:47:41 ID:RkEMorF60
アクティベイト、ディアクティベイトする度に
少しずつメモリ使用量が上昇していくんだけど、なんかバグっぽくないですか?そんなもん?

あとmigemo使用時のメモリ使用量が
他のmigemoを使うソフトウェアに比べて多すぎるんだけど
(migemo使用時と未使用時で20Mくらい違う)
どーにかする方法ないですか?
605名無しさん@お腹いっぱい。:2007/07/26(木) 18:27:21 ID:hB+u4MBS0
>メモリ使用量上昇
GCはそんなもん、だと思う。
ゆっくりと段階的に開放してるはず。

>migemoのメモリ使用量
自分の環境だとxyzzyと同じ。
siteinit.giraffeでオープンしてて、なおかつ設定ダイアログでもやってて二倍になってるとか。
"Migemo.close"でF1して減るメモリ使用量を確認してみるといいかも。
606名無しさん@お腹いっぱい。:2007/08/13(月) 22:41:40 ID:UEBbRvWu0
定期あげ

0.5.29.460
607名無しさん@お腹いっぱい。:2007/08/17(金) 06:25:13 ID:jCkN+0Gd0
デスクトップと解像度の違うフルスクリーンのゲームすると、Giraffeの位置が変わっちゃって
その後Girffe終了するときに位置を保存したくないんですがどうすればいいですか?
フルスクリーン後の位置が変わってしまうのはどうしようもないと思うんですが、
Giraffe.iniをRead-onlyにすると思い通りになりましたが、何かもっとスマートな方法があれば教えてください。
608名無しさん@お腹いっぱい。:2007/08/17(金) 07:38:50 ID:CXcmdggy0
siteinit.giraffeに、
SetConfig('Unload')
で、終了時の設定保存を、
SetConfig('OnMove_MainWnd' [true])
で、ウインドウが動いたときのConfig更新を殺せる。
609名無しさん@お腹いっぱい。:2007/08/17(金) 08:33:09 ID:jCkN+0Gd0
>>608
ありがとう。まったく違うとこさがしてた。
結構前から気になってたからすごい助かりました。
610名無しさん@お腹いっぱい。:2007/08/17(金) 08:51:21 ID:CXcmdggy0
あ、SetConfigじゃなくてSetEventだ。
611名無しさん@お腹いっぱい。:2007/08/17(金) 09:23:49 ID:jCkN+0Gd0
>>610
aaしっかりEventに変換して記入してたw ありがとう
612名無しさん@お腹いっぱい。:2007/09/02(日) 20:57:02 ID:DZiHz7fG0
作者様のblog中に、スクリプトの試行には、コードをコピーして、giraffeに
get-cb.evalと入力し、F1を押すとありますが、特に何も起きないようです。
何が間違っているのでしょうか?
おそらくget-cbのcbはクリップボードの意味と思われるので、コピーしてから
クリップボードに保存されたコードをevalする、という意味かと思うので、
操作的には間違いないように思うのですが。
613名無しさん@お腹いっぱい。
何も起きてないように見える内容のものを評価してるだけじゃないかと。
get-cb.flushでF1押して、クリップボードの中身とF1が有効かどうかの確認をしてみるといいかも。