Jump to content

license form.


Recommended Posts

I need to create a license form. How can I do?

The key is 16 characters like length, splitted by "-".

When the user insert the key, it is formatted like uppercase.

Everytime one inputText is full (4 characters) the focus switches to the next one (it should be possible come back to previous one).

Here there is my code:

#include <GUIConstantsEx.au3>
#include <EditConstants.au3>

    #Region ### START Koda GUI section ### Form=
    GUICreate("My Title", 425, 140)
    GUICtrlCreateLabel("Insert your serial:", 20, 15, 385, 20)
    $licenza_1 = GUICtrlCreateInput("", 20, 50, 60, 20, $ES_UPPERCASE)
    GUICtrlCreateLabel("-", 87, 50)
    $licenza_2 = GUICtrlCreateInput("", 95, 50, 60, 20, $ES_UPPERCASE)
    GUICtrlCreateLabel("-", 162, 50)
    $licenza_3 = GUICtrlCreateInput("", 170, 50, 60, 20, $ES_UPPERCASE)
    GUICtrlCreateLabel("-", 237, 50)
    $licenza_4 = GUICtrlCreateInput("", 245, 50, 60, 20, $ES_UPPERCASE)
    $bottone_conferma = GUICtrlCreateButton("Next!", 300, 100, 105, 30)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1

        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit

        EndSwitch
    WEnd

Thank you!

Edited by binarydigit0101

ehi ehi ehi, what is your name?

Link to comment
Share on other sites

  • Moderators

binarydigit0101,

This example from my snippet folder has only 2 characters per input, but shows you the principle: ;)

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

Global $iChar_Limit = 2

$hGUI = GUICreate("Input Autofocus", 200, 100)
$hInput_1 = GUICtrlCreateInput("", 20, 20, 30, 20)
GUICtrlSetLimit(-1, $iChar_Limit)
$hInput_2 = GUICtrlCreateInput("", 80, 20, 30, 20)
GUICtrlSetLimit(-1, $iChar_Limit)
$hInput_3 = GUICtrlCreateInput("", 140, 20, 30, 20)
GUICtrlSetLimit(-1, $iChar_Limit)
$hButton = GUICtrlCreateButton("OK", 75, 60, 40, 25)
GUICtrlSetState(-1, $GUI_DISABLE)

GUIRegisterMsg($WM_COMMAND, "On_WM_COMMAND")

GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $hButton
            $sString = GUICtrlRead($hInput_1) & "-" & GUICtrlRead($hInput_2) & "-" & GUICtrlRead($hInput_3)
            MsgBox(0, "Result", $sString)
    EndSwitch
WEnd

Func On_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)

    $iCode = BitShift($wParam, 16)

    $iID = BitAND($wParam, 0x0000FFFF)

    Switch $iCode
        Case $EN_UPDATE
            If StringLen(GUICtrlRead($iID)) = $iChar_Limit Then
                GUICtrlSetState($iID + 1, $GUI_ENABLE)
                GUICtrlSetState($iID + 1, $GUI_FOCUS)
            EndIf
    EndSwitch
EndFunc   ;==>On_WM_COMMAND

Please ask if you have any questions. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

thank you! ;)

yes, the principle is clear but I think I don't understand $iID variable.

I mean I understand $iID is referred to active control but ($iID + 1) should be refer to the next control created.

instead with this code it doesn't work... damned me if there is a stupid error! :)

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

Global $iChar_Limit = 4

    #Region ### START Koda GUI section ### Form=
    GUICreate("My Title", 425, 140)
    GUICtrlCreateLabel("Insert your serial:", 20, 15, 385, 20)
    $licenza_1 = GUICtrlCreateInput("", 20, 50, 60, 20, $ES_UPPERCASE)
    GUICtrlCreateLabel("-", 87, 50)
    $licenza_2 = GUICtrlCreateInput("", 95, 50, 60, 20, $ES_UPPERCASE)
    GUICtrlCreateLabel("-", 162, 50)
    $licenza_3 = GUICtrlCreateInput("", 170, 50, 60, 20, $ES_UPPERCASE)
    GUICtrlCreateLabel("-", 237, 50)
    $licenza_4 = GUICtrlCreateInput("", 245, 50, 60, 20, $ES_UPPERCASE)
    $bottone_conferma = GUICtrlCreateButton("Next!", 300, 100, 105, 30)

    GUICtrlSetState(-1, $GUI_DISABLE)

    #EndRegion ### END Koda GUI section ###

    GUIRegisterMsg($WM_COMMAND, "On_WM_COMMAND")

    GUISetState()

    While 1

        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit

        EndSwitch
    WEnd

