2008年10月22日 星期三

WinRAR 真是強 ~

撰文者: PJ. Wan

原以為這是個不傳的技術, 剛剛卻發現原來網站上已有人刊登.

其實過去, 由於工作需求, 常會製作 自動安裝 執行檔, 將已安裝好的應用程式, 擷取 register 來替代安裝後設定的麻煩, 再編寫個簡單的 DOS 指令, 然後就用這個 WinRAR 的功能, 來製作出一個自動安裝的執行檔. 有興趣的讀者, 可以由 WinRAR 的 help 來查詢到以下這些指令, 以下的 WinRAR 指令皆來自 [http://]forum.shareget.com/t291353-post2662802/ , 這篇文章的作者寫的相當詳盡, 大家也可以去參觀一下.

=====================================================

WINRAR scripts 說明

Delete 解壓縮前先刪除檔案
License 顯示程式的使用授權協定
Overwrite 選擇檔案的覆寫模式
Path 設定預設目標路徑
Presetup 指定解壓縮前執行的程式
SavePath 儲存目的地路徑(儲存路徑在 registry, 當下次再執行自解檔時會自動帶入, Path 參數存在時才有效)
Setup 指定解壓縮後執行的程式
Shortcut 建立解壓縮檔案的捷徑
Silent 跳過開始時的對話方塊
TempMode 解壓縮檔案到暫存資料夾
Text 加入純文字到自解檔對話方塊純文字視窗
Title 設定自解檔對話方塊標題

Delete=<檔案名稱>

在解壓縮到目標資料夾之前刪除指定的檔案,允許數個 Delete 命令。
如果在此指定的檔案被鎖定而無法刪除,自解檔模組在解壓縮前會試著將它臨時重新命名,並在 Windows 重新啟動時刪除它,這能不能成功則取決於 Windows 版本的差異。
範例:

Delete=winrar95.exe

Delete=rarlng.dll

---------------------------------------------------------------------------------------------------

License=<使用授權協議對話方塊標題>

{-
使用授權協定純文字 1
使用授權協定純文字 2

}

當開始自解檔時,顯示軟體的使用授權協定,使用者可以接受,並繼續解壓縮,或拒絕並離開。
License 可以是 HTML 格式或純文字格式。後者自解檔模組會配合對話方塊將指定純文字字串結合和重新格式成最佳狀態,因此如果您希望開始新段落的話,您必須在之前加入一個空字串。
使用 HTML 可以控制顯示的字形、顏色及格式。關於 HTML 的語法在一般網際網路都找得到,或者您也可以用 HTML 編輯程式製作。
範例:

License=最終使用者使用授權協議書

{-
所有版權於 RAR 均屬於作者所專有。

此程式是共享軟體,任何人在測試期限內均可以使用此軟體。
在測試期限過後,您必須註冊。
}

------------------------------------------------------------------------------------------------------------------------------

Overwrite=[n]

如果 [n] 為 0,在覆寫檔案之前使用者將先被詢問。這是 覆寫 命令的預設動作,可以不需要指定。如果 [n] 不存在或是等於 1,檔案將在沒有確認的狀況下全部覆寫。如果 [n] 等於 2,所有已存在的檔案將不會被覆寫。
範例:
Overwrite=1

-----------------------------------------------------------------------------------------------------------------------------

Path=<路徑>

設定預設的目標路徑。路徑的絕對使用起始點在預設下為 <磁碟機號>:,如果 <路徑> 只包含名稱,它將會被附加到 Program Files 資料夾下,如果您不希望這麼做,請從 '.\' 字元開始定義起始 <路徑>。
範例:
設定 [Calc 3.05 beta] 為資料夾名,位置在 [Program Files] 下,當成預設路徑:

Path=Calc 3.05 beta

設定 [C:\Calc] 當作預設路徑:

Path=C:\Calc

設定 [Calc] 在根目錄下當作預設路徑:

Path=.\Calc

---------------------------------------------------------------------------------------------------------------

Presetup=<程式>

自解檔在解壓縮之前將試著執行 <程式>,在執行 <程式> 之前必須先指定目標資料夾。您可以使用此命令,比如說,當安裝新版本於舊版本上面時,用以移除先前的程式版本。
範例:
Presetup=uninstall.exe /clean

------------------------------------------------------------------------------------------------------------------

Setup=<程式>

在成功解壓縮之後自解檔將會試著執行 <程式>。在執行 <程式> 之前,包含已解壓縮檔的資料夾將會設為目前資料夾
範例:
Setup=setup.exe

注意

1) 如果您在使用自解檔執行 InstallShield setup.exe 有問題的話,請試著執行 [setup.exe /SMS] 來代替簡潔的 [setup.exe]。此選項允許自解檔檢測安裝程式的離開。
2) 全部在自解檔命令列所指定的選項都會從 Setup=<程式> 命令提交給程式,自解檔它自己則只認得 -s 選項,也就是強制背景安裝模式而不顯示開始對話方塊。
3) 自解檔模組在安裝之前先設定 sfxname 環境變數。這個變數包含自解檔名稱,所以安裝程式可以預先讀取這類的資訊。

------------------------------------------------------------------------------------------------------------

shortcut=<目標類型>,<來源名稱>,<目標資料夾>,<敘述>,<捷徑名稱>

為解壓的檔案建立一個捷徑。

目標類型 是目標區域種類,可以有下列值:

D 在桌面建立捷徑
S 在 [開始] 功能表建立捷徑
P 在 [開始] 功能表/[程式集] 中建立捷徑
T 在 [啟動] 功能表中建立捷徑
來源名稱 是壓縮檔名稱。

目標資料夾 是建立捷徑的資料夾,如果它不存在,將被自我解壓縮檔建立。
敘述 是敘述捷徑的字串。
捷徑名稱 是由自解檔建立的 .lnk (捷徑) 檔案的檔案名稱。
所有選項用逗號分隔。如果您需要在選項內加入逗號字元,就把整個選項加上引號。如果您要顯示引號,則必須打兩次引號。只有目標類型和來源名稱是必需的,其他選項選用。
範例
在桌面建立在 WinRAR 資料夾中連接到 winrar.exe 的捷徑,帶有 [WinRAR 執行檔] 的敘述和 [WinRAR 壓縮軟體] 的名稱:

Shortcut=D, winrar.exe, WinRAR, "WinRAR 執行檔", "WinRAR 壓縮軟體"

-----------------------------------------------------------------------------------------------------------

Silent[=選項]

開始解壓縮時不顯示開始對話方塊。
選項 可以是 1 或 2。如果 選項 是 1,開始解壓縮對話方塊會完全隱藏,包含進度顯示和檔案名稱。如果 選項 是 2,則跳過開始解壓縮的確認,但使用者仍然可以看到壓縮檔案的解壓縮進程。
範例:
Silent=2

-------------------------------------------------------------------------------------------------------------

TempMode=[問題?述][@視窗標題純文字]

此命令強制自解檔建立一個臨時目錄,將全部檔案解壓縮至此,然後開始執行 Setup 命令所指定的程式,並在完成 Setup 程式之後將臨時目錄中的內容全部清除。當執行這些操作時,自解檔會自動設定為 安靜模式。如果 TempMode 命令存在的話,?述中將有 Setup 命令且不得使用 path 命令。
TempMode 命令可以有字串選項的選項,在解壓縮之前可用以定義問題和問題的標題。這樣的範例,僅在當使用者選擇 [是] 按鈕時才會開始解壓縮。
範例:

a) TempMode
b) TempMode=您希望繼續安裝 Calculator 3.05 嗎?@Calculator 安裝程式

-----------------------------------------------------------------------------------------------------------

Text=<字串>

b)

Text

{-
字串 1
字串 2

}

加入指定純文字或 HTML 字串到自解檔模組的文字輸出視窗。當自解檔模組第一次遇到 Text 命令時,它會重置此視窗在加入 <字串> 之前的預設內容,後續命令則附加 <字串> 到已存在的純文字後。
這種命令語法可以一次加入單行字串或數行字串。
如果使用純文字語法時,自解檔模組會配合對話方塊將指定純文字字串結合和重新格式成最佳狀態,因此如果您希望開始新段落的話,您必須在之前加入一個空字串。
使用 HTML 可以控制顯示的字形、顏色及格式。關於 HTML 的語法在一般網際網路都找得到,或者您也可以用 HTML 編輯程式製作。

範例:

a) 加入單一字串到對話方塊視窗
Text=這是我的新程式

b) 加入指定純文字到對話方塊視窗 [Text

{-
此程式最有趣的特性是:
- 支援 Windows 剪貼簿;
- 每一個處理的檔案大小最大為 10KB;
}

---------------------------------------------------------------------------------------------------------

Title=<標題>

設定自解檔的視窗標題。
範例:
Title==Calculator,版本 3.05

----------------------------------------------------------------------------------------------------------

Title=Bojack Test
TempMode=您希望繼續安裝 MSN 8嗎 ?@Bojack封裝程式
Overwrite=1
Silent=1
Setup=MsnMsgs.msi /passive
Shortcut=D, %ProgramFiles%\MSN Messenger\msnmsgr.exe, , 「WLM執行檔」, 「WLM」

--------------------------------------------------------------------------------------------------------

2008年10月21日 星期二

sendmail (esmtp) 實做 ~

作者: Baron. Wan

這又是應客戶需求添加的,
實做的環境是在 Redhat 當中.

1. 在 /etc/mail/sendmail.cf 加入以下內容:
O AuthMechanisms=LOGIN PLAIN
C{TrustAuthMech}LOGIN PLAIN
O DaemonPortOptions=Port=smtp, Name=MTA

2. 在 /etc/mail/mailertable 加入:
. esmtp:[ ip_addr ]

3. 在 /etc/sysconfig/saslauthd 修改以下參數:
MECH=ldap
FLAGS="-O /etc/saslauthd.conf"

4. 新增 /etc/saslauthd.conf , 加入以下內容:
ldap_servers: ldap://
ldap_version: 3
ldap_bind_dn: cn=dev,cn=Users,dc=example,dc=com,dc=tw
ldap_bind_pw: password
ldap_search_base: cn=Users,dc=example,dc=com,dc=tw #用來作為搜尋的基礎
ldap_auth_method: bind # 驗證的方式?
ldap_filter: samaccountname=%u # 過濾條件為何?
ldap_scope: sub # 搜尋的範圍為何?

5. 在 /usr/lib/sasl2/Sendmail.conf 當中加入:
pwcheck_method:saslauthd
mech_list:LOGIN PLAIN

然後重啟 saslauthd , sendmail try try!!