-
Notifications
You must be signed in to change notification settings - Fork 0
/
wrapexec.cpp.log
139 lines (109 loc) · 4.8 KB
/
wrapexec.cpp.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#このファイルは削除しないで下さい。
#HISTORY "wrapexec.cpp"
--2009/08/05以前に済
・かっこいいアイコン
・rcodeの整理
・アイコンが汚い & ボタンのハイライトが薄い & 内側のウィンドウもっと内側に & 高さがなんだか低い & 48x48アイコンはこの際不要?
・svnで管理
・実行するコマンド等に & | 等を含んでいた場合の対応をした(^でエスケープ)
・${xxx} だけでなく $(xxx) $[xxx] も記述可能にした
・パスの末尾には原則 '\'をつけるようにした
・${ARGV_ALL} → ${ARG}
・${SYS_*}
・${USER_*}
・${PROGRAM_*}
・オプション wait
・';'もコメント開始文字として扱う
・環境変数の扱い import_env
・環境変数の扱い export_env
・環境変数からではなく、APIから各種フォルダを取得する SHGetSpecialFolderLocation他
・ユーザ名をAPIから取得する
・コンピュータ名をAPIから取得する
・[EOF]の処理
・c++のwcout,wcerrをやめてcのstdout,stderrを使うようにした
・ifstreamをやめてfopen()をつかうようにした
・複数コマンドの実行に対応
・ドキュメント作成
・サンプルの.iniファイル作成
・タイトル画像
・公開
・xxxList → xxxs
--2009/08/05以前に没
・#!とリネームすると何か動きが変わる機能
→よく考えたら動きが異なる。バッチの管理領域を操作できないと無理
・自分自身をexecしないようガード(wrapexec_singleton_%0)
→複数起動できなくなってしまう
→CreateProcess()化して起動中のみsingleton化する?
→短時間に同時に起動された場合に誤判定してしまう
・バージョン番号が.rcと.cppとに分散している
→分散しててもたいした手間ではない
・${xx\}xx} などという記述は可能にする必要あるか?
→必要になると思われるケースがいまのところない
→${xxx:yyy=zzz}のような記述ができるようになれば必要かも
・import_env=* , export_env=*
→よく考えたらニーズなさそう
・インライン関数を減らすとサイズ減る?
→なぜか全然変わりませんでした・・・
・ファイル存在チェックをAPIで GetFileAttributes()
→何の意味が。
--2009/08/06
● ログ開始
--TODO
・オプション fall_thru (名称未定)
・アイコンとスクリプトをexeに取り込むツール
・ボリュームラベルまたはボリュームシリアルからドライブ名を得る
→http://hp.vector.co.jp/authors/VA007799/tips/tips1.htm Tips1 有効なドライブの情報取得
→GetVolumeInformation よりも SHGetFileInfo をつかう
・カスタムエラーメッセージ
・*wはメッセージは標準出力ではなくMessageBoxで出す
・オプション which
・標準出力を引き継ぐ
・*wのときはcmd.exeをハイドする
・自分自身は再実行しない(PathCanonicalize)
・BeginUpdateResource
→Windows実行ファイルのバイナリ概要 http://codezine.jp/article/detail/403
--------
WAIT = off
プログラムの終了を待たない
WAIT = on
プログラムの終了を待つ
--------
INTERNAL = off
実行対象の存在確認をする
cmd.exe経由で実行する ※ 現状 直接実行する
INTERNAL = on
実行対象の存在確認をしない
cmd.exe経由で実行する
--------
CHDIR != UNC PATH
直接実行する
CHDIR == UNC PATH
cmd.exe経由で実行する
--------
HIDE = off
コンソールウィンドウを生成しない
HIDE = on
コンソールウィンドウを生成する
--------
エクスプローラからダブルクリック(親コンソールなし)
→GUI=offの場合
コンソールを開く
メッセージは標準出力へ
→GUI=onの場合
コンソールを開かない
メッセージはMessageBoxへ
コンソールから実行(親コンソールあり)
→GUI=offの場合
親コンソールを再利用
メッセージは標準出力へ
→GUI=onの場合
親コンソールを再利用(ていうか使用しない)
メッセージはMessageBoxへ
→GUI=offの場合
デフォルトで wait = on (終了を待つ)
→GUI=onの場合
デフォルトで wait = on (終了を待つ) ※ 現状 off (待たない)
これにより、rogueがインストールされていれば、それを起動して終了する。さもなくば、
hackがインストールされていれば、それを起動して終了する。それも無ければ、emacsの
ハノイの塔を起動して終了する。それすら無ければ、仕方ないのでメッセージを
表示して終了する。といったことができます。