Func On_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)

    $iCode = BitShift($wParam, 16)

    $iID = BitAND($wParam, 0x0000FFFF)

    Switch $iCode
        Case $EN_UPDATE
            If StringLen(GUICtrlRead($iID)) = $iChar_Limit Then
                GUICtrlSetState($iID + 1, $GUI_ENABLE)
                GUICtrlSetState($iID + 1, $GUI_FOCUS)
            EndIf
    EndSwitch
EndFunc   ;==>On_WM_COMMAND

thank you again!

ehi ehi ehi, what is your name?

Link to comment
Share on other sites

  • Moderators

binarydigit0101,

Apologies, I did not see your reply as I was busy with other things.

For the ID + 1 trick to work you need the ControlIDs in immediate succession - like this: ;)

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

Global $iChar_Limit = 4

GUICreate("My Title", 425, 140)

GUICtrlCreateLabel("Insert your serial:", 20, 15, 385, 20)
GUICtrlCreateLabel("-", 87, 50)
GUICtrlCreateLabel("-", 162, 50)
GUICtrlCreateLabel("-", 237, 50)

$licenza_1 = GUICtrlCreateInput("", 20, 50, 60, 20, $ES_UPPERCASE)
$licenza_2 = GUICtrlCreateInput("", 95, 50, 60, 20, $ES_UPPERCASE)
$licenza_3 = GUICtrlCreateInput("", 170, 50, 60, 20, $ES_UPPERCASE)
$licenza_4 = GUICtrlCreateInput("", 245, 50, 60, 20, $ES_UPPERCASE)

$bottone_conferma = GUICtrlCreateButton("Next!", 300, 100, 105, 30)
GUICtrlSetState(-1, $GUI_DISABLE)

GUIRegisterMsg($WM_COMMAND, "On_WM_COMMAND")

GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func On_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    $iCode = BitShift($wParam, 16)
    $iID = BitAND($wParam, 0x0000FFFF)
    Switch $iCode
        Case $EN_UPDATE
            If StringLen(GUICtrlRead($iID)) = $iChar_Limit Then
                GUICtrlSetState($iID + 1, $GUI_ENABLE)
                GUICtrlSetState($iID + 1, $GUI_FOCUS)
            EndIf
    EndSwitch
EndFunc   ;==>On_WM_COMMAND

All clear? Please ask if not. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Apologies, I did not see your reply as I was busy with other things.

are you joking? don't worry about it! :D

I understood $ID is referred to the next control in succession but I believed labels didn't matter, 'cause they haven't got any variables: so in this case

$InPuT_1 = GUICtrlCreateInput("", ...)
GUICtrlCreateLabel("-", ...)
$InPuT_2 = GUICtrlCreateInput("", ...)

I thought the next control after input_1 is input_2, 'cause label hasn't any variable.

now all is clear... :) thank you another time!

have a good night ;)

ehi ehi ehi, what is your name?

Link to comment
Share on other sites

  • Moderators

binarydigit0101,

AutoIt still allocates a ControlID to the label, even if you do not store it in a variable. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

I saw this the other day and decided to go off and make my own one. The script is below. Ofcourse it isn't finished, but it's a start and it gives the user the option to install a trial version of software or a registered one (ofcourse the installation functions are not written yet). I hope you like what I have done.

