« アクセス数 激増 | メイン | BMWウィリアムズ FW26 »

2004年1月 6日

ScrubDelete X 今後の方針

カテゴリー: ScrubDelete

次のバージョンの1.0b2は、早ければ今週末にも、遅くても1月下旬までには公開したいと思っています。今回は大きな変更を予定しています。私自信がまだMacOS Xの慣習、作法といったものを十分に理解していない面もありますので、以下に方針を書いてみました。ご意見等あればぜひコメントしてください。賛同のコメントも大歓迎です(^^;)

・現在は普通のアプリケーションですが、バックグラウンドアプリケーションとします。

これによってDockにアイコンが出なくなります。またメニューバーが使用できなくなりますので、環境設定ダイアログを出すには起動中のScrubDelete Xのアイコンをダブルクリックする仕様にしたいと思います。(起動中でない場合は単に起動するだけ。)

システム環境設定などに設定画面を持つという方法もあると思いますが、現段階では見送らせていただきます。Carbonアプリで作れるのか分からない(←勉強不足)、インストーラーを作らなくてはならないのではないか(←未確認)、インストール時に管理者パスワードの入力が必要かもしれない(←未確認)など、分からないことが多すぎるためです。将来的には対応するかもしれませんが、これを今やると大幅にリリースが遅れることになりそうですので、とりあえず簡単にできる方法でやりたいと思います。


・現在AppleEventで行っているファイルのゴミ箱への移動を、Finderに対してキーストロークを送信する方法に変更します。

これはFileVaultの問題(1/4の日記を参照)に対処するためです。今後のMacOS Xのバージョンでこの問題が修正される可能性もありますが、将来的にもこちらのほうがリスクが少ないと判断しました。ただ、OS XではFinderのショートカットをユーザーが自由に変更できますので、それに対処するかどうかはまだ迷っています。

ちなみにClassic版のScrubDeleteはFinderに寄生する(?)プログラムでしたので、PPostEvent()というAPIで自らの(つまりFinderの)イベントキューにキーストロークを送信する方法で動いていました。OS Xでは同じ方法が使えなくなったので1.0b1まではAppleEventを使用しましたが、先日、CGPostKeyboardEvent()というAPIがあることを知りました。なんでQuartz API内にあるねん(^^;) MacOS Xは奥が深いです(笑)



コメント

メニューバーの右の方に常駐するようなアプリもあるようですが
環境設定だけならアイコンダブルクリックで良さそうですね
アプリケーションフォルダもショートカットで開けますし

投稿者 B.B. : 2004年1月 8日 01:51

prefsPaneですが、

1)現時点でCarbonではできません。Cocoaのみ。

2)インストーラはあれば便利ですけど、なくても~/Library/PreferencePanes/におけばOKです。ドキュメントに書いておけば足りる、というMacユーザを信じたい(あてにならないですね)。
3)自分が起動したアプリに通知するだけなら管理者のパスワードは不要です。root権限で動くやつでもUNIXソケットとか使えば大丈夫と思います。

管理者パスワードが必要なのは、
・/usrとか/etcとか/Systemの下をいじる奴
・root権限で動いているプロセスにkill -HUPとかする奴
など、ほんとにコアなやつ(ドライバ類・システムサービス類)だけです。

Cocoa&PreferencesPaneの勉強もものすごく大変かっつーと、そんなに大変じゃないんでは?という感じです(ProjectBuilder/Xcodeにも雛形ありますし)。
単体アプリの方がデバッグはしやすいんで、PreferencesPaneを圧倒的におすすめはできないんですが。

投稿者 kabeya : 2004年1月 9日 00:17

> メニューバーの右の方に常駐するようなアプリ

それもありですね。でもこれもCarbonで作れるのか分からないや(^^;)

> prefsPane

ありがとうございます。Cocoaのみということなら、やはりすぐには無理ですね。

でもアイコンだけ出して、クリックされたら今の環境設定ダイアログを呼び出すような形にすれば簡単かもしれませんね。AppleEvent送るだけですからね。

投稿者 浅利 : 2004年1月 9日 02:09

あ、よく考えたら、~/Library/PreferencePanes/だとそのユーザーしか使えないんですよね? どうせなら全ユーザーが使える場所にインストールしたいんですが、そうするとその場所にインストールするのに管理者パスワードいるんじゃないでしょうか?

そうすると現実的にはやはりインストーラも必要ですね。やっぱりアプリケーション形式がシンプルでいいかな(^^;)

投稿者 浅利 : 2004年1月 9日 02:31

> でもアイコンだけ出して、クリックされたら今の環境設定ダイアログを呼び出すような形にすれば簡単かもしれませんね。AppleEvent送るだけですからね。

Microsoft Mouseのコントロールパネルがまさにそんな感じですね。コンパネ開くと別アプリが起動します。コンパネにはアイコンボタンのみ。

> そうするとその場所にインストールするのに管理者パスワードいるんじゃないでしょうか?

確かに。普段1人で使ってるので忘れてました:)
インストーラは/Developer/Applications/Utility/PackageMakerで作れば認証機能も付いてますんで割と楽に作れます。

投稿者 kabeya : 2004年1月 9日 08:15

Cocoa、というかAppleの開発環境は至れり尽くせりですね。
CodeWarriorにもう未来はないかな?(^^;)

投稿者 浅利 : 2004年1月10日 01:10

よろしければコメントしてください。

※メールアドレス以外の項目はこのページ上に公開されます。個人情報などの入力にはご注意ください。




保存しますか?


「投稿」ボタンを押してから書き込み完了までに多少時間がかかる場合があります。ご了承ください。