NSIS上の企業Jabber'aのMirandaインストーラー

良い一日! おそらく多くは、彼らのニーズや雇用主のニーズのために、さまざまなソフトウェアの小さなインストーラーを収集しなければならなかったでしょう。 私の仕事では、あらゆる種類の小さな管理ソフトウェアを作成する最も多様なタスクを処理する必要があります。 ファイアウォールおよびVNCサービスのインストーラーをMirandaベースのコーポレートメッセンジャーのインストーラーに設定するスクリプトから開始します。 今日は後者で停止します。 ユーザー名とパスワードをインストーラーに直接入力し、「ページカスタム」を呼び出してNSD機能を操作する









など。 私たちのタスクは、インストール中にユーザー名とパスワードを使用してインストーラーを作成することです。 NSISDialogDesignerを使用してインターフェイスを形成します。 インストーラーでのページの作成を簡素化するために、このソフトウェアを強くお勧めします。 プログラムは完全に無料で、多くの機能があります。 左側には一連のコントロールがあり、右側には要素のプロパティとウィンドウ自体があります。以下は、NSISに挿入するための既成のコードで、リアルタイムで生成されます。







NSISDialogDesignerで必要な機能の実行を直接指定する方が簡単です。 これは、より複雑なマルチページインターフェイスを作成するのに役立ちます。 なぜなら すでにNSISでこのコードを掘り下げることは十分に退屈です。







作成のすべてのステップをリストするわけではありません。 出力では、このようなインターフェイスを取得する必要があります。 私の入力フィールドは、通常のテストフィールドによって特別に作成されます。 ただし、パスワード入力フィールドを使用して文字を非表示にすることもできます。







次に、生成されたコードをNSISプロジェクトに挿入します。 リストにページを入力します。 この場合のMUI要素の説明は次のようになります。 エントリの最後に完全なnsiファイルがあります。



!MUI_ICONを定義する「D:\ Jabber_2013 \ ico.ico」

!insertmacro MUI_LANGUAGE "ロシア語"

ページカスタムfnc_Jabber_2013_Show

!insertmacro MUI_PAGE_INSTFILES



次に、インターフェイス変数を使用して作業を整理する必要があります。 hCtl_Jabber_2013_TextBox1



せいで、テキストを内部に入力することはできないことをすぐにhCtl_Jabber_2013_TextBox1



ます。 これを行うには、 ${NSD_GetText} $hCtl_Jabber_2013_TextBox1 $0



コマンドを使用する必要があります。 NSDでは、可視性やスタイル/色など、他の要素パラメーターを使用できます。



次に、TextBox内に変更処理関数を記述します。 私にはこのように見えます。



関数PatchCh1

$ {NSD_GetText} $ hCtl_Jabber_2013_TextBox1 $ 4

$ {NSD_SetText} $ hCtl_Jabber_2013_TextBox3 C:\ Jabber_ $ 4

$ {NSD_GetText} $ hCtl_Jabber_2013_TextBox2 $ 5

$ {NSD_GetText} $ hCtl_Jabber_2013_TextBox3 $ 3

Functionend



関数PatchCh2

$ {NSD_GetText} $ hCtl_Jabber_2013_TextBox2 $ 5

Functionend



関数PatchCh3

$ {NSD_GetText} $ hCtl_Jabber_2013_TextBox3 $ 3

Functionend



ご覧のとおり、ログインに基づいて、インストールパスも自動的に変更されます。 パスワード変数とインストールパス自体を取得するには、PatchCh2とPatchCh3が必要です。



次に、インストールセクションがあります。



セクション「ジャバー」

SetOutPath "$ 3"

ファイル/ r "D:\ Jabber_2013 \ Jabber \ *"

CreateShortCut "$ DESKTOP \ $ 4.lnk" "$ 3 \ miranda32.exe"

$ {WriteToFile} `$ 3 \ pass.x`` $ 5`

$ {WriteToFile} `$ 3 \ logg.x`` $ 4`

nsExec :: Exec "$ 3 \ start.bat"

セクションエンド



autoexec.iniを生成し、パスワードを書き込んでログインするために、sedの下でスクリプトを使用します。 ソースに同封します。 誰かがもっとエレガントな方法を提案できるなら、私はとても感謝します。 なぜなら これは次のようになります。



start.batに含まれるもの



Set / p logg = <logg.x

sed -rf too.sed pass.x> pass_clear.x

echo [JABBER]> autoexec.ini

echo LoginName = s%logg%>> autoexec.ini

echo jid = s%logg%server.com >> autoexec.ini

sed -f dop.sed pass_clear.x >> autoexec.ini



too.sedには魔法の呪文が含まれています:



y / `0123456789-= \\ qwertyuiop [] asdfghjkl; 'zxcvbnm ,. \ /〜!@#$%^&*()_ + | QWERTYUIOP {} ASDFGHJKL:“ ZXCVBNM <>?/ e56789 :; <=> 2Bav | jwy〜zntu`bfxiklmopq @、} h {gsr134%ѓ&E()* c + \ /-。D0ЃV\\ JWY ^ ZNTU‚FXIKLMOPQ? '_] H [GSRACD /



説明します、autoexec.iniはMiranda自動構成ファイルです。 ここでは、ログイン(オープンフォーム)、パスワード(暗号化フォーム)、接続用のjid、およびその他の設定を指定できます。



その結果、次のような結果が得られます。







プロジェクトファイル



この記録が誰かに役立つことを願っています。 よろしくお願いします!



All Articles