Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 11/27/2019 in all areas

  1. 27 November 2019: Uploaded a new SciTe4AutoIt3.exe v19.1127.1402.0 installer. This version contains the new SciTE 4.2.0 version. Check below for all other updates to the included utilities. ==> SciTE4AutoIt3 v19.1127.1402.0 Enjoy, Jos Addition/Changes/Fixes in the current installer: -------------------------------------------------------------------------------------------------- 27-11-2019 *** Merged the SciTE v 4.2.0 by Neil Hodgson with our own version of SciTE. (Jos) *** Updated AutoIt3Wrapper v19.1127.1402.0 (Jos)     - 19.102.1901.1 added encoding retrieval for UTF8/ANSI files so they are properly written back     - 19.102.1901.2 Exit script with 999 when update resource copy failed .     - 19.102.1901.3 Fix incrementing version number now before running au3stripper to ensure it contains the new version when increment before is requested.     - 19.102.1901.4 increment version before au3stripper when increment before is Y     - 19.102.1901.5 also update fileversion info in case of a3x compile when requested.     - 19.102.1901.7 change au3check and tidy  stop on error logic to allow for other editor programs.     - 19.102.1901.8-11 Changes to allow the program to be run by other editors.     - 19.102.1901.12 Updates Stop and Restartconsole message to indicate in case the HotKeys aren't set in case of second instance                      HotKeys are ony set when the Editor program has the focus to allow for multiple instances.     - 19.102.1901.13 Updated _RefreshSystemTray, which wasn't working anymore since a long time     - 19.102.1901.14 Added WinClose for the Shelled Script to nicely close that process before ultimately killing it when still needed. *** Updated Au3Stripper v19.1127.1402.0 (Jos)     - 19.102.1901.2 Fixed not removing #pragma lines from Included files.     - 19.102.1901.5 Fixed ternary stripping issue *** Updated SciTEConfig v19.1127.1402.0 (Jos)     - 19.524.1057.1 Fixed creation of includes.txt in userdir and  added some extra logging for adding includes to includes.txt - Some small updates to standard themes. *** Updated Tidy v19.1127.1402.0 (Jos)     - 19.524.1057.1: Fix tidy issue adding space after closing > on #include statement. -------------------------------------------------------------------------------------------------- ==> ScitillaHistory page containing all SciTE-Scintilla updates. ==> Visit the SciTE4AutoIt3 Download page for the latest versions ==> Check the online documentation for an overview of all extra's you get with this installer.
    7 points
  2. If you have been using AutoIt for any length of time you will know that it is a great, and powerful scripting language. As with all powerful languages there comes a downside. Virus creation by those that are malicious. AutoIt has no virii installed on your system, and if a script you have created has been marked as a virus, (and you're not malicious) then this is a false positive. They found a set of instructions in an AutoIt EXE out there somewhere, took the general signature of the file, and now all AutoIt EXE's are marked (or most of them). This can be due to several reasons. AutoIt is packed with UPX. UPX is an open source software compression packer. It is used with many virii (to make them smaller). Malicious scripter got the AutoIt script engine recognized as a virus. And I am sure there are more ways your executable could be marked, but that covers the basics. Now I am sure you are wanting to know what you can do to get back up and running without being recognized as a virus. You have to send in a report to the offending AV company alerting them to the false positive they have made. It never hurts to send in your source code along with a compiled exe, to help them realize their mistake. You may have to wait up to 24 hours for them to release an update. The time it takes really depends on the offending AV company. Anti-Virus Links AntiVir Website Contact Avast! Website Contact McAfee Website Contact (email address) Symantec (Norton) Website Contact AVG Website Contact (It says sales or other ?'s I assume this will work) ClamWin Website Contact ClamAV Website Contact (I would only contact the ones with "virusdb maintainer or virus submission management") BitDefender Website Contact ZoneLabs Website Contact Norman Website Contact (email address) eSafe Website Contact (login required) A2 (A-Squared) Website Contact (email address) Edit: Added Website links and Contact links. I hope this helps you understand why your AutoIt executables are marked as virii. JS
    1 point
  3. Hi, I wanted to share my very simple but quite handy stopwatch that I use every day for all sorts of stuff. Screen: Features: Pause function Reset function Multiple instances possible Code: Enjoy! alarm.ico
    1 point
  4. If you are using AES encryption with a text-based password, then the password is most likely being hashed to the required bit length (128, 192, or 256). So you need to make sure that everything is correct to decrypt. That means that you need to make sure that you have the correct decryption key and initialization vector. If you are encrypting with AutoIt, using the USERKEY constant, with the Crypt_DeriveKey function, then by default, the password is being hashed using MD5, which will create a 128-bit encryption key. Show the au3 code that you use to encrypt and I can probably show you what you need to decrypt. Also, many encrypt/decrypt sites use a base64 string to represent the binary data instead of hex. The site that you referenced is one of them. There are some out there that will let you see the hex representation. You just need to make sure that you are comparing equivalent values. I like this SITE for confirming/comparing AES encryption/decryption. If you are not familiar with encryption/decryption, it can be a little intimidating at first. There are other sites out there that are a little more cipher-noob friendly.
    1 point
  5. are you certain there should be two l's in there?
    1 point
  6. VkKey are not actual character. They are assign to physical key. So this is why you will always get lowercase value. One way to solve your problem is to use WM_CHAR like this : _SendMessage ($C_H, $WM_CHAR, Asc(":"))
    1 point
  7. Just as I pressed the "Submit Reply" button I found the solution. Prepend the recipient to check with an "=" for a strict resolution. Means: $aRecipient = _OL_ItemRecipientCheck($oOutlook, "=" & $aGroups[$iGroupIndex][1]) ; <== Issue Here _OL_ItemRecipientCheck returning False, and not returning AddressEntry object.
    1 point
  8. VLC is another option: https://www.howtogeek.com/117261/how-to-activate-vlcs-web-interface-control-vlc-from-a-browser-use-any-smartphone-as-a-remote/
    1 point
  9. A little (late...) pseudo-explanation Sometimes it's easier to define first what you don't want to match, then skip/fail it and apply what is needed to the rest
    1 point
  10. Gmail API send email ;======================================================================================================================= ; Date: 2018-02-12, 17:52 ; ; Description: Send email using API to single or group of receipients. ; ; Function(s): gmailUsersMessagesSend() -> example usage ; ; Param(s): $sClientId Your client_id from *json file ; $sClientSecret Your client_secret from *json file ; $sRefreshToken Refresh token received from oAuth2GetAccessToken()[2] ; $sYourGmailAdress You gmail email adress ; $aRecipient Receipients: can be single without array or sepatared by comma "email1,email2" ; $sSubject Message Subject. ; $sBody Message body in text ; $sBodyHtml Message body in Html ; $sAttachment Attachment: string or array | Put path to file ex. [@ScriptDir & "\test.png"] ;======================================================================================================================= #Include <Gmail API.au3> Local $sClientId = "167204758184-vpeues0uk6b0g4jrnv0ipq5fapoig2v8.apps.googleusercontent.com" Local $sClientSecret = "cWalvFr3WxiE6cjUkdmKEPo8" Local $sRefreshToken = "34wSsq5sdfcoH-Rl-dfldfLffqxq2fhdPL1K-sf" Local $sYourGmailAdress = "youremail@gmail.com" Local $aRecipient = ["friend1@gmail.com", "friend2@yahoo.com"] Local $sSubject = "Testing Gmail API with Autoit" Local $sBody = "Hello there. Just testing..." & @CRLF Local $sBodyHtml = '<meta charset="utf-8"><h2>AutoIt v3<br></h2>' Local $sAttachment = Default Local $aToken = oAuth2RefreshAccessToken($sRefreshToken, $sClientId, $sClientSecret) If Not IsArray($aToken) Then except("<none>", "Failed to get access token. Exiting..", 1) Exit EndIf $aToken = $aToken[0] Local $aRet = gmailUsersMessagesSend($aRecipient, $sSubject, $sBody & $sBodyHtml, $sYourGmailAdress, $aToken, "Bearer", Default, $sAttachment) If Not IsArray($aRet) Then except("<none>", "Failed to send an email.", 2) EndIf ConsoleWrite("Message Sent Sucessfully!" & @CRLF) ConsoleWrite("MessageId: " & $aRet[0] & @CRLF) ConsoleWrite("ThreadId: " & $aRet[0] & @CRLF) Local $aLabelsIds = $aRet[2] ConsoleWrite("Sent message labels_ids: " & @CRLF) For $sLabel = 0 To UBound($aLabelsIds) - 1 ConsoleWrite("Label: " & $aLabelsIds[$sLabel] & @CRLF) Next
    1 point
  11. Jos

    Get data from json

    This should be close: #include <Inet.au3> #include <json.au3> $URL = "https://api.abucoins.com/products/stats" $data = _INetGetSource($URL) $object = json_decode($data) Local $i = 0 While 1 $product_id = json_get($object, '[' & $i & '].product_id') If @error Then ExitLoop If $product_id = "ETH-BTC" Then $volume_USD = json_get($object, '[' & $i & '].volume_USD') ConsoleWrite('$volume_USD = ' & $volume_USD & @CRLF ) ;### Debug Console EndIf $i += 1 WEnd Jos
    1 point
  12. @addjon, many ask for an Arrayfied Json. Here is my take at it, that works with your string. ( may not work with others ) #include <JSon.au3> #include <Array.au3> Local $sJson_1 = '{"response":{"status":1,"httpStatus":200,"data":[{"id":"10445","categories":{"6":{"id":"6","name":"D"},"27":{"id":"27","name":"I"}}},{"id":"10159","categories":{"20":{"id":"20","name":"W"}}}],"errors":[],"errorMessage":null}}' Local $sJson_2 = '{"response":{"status":1,"httpStatus":200,"data":[{"id":"11930","countries":{"CH":{"id":"756","code":"CH","name":"Switzerland","regions":[]}}},{"id":"11928","countries":{"UK":{"id":"826","code":"UK","name":"United Kingdom","regions":[]},"HR":{"id":"191","code":"HR","name":"Croatia","regions":[]}}}],"errors":[],"errorMessage":null}}' Local $aReturned = JsonArrayfied($sJson_1) _ArrayDisplay($aReturned, "$aReturned") $aReturned = JsonArrayfied($sJson_2) _ArrayDisplay($aReturned, "$aReturned") Func JsonArrayfied($sJsonString, $iEcho = 0) Local $sConsoleWriteJson = ConsoleWriteJson($sJsonString, "", $iEcho) Local $n, $aLines = StringSplit($sConsoleWriteJson, @LF, 1) Local $aTemp, $iRow = 0, $iCol = 0, $m, $aJsonArrayfied[UBound($aLines) + 1][100] ; a lazy but efficient way to go about it For $n = 1 To $aLines[0] If StringInStr($aLines[$n], ":") + 2 > StringLen($aLines[$n]) Then ContinueLoop $aLines[$n] = StringReplace($aLines[$n], "][", "|") $aLines[$n] = StringReplace($aLines[$n], "]", "|") $aLines[$n] = StringReplace($aLines[$n], "[", "|") $aTemp = StringSplit($aLines[$n], "|") $iRow += 1 For $m = 1 To $aTemp[0] - 1 If $iCol < $m Then $iCol = $m $aJsonArrayfied[$iRow][$m - 1] = StringReplace($aTemp[$m], '"', '') Next $aJsonArrayfied[$iRow][$aTemp[0] - 1] = StringTrimLeft($aTemp[$aTemp[0]], StringInStr($aTemp[$aTemp[0]], ":") + 1) $aJsonArrayfied[$iRow][0] = StringMid($aTemp[$aTemp[0]], 5, StringInStr($aTemp[$aTemp[0]], ":") - 5) Next $aJsonArrayfied[0][0] = $iRow $aJsonArrayfied[0][1] = $iCol ReDim $aJsonArrayfied[$iRow + 1][$iCol + 1] Return $aJsonArrayfied EndFunc ;==>JsonArrayfied ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; added by me Func ConsoleWriteJson($sJsonString, $sDesc = "", $iEcho = 1) Local $sOutGlobal If $sDesc = "" Then $sDesc = 'ConsoleWriteJson' Local $obj = Json_Decode($sJsonString) Json_Iterate($sOutGlobal, $obj, '', $sDesc, $iEcho) Return $sOutGlobal EndFunc ;==>ConsoleWriteJson Func Json_Iterate(ByRef $sOutGlobal, $obj, $string, $pre = "", $iEcho = 1) Local $sOut = "" Local $temp, $i, $b If ($pre <> "") Then $sOut &= $pre & ": " If $iEcho Then ConsoleWrite($pre & ": ") EndIf $a = Json_Get_ShowResult($obj, $string, $sOutGlobal, $iEcho) If IsArray($a) Then For $i = 0 To UBound($a) - 1 Json_Iterate($sOutGlobal, $obj, $string & '[' & $i & ']', $pre, $iEcho) Next ElseIf IsObj($a) Then $b = Json_ObjGetKeys($a) For $temp In $b Json_Iterate($sOutGlobal, $obj, $string & '["' & $temp & '"]', $pre, $iEcho) Next EndIf Return $sOutGlobal EndFunc ;==>Json_Iterate Func Json_Get_ShowResult($Var, $Key, ByRef $sOutGlobal, $iEcho) Local $sOut = "" Local $Ret = Json_Getr($Var, $Key) If @error Then Switch @error Case 1 $sOut &= "Error 1: key not exists" & @LF If $iEcho Then ConsoleWrite($sOut) Case 2 $sOut &= "Error 2: syntax error" & @LF If $iEcho Then ConsoleWrite($sOut) EndSwitch Else $sOut &= $Key & " => " & VarGetType($Ret) & ": " & $Ret & @LF If $iEcho Then ConsoleWrite($sOut) EndIf $sOutGlobal &= $sOut ;& $Ret Return $Ret EndFunc ;==>Json_Get_ShowResult Func Json_Getr($Var, $Key) If Not $Key Then Return $Var Local $Match = StringRegExp($Key, "(^\[([^\]]+)\])", 3) If IsArray($Match) Then Local $Index = Json_Decode($Match[1]) $Key = StringTrimLeft($Key, StringLen($Match[0])) If IsString($Index) And Json_IsObject($Var) And Json_ObjExists($Var, $Index) Then Local $Ret = Json_Getr(Json_ObjGet($Var, $Index), $Key) Return SetError(@error, 0, $Ret) ElseIf IsNumber($Index) And IsArray($Var) And $Index >= 0 And $Index < UBound($Var) Then Local $Ret = Json_Getr($Var[$Index], $Key) Return SetError(@error, 0, $Ret) Else Return SetError(1, 0, "") EndIf EndIf Return SetError(2, 0, "") EndFunc ;==>Json_Getr Hope it helps to get what you look for.
    1 point
  13. Merchants, in your first script you have to pass the file (with path) to the _FileWriteToLine function, not the file handle. Second, the file must exists - see the @Error in case of failure (that's why I wrote a test file in the begining).
    1 point
×
×
  • Create New...