WinLicense具有和Themida同級別的保護功能以及授權管理功能。軟體功能強大,使用靈活,開發者可以安全地釋出軟體的試用版和完全版。
接下來我整理的WinLicens問題集主要是在使用WinLicens過程中關於“註冊”的相關問題。
1.我想從我的Custom Messages DLL(自定義訊息DLL)中讀取註冊資訊(使用者名稱)。我知道我可以解析訊息字串,但問題是我正在使用UNICODE但是這個字串被當作ANSI來傳遞。怎麼辦?
當你的應用程式存在有效許可證時,你可以呼叫Widows API GetEnvironmentVariable來檢索使用者許可證資訊(名稱,公司,自定義資料)。如果你已經建立UNICODE許可證,則應呼叫GetEnvironmentVariableW。
如果受保護應用程式存在有效許可證,則以下環境變數已被定義:
- WLRegistrationUserName
- WLRegistrationUserCompany
- WLRegistrationUserCustomData
你可以從應用程式內部或你的Custom Messages DLL(或“WL DLL Control”)中讀取這些環境變數。
2.我想在“License Manager(許可證管理器)”中指定生成的SmartKey的輸出檔名。可以嗎?
你可以編輯Winlicense.ini檔案並指定預設文字鍵和SmarKey檔案的名稱。這些設定需要在“[License Manager]”部分下進行。例:
[License Manager]
DynSmartKeyFileName = MyDynSmartKey.txt
SmartKeyFileName = MyStaticSmartKey.txt
TextKeyFileName = MyTextKey.txt
3.我希望我的受保護軟體在執行時請求許可證。如果沒有許可證,應用程式便不能啟動。Winlicense可以實現此要求嗎?
可以,只需按照下面的步驟操作:
- 在“Registration panel(註冊皮膚)”中,你必須選中“This application can be registered...(此應用程式可以註冊...)”選項。
- 選擇你希望的應用程式金鑰型別(檔案許可,註冊許可,SmartKey ...)
- 選中“Application only runs when Registered (Requires a key to run)”選項
設定完成後,如果你啟動應用程式並且沒有許可證金鑰,受保護的應用程式將顯示“MsgID34:License required to run”(在“Customized Dialog”皮膚中)。你可以將此訊息修改成你想表達的。 如果你想顯示自己的表單或對話方塊,可以使用“Control Messages from external DLL(從外部DLL控制訊息)”功能(在“Customized Dialog”皮膚中)。
4.在WinLicense的許可證管理器中,我希望每次貼上(ctrl-v)硬體ID時,都會自動檢查以進行驗證。可以實現嗎?
可以實現的。你需要編輯“Winlicense.ini”檔案,在“[License Manager]”部分下,新增以下行:
AutomaticHardwareIDvalidation = yes
後續還會整理相關問題,歡迎收藏~