加密保護軟件 WinLicense常見問題:在運行時選擇消息的語言

WinLicense具有和Themida同級別的保護功能以及授權管理功能。軟件功能強大,使用靈活,開發者可以安全地發佈軟件的試用版和完全版。

Q:我想知道是否可以在運行時選擇WinLicense消息的語言?我開發了在幾個不同國家/地區使用的應用程序,並根據INI文件中的用戶設置始終在運行時更改正確的語言。

如果你轉到“Customized Dialog(自定義對話框)”面板,則可以看到“Control Messages from external DLL(從外部DLL控制消息)”選項。

你只需要創建一個DLL,該DLL至少導出一個在顯示消息時由WinLicense調用的函數。處理消息的函數必須在Functions Handlers (函數處理程序)- >SE_ProcessMessage面板中選擇,因此WinLicense會知道在運行時需要調用哪個函數。

WinLicense會將你的DLL嵌入到受保護的應用程序中,並且它永遠不會寫入磁盤,因此你不需要單獨發送DLL。在DLL中的函數處理程序所做的事情是無法計數的。例如,你可以自定義不同語言的所有消息,在顯示特定消息時發送電子郵件等。

從DLL處理消息的導出函數必須具有以下原型:

STDCALL bool MsgHandler(
int MsgId,
char* MsgBody);

參數:

MsgId [in]將要顯示的消息的標識符。消息ID是“Customized Dialog”面板中每個特定消息左側顯示的消息ID。

MsgBody [in]指向帶有將要顯示的消息的以null結尾的字符串的指針。

返回值:

如果函數處理消息,則應返回True,因此WinLicense將不顯示消息。

如果該函數未處理該消息或你希望WinLicense顯示該消息,則應返回False。

備註:

當保護引擎啟動時,WinLicense將使用“MsgId = -1,MsgBody = null”調用你的消息處理函數。所以,你可以做你需要的任何初始化任務(或者只是顯示你自己的啟動畫面)。 當WinLicense完成初始化保護並且你的應用程序將控制CPU時,如果你需要任何完成任務,WinLicense將使用“MsgId = -2,MsgBody = null”調用你的消息處理函數。

↓↓↓


分享到:


相關文章: