2001年04月17日

正式版公開

テスト版公開(Version 0.9.9.4)

ある個所のウィンドウの初期化のところがすっぽり抜けてました(w。これでもうちでは動くのですから不思議です。 もちろんこれは修正しました。 ついでに画面端へのウィンドウスナップの要望があったので、追加してみました。
グループファイルの入出力で実装されていなかった機能を追加。
だんだん完成に近づいてきました。

テスト版公開(Version 0.9.9.6)

ウィンドウをツールウィンドウに変えました。 この変更によりウィンドウが隠れた時しか表示していなかったタスクトレイのアイコンを、起動中ずっと表示するように変更。
これによりタスクトレイのアイコンにメニューを追加。ヘルプボタンをメインウィンドウから削除して、こちらのメニューに入れる。

テスト版公開(Version 0.9.9.8)

編集モード時にダブルクリックによる起動テストを追加。
ウィンドウスナップの修正。
ポップアップメニューに保存しないで終了するメニュー追加。

テスト版公開(Version 0.9.9.9)

テスト版としては最終バージョンの公開。
主にバグ潰しと最適化を行う。

正式版公開(Version 1.0)

とうとう正式版の公開です。 最終テスト版で何も無ければそのままバージョンだけ変えるつもりでしたが、そんなに甘くはありませんでした。

まずバージョン表示のダイアログが何枚でも開けてしまうというバグ。ポップアップメニューに移したために出たバグでした。 まずこれを修正。
グループファイルの保存の時同じグループなのに、上書き確認の警告がでていたので、このバグを修正。

ファイルダイアログでグループファイルを開いた時に、ウィンドウ位置の修正をしていなかったのを修正するように変更。

その他にはアイコンファイルを1度設定すると、アイテム自体を別のものにしない限り消せないということに気が付きました。
というわけで新しくアイコンクリアボタンを追加しました。

さらにグループファイルの時に相手のグループファイルのアイコンを検索して、アイテムに取り込めるアイコン検索ボタンを追加しました。
ポップアップメニューにES Launcherのフォルダを開くメニューを追加。

その他細かい修正や最適化を行い、公開となりました
その後の変更については更新履歴にて…
posted by T.M at 00:00| Comment(0) | TrackBack(0) | ES Launcher | このブログの読者になる | 更新情報をチェックする

2001年04月14日

テスト版公開

データ変換

ほとんどの機能は正常に動くようになりました。データフォーマットも固まりました。
という訳でデバッグ用にテキストで出力していたデータを、バイナリベースに切り替えることにしました。
一応開発しながらも既に自分では使用しているので、データの変換が必要です。 とりあえず読み込みはテキストで、保存をバイナリで・・・・っとやっていたのですが、 ちょっと手抜きをしてデータを壊してしまいました。(TT
手抜きは良くないですね。

テスト版公開(Version 0.9.9.2)

さてデータ形式もしっかり固まったところで、テスト版として公開しました。
公開といっても自分のHPで、しかも公開していないURL(w
とりあえずBBSで人柱を募って使ってもらいました。
バグが残ってました。やはり自分の環境以外で使ってもらうのは重要ですね。
posted by T.M at 00:00| Comment(0) | TrackBack(0) | ES Launcher | このブログの読者になる | 更新情報をチェックする

2001年04月03日

ちらちら

順調な開発

開発は順調でした。バグは出るものの、全く手も足もでないという状態になって詰まることはありませんでした。 片手で持ったら手が吊りそうな糞重たいマニュアルと比べれば、MSDNのヘルプは天国のような環境です。
それでも分かり難いところはあって、かなり力技で解決したところもあります。(w

とにかく最適化は後回しにして一通り使える状態まで作ってしまおうということで、かなりのペースで組みました。
土日をほとんど潰して丸二日でほぼ形にしました。実行した結果は…バグは直すから良いとしてちょっと気になるところが出てきました。

ちらちら

アイテムの移動や編集をする画面の描画をする時に、ちらちらするのが気になります。特にドラッグ中は酷く多分誰でも気になるレベルでしょう。 原因は分かっています。アイコン110個+いろいろ表示させるわけですから、表示中にも描画してしまいます。

まずここから最適化することにしました。
毎回全画面を再描画させていたものを、セオリー通り変化のあった場所だけ書き直すようにしました。
少しはましになりましたが、まだ気になります。
「やはりあれを待つしかない」ということで見つけたのが、IDirectDrawVideoPort::WaitForSync()です。 しかしよく見ると…なにやら怪しい感じが「DirectDrawって…」これはさすがに使えません。
ランチャなのにDirectXが必要なんて間抜け過ぎます。

しかしこれを見つけたのは無駄でもありませんでした。 「同期は取れなくてもダブルバッファにすればいいんだ」ということに気がつきました。
あまりメモリは使いたくなかったので裏バッファは取っていなかったのですが、 ここまでちらちらするとさすがにまずいのでこのウィンドウだけは裏バッファを 取ることにしました。これでなんとかまともな状態になってほっと一息。
ここが開発中に一番詰まった場所でした。

コモンダイアログ

SDKは軽くて良いのですが、何から何まで自分でやらないといけないのでちょっと面倒な面もあります。
それが良いといえば良いのですが、大掛かりなものを自前で作ろうと思ってもかなり面倒なことになるのが容易に想像できるので、 なかなか手がつけられません。私の場合はファイル、フォルダの参照を作る気力がなくなり、コモンダイアログを使用しています。 アイコンの変更もShell32.dllの関数をそのまま使っています。

まあこの辺は使っても良いような気もしますが、ちょっとズルした気も…
(*Ver1.3以降ではファイル参照とアイコン変更のダイアグは、自作のものに切り替えたので使用していません。フォルダの参照は残してあります。 ちなみにこっちはShell32.dllのでしたね(w)
posted by T.M at 00:00| Comment(0) | TrackBack(0) | ES Launcher | このブログの読者になる | 更新情報をチェックする

2001年04月01日

名前

そいうえば…

さて作り始めるか…と新規のワークスペースを作ろうと思ったとき。 CでGUIベースのプログラム書くの初めてだということに気が付きました。(w
仕事で使うちょっとしたツールを作るときは、細かいことをやるところはコンソールアプリをCで作って FEとしてGUI部分をVBでちゃっちゃっと作っていました。(これが一番早いんです(w)
いつかはCで全部とは思っていたものの、時間とやる気(wの問題でやっていませんでした。 でも丁度いい機会なので、今後に使えるSDK用のライブラリも作ってしまおうということで始めました。

さすがに0からではちょっととっつき難いので、標準的なHello World(だったかな?)のスケルトンを いじることから始めました。というわけでES Launcherの初めてのプロジェクト名は"Hello"でした。(w

食わず嫌いは良くないね

Helloをいじること30分、思ったことは「なんだ、意外と簡単じゃん」ってことです。食わず嫌いはいけませんね。
とりあえず本番にかかる前にこいつでテストをすることにしました。 ダイアログを作るのが面倒なので、Aboutのダイアログにボタンを追加してそれを押したらメモ帳を起動するようにしました。 難なく成功。しかしexec()を使用していたため、起動前にコマンドプロンプトが表示されてしまいます。

「これはみっともないな・・・」ということで別の関数を探しました。 いろいろ関係ありそうな単語でひっかけていくとShellExecute()といういかにもな関数がありました。(説明は英語) あっさり起動成功。あまりにあっさり行くのでちょっと拍子抜けしつつも、組める自信がついたので一気に本番に入ることにしました。

名前は何にしよう?

順調に行くかに思えた開発ですが、いきなり詰まってしまいました。実は名前を決めていなかったのです。
これを決めないことには先に進めません。何たる失態でしょう。私は悩みました、悩んで悩んで考えること約2分。 "ES Launcher"という名前にすることにしました。しかし他に同じ名前のソフトがあっては面倒です、 一通りサーチエンジンでES Launcherを探し無いことを確認。これで無事に名前が決定しました。

出てくるまでの過程がないので、なんでこの名前になったか分からない人のために一応説明しましょう。 まずランチャーなので、XXXX ランチャーとかXXXX Launch(er)にしようと思っていました。 問題は頭に入る文字です。何か特徴的なものを入れたいですが、このランチャーの特徴ってなんでしょう?
いきなり落ちるので、QUIT ランチャー?、ちょっとごろが悪い。EXITからとってEX ランチャー…何かありそう。 あまり人が付けていないような名前でごろが良い名前は無いだろうか。

そういえば連続で起動させるだけのファイルをなんて名前にしよう…ショートカットみたいだけど複数起動できるから拡張ショートカットでいいかな。英語だとExpanded Shortcutかな? ということは拡張ショートカットを作るランチャーということで、その頭文字をとって"ES ランチャー"(いーえすらんちゃー)。 ごろは良いけどアルファベットとカタカナが混じってちょっと間抜けな雰囲気なので"ES Launcher"にするか。

という感じで決めました。
これでようやく開発に入れました。
posted by T.M at 00:00| Comment(0) | TrackBack(0) | ES Launcher | このブログの読者になる | 更新情報をチェックする

2001年03月31日

開発準備

仕様確認

開発にかかる前に仕様を固めなければなりません。 今回の仕様は私の欲しいランチャなので、以下の前項で紹介した条件を持ったものということになります。
1.連続起動ができる。
2.常駐しない。または終了が簡単。
3.余計な機能がついていない。
4.ファイルが小さい
5.シェアウェアではない。
6.設定が簡単

5は自分で自分のために作るので関係ないですが、 考えているうちにある程度一般でも使えそうなものになりそうになってきたので、 久しぶりにオンラインソフトとして公開することを考え始め次の条件を加えました。

7.レジストリを使わない
8.通常のランチャとしても使用可能
9.引数を渡してランチャを起動しないで連続起動させたい。
の3つです。

7はあまりにも酷いソフトが横行しているのでた自分で作るものは行儀のいいものをと思ったのと、 設定が少ないのでデータファイルに埋め込んでしまおうと思ったからです。 行儀の悪いランチャの中には何を勘違いしたのかデータまでレジストリに入れているのもありましたが、あんなみっともない真似はしたくはありません。
8は一応普通の使用にも耐えられるように、私自身もそういう使い方をする場合もあるので、終了しないオプションもつけるようにしました。
9はQuick Launchの補助という考えから生まれたので、ランチャを起動しなくても連続起動できるような仕組みも付けようと考えました。

仕様確認2

仕様は上で上げた通りなのですが、もうちょっと突っ込んだ仕様。というよりスタイル?のようなものを考えます。
2の常駐しない。または終了が簡単。よく”xxランチャを終了しますが、よろしいですか?”なんて聞いてくるのもありますが、鬱陶しいことこの上ありません。 ということでクローズボックスは装備して、終了の確認もしないということにしました。
3.余計な機能がついていない。

個人的にランチャについている機能で嫌なものTOP5

1.Windows終了
簡単なコードで実装できるので入れたくなるのも分かりますが、ランチャ自身の終了と並べられていたりするともう・・・ そんなに頻繁にWindows終了させるのでしょうか?だいたいスターとメニューってそんなに使い難いですかね?

2.ウィンドウ整列
いわゆる横に並べるとか縦に並べるとかをワンタッチでできる機能です。使う人には便利かもしれませんが、私は使わないのでかなり迷惑です。 しかも大体がやりやすい場所に付いていることが多いので、間違って押してしまうことも・・・

3.いつでも復帰。
何らかのアクションで消えているランチャが復帰する機能ですが、自分が意図しない場合でも出てくるときがあるのでかなり邪魔。 終了させればいいと思っても、そういうのに限って終了が面倒。

4.情報表示
OSとかCPUとかHDメモリの情報などです。これも簡単に装備できるし見た目にも工夫したような感じを出せるので、 装備したいのも分からないでもないですが、私から言わせれば表示領域を無駄に使っているだけです。
自分の使っているOSぐらい知っているし、CPUも知っている。もし知らないで使っている人ならそんなものに興味はないだろうし。 HDの空きも逐次確認している必要があるのかどうか・・・メモリが気になるようなら専用ツール使います。

5.時計
いらないです。そんなに時計いっぱい表示されても・・・それに時計として使って欲しいなら消えないでくれませんか(w?
ま、こんな感じです。
ものは言いようでこれらの機能を装備していると高機能と言われたりしますが、使わない人にとっては余計な機能がついているだけです。
というわけでランチャ機能だけに絞って作ることにしました。

6.設定が簡単
これが一番難しいところです。設定が多い=難しいとは限りません。設定が多くても、分かりやすい優れたソフトはたくさんあります。 しかし設定が多いとそれだけで毛嫌いする人がいることも確かです。作者は勿論全ての設定について把握できているので、 いくら設定を増やしても構わないのでしょうが初めて使う人がいきなりたくさんの設定を見て、素直に設定変更できるというような インターフェースを考えるのは結構難しいものです。

逆に設定が少なければ簡単になるのは必然。ただしカスタマイズ性に乏しくなるので、こちらである程度汎用的な設定を用意する必要があります。
私個人的にも設定の多いのは嫌いですしランチャにそんなに設定は必要ないだろうということで、今回は極力設定数を減らす方向で作ることにしました。

開発環境

開発にかかるのは良いのですが、何で開発するのか特に決めていませんでした。 個人で所有している開発環境はVS 6.0、オンラインソフトということならVB,VC++(MFC).VC++(SDK)の、3つから最適なものを選ぶことになります。

一番簡単なのはVBです。しかしCをメインで使っている私にとっては、細かいところがどうも使い難いという感じがありました。 加えて実行が遅い上にランタイムが必要というのがちょっと・・・ プラットフォームは違えど一応プロとしては"実行にはVBRXXX.DLLが必要です”なんてこっ恥ずかしいこと書けません。

そうするとMFCもDLLが必要になってしまいます。まあこちらは最近のWindowsは標準で用意しているので大丈夫だとは思うのですが、 どうも頻繁にバージョンアップがされてなんか怪しいと思うことがしばしば・・・
結局ランチャなんて単純なプログラムを作るのでそんなに大袈裟なライブラリも必要ないということで、SDKで開発することにしました
posted by T.M at 00:00| Comment(0) | TrackBack(0) | ES Launcher | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。