Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 06/02/2017 in all areas

  1. Deye, Delighted to hear it. I will release a new version of the UDF this weekend. M23
    2 points
  2. Automate all windows and browser applications with one UDF function library. Based on the microsoft automation API this library high level supports Recognition of conttrols from EDGE, Chrome, FF, Opera, Safari and Windows native apps Small testing framework to split object repository from coding away Introduction Quickstart - Getting started quickly Simple scripts With this module you can automate all applications/programs that support ui automation and/or accesibility api from microsoft you can recognize more controls than AutoIT can recognize "out of the box" you can use concepts from other testing frameworks like http://download.freedesktop.org/ldtp/doc/ldtp-tutorial.pdf http://safsdev.sourceforge.net/Default.htm coded ui testing from microsoft Some of those controls / applications are chrome browser (partly mainwindow has to be done with MSAA for navigating) chrome://accessibility in the adress bar of chrome or start with "--force-renderer-accessibility" silverlight controls Ribbon control controlbars of Excel/Word IE and FF browsers Windows Media Player Windows clock AFX .. controls (partly) .... Based on the initial AIO Object I now have made the interface file to work with objCreateInterface function which is in the latest beta's automate clicking and querying basic information It gives you a lot of basic information to be able to automate clicking, querying basic information where it goes further in certain situations than AutoIt is identifying Starting threads for background on the ui automation api of microsoft (not for starters) http://en.wikipedia.org/wiki/Microsoft_UI_Automation http://msdn.microsoft.com/en-us/library/ms747327.aspx Previous threads in general help/support Interface AutoItObject IUIAutomation ObjCreateInterface and struct tagPoint in method ElementFromPoint Be aware that API is not allways installed under XP/Vista see http://support.microsoft.com/kb/971513 Within Windows 7 and Windows 8 it should be preinstalled by default. Be aware on 32 and 64 bits way of running your script #AutoIt3Wrapper_UseX64=Y or N Basic example of usage / showing and retrieving the default information, will post multiple examples later Hover your mouse to an area of interest and press ctrl+w and information will be shown in the edit box of the form Simple spy demo (see simplespy.au3 or use latest ZIP attachment for latest version) Main features Recognize windows and html controls for the major browsers Logical and physical description for controls (UI mapping, Application map) Simple repository logic to abstract logical and physical descriptions Store Runtime Type Information in RTI. variables Rubberbanding/highlighting of objects Simple spy to help in making / identifying the physical description Support of regular expression(s) in identifying objects recognize objects on multiple properties supported properties: name ,title, automationid, classname, class, iaccessiblevalue, iaccessiblechildId, controltype, processid, acceleratorkey The actions provided so far "leftclick", "left", "click", "leftdoubleclick", "leftdouble", "doubleclick", _ "rightclick", "right", "rightdoubleclick", "rightdouble", _ "middleclick", "middle", "middledoubleclick", "middledouble", "mousemove", "movemouse" "setvalue","settextvalue" "setvalue using keys" "setValue using clipboard" "getvalue" "sendkeys", "enterstring", "type", "typetext" "invoke" "focus", "setfocus", "activate" "close" "move","setposition" "resize" "minimize", "maximize", "normal", "close", "exist", "exists" "searchcontext", "context" "highlight" "getobject","object" "attach" "capture","screenshot", "takescreenshot" "dump", "dumpthemall" "propertyvalue", "property" match on multiple properties like: name:=((Zoeken.*)|(Find.*)); ControlType:=Button; acceleratorkey:=Ctrl+F Support for 117 different properties see $UIA_propertiesSupportedArray in uiawrappers like for example title, regexptitle, class, regexpclass, iaccessiblevalue, iaccessiblechildid, name, accesskey, automationid, classname IAccessible, IAccessible2, ISimpleDom interfaces debuglogging to a file log.txt (no output in scitewindow) Examples Example 1 Iterating thru the different ways of representing the objects in the tree (#comment-1105548) Example 2 Finding the taskbar and clicking on the start menu button (#comment-1105680) Example 3 Clicking a litlle more and in the end displaying all items from the clock (thats not directly possible with AU3Info) (#comment-1108849) Example 4 that demonstrates the calculator Example 5 Automating chrome Example 6 Demonstrates all stuff within chrome to navigate html pages, find hyperlink, click hyperlink, find picture, click picture, enter data in inputbox Example 7 The chrome example modified to a firefox example Example 8 The other major browser Internet Explorer automated (made on Example 6 and 7) Example 9 Windows media player Example 10 Automating mach 3 (AFX windows and other hard to get recognized by AutoIT) Lot of links are broken due to forum upgrade just search for the text like "Example 11 Demonstrate Word, Notepad and Calculator actions" Example 11 Demonstrate Word, Notepad and Calculator actions ... Example 13 Details 1 about the right pane of the windows explorer Example 14 Details 2 about the right pane of the windows explorer Example 15 Details 3 about the right pane of the windows explorer Example 16 Details 4 about the right pane of the windows explorer Example 17 Details 5 about the right pane of the windows explorer WITH CACHING Example 18 Details 6 about the right pane of the windows explorer WITH VIRTUAL ITEMS Example 19 Eventhandling examples Example 20 Eventhandling examples Example 21a Eventhandling examples Internet Explorer Example 21b Eventhandling examples Internet Explorer Example 22 Eventhandling examples Follow focus Example 23 Eventhandling examples structure changed Example 24 Eventhandling examples IUIAutomationEventHandler Example 25 SAFEARRAYS Example 26 IACCESSIBLE / MSAA Example 27 IACCESSIBLE2 / MSAA Example 28 IACCESSIBLE / MSAA events Example 29 IACCESSIBLE2 events Example 30 ISimpleDOM Example 31 Notepad window move, maximize, minimize Example 32 Three browsers doing the same stuff with small differences in scripting only .. TODO Build recorder Enhance the spy with a nicer UI UI for the repository (now in the script with dot notation) Enhance mapping / identifying on multiple properties instead of 1 combined with index If speed becomes an issue use the caching logic of the MS UIA framework Add the other patterns later Generalize the concept of System Under Test of starting the SUT (for testing framework purposes) Remote running of scripts Fix issue on finding within dynamic context ... edit august 18th 2013 initial post Only zip files are needed to download , just unzip in 1 directory edit july 2016 Made V0_63 and examples works with AutoIt v3.3.14 Windows 10 tested Simple spy gives some basic code as a present Chrome latest versions seems to be having issues with IUIAutomation on tabs/buttons of mainwindow use MSAA for accessing tabsheets / buttons more cleanup to be in UDF style More comments in the source see changelog.txt for previous changes edit september 2017 All examples fixed for the IE, Firefox and Chrome browser Some small but essential fixes in UIAWrappers edit april 2018 Enhanced logic on fallback / dynamic search, still not perfect, to slow Retested with latest Chrome, FF, Edge and IE11 and some extensions to show how to get text from the webpage (examples 5,6,7) Some small bugfixes Some comments as given in forum incorporated edit may 2019 Speed enhancements on especially fallback searching UIA.CFG works now in a better way to turn on/off debug, highlighting, debug2file More stable and consistent behavior Internal cleanup and refactoring of bigger functions Checked with W10 (not tested on W7) Added some W10 properties Run with 3.3.14.5 on W10 UIA_V0_51.zip EXAMPLES_V0_5.zip UIA_V0_63.zip EXAMPLES_V0_63.zip UIA_V0_64.zip EXAMPLES_V0_64.zip EXAMPLES_V0_66.zip UIA_V0_66.zip EXAMPLES_V0_70.zip UIA_V0_70.zip
    1 point
  3. [NEW VERSION] - 17 Mar 22 Added: A new function _Notify_Size which allows you to adjust the size of the notification from its default 160x40. Please read the function header to see the max/min sizes that you can set for the width and height - the function returns informative @error/@extended values if these are not respected. Regardless of the size set, each notification will still display only 2 lines of text with the size of font used set automatically by the UDF. New UDF in the zip below. Previous changes: Changelog.txt A while ago I was asked to help port an AHK UDF to AutoIt. This was not too difficult and I found it useful myself (as a replacement for ConsoleWrite when debugging compiled scripts among other things). I have been polishing it for a while and thought I might release it in case it proves useful to anyone else. The notifications produced by Notify are small 2-line boxes that pop out of the edge of the display one above the other (you can select which side and in which direction they appear) - you can have as many as you want although only as many as can fit on your display will appear, the others will appear as soon as there is room. You can select whether they will retract after a certain time and/or when clicked. Colours and font are user-definable, and you can add an icon or image (bmp, jpg, gif or png) if you wish. When a notification retracts, the others move to leave space for more (you can select a smoooth slide or an instant move) - run the examples to see them in action. If you find the default sizing of the notifications is not to your liking you can change it by amending these values in the UDF (lines #354-356): ; Set default auto-sizing Notify dimensions Local $iNotify_Width_max = 300 Local $iNotify_Width_min = 150 Local $iNotify_Height = 40 A zip containing the UDF, example scripts and my StringSize UDF (which is also required): Notify.zip As usual happy for comments and/or compliments. M23
    1 point
  4. mLipok

    Future of JavaApplets

    Each certificate issuer also makes available the sale of hardware and software, including the one you mention. The problem is that many systems use signing files in "ONLINE" mode. Because it does not require manually writing the file to disk, SIGNING, and its subsequent manual upload to the portal. As an example go here: https://wws.ceidg.gov.pl/ceidg.sts/Login.aspx and click: This is a business portal where you can deal with official matters, including those with the tax office. Second example: Here: https://www.zus.pl/portal/riu/riuZalogujLoginHaslo.npi you can handle matters related to national social security in Poland. These two examples allow you to sign in to government systems using a signature issued by the certification center, without having to use external applications. Of course do not try to use your certyficate and do not use your PIN for them
    1 point
  5. Jos

    SCITE

    SciTE Menu / Help /About SciTE. The out-of-the-box version that comes with AutoIt3 or with the extra SciTE4AutoIt3 installer? The About will tell you that too. Anyways, as stated, I have made a Beta version available with some fixes for this specific topic. Just rename the current SciLexer.dll and download the current beta version to try. This does require the SciTE4AutoIt3 installer version. Jos
    1 point
  6. The right tool for the right job. If the only tool you have is a hammer, all your problems start looking like nails. - Abraham Maslow. Maslow's hammer
    1 point
  7. TheDcoder

    Future of JavaApplets

    I think it would be fair to say that JavaScript is taking the place of Java Applets... especially after the invention of asm.js (and source-to-source compilers like Emscripten). Many have converted cryptographic libraries like OpenSSL. This allows cryptographic operations (signing, verifying, decrypting and encrypting) in the browser itself. A good example would be Keybase.
    1 point
  8. You can do that (quick'n dirty): Local $hOTF = FileOpen("SourceCodePro-Regular.otf", 16) Local $bOTF = FileRead($hOTF) FileClose($hOTF) Local $sOTF = StringRegExpReplace(BinaryToString($bOTF), "[[:cntrl:]]", "") ConsoleWrite($sOTF) but it doesn't make you any good. First, there are pure binary areas containing offsets, adresses, flags, binary data, some of which will get interpreted as printable characters. Second, there are portions of text encoded in UTF16; depending on the language used you can as well read garbage there. Lastly, this brute-forcing read of everything in [0x20, 0x7E] U [0x80, 0xFF] completely ignores the file structure, having headers, optional areas, glyph tables as compressed Postscript and other zones. If you want to retrieve significant information properly, you need to dissect the file format according to OTF specifications, in order to read just the valid area(s) of interest under the correct format and encoding. Anything else is just plain wrong.
    1 point
  9. Deye, Try this Beta and specify the monitor on which you want to have the notifications displayed - you will need to use _Notify_Locate_Mod and not _Notify_Locate to do this: <snip> M23
    1 point
  10. Deye, That looks as if it worked - let me redesign the _Notify_Locate function and then we can try with the UDF. M23
    1 point
  11. Deye, Those values are about what I would have expected - the UDF searches for the edges of the available display area. Try this code which allows you to define a monitor rather than the UDF looking at the whole area: #include <WinAPISys.au3> #include <WinAPIGdi.au3> _Notify_Locate_Test(0, 1) _Notify_Locate_Test(1, 1) _Notify_Locate_Test(2, 1) _Notify_Locate_Test(3, 1) _Notify_Locate_Test(0, 2) _Notify_Locate_Test(1, 2) _Notify_Locate_Test(2, 2) _Notify_Locate_Test(3, 2) Func _Notify_Locate_Test($iLocation = 0, $iForceMonitor = 0) ; Look for monitors Local $aEDM = _WinAPI_EnumDisplayMonitors() If @error Then Return SetError(3, 0, 0) Local $aCoords[$aEDM[0][0] + 1][4], $hDisplay, $tRect, $iIndex = $iForceMonitor ; Get get coords for each monitor For $i = 1 To $aEDM[0][0] $hDisplay = $aEDM[$i][0] ; 1 for first handle, 2 for second $tRect = _WinAPI_GetMonitorInfo($hDisplay) If @error Then Return SetError(3, 0, 0) $aCoords[$i][0] = DllStructGetData($tRect[1], 'Left') $aCoords[$i][1] = DllStructGetData($tRect[1], 'Top') $aCoords[$i][2] = DllStructGetData($tRect[1], 'Right') $aCoords[$i][3] = DllStructGetData($tRect[1], 'Bottom') Next Switch $iForceMonitor Case 1 To $aEDM[0][0] ; Force monitor choice Case 0 ; Determine which monitor will display notifications Local $iExtreme = (($iLocation > 1) ? (1000) : (0)) ; Set initial value to be adjusted as necessary For $i = 1 To UBound($aCoords) - 1 ; Depending on location, look for leftest/rightest monitor edge Switch $iLocation Case 0, 1 If $aCoords[$i][2] > $iExtreme Then $iExtreme = $aCoords[$i][2] ; Furthest left/right edge found so far $iIndex = $i ; Index of associated monitor EndIf Case 2, 3 If $aCoords[$i][0] < $iExtreme Then $iExtreme = $aCoords[$i][0] $iIndex = $i EndIf EndSwitch Next Case Else ; Invalid monitor value Return SetError(1, 0, 0) EndSwitch ; Adjust data array depending on required location If $iForceMonitor Then ConsoleWrite("Monitor " & $iForceMonitor & " forced" & @CRLF) EndIf Switch $iLocation Case 0 ConsoleWrite("0 ; From bottom right:" & @CRLF & _ $aCoords[$iIndex][3] - 10 & " ; bottom Y" & @CRLF & _ $aCoords[$iIndex][2] - 10 & " ; right X" & @CRLF) Case 1 ConsoleWrite("1 ; From top right" & @CRLF & _ $aCoords[$iIndex][1] + 10 & " ; top Y" & @CRLF & _ $aCoords[$iIndex][2] - 10 & " ; right X" & @CRLF) Case 2 ConsoleWrite("2 ; From top left" & @CRLF & _ $aCoords[$iIndex][1] + 10 & " ; top Y" & @CRLF & _ $aCoords[$iIndex][0] + 10 & " ; left X" & @CRLF) Case 3 ConsoleWrite("3 ; From bottom left" & @CRLF & _ $aCoords[$iIndex][3] - 10 & " ; bottom Y" & @CRLF & _ $aCoords[$iIndex][0] + 10 & " ; left X" & @CRLF) EndSwitch ConsoleWrite(@CRLF) EndFunc ;==>_Notify_Locate_Test That should allow you to get the values for a specific monitor. Please run it and post the results - I think it might solve your problem (and the request made by some other users a while back). M23
    1 point
  12. I think you might be downloading the file, rather than reading the page's source.
    1 point
  13. JLogan3o13

    windows hacks

    How many times do we need to go over this before people get it? If a Mod steps into a thread with an obvious attempt to determine legitimacy, stay out of it until the all-clear. Don't guess at what you think the OP meant, don't offer witty comments, don't offer to help, just use some common sense and wait.
    1 point
  14. rietjevaldo, We have had enough of you - account permanently banned. M23
    1 point
  15. https://www.autoitscript.com/wiki/FAQ number 31
    1 point
  16. Do stories of encountering software written in autoit in the wild count? Some small company once hired me to maintain a VPS with data mining bots on windows because the previous guy was constantly having to maintain the VPS because the programs he created were unstable and crashing the VPS. I discovered the programs were autoit scripts. Being a fan of the language I was quite amused at how much data these three programs were processing, a chain of API requests and SQL queries. One program was constantly making requests to several APIs and got several tens of keys, then passed it to the next program who would make a call for each of those keys, then the next program would create several queries for each of those keys. It was really testing its limits. There was an API call that dealt with having to MD5 hash a key and the guy used a javascript processing program (not even nodejs, ie or whatever else) to run some MD5 hashing code, it would launch that program once a second.. I was surprised the guy wasn't able to recognize an MD5 hashing function in javascript when he saw one yet wrote all these programs.. I told my employer this was the wrong language for the job so I replaced everything with my own stuff but I did keep a version of the autoit bots maintained just because I wanted to see them functioning and doing that job cause I thought it was kinda cute somehow, probably because how elaborate it was using all these components to deal with things he didn't know how to properly deal with. Replaced the JS md5 hashing function and that JS interpreter with a simple "_Crypt_HashData" call, created a logging system to catch where the crash happened and realized after 3 days of running it built a ridiculous SQL query that killed the server and it could run for weeks with no issues after that, but still it was quite laggy compared to its successor so I had to let it die... Autoits limit is it's single threaded and developing functionality to circumvent this can be more costly than doing everything in another language that is well suited for the task.
    1 point
  17. I've created an enterprise application strictly with AutoIt to process check images into a database. Unless you've used AutoIt extensively, you don't truly know what you can do with it. EDIT: Not to mention HP uses autoit to build their driver installers
    1 point
  18. Mat

    Software written in AutoIt

    There are no limits. Apart from those described in the helpfile. But those are only limits until you work around them.
    1 point
  19. DCCD Another way: $connect = _GetNetworkConnect() If $connect Then MsgBox(64, "Connections", $connect) Else MsgBox(48, "Warning", "There is no connection") EndIf Func _GetNetworkConnect() Local Const $NETWORK_ALIVE_LAN = 0x1 ;net card connection Local Const $NETWORK_ALIVE_WAN = 0x2 ;RAS (internet) connection Local Const $NETWORK_ALIVE_AOL = 0x4 ;AOL Local $aRet, $iResult $aRet = DllCall("sensapi.dll", "int", "IsNetworkAlive", "int*", 0) If BitAND($aRet[1], $NETWORK_ALIVE_LAN) Then $iResult &= "LAN connected" & @LF If BitAND($aRet[1], $NETWORK_ALIVE_WAN) Then $iResult &= "WAN connected" & @LF If BitAND($aRet[1], $NETWORK_ALIVE_AOL) Then $iResult &= "AOL connected" & @LF Return $iResult EndFunc
    1 point
×
×
  • Create New...