2013-01-06 121 views
0

嗨我想要太多的軟件許可證添加到我正在開發的腳本我不想要任何複雜的東西,它不必是萬無一失的。在過去,我使用了一個列表,我也添加了捐助者的名字,但在這種情況下它不起作用,因爲軟件不會在任何地方顯示登錄名。我以爲我可以抓住Windows登錄或主板信息的任何想法?軟許可證檢查

List=userxys,user123,etc 
Loop, Parse, List, `, 
GroupAdd, DONATORS, %A_LoopField% ahk_class QDPKGamesSystems 
Return 

Freeware: 
IfWinExist, ahk_group DONATORS 
    { 
     SetTimer, Freeware, Off 
     Return 
    } 
Else 
    { 
     MsgBox ,, Script123, Script123 has closed `if you find Script123 useful please consider making a donation. Find details Menu>Donate. , 30 
     ExitApp 
    } 

回答

0

您可以使用keygen。它們是一種可怕的安全方法,因爲它們可以(很容易)被反向設計(例如99%的「許可」軟件)。但是,如果你沒有很多用戶,那不是問題。

Gui, 2:Add, Edit, w300 vName2, name 
Gui, 2:Add, Edit, w300 vCode2, code 
Gui, 2:Add, Button, w300 gSubmit2, Submit 
Gui, 2:Add, Button, w300 gTestCode, Test Code ; Remove this button in production 

; Run this when they press the "Enter Donor Key" button elsewhere 
Gui, 2:Show,, Enter Donor Key 
return 

TestCode: ; Remove this label in production 
Gui, 2:submit, nohide 
GuiControl,, Code2, % GetCodeFromName(name2) 
return 

GetCodeFromName(name) { 
    len := StrLen(name) 
    sum := 0 
    loop %len% 
    { 
     sum += Asc(SubStr(name, A_Index, 1)) 
    } 
    Random,, %sum% 

    outs := "" 
    loop 15 
    { 
     Random, rand, 1, 26 
     outs .= Chr(64 + rand) 
    } 
    return outs 
} 

CheckCode(name, code) { 
    return GetCodeFromName(name) = code 
} 

Submit2: 
Gui, 2:Submit 
if CheckCode(name2, code2) 
    MsgBox Rodger that, captain! 
else 
    MsgBox Invalid 
return 

2GuiClose: 
ExitApp 

你應該把你自己的算法GetCodeFromName,但是這可以讓你的ID /代碼對傳遞出你的捐助者。這可能是他們的電子郵件地址,名字等。它是區分大小寫的,但將StrLower放在那裏會解決這個問題。

算法描述(以防它可以修改它):名稱的字符代碼被加在一起產生大量數字。該數字被用作隨機數發生器的種子。這意味着相同的名字給出了相同的種子,它給出了相同的隨機數序列。基於種子,選擇15個大寫字母(ASCII爲65到90)。這是你的代碼。相同的名稱 - >相同的代碼。