Leaderboard
Popular Content
Showing content with the highest reputation on 07/06/2017 in all areas
-
Runnning 2 times the same script and getting different results - ScriptWriter
KB505 reacted to JLogan3o13 for a topic
First off, when you say "ScriptWriter" I am assuming you mean au3record? That is, by its very nature, an unstable way to write any script. And if you want to write a "backup in an old software", why test and ask questions on Outlook rather than just asking your question on the software you actually are trying to automate? What is the software? And what do you find when you hover over the application's window with the AutoIt Window Info Tool (in the same directory where you installed AutoIt)?1 point -
Don't use the point and click method when not needed! There are UDF's available to send an outlook email in the background with usig a mouse or keyboard. Just search the forums. JOs1 point
-
kctvt, _DateAdd will do that for you. M231 point
-
Helpfile is your friend... there are a list of _Date and _Time functions. Jos1 point
-
My image search script isnt working.
PLeaseHAlpmai reacted to KickStarter15 for a topic
Hi, Welcome to Autoit forum. Try checking this link and for the library here. KS151 point -
Another example. #include <GDIPlus.au3> #include <ScreenCapture.au3> #include <File.au3> #include <Array.au3> Local $aFiles = _FileListToArray(@ScriptDir, "IMG_*.jpg", 1) ; $iFlag = $FLTA_FILES (1) = Return files only ;_ArrayDisplay($aFiles) For $i = 1 To UBound($aFiles)-1 $FileOut = @ScriptDir & "\" & StringRegExpReplace($aFiles[$i], "([^\.]+).([^\.]+)", "${1}Modified.${2}") ;ConsoleWrite($FileOut & @CRLF) _TrimBlackTopBottom(@ScriptDir & "\" & $aFiles[$i], $FileOut) Next Func _TrimBlackTopBottom($sFileIn, $sFileOut) Local $hBitmap, $hClone, $hImage, $iX, $iY _GDIPlus_Startup() $hImage = _GDIPlus_ImageLoadFromFile($sFileIn) ; ---------------- Get Black boundaries ------------------------------- Local $iW = _GDIPlus_ImageGetWidth($hImage), $iH = _GDIPlus_ImageGetHeight($hImage) ;get width and height of the image Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH) Local $hContext = _GDIPlus_ImageGetGraphicsContext($hBitmap) _GDIPlus_GraphicsDrawImageRect($hContext, $hImage, 0, 0, $iW, $iH) Local $tBitmapData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $iW, $iH, BitOR($GDIP_ILMWRITE, $GDIP_ILMREAD), $GDIP_PXF32ARGB) ;locks a portion of a bitmap for reading and writing. More infor at http://msdn.microsoft.com/en-us/library/windows/desktop/ms536298(v=vs.85).aspx Local $iScan0 = DllStructGetData($tBitmapData, "Scan0") ;get scan0 (pixel data) from locked bitmap Local $tPixel = DllStructCreate("int[" & $iW * $iH & "];", $iScan0) Local $iPixel, $iRowOffset For $iY = 1 to $iH / 2 $iRowOffset = $iY * $iW + 1 $iPixel = DllStructGetData($tPixel, 1, $iRowOffset + $iW / 2) ;get pixel color ;If StringRegExp(Hex($iPixel), "FF0[0-4]0[0-4]0[0-4]") = 0 Then If StringRegExp(Hex($iPixel), "FF0[0-9A-F]0[0-9A-F]0[0-9A-F]") = 0 Then ; Get not so dark as above line. $iTop = $iY ExitLoop EndIf Next For $iY = $iH -1 To $iH / 2 step - 1 $iRowOffset = $iY * $iW + 1 $iPixel = DllStructGetData($tPixel, 1, $iRowOffset + $iW / 2) ;get pixel color ;ConsoleWrite(Hex($iPixel) & " " & $iY & @CRLF) ;If StringRegExp(Hex($iPixel), "FF0[0-4]0[0-4]0[0-4]") = 0 Then If StringRegExp(Hex($iPixel), "FF0[0-9A-F]0[0-9A-F]0[0-9A-F]") = 0 Then $iBottom = $iY ExitLoop EndIf Next _GDIPlus_BitmapUnlockBits($hBitmap, $tBitmapData) ;unlocks a portion of a bitmap that was locked by _GDIPlus_BitmapLockBits ConsoleWrite($iTop & " " & $iBottom & @CRLF) ; ---------------- End of Get Black boundaries ------------------------------- ; Create 24 bit bitmap clone $iX = _GDIPlus_ImageGetWidth($hImage) $iY = _GDIPlus_ImageGetHeight($hImage) ;ConsoleWrite($iX & " x " & $iY & @CRLF) $hClone = _GDIPlus_BitmapCloneArea($hImage, 0, $iTop, $iX, $iBottom - $iTop, $GDIP_PXF24RGB) ; Save bitmap to file _GDIPlus_ImageSaveToFile($hClone, $sFileOut) ;sleep(500) ;ShellExecute("GDIP_Image.jpg") ; Clean up resources _GDIPlus_ImageDispose($hClone) _GDIPlus_ImageDispose($hImage) _GDIPlus_GraphicsDispose($hContext) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_Shutdown() EndFunc ;==>_TrimBlackTopBottom1 point
-
Try this code whereas this loads only one image and crop it by seaching for 0xFF000000 (black) color. If the cropping is not fully proper because of still black borders then increate the $iTolerance value. #include <GDIPlus.au3> _GDIPlus_Startup() Global $sFile = @ScriptDir & "\Images\IMG_2360.JPG" Global $hImage = _GDIPlus_ImageLoadFromFile($sFile) Global $sDLL = @ScriptDir & "\_GDIPlus_BitmapGetCropArea.dll" If Not FileExists($sDLL) Then _CropDLL(True) Global $hDLL = DllOpen($sDLL) Global $tPos = DllStructCreate("int iPosX;int iPosY;int iPosW;int iPosH"), $iSeachColor = 0xFF000000, $iTolerance = 32 DllCall($hDLL, "bool", "_GDIPlus_BitmapGetCropArea", "ptr", $hImage, "struct*", $tPos, "uint", $iSeachColor, "ubyte", $iTolerance) ConsoleWrite($tPos.iPosX & ", " & $tPos.iPosY & ", " & $tPos.iPosW & ", " & $tPos.iPosH & @CRLF) Global $hBitmap_Cropped = _GDIPlus_BitmapCloneArea($hImage, $tPos.iPosX, $tPos.iPosY, $tPos.iPosW, $tPos.iPosH, $GDIP_PXF32ARGB) _GDIPlus_ImageSaveToFile($hBitmap_Cropped, StringTrimRight($sFile, 4) & "_cropped.jpg") DllClose($hDLL) _GDIPlus_ImageDispose($hBitmap_Cropped) _GDIPlus_ImageDispose($hImage) _GDIPlus_Shutdown() ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2016-12-01 Func _CropDLL($bSaveBinary = False, $sSavePath = @ScriptDir) Local $CropDLL $CropDLL &= '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' $CropDLL &= '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' $CropDLL &= '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' $CropDLL &= '8Il9reG+d2XHi19miXLt3dvnPXuFqAu2BnSJwYHJn18OWPOXgD7BkbaIBuu9+Afy2IsG0SsDiT7roYsNydFFP8YB8YtBc0F5QJUih1xEzJ/IBSZKWxw8VKF14OI4iwAg9C0cjLzwhUMaVLMoTRcKDwP/eNUKxv/X6jvjETsMweNDBMG+x3pfX1sIT3Xbm5oIC9hwVA+1drVCmBU+VCR/dddCKlYMnsN0QuAOOmzYmYkD5NHSBge3R45EiVZHKsS9jYHnMcDq3rgEN0q83uv0P94HTqFAqegODyVMDOPSXxEV9/87gu4XiwI52HUK606LCDnZdNVsFXTiwotCOPHXn2hj1k+LSAiJSl1ZoLN7+OvRiWdSPc/r2e1SGEwfGNBmf4ByVG14hB3vdQ1v2J2YtmLBfy+Tc4AvBBlydd4sIHVwkXYRi1j5M4mB7xTYTsztIPVc6cLScHA0LJ5fvwkSuw39WwH7XvmRnoN1bNdfITzpWf9R4zYbY78DQDyBOFBFEyc8CYUFFe6II/4DgXgYCwFpY55IYT8R/ic4TVo/SlgEwKlf+jZthFAmA1LOcgYHQhRf/P8/BY1EAhh0GzHJkItQDDnadwcDUEvTcgzdaK3/g8EBg8AoOfF1QwO+uEQXHt4x9qp8sTyntwBPMEjGdwvrPcDtrlJo8gsnuCZII9q724asCOehGjyNkCbvgAwUxgF+X2oGjVz5he11fccBBsu7X8bjw+71SC2M/M4I0QSJHEAHZ2FPXrjevV4bHVt4AA53HRpefghgyUUrFz4IidgTC4aJH+Na0ibuvVWuO8w47GrDbgwFrw3vlwPzn+8wNS6IkwbfVlrlIW0bYdVcN1wwwbtW/+UfiB/6PiCNVAEYFUkGbccYqOtv9pD2QicgdAd4Fh9l9/KwFznCyHXpy6swWFX2P4nWET//usEGV2EEguMWIth1h1PYLn+/ZmIwWJ54RSXhvyWQDDgSi0Ak99DB6B8CB3CaXJ/r8t9DDYo/XTH/UyPhgwsPH9MJvvikHwqaIxPpi5iA5NrBb2wXZUXkxoHDC+CGRT/adQvruh6D7iQUi0qjQrx+53UHpewcnQjOPvt/6It6DMbDgcdd+F8/lWkbWCgh9Z/ww5xIE/ABUVA9ABA3+H5QeEzrchWB6RaDCfMOXKHbZzF36ynBIFhZw4fwnJycnOzo2MCInJycvLSgTKO6WJ7px9y9NBsULRAiBMDagF4fFBHADtAAAftCXuyAvx+ARyek/wFoANQKyBqxCCDEAOUdKKrCiB////+LbGliZ2NqLTE2LmRsbABfSnZfUmVnaXN0m/eQ/2VyQ2xhc3Nlc1OAB1AcMP7///9NaW5ndy13NjQgcnVudGltZSBmYWlsdXJlOgoAQWRk9/f37w9vICVwIGh/IG5vID9hZ2Utk2fv/79jU29uACAgVmlydHVhbFF1xXlxZWS77y5/DW9yICViee9nYXQFizH7tEvyZ1Byb3SOa3+/v/93aXRoIGNvZP8weCV4TlVua+N3biBw2d3ffd11ZPWHbG9jYe4jdG3w7v0Xb2wgdu1zIN0uW2c/5HsXYr8gV3plR0NDOh0evP8gKGk2ODYtcG8xeKlqbHUNBQf/YXYwLCBCdSV0gCA4R+wvaOZXLVfkalopIDQuOS4zf/wRyF93aW4zMjUuMi4wqloElP80qoiNf1BUWsV/r0VUIAQPoAJZAAgAFgonIFfyAMTFUJ3iEg4oxtv4wWnt5PIfDsImwj4OVgZupmmapoCessjeTdMsm/wMwyAyQlw0TdM0bIigusxpmmXT5ALECh4sprXbpkhaxNdqDngGhpqmaZqUoKiwusRpmqZpzNbg6PDTNMum+ALFDBYirYiCTSw2xactmQiiB8CBALSjLxQH2CrYUT/ABwEVBDKKyCsIVxxlG+BFSFUQSe8yABHQ0BwHVEQRjoEMaRhjARULQAcOiKqQfOL/v2w0sQFEZWxldGVDcml0aWNhbFNTe19lXQFF' $CropDLL &= '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' $CropDLL &= 'dfqD7IDpuvj+/+saVr4Y0AAQ/K2FwHQNagNZ/3QkEOL6/9Dr7l7CDAAAAACQGwEQrBsBEAxkABCsGwEQAAAAAAAAAAAAAAAAkBsBEBzgABAMZAAQGNAAEAAAAAAAAAAAVhsBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCABAFAgAQAAAAAAAAAAAAAAAAB8IAEAWCABAAAAAAAAAAAAAAAAAIkgAQBoIAEAAAAAAAAAAAAAAAAAAAAAAAAAAACUIAEAAAAAALggAQCoIAEAxiABAAAAAADWIAEAAAAAAGdkaXBsdXMuZGxsAEtFUk5FTDMyLkRMTABtc3ZjcnQuZGxsAAAAR2RpcEJpdG1hcExvY2tCaXRzAABHZXRQcm9jQWRkcmVzcwAATG9hZExpYnJhcnlBAABWaXJ0dWFsUHJvdGVjdAAAX2lvYgAAAAAAAAAA005eWQAAAAASIQEAAQAAAAEAAAABAAAACCEBAAwhAQAQIQEAEBUAADEhAQAAAF9HRElQbHVzX0JpdG1hcEdldENyb3BBcmVhLmRsbABfR0RJUGx1c19CaXRtYXBHZXRDcm9wQXJlYQAAEAEAGAAAAH05Wjt4O3w7gDuEO5A7rDsAEAEAGAAAAH05Wjt4O3w7gDuEO5A7rDsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=' Local $bString = _WinAPI_Base64Decode($CropDLL) If @error Then Return SetError(1, 0, 0) $bString = Binary($bString) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\_GDIPlus_BitmapGetCropArea.dll", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_CropDLL Func _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 ;==>_WinAPI_Base64Decode What you have to do is to read all images to an array to crop these images. I wrote the DLL using FreeBasic to speed up this process.1 point
-
I have updated and added a new option 32. I was having problems with some product pages that the site owner would comment out, modularly, products for which are no longer sold or are entirely out of stock. So me trying to make a program to scan for new products was causing all kinds of problems by showing tons of items that appear in the source code, all formatted nicely but in fact aren't actually "there", so if he uncommented those products I would not get notified because ChunkV2 had technically seen the items listed in the page's sourcecode. I had to google for the regex string and add a !? on the end because the guy's site I am interacting with finished some comments with --!> and sometimes --> By the way, here is a real-world example of using ChunkV2 #include <includes\ChunkV2.au3> #include <Array.au3> AutoItSetOption('TrayAutoPause', 0) Global $Zones[4][2], $Zones2[2][2], $PreviouslySeen[0], $url = "https://www.heinnie.com/all-products" $PreviouslySeen = FileReadToArray('productlist.txt') ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $Zones[0][0] = '<ul id="productlist"' $Zones[0][1] = '</ul>' $Zones[1][0] = '<li class="item">' $Zones[1][1] = '</li>' $Zones[2][0] = '<h2 class="product-name">' $Zones[2][1] = '</h2>' $Zones[3][0] = '" title="' $Zones[3][1] = '">' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $Zones2[0][0] = '<ul id="productlist"' $Zones2[0][1] = '</ul>' $Zones2[1][0] = '<li class="item">' $Zones2[1][1] = '</li>' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; While 1 $source = _INetGetSource($url, False) $Results = ChunkV2($source, $Zones) ; Returns raw product names $Results2 = ChunkV2($source, $Zones2) ; Returns the entire block of code for each product, so the count will be the same as the product names above. (no subscript errors) Local $new = False For $a = 0 To UBound($Results) - 1 $product = ((StringInStr($Results2[$a], '<div class="ukfriendlycarry">')) ? ('(UK Legal)' & @TAB) : (@TAB & @TAB & @TAB)) & $Results[$a] $test = _ArraySearch($PreviouslySeen, $product) If $test < 0 Then $new = True ConsoleWrite($product & @LF) FileWriteLine('productlist.txt', $product) If Not IsArray($PreviouslySeen) Then Global $PreviouslySeen[0] ReDim $PreviouslySeen[UBound($PreviouslySeen) + 1] $PreviouslySeen[UBound($PreviouslySeen) - 1] = $product EndIf Next If $new Then Beep(500, 1000) Sleep(300000) WEnd1 point
-
ToDoList
coffeeturtle reacted to HurleyShanabarger for a topic
1 point