Jump to content

zirethar

Members
  • Posts

    10
  • Joined

  • Last visited

Everything posted by zirethar

  1. I've made it this far. I'm super happy. What causes the error? Masters
  2. #cs =============================================================================== *XProTec - Free Version f1.0.0 - 04.09.2007 Autor: Robert M @ QT Appraisal E-mail: Valuater@aol.com Language: English OSystem: Windows Xp Features: -Automated Program -Register Users -Receive Payment -Program Protection Requirements: Legal copy of Microsoft Windows Xp Construction: AutoIt 3.2.2.0+, SciTE 1.73 Thanks to all, Enjoy... #ce =============================================================================== #include<XProTec.au3> ; MUST BE AN INCLUDE $D_Mail = "samboy@hotmail.hu " ; your email $D_Program = "forgato" ; your program name $U_Price = "0" ; the amount of money you wish to be payed by the user $U_Trial = "0" ; amount of days for the trial period $U_License = "3" ; 3 = one computer only - see license notes $D_License = "123456789" ; developers license # $D_PayPal = "paypal.me/zirethar" ; - paypal link $D_Link = "http://samboys.atw.hu/Blacklist.txt" ; looks for "www.mywebsite.com/.../Blacklist.txt" ; see Blacklist $U_Return = 6 ; pay or quit .... or $U_Return = 0 ; will return control to developer with @extended = 6 [Limited Freeware Option] XProTec($D_Mail, $D_Program, $U_Price, $U_Trial, $U_License, $D_License, $D_PayPal, $D_Link, $U_Return) ; your script starts here .............. #ce End Demo #include-once Global $smtpserver = "ftp.atw.hu" Global $sendusername = "samboys" Global $sendpassword = "password" ; Info for this function by JdeB = http://www.autoitscript.com/forum/index.php?s=&showtopic=23860&view=findpost&p=166575 Func XProTec2($D_Mail, $D_Program, $U_Price = 0, $U_Trial = 0, $U_License = 1, $D_License = 1, $D_PayPal = 0, $D_Link = 1, $U_Return = 0) If @Compiled <> 1 and $D_License <> 1 Then Return SetError(1, -1, "Not a Compiled Program") If $D_Program <> StringTrimRight(@ScriptName, 4) Then mError("ERROR - Not a Valid Program Name ", 1, 1) Local $i_rand, $U_info, $Vreg, $U_Payed, $rtemp = @TempDir & "\XTemp.txt", $M_server = "@ClickTask.com", $ND_Mail = $D_Mail, $encrypt = "Fudge", $ver = "f1.0.0" Local $P_program = $D_Program, $sC = @ComputerName, $sD = @HomeDrive, $R_owner = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner"), $sS = @ScriptName Local $D_1 = _StringEncryptor(1, $D_Mail, $encrypt), $D_2 = _StringEncryptor(1, "X" & (StringInStr($D_Mail, "@") * (StringLen($D_Mail) - 2)) + ((StringLen($D_Mail) - 2) * 7) , (StringLen($D_1) - 9)) Local $rand = Chr(Random(Asc("A"), Asc("Z"), 1)) & Random(100, 999, 1) & "-" & Chr(Random(Asc("A"), Asc("Z"), 1)) & Random(100, 999, 1) & "-" & Chr(Random(Asc("A"), Asc("Z"), 1)) & Random(100, 999, 1) & "-" & Chr(Random(Asc("A"), Asc("Z"), 1)) & Random(100, 999, 1) Local $P_3 = StringMid( _StringEncryptor(1, "X" & (StringLeft(DriveGetSerial($sD), 6) + StringLen($sC)) & StringLen($sC), $encrypt & "n", 2), StringLen($sC) / 2, 16), $F_days = 0, $F_file = @SystemDir & "\winopsys.dat" If StringInStr($sS, "XProTec") Then Return mError("Not a Valid Developer Program ", 2, 1) If Not StringInStr($D_Mail, "@") And Not StringInStr($D_Mail, ".") Then Return mError("Not a Valid Developer Email ", 3, 1) If $U_License <> 1 And $U_License <> 2 And $U_License <> 3 Then Return mError("Not a Valid User License Number (1,2 or 3) ", 4, 1) If $D_License <> $D_2 Then mError("Please Register as Developer" & @CRLF & @CRLF & "Dev Email = " & $D_Mail & " " & @CRLF & "Dev License = " & $D_2 & " " & @CRLF & @CRLF, " Free # ...Valuater", 1) While 1 If Ping("www.Autoit3.com", 4000) > 0 Then ExitLoop If MsgBox(262149, "Connection Error", "An Internet Connection is Required ", 10) = 2 Then Exit WEnd $X_read001 = RegRead("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "001") $X_read004 = RegRead("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "004") If $X_read001 = "" And $X_read004 = "" Then If MsgBox(262209, $P_program, "To Register as User, an Email will be sent Immediately to you " & @CRLF & @CRLF & "Please Click OK to continue " & @CRLF) <> 1 Then Exit Do $U_Mail = Qbox($P_program, "Please Type in your Email Address " & @CRLF & @CRLF & "If not, you will need to restart - " & $P_program & " ") Until StringInStr($U_Mail, "@") And StringInStr($U_Mail, ".") $text = "Please copy the Validation Code below" & @CRLF & @CRLF & "Owner = " & $R_owner & @CRLF & "Program = " & $P_program & @CRLF & _ "Validation Date = " & _DateTimeFormat( _NowCalc(), 1) & @CRLF & "Validation Code = " & $rand & @CRLF & @CRLF & " Thank You!" & @CRLF & $P_program mEmailer($P_program & $M_server, $U_Mail, $ND_Mail, $P_program & " Validation Code", $text) Do $input1 = Qbox($P_program, "Please Copy and Paste the Validation Code from the Email here " & @CRLF & "If not, you will need to restart - " & $P_program & " ") Until $input1 = $rand Local $X_read003 = $U_Mail, $X_read004 = _NowCalc(), $X_read005 = "", $X_read006 = "", $X_read007 = "" IniWrite($F_file, "Security", $P_program, _StringEncryptor(1, _NowCalc() , (StringLen($D_1) - 13))) RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "001", "REG_SZ", $D_Mail) If $D_License <> $D_2 Then RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "002", "REG_SZ", "Developer Not Licensed") If $D_License = $D_2 Then RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "002", "REG_SZ", "Licensed Developer") RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "003", "REG_SZ", $U_Mail) RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "004", "REG_SZ", _StringEncryptor(1, _NowCalc() , (StringLen($D_1) - 13))) RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "005", "REG_SZ", "") RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "006", "REG_SZ", "") RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "007", "REG_SZ", "") Else If $X_read001 <> $D_Mail Then mError("Not the Registered Developer Email ", 5, 1) If $D_License <> $D_2 Then RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "002", "REG_SZ", "Developer Not Licensed") If $D_License = $D_2 Then RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "002", "REG_SZ", "Licensed Developer") $X_read003 = RegRead("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "003") $X_read004 = _StringEncryptor(0, RegRead("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "004") , (StringLen($D_1) - 13)) $X_read005 = _StringEncryptor(0, RegRead("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "005"), $encrypt & "7") $X_read006 = _StringEncryptor(0, RegRead("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "006"), $encrypt & "2") $X_read007 = RegRead("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "007") EndIf If InetGet($D_Link & "Blacklist.txt", $rtemp, 1) = 1 Then $itemp = FileRead($rtemp) FileDelete($rtemp) If StringInStr($itemp, $X_read003) Or StringInStr($itemp, $ND_Mail) Then mError("This program has been abused and will now close ", 6, 1) EndIf If $U_Trial = 0 And $U_Price = 0 Then Return SetError(0, 0, "Free Licensed") If $U_License = 1 And $X_read005 = $X_read003 Then Return SetError(0, 1, "Email Licensed") If $U_License = 2 And $X_read006 = $R_owner Then Return SetError(0, 2, "Owner Licensed") If $U_License = 3 And $X_read007 = $P_3 Then Return SetError(0, 3, "Computer Licensed") If $U_License = 1 Then $U_info = "Your E-Mail " If $U_License = 1 Then $i_rand = _StringEncryptor(1, $X_read003, $encrypt & "7") If $U_License = 2 Then $U_info = "Windows Registered Owner " If $U_License = 2 Then $i_rand = _StringEncryptor(1, $R_owner, $encrypt & "2") If $U_License = 3 Then $U_info = "One Computer Only " If $U_License = 3 Then $i_rand = $P_3 $T_days = _DateDiff("D", $X_read004, _NowCalc()) $t = FileGetTime(_StringEncryptor(0, IniRead($F_file, "Security", $P_program, _NowCalc()) , (StringLen($D_1) - 13))) If Not @error Then $F_days = _DateDiff("D", $t[0] & "/" & $t[1] & "/" & $t[2], _NowCalc()) If $F_days > $T_days Then $T_days = $F_days If $T_days < 0 Or $T_days > 3600 Then mError("ERROR - Validation Date ", 7, 1) If $D_License <> $D_2 And $T_days > 90 Then mError("Developer Trial Period has Expired ", 9, 1) If $U_Trial <> 0 And $U_Price = 0 And $T_days > $U_Trial Then mError($P_program & "'s Trial Period has Expired ", 8, 1) If $U_Trial <> 0 And $T_days > ($U_Trial / 2) And $T_days <= $U_Trial Then $U_Payed = mRegister($P_program, $U_Price, $U_Trial, $U_License, $T_days, $D_PayPal, $U_info, $i_rand, 0) If $U_Trial = 0 And $U_Price <> 0 Or $T_days > $U_Trial Then $U_Payed = mRegister($P_program, $U_Price, $U_Trial, $U_License, $T_days, $D_PayPal, $U_info, $i_rand, $U_Return) If $U_Payed = 1 And $U_License >= 1 And $U_License <= 3 Then RegWrite("HKCU\Software\Microsoft\Windows\Current Version\Settings\ClickTask.com\X-" & $P_program, "00" & ($U_License + 4), "REG_SZ", $i_rand) If $U_Payed = 1 Then $text = "Please save this Registration Code Page" & @CRLF & @CRLF & "Owner = " & $R_owner & @CRLF & "Program = " & $P_program & @CRLF & _ "Registration Date = " & _DateTimeFormat( _NowCalc(), 1) & @CRLF & "Registration Code = " & $i_rand & @CRLF & @CRLF & " Thank You!" & @CRLF & $P_program If $U_Payed = 1 Then mEmailer($P_program & $M_server, $X_read003, $ND_Mail, $P_program & " Registration Code", $text) If $U_Payed = 1 Then MsgBox(64, $P_program, " You are now registered and a confirmation email has been sent to you " & @CRLF & @CRLF & "..... Thank You ! ", 5) If $U_Payed = 1 Then Return SetError(0, 4, "License Paid") If $U_Trial = 0 And $U_Price <> 0 Or $T_days > $U_Trial Then Return SetError(0, 6, "Freeware Limited") Return SetError(0, 5, "License Not Paid") EndFunc ;==>XProTec Func mRegister($Prog, $U_P, $U_T, $U_L, $T_D, $D_P, $Uinfo, $irand, $rFatal = 0) Local $PR1 = "Trial Period = " & $U_T & " Days " & @CRLF & "License Type = " & $Uinfo & @CRLF & "Register Fee = $" & $U_P Local $PR2 = " " & @CRLF & "Days Since Validation = " & $T_D & @CRLF & @CRLF & "Would you like to Register Now? " & @CRLF & @CRLF Local $PR3 = "*Yes* to Register Now!" & @CRLF & "*No* to use your previous Registration Number. " & @CRLF & "*Cancel* to Quit Registration." & @CRLF $U_ans = MsgBox(262147, $Prog, $PR1 & $PR2 & $PR3) If $U_ans = 6 Then WinMinimizeAll() $PID = Run('C:\Program Files\Internet Explorer\iexplore.exe "' & $D_P & '"', "", @SW_SHOW) WinWaitActive("") Local $Handle = WinGetHandle($PID), $sHTML = "", $loop = 0 While ProcessExists($PID) Sleep(3000) If ProcessExists($PID) = 0 Then ExitLoop If Not StringInStr(WinGetTitle($Handle), "PayPal") And Not StringInStr(WinGetTitle($Handle), "DreamHost") Then If $loop = 5 Then ExitLoop $loop = $loop + 1 Else $loop = 0 EndIf If StringInStr(WinGetTitle($Handle), "Thank you for your payment") Then Return 1 WEnd ProcessClose($PID) EndIf If $U_ans = 7 Then Do $input1 = Qbox($Prog, "Please Paste your Registration Code below " & @CRLF & "License Type = " & $Uinfo & " " & @CRLF & "If not, you will need to restart - " & $Prog & " ") Until $input1 = $irand Return 1 EndIf If $rFatal Then Exit Return 0 EndFunc ;==>mRegister Func mEmailer($e_Sender, $e_Recipient, $e_CcAddress, $e_Subject, $e_Text) ; Info for this function by JdeB = http://www.autoitscript.com/forum/index.php?s=&showtopic=23860&view=findpost&p=166575 $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") $objMessage = ObjCreate("CDO.Message") With $objMessage .Subject = $e_Subject .Sender = $e_Sender .From = $e_Sender .To = $e_Recipient .Cc = $e_CcAddress .TextBody = $e_Text EndWith With $objMessage.Configuration.Fields .Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $smtpserver .Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $sendusername .Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $sendpassword .Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 .Update EndWith $objMessage.Send If @error Then MyErrFunc() $oMyError = "" $objMessage = "" EndFunc ;==>mEmailer Func Qbox($t1, $L1) $Qbox = InputBox($t1, $L1, "", "", 300, 150) If @error = 1 Then Exit Return $Qbox EndFunc ;==>Qbox Func mError($sText, $ret = 0, $iFatal = 0) MsgBox(48 + 4096 + 262144, "*XProTec*", $sText & " #" & $ret & " ") If $iFatal Then Exit EndFunc ;==>mError Func MyErrFunc() MsgBox(262209, "COM / Internal Error", "This Program has been interupted by a Fatal COM Error ") Exit EndFunc ;==>MyErrFunc Func _INetGetSources($s_URL, $s_Header = '') If StringLeft($s_URL, 7) <> 'http://' And StringLeft($s_URL, 8) <> 'https://' Then $s_URL = 'http://' & $s_URL Local $h_DLL = DllOpen("wininet.dll"), $ai_IRF, $s_Buf = '' Local $ai_IO = DllCall($h_DLL, 'int', 'InternetOpen', 'str', "AutoIt v3", 'int', 0, 'int', 0, 'int', 0, 'int', 0) If @error Or $ai_IO[0] = 0 Then DllClose($h_DLL) SetError(1) Return "" EndIf Local $ai_IOU = DllCall($h_DLL, 'int', 'InternetOpenUrl', 'int', $ai_IO[0], 'str', $s_URL, 'str', $s_Header, 'int', StringLen($s_Header), 'int', 0x80000000, 'int', 0) If @error Or $ai_IOU[0] = 0 Then DllCall($h_DLL, 'int', 'InternetCloseHandle', 'int', $ai_IO[0]) DllClose($h_DLL) SetError(1) Return "" EndIf Local $v_Struct = DllStructCreate('udword') DllStructSetData($v_Struct, 1, 1) While DllStructGetData($v_Struct, 1) <> 0 $ai_IRF = DllCall($h_DLL, 'int', 'InternetReadFile', 'int', $ai_IOU[0], 'str', '', 'int', 256, 'ptr', DllStructGetPtr($v_Struct)) $s_Buf &= StringLeft($ai_IRF[2], DllStructGetData($v_Struct, 1)) WEnd DllCall($h_DLL, 'int', 'InternetCloseHandle', 'int', $ai_IOU[0]) DllCall($h_DLL, 'int', 'InternetCloseHandle', 'int', $ai_IO[0]) DllClose($h_DLL) Return $s_Buf EndFunc ;==>_INetGetSources Func _StringEncryptor($i_Encrypt, $s_EncryptText, $s_EncryptPassword, $i_EncryptLevel = 1) If $i_Encrypt <> 0 And $i_Encrypt <> 1 Then SetError(1) Return '' ElseIf $s_EncryptText = '' Or $s_EncryptPassword = '' Then SetError(1) Return '' Else If Number($i_EncryptLevel) <= 0 Or Int($i_EncryptLevel) <> $i_EncryptLevel Then $i_EncryptLevel = 1 Local $v_EncryptModified, $i_EncryptCountH, $i_EncryptCountG, $v_EncryptSwap, $av_EncryptBox[256][2], $i_EncryptCountA Local $i_EncryptCountB, $i_EncryptCountC, $i_EncryptCountD, $i_EncryptCountE, $v_EncryptCipher, $v_EncryptCipherBy If $i_Encrypt = 1 Then For $i_EncryptCountF = 0 To $i_EncryptLevel Step 1 $i_EncryptCountG = '' $i_EncryptCountH = '' $v_EncryptModified = '' For $i_EncryptCountG = 1 To StringLen($s_EncryptText) If $i_EncryptCountH = StringLen($s_EncryptPassword) Then $i_EncryptCountH = 1 Else $i_EncryptCountH = $i_EncryptCountH + 1 EndIf $v_EncryptModified = $v_EncryptModified & Chr(BitXOR(Asc(StringMid($s_EncryptText, $i_EncryptCountG, 1)), Asc(StringMid($s_EncryptPassword, $i_EncryptCountH, 1)), 255)) Next $s_EncryptText = $v_EncryptModified $i_EncryptCountA = '' $i_EncryptCountB = 0 $i_EncryptCountC = '' $i_EncryptCountD = '' $i_EncryptCountE = '' $v_EncryptCipherBy = '' $v_EncryptCipher = '' $v_EncryptSwap = '' $av_EncryptBox = '' Local $av_EncryptBox[256][2] For $i_EncryptCountA = 0 To 255 $av_EncryptBox[$i_EncryptCountA][1] = Asc(StringMid($s_EncryptPassword, Mod($i_EncryptCountA, StringLen($s_EncryptPassword)) + 1, 1)) $av_EncryptBox[$i_EncryptCountA][0] = $i_EncryptCountA Next For $i_EncryptCountA = 0 To 255 $i_EncryptCountB = Mod(($i_EncryptCountB + $av_EncryptBox[$i_EncryptCountA][0] + $av_EncryptBox[$i_EncryptCountA][1]), 256) $v_EncryptSwap = $av_EncryptBox[$i_EncryptCountA][0] $av_EncryptBox[$i_EncryptCountA][0] = $av_EncryptBox[$i_EncryptCountB][0] $av_EncryptBox[$i_EncryptCountB][0] = $v_EncryptSwap Next For $i_EncryptCountA = 1 To StringLen($s_EncryptText) $i_EncryptCountC = Mod(($i_EncryptCountC + 1), 256) $i_EncryptCountD = Mod(($i_EncryptCountD + $av_EncryptBox[$i_EncryptCountC][0]), 256) $i_EncryptCountE = $av_EncryptBox[Mod(($av_EncryptBox[$i_EncryptCountC][0] + $av_EncryptBox[$i_EncryptCountD][0]), 256)][0] $v_EncryptCipherBy = BitXOR(Asc(StringMid($s_EncryptText, $i_EncryptCountA, 1)), $i_EncryptCountE) $v_EncryptCipher = $v_EncryptCipher & Hex($v_EncryptCipherBy, 2) Next $s_EncryptText = $v_EncryptCipher Next Else For $i_EncryptCountF = 0 To $i_EncryptLevel Step 1 $i_EncryptCountB = 0 $i_EncryptCountC = '' $i_EncryptCountD = '' $i_EncryptCountE = '' $v_EncryptCipherBy = '' $v_EncryptCipher = '' $v_EncryptSwap = '' $av_EncryptBox = '' Local $av_EncryptBox[256][2] For $i_EncryptCountA = 0 To 255 $av_EncryptBox[$i_EncryptCountA][1] = Asc(StringMid($s_EncryptPassword, Mod($i_EncryptCountA, StringLen($s_EncryptPassword)) + 1, 1)) $av_EncryptBox[$i_EncryptCountA][0] = $i_EncryptCountA Next For $i_EncryptCountA = 0 To 255 $i_EncryptCountB = Mod(($i_EncryptCountB + $av_EncryptBox[$i_EncryptCountA][0] + $av_EncryptBox[$i_EncryptCountA][1]), 256) $v_EncryptSwap = $av_EncryptBox[$i_EncryptCountA][0] $av_EncryptBox[$i_EncryptCountA][0] = $av_EncryptBox[$i_EncryptCountB][0] $av_EncryptBox[$i_EncryptCountB][0] = $v_EncryptSwap Next For $i_EncryptCountA = 1 To StringLen($s_EncryptText) Step 2 $i_EncryptCountC = Mod(($i_EncryptCountC + 1), 256) $i_EncryptCountD = Mod(($i_EncryptCountD + $av_EncryptBox[$i_EncryptCountC][0]), 256) $i_EncryptCountE = $av_EncryptBox[Mod(($av_EncryptBox[$i_EncryptCountC][0] + $av_EncryptBox[$i_EncryptCountD][0]), 256)][0] $v_EncryptCipherBy = BitXOR(Dec(StringMid($s_EncryptText, $i_EncryptCountA, 2)), $i_EncryptCountE) $v_EncryptCipher = $v_EncryptCipher & Chr($v_EncryptCipherBy) Next $s_EncryptText = $v_EncryptCipher $i_EncryptCountG = '' $i_EncryptCountH = '' $v_EncryptModified = '' For $i_EncryptCountG = 1 To StringLen($s_EncryptText) If $i_EncryptCountH = StringLen($s_EncryptPassword) Then $i_EncryptCountH = 1 Else $i_EncryptCountH = $i_EncryptCountH + 1 EndIf $v_EncryptModified = $v_EncryptModified & Chr(BitXOR(Asc(StringMid($s_EncryptText, $i_EncryptCountG, 1)), Asc(StringMid($s_EncryptPassword, $i_EncryptCountH, 1)), 255)) Next $s_EncryptText = $v_EncryptModified Next EndIf Return $s_EncryptText EndIf EndFunc ;==>_StringEncryptor Func _NowCalc() Return (@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC) EndFunc ;==>_NowCalc Func _DateTimeFormat($sDate, $sType) Local $asDatePart[4] Local $asTimePart[4] Local $sTempDate = "" Local $sTempTime = "" Local $sAM Local $sPM Local $iWday Local $lngX If Not _DateIsValid($sDate) Then SetError(1) Return ("") EndIf If $sType < 0 Or $sType > 5 Or Not IsInt($sType) Then SetError(2) Return ("") EndIf _DateTimeSplit($sDate, $asDatePart, $asTimePart) Switch $sType Case 0 $lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1F, "str", "", "long", 255) If Not @error And $lngX[0] <> 0 Then $sTempDate = $lngX[3] Else $sTempDate = "M/d/yyyy" EndIf If $asTimePart[0] > 1 Then $lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1003, "str", "", "long", 255) If Not @error And $lngX[0] <> 0 Then $sTempTime = $lngX[3] Else $sTempTime = "h:mm:ss tt" EndIf EndIf Case 1 $lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x20, "str", "", "long", 255) If Not @error And $lngX[0] <> 0 Then $sTempDate = $lngX[3] Else $sTempDate = "dddd, MMMM dd, yyyy" EndIf Case 2 $lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1F, "str", "", "long", 255) If Not @error And $lngX[0] <> 0 Then $sTempDate = $lngX[3] Else $sTempDate = "M/d/yyyy" EndIf Case 3 If $asTimePart[0] > 1 Then $lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1003, "str", "", "long", 255) If Not @error And $lngX[0] <> 0 Then $sTempTime = $lngX[3] Else $sTempTime = "h:mm:ss tt" EndIf EndIf Case 4 If $asTimePart[0] > 1 Then $sTempTime = "hh:mm" EndIf Case 5 If $asTimePart[0] > 1 Then $sTempTime = "hh:mm:ss" EndIf EndSwitch If $sTempDate <> "" Then $lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1D, "str", "", "long", 255) If Not @error And $lngX[0] <> 0 Then $sTempTime = StringReplace($sTempTime, "/", $lngX[3]) EndIf $iWday = _DateToDayOfWeek($asDatePart[1], $asDatePart[2], $asDatePart[3]) $asDatePart[3] = StringRight("0" & $asDatePart[3], 2) $asDatePart[2] = StringRight("0" & $asDatePart[2], 2) $sTempDate = StringReplace($sTempDate, "d", "@") $sTempDate = StringReplace($sTempDate, "m", "#") $sTempDate = StringReplace($sTempDate, "y", "&") $sTempDate = StringReplace($sTempDate, "@@@@", _DateDayOfWeek($iWday, 0)) $sTempDate = StringReplace($sTempDate, "@@@", _DateDayOfWeek($iWday, 1)) $sTempDate = StringReplace($sTempDate, "@@", $asDatePart[3]) $sTempDate = StringReplace($sTempDate, "@", StringReplace(StringLeft($asDatePart[3], 1), "0", "") & StringRight($asDatePart[3], 1)) $sTempDate = StringReplace($sTempDate, "####", _DateMonthOfYear($asDatePart[2], 0)) $sTempDate = StringReplace($sTempDate, "###", _DateMonthOfYear($asDatePart[2], 1)) $sTempDate = StringReplace($sTempDate, "##", $asDatePart[2]) $sTempDate = StringReplace($sTempDate, "#", StringReplace(StringLeft($asDatePart[2], 1), "0", "") & StringRight($asDatePart[2], 1)) $sTempDate = StringReplace($sTempDate, "&&&&", $asDatePart[1]) $sTempDate = StringReplace($sTempDate, "&&", StringRight($asDatePart[1], 2)) EndIf If $sTempTime <> "" Then $lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x28, "str", "", "long", 255) If Not @error And $lngX[0] <> 0 Then $sAM = $lngX[3] Else $sAM = "AM" EndIf $lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x29, "str", "", "long", 255) If Not @error And $lngX[0] <> 0 Then $sPM = $lngX[3] Else $sPM = "PM" EndIf $lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1E, "str", "", "long", 255) If Not @error And $lngX[0] <> 0 Then $sTempTime = StringReplace($sTempTime, ":", $lngX[3]) EndIf If StringInStr($sTempTime, "tt") Then If $asTimePart[1] < 12 Then $sTempTime = StringReplace($sTempTime, "tt", $sAM) If $asTimePart[1] = 0 Then $asTimePart[1] = 12 Else $sTempTime = StringReplace($sTempTime, "tt", $sPM) If $asTimePart[1] > 12 Then $asTimePart[1] = $asTimePart[1] - 12 EndIf EndIf $asTimePart[1] = StringRight("0" & $asTimePart[1], 2) $asTimePart[2] = StringRight("0" & $asTimePart[2], 2) $asTimePart[3] = StringRight("0" & $asTimePart[3], 2) $sTempTime = StringReplace($sTempTime, "hh", StringFormat( "%02d", $asTimePart[1])) $sTempTime = StringReplace($sTempTime, "h", StringReplace(StringLeft($asTimePart[1], 1), "0", "") & StringRight($asTimePart[1], 1)) $sTempTime = StringReplace($sTempTime, "mm", StringFormat( "%02d", $asTimePart[2])) $sTempTime = StringReplace($sTempTime, "ss", StringFormat( "%02d", $asTimePart[3])) $sTempDate = StringStripWS($sTempDate & " " & $sTempTime, 3) EndIf Return ($sTempDate) EndFunc ;==>_DateTimeFormat Func _DateDiff($sType, $sStartDate, $sEndDate) Local $asStartDatePart[4] Local $asStartTimePart[4] Local $asEndDatePart[4] Local $asEndTimePart[4] Local $iTimeDiff Local $iYearDiff Local $iMonthDiff Local $iStartTimeInSecs Local $iEndTimeInSecs Local $aDaysDiff $sType = StringLeft($sType, 1) If StringInStr("d,m,y,w,h,n,s", $sType) = 0 Or $sType = "" Then SetError(1) Return (0) EndIf If Not _DateIsValid($sStartDate) Then SetError(2) Return (0) EndIf If Not _DateIsValid($sEndDate) Then SetError(3) Return (0) EndIf _DateTimeSplit($sStartDate, $asStartDatePart, $asStartTimePart) _DateTimeSplit($sEndDate, $asEndDatePart, $asEndTimePart) $aDaysDiff = _DateToDayValue($asEndDatePart[1], $asEndDatePart[2], $asEndDatePart[3]) - _DateToDayValue($asStartDatePart[1], $asStartDatePart[2], $asStartDatePart[3]) If $asStartTimePart[0] > 1 And $asEndTimePart[0] > 1 Then $iStartTimeInSecs = $asStartTimePart[1] * 3600 + $asStartTimePart[2] * 60 + $asStartTimePart[3] $iEndTimeInSecs = $asEndTimePart[1] * 3600 + $asEndTimePart[2] * 60 + $asEndTimePart[3] $iTimeDiff = $iEndTimeInSecs - $iStartTimeInSecs If $iTimeDiff < 0 Then $aDaysDiff = $aDaysDiff - 1 $iTimeDiff = $iTimeDiff + 24 * 60 * 60 EndIf Else $iTimeDiff = 0 EndIf Select Case $sType = "d" Return ($aDaysDiff) Case $sType = "m" $iYearDiff = $asEndDatePart[1] - $asStartDatePart[1] $iMonthDiff = $asEndDatePart[2] - $asStartDatePart[2] + $iYearDiff * 12 If $asEndDatePart[3] < $asStartDatePart[3]Then $iMonthDiff = $iMonthDiff - 1 $iStartTimeInSecs = $asStartTimePart[1] * 3600 + $asStartTimePart[2] * 60 + $asStartTimePart[3] $iEndTimeInSecs = $asEndTimePart[1] * 3600 + $asEndTimePart[2] * 60 + $asEndTimePart[3] $iTimeDiff = $iEndTimeInSecs - $iStartTimeInSecs If $asEndDatePart[3] = $asStartDatePart[3]And $iTimeDiff < 0 Then $iMonthDiff = $iMonthDiff - 1 Return ($iMonthDiff) Case $sType = "y" $iYearDiff = $asEndDatePart[1] - $asStartDatePart[1] If $asEndDatePart[2] < $asStartDatePart[2]Then $iYearDiff = $iYearDiff - 1 If $asEndDatePart[2] = $asStartDatePart[2]And $asEndDatePart[3] < $asStartDatePart[3]Then $iYearDiff = $iYearDiff - 1 $iStartTimeInSecs = $asStartTimePart[1] * 3600 + $asStartTimePart[2] * 60 + $asStartTimePart[3] $iEndTimeInSecs = $asEndTimePart[1] * 3600 + $asEndTimePart[2] * 60 + $asEndTimePart[3] $iTimeDiff = $iEndTimeInSecs - $iStartTimeInSecs If $asEndDatePart[2] = $asStartDatePart[2]And $asEndDatePart[3] = $asStartDatePart[3]And $iTimeDiff < 0 Then $iYearDiff = $iYearDiff - 1 Return ($iYearDiff) Case $sType = "w" Return (Int($aDaysDiff / 7)) Case $sType = "h" Return ($aDaysDiff * 24 + Int($iTimeDiff / 3600)) Case $sType = "n" Return ($aDaysDiff * 24 * 60 + Int($iTimeDiff / 60)) Case $sType = "s" Return ($aDaysDiff * 24 * 60 * 60 + $iTimeDiff) EndSelect EndFunc ;==>_DateDiff Func _DateIsValid($sDate) Local $asDatePart[4] Local $asTimePart[4] Local $iNumDays $iNumDays = "31,28,31,30,31,30,31,31,30,31,30,31" $iNumDays = StringSplit($iNumDays, ",") _DateTimeSplit($sDate, $asDatePart, $asTimePart) If $asDatePart[0] <> 3 Then Return (0) EndIf If _DateIsLeapYear($asDatePart[1]) Then $iNumDays[2] = 29 If $asDatePart[1] < 1000 Or $asDatePart[1] > 2999 Then Return (0) If $asDatePart[2] < 1 Or $asDatePart[2] > 12 Then Return (0) If $asDatePart[3] < 1 Or $asDatePart[3] > $iNumDays[$asDatePart[2]]Then Return (0) If $asTimePart[0] < 1 Then Return (1) If $asTimePart[0] < 2 Then Return (0) If $asTimePart[1] < 0 Or $asTimePart[1] > 23 Then Return (0) If $asTimePart[2] < 0 Or $asTimePart[2] > 59 Then Return (0) If $asTimePart[3] < 0 Or $asTimePart[3] > 59 Then Return (0) Return (1) EndFunc ;==>_DateIsValid Func _DateTimeSplit($sDate, ByRef $asDatePart, ByRef $iTimePart) Local $sDateTime Local $x $sDateTime = StringSplit($sDate, " T") If $sDateTime[0] > 0 Then $asDatePart = StringSplit($sDateTime[1], "/-.") If $sDateTime[0] > 1 Then $iTimePart = StringSplit($sDateTime[2], ":") If UBound($iTimePart) < 4 Then ReDim $iTimePart[4] Else Dim $iTimePart[4] EndIf If UBound($asDatePart) < 4 Then ReDim $asDatePart[4] For $x = 1 To 3 $asDatePart[$x] = Number($asDatePart[$x]) $iTimePart[$x] = Number($iTimePart[$x]) Next Return (1) EndFunc ;==>_DateTimeSplit Func _DateToDayOfWeek($iYear, $iMonth, $iDay) Local $i_aFactor Local $i_yFactor Local $i_mFactor Local $i_dFactor If Not _DateIsValid($iYear & "/" & $iMonth & "/" & $iDay) Then SetError(1) Return ("") EndIf $i_aFactor = Int((14 - $iMonth) / 12) $i_yFactor = $iYear - $i_aFactor $i_mFactor = $iMonth + (12 * $i_aFactor) - 2 $i_dFactor = Mod($iDay + $i_yFactor + Int($i_yFactor / 4) - Int($i_yFactor / 100) + Int($i_yFactor / 400) + Int((31 * $i_mFactor) / 12), 7) return ($i_dFactor + 1) EndFunc ;==>_DateToDayOfWeek Func _DateDayOfWeek($iDayNum, $iShort = 0) Local $aDayOfWeek[8] $aDayOfWeek[1] = "Sunday" $aDayOfWeek[2] = "Monday" $aDayOfWeek[3] = "Tuesday" $aDayOfWeek[4] = "Wednesday" $aDayOfWeek[5] = "Thursday" $aDayOfWeek[6] = "Friday" $aDayOfWeek[7] = "Saturday" Select Case Not StringIsInt($iDayNum) Or Not StringIsInt($iShort) SetError(1) Return "" Case $iDayNum < 1 Or $iDayNum > 7 SetError(1) Return "" Case Else Select Case $iShort = 0 Return $aDayOfWeek[$iDayNum] Case $iShort = 1 Return StringLeft($aDayOfWeek[$iDayNum], 3) Case Else SetError(1) Return "" EndSelect EndSelect EndFunc ;==>_DateDayOfWeek Func _DateMonthOfYear($iMonthNum, $iShort) Local $aMonthOfYear[13] $aMonthOfYear[1] = "January" $aMonthOfYear[2] = "February" $aMonthOfYear[3] = "March" $aMonthOfYear[4] = "April" $aMonthOfYear[5] = "May" $aMonthOfYear[6] = "June" $aMonthOfYear[7] = "July" $aMonthOfYear[8] = "August" $aMonthOfYear[9] = "September" $aMonthOfYear[10] = "October" $aMonthOfYear[11] = "November" $aMonthOfYear[12] = "December" Select Case Not StringIsInt($iMonthNum) Or Not StringIsInt($iShort) SetError(1) Return "" Case $iMonthNum < 1 Or $iMonthNum > 12 SetError(1) Return "" Case Else Select Case $iShort = 0 Return $aMonthOfYear[$iMonthNum] Case $iShort = 1 Return StringLeft($aMonthOfYear[$iMonthNum], 3) Case Else SetError(1) Return "" EndSelect EndSelect EndFunc ;==>_DateMonthOfYear Func _DateToDayValue($iYear, $iMonth, $iDay) Local $i_aFactor Local $i_bFactor Local $i_cFactor Local $i_eFactor Local $i_fFactor Local $iJulianDate If Not _DateIsValid(StringFormat( "%04d/%02d/%02d", $iYear, $iMonth, $iDay)) Then SetError(1) Return ("") EndIf If $iMonth < 3 Then $iMonth = $iMonth + 12 $iYear = $iYear - 1 EndIf $i_aFactor = Int($iYear / 100) $i_bFactor = Int($i_aFactor / 4) $i_cFactor = 2 - $i_aFactor + $i_bFactor $i_eFactor = Int(1461 * ($iYear + 4716) / 4) $i_fFactor = Int(153 * ($iMonth + 1) / 5) $iJulianDate = $i_cFactor + $iDay + $i_eFactor + $i_fFactor - 1524.5 return ($iJulianDate) EndFunc ;==>_DateToDayValue Func _DateIsLeapYear($iYear) If StringIsInt($iYear) Then Select Case Mod($iYear, 4) = 0 And Mod($iYear, 100) <> 0 Return 1 Case Mod($iYear, 400) = 0 Return 1 Case Else Return 0 EndSelect Else SetError(1) Return 0 EndIf EndFunc ;==>_DateIsLeapYear It runs fine now, no errors. What to do afterwards? should I call it in my script? if so how? Thanks
  3. #include <XProTec_Free.au> C:\akfori\forgato.au3 (2) : ==> Error opening the file.: #include <XProTec_Free.au> >Exit code: 1
  4. Func XProTec($D_Mail, $D_Program, $U_Price = 0, $U_Trial = 0, $U_License = 1, $D_License = 1, $D_PayPal = 1, $D_Link = 1, $U_Return = 1) >Exit code: 1 I get this error when I run Xprotect
  5. Yes, I took this code snippet from the forum. I don't understand the question that I can't handle it correctly with http. Thanks, I'll look into Xprotec Sorry for using my bad english
  6. Hello. I'm pretty new to programming. I made an automation. But I want to activate it with a license key, which can be read from fpt or anywhere. 1 license code corresponds to 1 machine. So you cannot share the .exe application. Can someone help? Global $objItem, $UUID Global $usr = "" Global $pass = "" Global $srv = "localhost" Global $objWMILocator = ObjCreate("WbemScripting.SWbemLocator") Global $objWMIService = $objWMILocator.ConnectServer($srv, "\root\cimv2", $usr, $pass, "", "", "&H80") Global $colItems = $objWMIService.ExecQuery("SELECT UUID FROM Win32_ComputerSystemProduct", "WQL", 0x30) If IsObj($colItems) Then     For $objItem In $colItems         $UUID = $objItem.UUID     Next     MsgBox(0, "UUID", $UUID) EndIf I think it would be a good starting point, you just need to connect to ftp and upload the uuid. And I enter the license key via ftp and he enters the uuid. My English is very bad, I hope you understand. 1 license 1 machine.
  7. I would like Tiktok to press like (left click) and when it reaches 10k likes, the program reads that there are so many and stops So you should read the screen, if you see a certain number, the clicking stops
  8. hello, can you write something in this program so that it continuously presses the left click and reads the screen and if you see the specified number and text then don't click anymore?
×
×
  • Create New...