Leaderboard
Popular Content
Showing content with the highest reputation on 07/17/2018 in all areas
-
As it seems that some members do not bother to read the "Announcements" section, I have added the above to the list of prohibited activities in the Forum rules. M233 points
-
Editing INI file
KickStarter15 and one other reacted to Subz for a topic
Don't understand the logic, if you're using Ini functions for example: IniReadSection or IniRead it doesn't matter about the order of the section names. For example: [Uninstall] [Install] [ExecBeforeUninstall] You can call the sections in your predefined order. IniRead("IniFile", "ExecBeforeUninstall", "0", "") IniRead("IniFile", "Uninstall", "0", "") IniRead("IniFile", "Install", "0", "") Rather than using FileWrite you can use IniWrite for example: nb: Section Name is created if it doesn't already exist. IniWrite("IniFile", "ExecuteBeforeUninstall", "0", "C:\Dash Board\Backup Before Deletion\Backup Before Deletion.exe*?*?NORMAL*?YES*?NO")2 points -
My program won't run
KickStarter15 and one other reacted to careca for a topic
Can we all just stop replying until there's code to work with?2 points -
Hi here's another UDF for the serial port. It is very similar to CommAPI using kernel32.dll, but all code is packed into a single file without any dependencies, not even using WinAPI.au3. It differs from existing UDF that it doesn't allow a timeout when reading, instead it always returns immediately, either with the requested amount ob bytes read or with a failure status. And of course there is a function provided to query the amount of available bytes in the receive buffer. The reason behind this design decision: You can do 1000 other things in the main loop while checking from time to time if enough data bytes arrived. There's no point to block the program waiting for the serial port. It is currently a work-in-progress, as I didn't test all functions yet. The code was developed and tested on Windows 7 64 bit. The ComUDF-Tests.au3 shows some tests and basic usage of the UDF. Maybe there's no reason to use this UDF, given the existence of the others UDFs, but I did it to get to know DllCall better - I use structs no only to pass but also to get data back (I don't use the array returned by DllCall to read that data, unless required). You're welcome to test it on older and newer Windows versions. Here's a list of the implemented functions: ; _ComListPorts ; _ComOpenPort ; _ComSetTimeouts ; _ComClosePort ; ; _ComSetBreak ; _ComClearBreak ; _ComGetInputcount ; _ComGetOutputcount ; _ComClearOutputBuffer ; _ComClearInputBuffer ; ; _ComSendByte ; _ComReadByte ; _ComSendBinary ; _ComReadBinary ; ; _ComSendChar ; _ComReadChar ; _ComSendCharArray ; _ComReadCharArray ; _ComSendString ; _ComReadString ; ; __ComClearCommError ; __PurgeComm Maze ComUDF.au3 ComUDF-Tests.au31 point
-
Reading large (70MB+) Text with _IEBodyReadText
Earthshine reacted to mLipok for a topic
using winhttp I download file about 110MB without any problem.1 point -
Reading large (70MB+) Text with _IEBodyReadText
FrancescoDiMuro reacted to mLipok for a topic
Did you try winhttp ? Btw. Welcome to the forum.1 point -
Can't get script to execute program
FrancescoDiMuro reacted to Dana for a topic
I see you have it working, but I'll just comment: You don't need a return value, or should I say, the Run command returns a value whether you use it or not. But looking at the return value while you're debugging (for example in a message box or console write) can sometimes help you figure out why it isn't working.1 point -
_IETagNameGetCollection Button Click Question
SkysLastChance reacted to Danp2 for a topic
Have you tried changing the 2nd parameter of StringStripWS to 3, so that both leading and trailing spaces are removed?1 point -
singcang, Please do not bump your own threads within 24 hours. Remember this is not a 24/7 support forum - those who answer are only here because they like helping others and have some time to spare. You just have to wait until someone who knows something about your particular problem, and is willing to help, comes online - so please be patient. M231 point
-
ibrahem, Enough. We have explained why AutoIt will never be totally secure and there are many, many threads where people have come up with various solutions - none of which are 100% reliable. So please stop this line of posting. M231 point
-
Selecting Multiple ListView Items with the Mouse
Earthshine reacted to LarsJ for a topic
Know_Fear, It's a Windows 8 or 10 feature that does not work on previous Windows versions. It does not work on your Windows 7 or XP PCs. I see exactly the same behaviour on my Windows 7 PC as you do.1 point -
Icon for compiled script disappears!
Decibel reacted to Earthshine for a topic
this in a batch file fixes that problem. no reboot necessary on a pc anyway. just need to rebuild the icon cache taskkill /f /im explorer.exe cd /d %userprofile%\AppData\Local del IconCache.db /a start explorer.exe this happens on almost every ms os, you install updates, icons don't show until reboot, or you do the above in a bat or on an admin cmdline i see the cache problem all the time in testing1 point -
So you had the same program on there before with another ICO and needed to refresh the cache...right? Jos1 point
-
Don't use MouseClick. Use ControlClick. That way the window doesn't need focus to let you activate the control you want.1 point
-
Finding Excel range address
Kaarl reacted to Moonscarlet for a topic
Yes, sorry about that, forgot to remove it as I was using it in a MsgBox()1 point -
Finding Excel range address
Kaarl reacted to Moonscarlet for a topic
I see, here it is again, as I edited my previous post: $Row= $oWorkbook.Sheets("SHEETNAME").Range("A1").Row) $Column= _Excel_ColumnToLetter($oWorkbook.Sheets("SHEETNAME").Range("A1").Column))1 point -
There are a couple ways of doing it, but the way i would do it, would be by having _ispressed and conditions in the main loop.1 point
-
protect autoit script
ibrahem reacted to JLogan3o13 for a topic
In the future please actually read the post before you begin typing. Not at all what he was asking.1 point -
ibrahem, Your plain language script is within the compiled .exe, but in compressed form. It is not immediately viewable with a hex editor, but is by no means secure as it is expanded in memory when the .exe is run. So, compiling an Autoit script will prevent quick snooping, but a determined, experienced hacker can relatively easily get your source - including passwords, specific filenames, etc - or the encryption routines you have used in your script to encrypt/decrypt them if they are stored in another file. No doubt not what you wanted to hear, but the reality. M231 point
-
Please read the forum rules before posting, any discussion related to decompiling tools is forbidden!1 point
-
Redraw your desktop with GDI+
KeeperOfTheReaper reacted to InunoTaishou for a topic
Take a screenshot of your desktop (works even if the desktop is hidden), then redraws it row by row. Makes a neat little effect. An effect I remember seeing at the photo booth at Chuck E' Cheese. I mostly just wanted to mess with LockBits and PrintWindow and thought this was a decent way to figure it out, but I liked the outcome and thought I'd share lol #include <GDIPlus.au3> #include <WinApi.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() Global $tDesktopMetrics = GetDesktopMetrics() Global $hHBitmapDesktop = CaptureWindow("", -1, -1, -1, -1, "Program Manager") Global $hBitmapDesktop = _GDIPlus_BitmapCreateFromHBITMAP($hHBitmapDesktop) _WinAPI_DeleteObject($hHBitmapDesktop) Global $iW = _GDIPlus_ImageGetWidth($hBitmapDesktop) Global $iH = _GDIPlus_ImageGetHeight($hBitmapDesktop) Global $tBitmapData = _GDIPlus_BitmapLockBits($hBitmapDesktop, 0, 0, $iW, $iH, $GDIP_ILMREAD, $GDIP_PXF32PARGB) Global $tPixelMap = DllStructCreate("int[" & $iW * $iH & "];", DllStructGetData($tBitmapData, "Scan0")) Global $hGui = GUICreate("Redraw", $iW, $iH, $tDesktopMetrics.x, $tDesktopMetrics.y, $WS_POPUP) Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui) Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iW, $iH, $hGraphics) Global $tBitmapData2 = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $iW, $iH, $GDIP_ILMWRITE, $GDIP_PXF32PARGB) Global $tPixelMap2 = DllStructCreate("int[" & $iW * $iH & "];", DllStructGetData($tBitmapData2, "Scan0")) GUISetState(@SW_SHOW, $hGui) _GDIPlus_GraphicsClear($hGraphics) For $iY = 0 To $iH - 1 Local $iRowOffset = $iY * $iW + 1 For $iX = 0 To $iW - 1 ;get each pixel in each line and row DllStructSetData($tPixelMap2, 1, DllStructGetData($tPixelMap, 1, $iRowOffset + $iX), $iRowOffset + $iX) Next If (Not Mod($iY, 5)) Then ; Every 5 rows draw the bitmap _GDIPlus_BitmapUnlockBits($hBitmap, $tBitmapData2) _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, 0, 0) $tBitmapData2 = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $iW, $iH, $GDIP_ILMWRITE, $GDIP_PXF32PARGB) $tPixelMap2 = DllStructCreate("int[" & $iW * $iH & "];", DllStructGetData($tBitmapData2, "Scan0")) EndIf Next If (Mod($iY, 5)) Then ; Didn't end on an even row, clean up _GDIPlus_BitmapUnlockBits($hBitmap, $tBitmapData2) _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, 0, 0) $tPixelMap2 = 0 $tBitmapData2 = 0 EndIf _GDIPlus_BitmapUnlockBits($hBitmapDesktop, $tBitmapData) _GDIPlus_BitmapDispose($hBitmapDesktop) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_GraphicsDispose($hGraphics) _GDIPlus_Shutdown() GUIDelete($hGui) Exit 0 Func CaptureWindow($sFileName = "", $iLeft = -1, $iTop = -1, $iWidth = -1, $iHeight = -1, $hWnd = WinGetHandle("[Active]"), $bClientArea = True) If (Not IsHWnd($hWnd)) Then $hWnd = WinGetHandle($hWnd) If (@error) Then Return SetError(1, 0, False) If (BitAND(WinGetState($hWnd), 16) = 16) Then Return SetError(2, 0, False) Local $iSrcWidth = 0 Local $iSrcHeight = 0 ConsoleWrite($iLeft & ', ' & $iTop & ", " & $iWidth & ', ' & $iHeight & @LF) If ($hWnd = _WinAPI_GetDesktopWindow() Or $hWnd = WinGetHandle("Program Manager")) Then Local $tDesktop = GetDesktopMetrics() If ($iWidth = -1 Or $iWidth = 0 Or $iWidth = Default Or $iWidth > DllStructGetData($tDesktop, 3)) Then $iWidth = DllStructGetData($tDesktop, 3) If ($iHeight = -1 Or $iHeight = 0 Or $iHeight = Default Or $iWidth > DllStructGetData($tDesktop, 4)) Then $iHeight = DllStructGetData($tDesktop, 4) $iSrcWidth = DllStructGetData($tDesktop, 3) $iSrcHeight = DllStructGetData($tDesktop, 4) Else Local $tRectWindow = _WinAPI_GetWindowRect($hWnd) ; Get the absolute width, using Abs on all of the memembers because the [1] index of the struct may be negative, supports multiple monitors Local $iAbsWidth = Abs(Abs(DllStructGetData($tRectWindow, 3)) - Abs(DllStructGetData($tRectWindow, 1))) ; Get the absolute height, using Abs on all of the memembers because the [1] index of the struct may be negative, supports multiple monitors ; Subtracts the caption bar if $bClientArea only Local $iAbsHeight = Abs(Abs(DllStructGetData($tRectWindow, 4)) - Abs(DllStructGetData($tRectWindow, 2))) - ($bClientArea ? _WinAPI_GetSystemMetrics($SM_CYCAPTION) : 0) If ($iWidth = -1 Or $iWidth = 0 Or $iWidth = Default Or $iWidth > $iAbsWidth) Then $iWidth = $iAbsWidth If ($iHeight = -1 Or $iHeight = 0 Or $iHeight = Default Or $iHeight > $iAbsHeight) Then $iHeight = $iAbsHeight $iSrcWidth = $iAbsWidth $iSrcHeight = $iAbsHeight EndIf If ($iLeft = -1 Or $iLeft = Default) Then $iLeft = 0 If ($iTop = -1 Or $iTop = Default) Then $iTop = 0 Local $hDC = _WinAPI_GetWindowDC($hWnd) Local $hDestDC = _WinAPI_CreateCompatibleDC($hDC) Local $hDestBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iWidth, $iHeight) Local $hDestSv = _WinAPI_SelectObject($hDestDC, $hDestBitmap) Local $hSrcDC = _WinAPI_CreateCompatibleDC($hDC) Local $hBmp = _WinAPI_CreateCompatibleBitmap($hDC, $iSrcWidth, $iSrcHeight) Local $hSrcSv = _WinAPI_SelectObject($hSrcDC, $hBmp) _WinAPI_PrintWindow($hWnd, $hSrcDC, True) _WinAPI_BitBlt($hDestDC, 0, 0, $iWidth, $iHeight, $hSrcDC, $iLeft, $iTop, $MERGECOPY) _WinAPI_SelectObject($hDestDC, $hDestSv) _WinAPI_SelectObject($hSrcDC, $hSrcSv) _WinAPI_ReleaseDC($hWnd, $hDC) _WinAPI_DeleteDC($hDestDC) _WinAPI_DeleteDC($hSrcDC) _WinAPI_DeleteObject($hBmp) $tPoint = 0 $tRectWindow = 0 $tDesktop = 0 If ($sFileName) Then _GDIPlus_Startup() Local $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hDestBitmap) _GDIPlus_ImageSaveToFile($hBitmap, $sFileName) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_Shutdown() EndIf Return $hDestBitmap EndFunc ;==>CaptureWindow Func GetDesktopMetrics() Return _GDIPlus_RectFCreate(_WinAPI_GetSystemMetrics($SM_XVIRTUALSCREEN), _WinAPI_GetSystemMetrics($SM_YVIRTUALSCREEN), _ _WinAPI_GetSystemMetrics($SM_CXVIRTUALSCREEN), _WinAPI_GetSystemMetrics($SM_CYVIRTUALSCREEN)) EndFunc ;==>GetDesktopMetrics1 point -
hi, guys, okay? I made a simple upgrade in the UDF ImageSearch so it can search for images from the memory. It is working, as you can see in the attached file. (run the code from the desktop, as in the example he seeks the windows 10 bin). I was trying to make the code find a image in another image, however, I am unable to do this, because I can not open an image on the computer with hHandle [as _ScreenCapture ()]. If they would help further increase this UDF! Thank you ^^ ImageSearchEX.zip Edit: i'm really sorry, it's already in the forum in this link: my content is duplicated, please, close my topic and sorry for this1 point
-
DllCall with multiple outputs
FrancescoDiMuro reacted to trancexx for a topic
PDWORD is "dword*" (notice asterisk).1 point -
Guide about if..Endif - (Moved)
Earthshine reacted to ajag for a topic
Dim $func = Worksheets("Sheet1").Range("C12").Value Call ($func)0 points