Leaderboard
Popular Content
Showing content with the highest reputation on 11/13/2022 in all areas
-
Hi, one solution is to copy the base64 graphics into memory( aka clipboard) and insert it into the excel sheet #include-once #include <Excel.au3> #include <GDIPlus.au3> #include <Clipboard.au3> _GDIPlus_Startup() FileDelete(@ScriptDir & "\Test Graphic Out.xlsx") ;delete output file Global $Graphic = _Graphic_Base64_Generator("WS-C3750V2-48") ; <- My picture base64 encoded $hClipboard_Bitmap = _GDIPlus_BitmapCreateFromMemory($Graphic, True) ;make bitmap from base64 code $hHBmp_Clipboard = _WinAPI_CopyImage($hClipboard_Bitmap, 0, 0, 0, BitOR($LR_COPYDELETEORG, $LR_COPYRETURNORG)) ;make image from bitmap $ret = _WinAPI_Bitmap2Clipboard($hHBmp_Clipboard) ; copy image to clipboard Global $oExcel = _Excel_Open(False, False, False, True, True) Global $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Test Graphic.xlsx", True) $oWorkbook.Activesheet.Range("D8").activate ;position of picture $oWorkbook.Activesheet.paste ;paste image into excel sheet _Excel_BookSaveAs($oWorkbook, @ScriptDir & "\Test Graphic Out.xlsx", Default, True) _Excel_BookClose($oWorkbook, True) _Excel_Close($oExcel, False, True) ShellExecute(@ScriptDir & "\Test Graphic Out.xlsx") Func _Graphic_Base64_Generator($sGraphic_Name, $bSaveBinary = False, $sSavePath = @ScriptDir) Local $sGraphic_Raw = "" Switch $sGraphic_Name Case "WS-C3750V2-48" $sGraphic_Raw &= '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' $sGraphic_Raw &= 'ROpGmrzPaaPMSnGK2m9x7TR5iMlNbUR90tyOz/LUnxdvBqJL4lx/0pb1tPi/BrpKDkuKIra+Nm4siyLIsiyZZFkShFm08dOcutw69NrcxpqhG/2/0Z6fMdnT2PX9j7peVnZ7OlH8eDVaSt1xKLTjb3LFi3dY7RZUpfgptcC3dbusWLFiVoq7I3x00n1Y2PufqbTdJP8ABsfc/Uoybjv1f79yVOMuJij02Yo9NmKPTZjj02Y49XMaMaMaFBR3jgm7mNGNGJGJasxLVmJGNGNCppDipGNGNGNGNGNGNGNGJCpRRKClxMX1ZsrZ2TD9X6kYqCsi5//EADoQAAIABQIDBgMHAwMFAAAAAAECAAMEERITIQUUIjEyQVFxoSNhkRUkUoHB0eEzQkNEU7JicnSSov/aAAgBAQAGPwKnqJ9HUVc6bJSdNmqx3LfnCzUpZtK2tLTrbtDQo0Lqb3Yz7WiWxp/iG2SCq7v5+MTTy41ATggqu8PDfwhg0nBLCzcze/nErOm0wQc/vV8fL1g2pttQC5qu1fxfxD6dPqAJcHmbXPlEsCUWB7x5ju/vCtyx1vGUKrs384mZSSoDWUiffIRLtKdlZrMde2MZ8udb/aFV8/OJt5TDHufee/8AtC5yTLUy7k81ezeX8wt6dlGZU/euxfxRN05DNjbEmqtl5+kAJLd1xJy5m1j4CJR0nLsRmgqe5+8TGMp9QE4oKrveUPdJioALNzF7wCkudMOQBHMWt9YnXlzLqTgBU9/9os6TJa4A35m+/lEvKRMQEnK9V3fL6w+MiawDAA8z2jxP5QRLkzXGN8uZtv5RJtKmnLv2qO5+8F+Wmmb/ALQqu384mgypgC908x3/ANoQYT6a6ZEioyxPlF5dbLZPOYxWLzKimcW7OYMNdJYHmaptv/mCM6S9u3mj5QNEypXz12a/tE6ledukz+07d0Rwzqt8GV4/IfMRK/8AJlxJ5WTNqZfVmQB2h2sLxLlLQtzhmFG6VvpWFt/W8VqPRHmVx5bJVJ7er2icKuhYSTKcrni3Xbp94lTaqhbRmTBrXxIxvvDzpVC+Ct8Pu2x8No+50TcqgUphiu9hf3ihSnomzaXlU4Ko68j+kBORbntbA9C5aWPn6xMl10mbTyWZMcwNzlvEuXRyZlRKV3yxUdPVtvGmKJud1dO2C5aWPn6xWpNom1Al6fNFJzyH6R97on0HDZ5hW3sbe8LUTaJwGbr7lreO0TZtNRvoy3Ik44AY322iQtJRtoiUpbDFfiW6ooklUTc02fM4qoOx6d/SJ8pqJucDqsrpXLDqy3+kTubkTaeSV2Zgpucl2jl6CVMqFE3rWWo6elbb/mYq1agcValRIyRS1jfLf6RVLUUT4aTNL1EVvif2xJeqon5eZMAnZhSMb7wZ6UUywPTsoW3pBNFRzOWS2njivgL+8USyKRsjKyqMAq/Euf4hU5Rue1cGsFvpYjx9Yrkm0ba6heWyCk3v1e0O1TImyZBlsc2xbfE2gCiXKpbEiy38IWVOLzJY76rK3t/62+kV2k+RaVaVLVd1b1gS3n1F+ywuDb1taKMF8USSFeU6dV/WKsf9S/8ABY4Zvb4Mrx+Q+cShf/Uy/H5+sSOWXCnOWo0yRlZs2tEquEvq1Tm5punTsLH6xW1aS9V1C6BWm2O/V67RUEjWlJKfuU9uvHpiXSTQMlmAT5Ypt1W+8TKES7TM/hIaYXZfCBKtpSXC6edODkbC/vFBO09MPL+M7042fI29oWv0vja1y3L7aOPbb1gvVgvJDJpssnEXy33gNS9ElpkzUZ5GQBzNt457TvN1u/y+2lh229fGK6eq62Ev4LJTbF7jb6Rpk6spA2phTDp2NveFo2/rBuuUKUZAeMTqNUxymESFNOLst9op/wDBKmSk3mU43fHqEUFXplHbPmGan2G4w9Iqa3TJcOuky0wsU6sj7RN5k50wXZkkhRncbXh5tJdV1fiM0nJQMUtv4bxW1glmY6lNF1ptiLnL1iqN' $sGraphic_Raw &= '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' $sGraphic_Raw &= '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' $sGraphic_Raw &= 'H1XD6X8tf8+cZQTcW8h/p1X6AyRzWLPmg+7wCBGinREUCHQrA5Zo4Mclr5rWVTeccOV5ekFX8MBvFeD0tkWkLJEEjrF7z5ZSl9CbW3hHMItM0sp0mRCHIhYB4BWKaw1H7vZfkouERfbTdaXj0EDOimtETfqnCg3zkxs1oNq7OOphOhyD45H8F6L1jbAJOIdIVBd5eIdLC5RGzhuDnTSlTrkHAFQMTOVqWhL+ghYMUe3zqtS+yFhFP7A2TeTWeDrVQ+ig79vQQlXpltcQF4BDrqxxiTYCGPPX3lQRdUGMhfThHh1IgeVAI2MK3EnGubC5WgBb+n3jPlA7SWkLoGgTr1dBwlGqoFE1Vd5JKp3SDosK/kM49w3WLAOLQfo94PMsiXpdYLorc4o4YwxhrnqKGp3ry54L0kVQmDHh8aaUaTARHmUnzlQssPif0YLRDHB4qDigaJa2EE8fes5M/ASBpKhVa6+Bsu4RkrKwRNF+9+pOHCiEqauRdb+Wv+XTJ+uE2z+58PeFMlSHx+aR+ae9eQYCtc0BGcDfuU/kzzQv8LxU0w2asmqUf4PsQ2a94uGkL+PeZ+qymR+gP/vK3WcIwX2MT9Z84foqs4BE2l/EeAyzJf8ANWqf7S5yHC1xsKxRUfN/MW6QY3Cfs38gJ7zA2DhLJiJOGRl6U5ZUJeUY91AWZi7Mkl63xTV7594SMSUxsmRO+ciII3V2UII/feUG0ACDkYq/x4eTkiwS2qFPWn77yPZUHw0go/GGXbqSDFCP7a/Rc6MmofOkAhOCx7x9da6ASITdL/i6GuJsKtCJX+/x842HRrsEuiLie8DlRCdVR91fPeN08LEyJ6Af7nC7kolYmR1n0R56H9iufQqP/PH0WdSgJLFT5r8xQlfz24qcpqA+8psEkY7TQofPnYOg2kFQq89PNs4nncAE0qaKTP7ybfgbGTS0EL9FHs/RbUAcAAMId75zcXABf62YkQ694fhjKylYLv79bwYIADWCAixihRlf3nFEKPDZl/pnZjW3DuA/+Oy5UlCUBFmX3giVIIf7fB7fOu4NMo/SDXBmvUZhPEvXTDSOHI7EqUNFQKO7yg7CaXEvHGfE4aRAqYVIEBVYYq8fXUGtCphwMfEzoILxiynyYz45kkKE1qgAbud7QGp7vAK113XodAtgA8NTDFmHGU6LIfnt6fOHFXOikGLFL7vFJQHwGgGj4e9eMusOQHhMhnMRYHglAgVokWHPR4CbkRPQnzx/O/h08BgIB/Dk9cZvIeAsAvuHf63Dlci/9dYnatGkeRrgzXqP7pWHqaw03DmwKJVDRQRbyC+hZolomMnnW8+rVtYACrc4F8U6RJlSH1rvBnAkghBu3F96w1T6QhHAAkgTzOAGcDQkMr4cdKd2QRQkLVv0r7vC39Cx4HfSzgjQgG/53//Z' EndSwitch Return Binary(_Graphic_WinAPI_Base64Decode($sGraphic_Raw)) EndFunc ;==>_Graphic_Base64_Generator Func _Graphic_WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_Graphic_WinAPI_Base64Decode Func _WinAPI_Bitmap2Clipboard($hHBitmap) If Not _ClipBoard_Open(0) Then Return 1 If Not _ClipBoard_Empty() Then Return 2 Local Const $hCP = _ClipBoard_SetDataEx($hHBitmap, $CF_BITMAP) If Not $hCP Or @error Then Return 3 _ClipBoard_Close() Return 0 EndFunc ;==>_WinAPI_Bitmap2Clipboard2 points
-
The jq filter that I used in my Yahoo Finance example looked like this: Const $JQ_PARSE_EVENTS = _ '[' & _ ' .event,' & _ ' if .event == "message" then .text' & _ ' elif .event == "error" then .description' & _ ' elif .event == "disconnected" then .code' & _ ' else ""' & _ ' end' & _ ']' & _ '|' & _ 'join("|")' Basically it creates a pipe-delimited list that contains the event type and the details of the specific event. Please keep in mind that the filter you use to process the incoming JSON events, especially as it relates to the "message" events, depends on the details of those events. The filter that I used above was based on message events that looked like this: {"event":"connected"} {"event":"message", "text": "CgRBTVpOFXtUt0IYgI7inYxhKgNOTVMwCDgARVA/zUBl0MywQNgBBA=="} {"event":"message", "text": "CgNXTVQVAEAOQxiQ2eOdjGEqA05ZUTAIOABFHyP/P2WA6zFA2AEE"} {"event":"message", "text": "CgRBTVpOFXE9t0IYsPjjnYxhKgNOTVMwCDgARWKTy0BlMFyvQNgBBA=="} {"event":"disconnected", "code": 0} Those "message" events are base64 encoded protobuf messages. That, when decoded, provide the ticker info. Based on the filter and data above, the jq result looks like this: In your case, for WebDriver, your "message" events are JSON objects. So the filter that you would use would look a bit different depending on the information that you want to capture for your event queue (especially as it relates to the message events). FYI: In a single call to jq, it can remove all of the double quotes around the JSON objects, in the .text field of your responses, as well as filter the info from those JSON objects into a format that you can use to create your event queue. Of course you could do some of that processing using AutoIt functions but it would probably be more efficient and easier to maintain if you let jq handle the JSON parts.1 point
-
This should work for both scenarios -- Func write_log_line($sMsg = "") Const $TITLE_NOTEPAD = "[RegExpTitle:(?i)untitled - notepad]" Static $hWndNotepad = -1, $sEditClass = "Edit1" ;If we don't have a handle to notepad yet If $hWndNotepad = -1 Then ;If there isn't an existing instance of notepad running, launch one If Not WinExists($TITLE_NOTEPAD) Then Run("Notepad.exe") ;Get handle to notepad window $hWndNotepad = WinWait($TITLE_NOTEPAD, "", 3) If Not $hWndNotepad Then Exit MsgBox($MB_ICONERROR, "ERROR", "Unable to find Notepad window.") If ControlCommand($hWndNotepad, "", "[CLASS:RichEditD2DPT; INSTANCE:1]", "IsEnabled", "") Then $sEditClass = "[CLASS:RichEditD2DPT; INSTANCE:1]" EndIf EndIf ;Paste msg to notepad text If WinExists($hWndNotepad) Then ControlCommand($hWndNotepad, "", $sEditClass, "EditPaste", $sMsg & @CRLF) EndIf EndFunc1 point
-
FYI, the latest version of Notepad has an edit control of class RichEditD2DPT so write_log_line() in jq_examples_2 fails to output any results.1 point