_ | 何か+ 拡張プラグイン "NPP"仕様書 何か+ プラグインインストーラ "NPI"仕様書 Last Update 2001-06-17 メール/トップページ/何か関連ダウンロードページ/さくらみかげ 最新:NPP/1.3(2001-06-17) NPI/1.0(2001-05-13) [概要] 簡単な定義ファイル及び、プログラムを用意することで、何か+内のメニューに項目を追加し、何か本体に機能を拡張することが出来ます。拡張手段がDLLではなくEXEのため、VBなどのDLLが作成できない環境でもプラグインを作成することが可能です。定義ファイルによってメニューの追加内容を定義し、メニューが実際にクリックされた場合、定義された実行ファイルが呼び出されます。 [構成] home +-npplugin +-xxxxxx +-npplugin.txt,yyyyy.exe ※npplug以下1階層下のフォルダを検索します。 [npplugin.txt] ▼NPP/1.0 npplugin.txtは定義ファイルです。何か+にどんな名前のメニューを追加し、どんなコマンドを実行するのか指定します。 定義ファイルの一行目には必ずNPP/1.0(1.0はバージョンをあらわし、今後、変更される可能性があります)という文字をおいてください。これがないとプラグインファイルとはみなされず、何か+のメニューには機能が追加されません。2行目以降には、実際に追加する機能のデータを記述します。フォーマットは以下です。 メニューに表示される文字,実行ファイル名,コマンドラインオプション ※パスは記述しないでください。ただし、npplugin.txtがあるフォルダからの相対パスを記述する場合はかまいません。 ※コマンドラインオプションは省略可能です。 ex.)npplugin.txt
この場合、メニューにメモリチェック(通常モード)、メモリチェック(簡易モード)、ディスクチェックという項目を追加し、それらがクリックされた場合、それぞれ、MEMCHK.EXE /NORMAL,MEMCHK.EXE /EASY,DSKCHK.EXEというファイル名+コマンドラインオプションを呼び出します。(実際に実行される際には/hオプションが追加されます。これについては後述。) [yyyyy.exe] 実際に呼び出される実行ファイルです。 呼び出される際には、 yyyyy.exe /h何かのウィンドウハンドル コマンドラインオプション ex.)memchk.exe /h123456 /NORMAL という形で呼び出されます。DirectSSTPなどを使用する場合には/hオプションで渡されるウィンドウハンドルに対してメッセージを送信してください。このウィンドウハンドルは実際にメニューがクリックされたウィンドウのウィンドウハンドルです。”何か”が複数起動していても区別されます。 [SAKURAP.DLL] 何か+を使用する際に便利な命令がいくつかインプリメントされています。DLLはプラグインが存在する二つ上の階層のディレクトリ(..\..\)にあることが保証されます。 ■NPRefresh(NPP/1.1) C)__declspec( dllexport ) long __stdcall NPRefresh(void) VB)Declare Function NPRefresh Lib "sakurap.dll" () As Long メニューを更新します。 Phase 1.2(NPP/1.1)から仕様が変更になりました。メニューを更新する場合にはこのAPIを呼ばなければなりません。 戻り値 0:成功 -1:失敗 ■NPGetVersion(NPP/1.1) C)__declspec( dllexport ) long __stdcall NPGetVersion(void) VB)Declare Function NPGetVersion Lib "sakurap.dll" () As Long NPPのバージョンを得ます。本体のバージョンではなくNPPのバージョンであることに注意してください。戻り値が110ならNPP/1.1、120ならNPP/1.2です。 ▼NPP/1.2 NPP/1.2では、NPP/1.0、NPP/1.1のフルサポートに加え、ポップアップメニュー内にポップアップメニューを作成するおよび、メニュー内のセパレート(区切り)の作成、sakurap.exeのロード/アンロード時の実行ファイル呼び出しが可能です。以下にnpplugin.txtの例を示します。
・ポップアップメニュー内のポップアップメニュー ポップアップメニュー内にポップアップメニューを作成するには「\」で区切って名前を指定してください。「\」より前が親、「\」より後ろが子になります。なお現在、一階層下までしかポップアップメニューを作成しません。NPP/1.1までで「\」を使った場合には「メモリ関連\メモリチェック通常モード」のように表示されます。 ・セパレート作成機能 セパレートを作成するには「SEPARATOR」という文字を置き、第2引数と第3引数は省略してください。この場合も、ポップアップメニューの指定が可能です。 ・sakurap.exeのロード時/アンロード時の実行ファイルの呼び出し sakurap.exeのロード時/アンロード時に特定の実行ファイルを呼ぶには第一引数に「LOAD」/「UNLOAD」という文字を置き、第2引数に実行するファイル名、第3引数にコマンドラインオプションを記述してください。なお、この時点でメニューの作成は終了しているのでメニューを更新したい場合にはNPRefreshを呼んでください。 ▼NPP/1.3 NPP/1.3では、NPP/1.0、NPP/1.1、NPP/1.2のフルサポートに加え、一定間隔で実行ファイルを呼び出すことが可能です。以下にnpplugin.txtの例を示します
実行ファイルを一定時間ごとに呼び出したい場合は第一引数にSEC[sec]という文字を置いてください。secには呼び出したい間隔を秒単位で指定してください。また、第2引数、第3引数はそれぞれ呼び出す実行ファイルとコマンドラインオプションです。 上の例では、900秒(=15分)ごとにMEMCHK.EXEを/EASYオプションをつけて実行し、3600秒(=1時間)ごとにMEMCHK.EXEを/NORMALオプションをつけて実行します。 [何か+の存在を確認する方法] NPP/1.1以降 何か+は"NPP"という名前のMUTEXを保持します。OpenMutexAPIで簡単に存在を確認できます。OpenMutexでハンドルを開いた後、必ずCloseHandleでそのハンドルを開放してください。 NPI/1.0 <Nanika Plus Install system> Phase 1.3以降で対応。 Phase 1.4以降では「何か。」本体へのドラッグ&ドロップでもインストール可能。 [概要] 配布ファイルをアーカイブした lzh ファイルもしくは zip ファイルに適切な設定を施すと、そのファイルを「何か。」本体にドロップするだけでインストールすることができるようになります。基本的に”何か。”本家のInstall/1.0互換ですが、一部制限があります。なお実行にはUNLHA32.DLLおよびUNZIP32.DLLが必要になります。 [構成] 「適切な設定」とは、書庫のルートディレクトリに install.txt を含めることと、書庫自身が独自のディレクトリを掘らないことの2点です。 home +-install.txt [install.txt] type,npplugin name,npin type はそのファイルセットの種別です。現在npplugin のみが設定できます。nameはそのファイルセットが作成するディレクトリの名称です。バッティングした場合確認なく上書きします。ファイルを記述する際には必ずこの順序(type→name)の順でお願いします。また空行等も置かないでください。 ※仕様書を書くにあたり本家のInstallの仕様書を参考にさせていただきました。ありがとうございます。 |