#include <EditConstants.au3>
#include <GUIConstantsEX.au3>
#include <WindowsConstants.au3>
Opt("GuiOnEventMode", 1)
$Product = "ABC123"
Global $GuiArray[30]
$GuiArray[0] = GUICreate("Instert Licence Key", 300, 120)
GUISetBkColor(0x353535, $GuiArray[0])
$GuiArray[1] = GUICtrlCreateTab(-10, -10, 5, 5)
;INSERT LICENCE KEY TAB
$GuiArray[2] = GUICtrlCreateTabItem("InsertLicenceKey")
$GuiArray[3] = GUICtrlCreateLabel("Please insert your 16 digit license key", 20, 15, 260, 25)
GUICtrlSetColor($GuiArray[3], 0xFFFFFF)
GUICtrlSetFont($GuiArray[3], 10, 551, -1, "Arial")
$GuiArray[4] = GUICtrlCreateInput("", 20, 40, 50, 21, 0x0008)
GUICtrlSetLimit($GuiArray[4], 4, 0)
$GuiArray[5] = GUICtrlCreateLabel("-", 70, 40, 20, -1, 0x01)
$GuiArray[6] = GUICtrlCreateInput("", 90, 40, 50, 21, 0x0008)
GUICtrlSetLimit($GuiArray[6], 4, 0)
$GuiArray[7] = GUICtrlCreateLabel("-", 140, 40, 20, -1, 0x01)
$GuiArray[8] = GUICtrlCreateInput("", 160, 40, 50, 21, 0x0008)
GUICtrlSetLimit($GuiArray[8], 4, 0)
$GuiArray[9] = GUICtrlCreateLabel("-", 210, 40, 20, -1, 0x01)
$GuiArray[10] = GUICtrlCreateInput("", 230, 40, 50, 21, 0x0008)
GUICtrlSetLimit($GuiArray[10], 4, 0)
$GuiArray[11] = GUICtrlCreateLabel("", 20, 70, 260, 21, 0x01)
$GuiArray[12] = GUICtrlCreateDummy()
$GuiArray[13] = GUICtrlCreateButton("Cancel", 5, 90, 75, 25)
GUICtrlSetBkColor($GuiArray[13], 0x202020)
GUICtrlSetColor($GuiArray[13], 0xFFFFFF)
GUICtrlSetOnEvent($GuiArray[13], "_Exit")
$GuiArray[14] = GUICtrlCreateButton("Install Trial", 150, 90, 70, 25)
GUICtrlSetBkColor($GuiArray[14], 0x202020)
GUICtrlSetColor($GuiArray[14], 0xFFFFFF)
GUICtrlSetOnEvent($GuiArray[14], "_TrialTab")
$GuiArray[15] = GUICtrlCreateButton("Next", 225, 90, 70, 25)
GUICtrlSetState($GuiArray[15], $GUI_DISABLE)
GUICtrlSetBkColor($GuiArray[15], 0x202020)
GUICtrlSetColor($GuiArray[15], 0xFFFFFF)
GUICtrlSetOnEvent($GuiArray[15], "_Exit");MUST CHANGE THE FUNCTION ONCE WRITTEN
GUIRegisterMsg($WM_COMMAND, "On_WM_COMMAND");USED FOR SWITCHING TO NEXT TEXT BOX
;INSTALL TRIAL OPTIONS TAB
$GuiArray[16] = GUICtrlCreateTabItem("InstallTrial")
$GuiArray[17] = GUICtrlCreateLabel("Where would you like to install?", 20, 15, 260, 25)
GUICtrlSetColor($GuiArray[17], 0xFFFFFF)
GUICtrlSetFont($GuiArray[17], 10, 551, -1, "Arial")
$GuiArray[18] = GUICtrlCreateInput("", 20, 40, 190, 21, 0x0080)
GUICtrlSetState($GuiArray[18], $GUI_DISABLE)
$GuiArray[19] = GUICtrlCreateButton("Browse", 220, 39, 70, 24)
GUICtrlSetBkColor($GuiArray[19], 0x202020)
GUICtrlSetColor($GuiArray[19], 0xFFFFFF)
GUICtrlSetOnEvent($GuiArray[19], "_Browse")
$GuiArray[20] = GUICtrlCreateButton("Cancel", 5, 90, 75, 25)
GUICtrlSetBkColor($GuiArray[20], 0x202020)
GUICtrlSetColor($GuiArray[20], 0xFFFFFF)
GUICtrlSetOnEvent($GuiArray[20], "_Exit")
$GuiArray[21] = GUICtrlCreateButton("Insert Serial", 150, 90, 70, 25)
GUICtrlSetBkColor($GuiArray[21], 0x202020)
GUICtrlSetColor($GuiArray[21], 0xFFFFFF)
GUICtrlSetOnEvent($GuiArray[21], "_InstallSerialTab")
$GuiArray[22] = GUICtrlCreateButton("Next", 225, 90, 70, 25)
GUICtrlSetState($GuiArray[22], $GUI_DISABLE)
GUICtrlSetBkColor($GuiArray[22], 0x202020)
GUICtrlSetColor($GuiArray[22], 0xFFFFFF)
GUICtrlSetOnEvent($GuiArray[22], "_InstallTrial")
;INSTALLING TRIAL TAB
$GuiArray[23] = GUICtrlCreateTabItem("InstallTrial")
$GuiArray[24] = GUICtrlCreateLabel("Installing your trial.", 20, 15, 260, 25)
GUICtrlSetColor($GuiArray[24], 0xFFFFFF)
GUICtrlSetFont($GuiArray[24], 10, 551, -1, "Arial")
$GuiArray[25] = GUICtrlCreateProgress(20, 40, 260, 21)
$GuiArray[29] = GUICtrlCreateTabItem("")
GUISetOnEvent(-3, "_Exit")
GUISetState(@SW_SHOW, $GuiArray[0])
While 1
For $Repeat = 2 to 6 Step 2
$hasFocus = (GUICtrlGetState($GuiArray[$Repeat]) < 512) AND (GUICtrlGetState($GuiArray[$Repeat]) > 255)
If $hasFocus And StringLen(GUICtrlRead($GuiArray[$Repeat])) = 4 Then
GUICtrlSetState($GuiArray[$Repeat+2], 256)
EndIf
Next
$ProductKey = GUICtrlRead($GuiArray[4])&GUICtrlRead($GuiArray[6])&GUICtrlRead($GuiArray[8])&GUICtrlRead($GuiArray[10])
If StringLen($ProductKey) > 0 And Not StringIsAlNum($ProductKey) And GUICtrlRead($GuiArray[11]) <> "Product Key can only contain A-Z and 0-9" Then
GUICtrlSetColor($GuiArray[11], 0xFF0000)
GUICtrlSetData($GuiArray[11], "Product Key can only contain A-Z and 0-9")
GUICtrlSetState($GuiArray[15], $GUI_DISABLE)
EndIf
If StringLen($ProductKey) < 16 And GUICtrlRead($GuiArray[11]) <> "Product Key is Incomplete" Then
If StringIsAlNum($ProductKey) Then
GUICtrlSetColor($GuiArray[11], 0xFFFF00)
GUICtrlSetData($GuiArray[11], "Product Key is Incomplete")
GUICtrlSetState($GuiArray[15], $GUI_DISABLE)
EndIf
EndIf
If StringLen($ProductKey) = 0 And GUICtrlRead($GuiArray[11]) <> "Product Key is Incomplete" Then
GUICtrlSetColor($GuiArray[11], 0xFFFF00)
GUICtrlSetData($GuiArray[11], "Product Key is Incomplete")
GUICtrlSetState($GuiArray[15], $GUI_DISABLE)
EndIf
WEnd

Func On_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
$iCode = BitShift($wParam, 16)
$iID = BitAND($wParam, 0x0000FFFF)
Switch $iCode
Case $EN_UPDATE
If StringLen(GUICtrlRead($iID)) = 4 Then
GUICtrlSetState($iID + 2, $GUI_ENABLE)
GUICtrlSetState($iID + 2, $GUI_FOCUS)
GUICtrlSetData($iID, StringUpper(GUICtrlRead($iID)))
_CheckValidity()
EndIf
EndSwitch
EndFunc   ;==>On_WM_COMMAND

Func _CheckValidity()
$ProductKey = GUICtrlRead($GuiArray[4])&GUICtrlRead($GuiArray[6])&GUICtrlRead($GuiArray[8])&GUICtrlRead($GuiArray[10])
If StringLen($ProductKey) = 16 Then
$matches = StringRegExp($ProductKey, "([ADHQ79][AT013][HJ579][42GH][09HJKP][1STVX][632WUV][YTU186][16ABZ][H347][DHA456][63CUY][12ANU][D075][1736ADGJNP][AGT0123])", 1)
If IsArray($matches) AND $matches[0] = $ProductKey Or $ProductKey = "AAAAAAAAAAAAAAAA" Then
GUICtrlSetColor($GuiArray[11], 0x2FFF2F)
GUICtrlSetData($GuiArray[11], "Product Key is Valid")
GUICtrlSetState($GuiArray[15], $GUI_ENABLE)
Else
GUICtrlSetColor($GuiArray[11], 0xFF0000)
GUICtrlSetData($GuiArray[11], "Product Key is Invalid")
GUICtrlSetState($GuiArray[15], $GUI_DISABLE)
EndIf
EndIf
Return
EndFunc

Func _InstallSerialTab()
GUICtrlSendMsg($GuiArray[1], 4912, 0, 0)
EndFunc

Func _TrialTab()
GUICtrlSendMsg($GuiArray[1], 4912, 1, 0)
EndFunc

Func _Browse()
Global $TrialLocation = FileSelectFolder("Browse...", -1)
While StringStripWS(StringUpper($TrialLocation), 8) = "COMPUTER" Or StringStripWS(StringUpper($TrialLocation), 8) = "MYCOMPUTER" Or StringStripWS(StringUpper($TrialLocation), 8) = "CONTROL" Or StringStripWS(StringUpper($TrialLocation), 8) = "CONTROLPANEL" Or StringStripWS(StringUpper($TrialLocation), 8) = "RECYCLE" Or StringStripWS(StringUpper($TrialLocation), 8) = "BIN" Or StringStripWS(StringUpper($TrialLocation), 8) = "RECYCLEBIN" Or StringStripWS(StringUpper($TrialLocation), 8) = "NETWORK" Or StringStripWS(StringUpper($TrialLocation), 8) = "HOMEGROUP"
MsgBox(0,"Error", "Cannot install to this directory.")
Global $TrialLocation = FileSelectFolder("Browse...", -1)
WEnd
If $TrialLocation <> "" And StringRight($TrialLocation, 1) = "" Then
$TrialLocation &= $Product&""
ElseIf $TrialLocation <> "" Then
$TrialLocation &= ""&$Product&""
EndIf
GUICtrlSetData($GuiArray[18], $TrialLocation)
GUICtrlSetState($GuiArray[22], $GUI_ENABLE)
EndFunc

Func _Exit()
Exit
EndFunc

Func _InstallTrial()
GUICtrlSendMsg($GuiArray[1], 4912, 2, 0)
GUICtrlSetData($GuiArray[25], 50)
Sleep(5000)
Exit
EndFunc

The key possibilities are inside the regular expression on line 119. Since I am also a lazy ****, I have made a keygen (for testing that the regular expressions work). It saves the generated product key to the text file on the desktop named "Licence Key.txt".

Global $ProductKeyCombinations[16][11] = [["6","A","D","H","Q","7","9"],["5","A","T","0","1","3"],["5","H","J","5","7","9"],["4","4","2","G","H"],["6","0","9","H","J","K","P"],["1","S","T","V","X"],["6","3","2","W","U","V"],["Y","T","U","1","8","6"],["1","6","A","B","Z"],["H","3","4","7"],["D","H","A","4","5","6"],["6","3","C","U","Y"],["5","1","2","A","N","U"],["4","D","0","7","5"],["10","1","7","3","6","A","D","G","J","N","P"],["7","A","G","T","0","1","2","3"]]
Global $GeneratedKey = ""
For $Repeat = 0 to 3
$GeneratedKey = $GeneratedKey & $ProductKeyCombinations[$Repeat][Random(1, $ProductKeyCombinations[$Repeat][0])]
Next
$GeneratedKey = $GeneratedKey & "-"
For $Repeat = 4 to 7
$GeneratedKey = $GeneratedKey & $ProductKeyCombinations[$Repeat][Random(1, $ProductKeyCombinations[$Repeat][0])]
Next
$GeneratedKey = $GeneratedKey & "-"
For $Repeat = 8 to 11
$GeneratedKey = $GeneratedKey & $ProductKeyCombinations[$Repeat][Random(1, $ProductKeyCombinations[$Repeat][0])]
Next
$GeneratedKey = $GeneratedKey & "-"
For $Repeat = 12 to 15
$GeneratedKey = $GeneratedKey & $ProductKeyCombinations[$Repeat][Random(1, $ProductKeyCombinations[$Repeat][0])]
Next
FileDelete(@DesktopDir&"Licence Key.txt")
FileWrite(@DesktopDir&"Licence Key.txt", $GeneratedKey)

Enjoy.

Link to comment
Share on other sites

If anyone was wondering what is the message '4912' Mikeman27294 is using then it's $TCM_SETCURFOCUS in TabConstants.au3.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...