Jump to content

junkew

MVPs
  • Posts

    3,082
  • Joined

  • Last visited

  • Days Won

    15

junkew last won the day on April 29 2025

junkew had the most liked content!

About junkew

Profile Information

  • Location
    Netherlands, Oostzaan

Recent Profile Visitors

5,854 profile views

junkew's Achievements

  1. You started in post 1 you are creating an installation script with autoit. Many products have a way of a silent install. Other products are not dependent on a windows registry and just get installed in 1 folder and as such easy to zip and unzip on another computer. "Thus, over the past few months, I have been automating the installation and configuration of the aforementioned RML Labs software" As such you have a focus on AutoIt whereas the 2 suggested options could be an alternative. if you do it with AutoIt there are multiple ways to click a button or setvalues of textboxes. There are buttons and textboxes built with many different frameworks and some of those are less compatible. search for sendmessage or WM_KEYBOARD or WM_MOUSE or keybd_event or java access bridge or uia automation. Its a very broad topic to remotely control other applications. See the faq in my signature.
  2. For installation search for silent install or install it 1 time and zip the folder and unzip on another computer. For GUI interaction there is no one size fits all solution.
  3. What do you mean with "strip whitespace from PNG's" dealing with a lot of images can cause memory leaks. In 3.3.16 maybe check if your index is sometimes 132. That you don't see weird behavior is not the same as beeing correct. Change the approach First count png images Then insert count slides Then iterate all slides to set the notes page Instead of add slide, settext,add slide set text, ...
  4. * Probably safer to check ** if a notepage exist(s): https://learn.microsoft.com/nl-nl/office/vba/api/powerpoint.slide.hasnotespage ** if a textframe exist(s): https://learn.microsoft.com/nl-nl/office/vba/api/powerpoint.shape.hastextframe * add a wait time maybe even a second after you add a slide (to give it time to create a notepage which is in itself just another slide) ** In VBA you have DoEvents function call but only way around that in AutoIt is doing a sleep sleep(100) * Did you try this suggestion from NINE ? The sub dot notation is nice but I remember much harder to debug including the has..... something properties Func _PPT_SlideNotesTextFrameSetText(ByRef $obj_pres, $amount, $obj_slide, $Text) If IsObj($obj_pres) <> 1 Then SetError(1) Return 0 Else $ShapeCount = _PPT_SlideShapeCount($obj_pres, $amount) _Debugprint("Shapes: " & $Shapecount & ". SlideNote op dia " & $amount & " " & $Text) Local $oSlides = $obj_pres.Slides($amount) If @error Then Return SetError(@error, @extended, 0) Local $oNotesPage = $oSlides.NotesPage If @error Then Return SetError(@error, @extended, 0) Local $oShape2 = $oNotesPage.Shapes(2) If @error Then Return SetError(@error, @extended, 0) Local $oTextFrame = $oShape2.TextFrame If @error Then Return SetError(@error, @extended, 0) Local Local $oTextRange = $oTextFrame.TextRange If @error Then Return SetError(@error, @extended, 0) $oTextRange.Text = $Text If @error Then Return SetError(@error, @extended, 0) Endif EndFunc
  5. Maybe it's the running speed of your code in combination with the ppt visible. Maybe turn screenupdating off or make powerpoint not visible. If last AutoIt is a little faster it could be to fast for ms office application com and screenrefresh.
  6. Ok and what did you have for AU3 code? AI will transform your code to a starting point on how to do it from AutoIt ; -------------------- SELECT AUTH TYPE (Dojo) -------------------- ; 1. Click the dropdown ; We use 'True' for the $bVisible and $bClick parameters in the wait function Local $sDropdown = _WD_WaitElement($sSession, $_WD_LOCATOR_ByID, "authTypeId", 0, 10000, $True) _WD_ElementAction($sSession, $sDropdown, 'click') ; 2. Wait for the menu items to appear (dijitMenu) _WD_WaitElement($sSession, $_WD_LOCATOR_ByCSS_Selector, "div.dijitMenu", 0, 5000) ; 3. Click the correct auth type using XPath ; Note: $auth_type should be defined as a variable beforehand Local $sXPath = "//tr[contains(@class,'dijitMenuItem') and .//td[text()='" & $auth_type & "']]" Local $sMenuItem = _WD_WaitElement($sSession, $_WD_LOCATOR_ByXPath, $sXPath, 0, 5000, $True) _WD_ElementAction($sSession, $sMenuItem, 'click')
  7. You question is vague, on one hand it looks like you know a little on AutoIt on the other hand it looks like you never read the help file. Some (sorry, vague) answers * "I know a cleaner means of doing this would involve using Class Name and the control index of the IEEE message box which happens to be 5." Did you try it, share your code maybe people can help * Read about the different tools to spy with. au3inf is one of them. see Faq 30 * Understand what a UI hierarchy means and how you can traverse the different controls in your userinterface * Maybe first set the focus https://www.autoitscript.com/autoit3/docs/functions/ControlFocus.htm https://www.autoitscript.com/autoit3/docs/functions/ControlGetText.htm Read this https://www.autoitscript.com/autoit3/docs/ but for sure this https://www.autoitscript.com/autoit3/docs/intro/windowsadvanced.htm
  8. CUIAutomation was designed for UI automation not for headless automation. There are to many technologies around to have "one rules them all". You should in detail describe/understand in which technology your to be remote controlled application is written and see which technologies will work on how to controll them (this could mean AutoIt cannot handle it and you need commercial solutions that sometimes can go further). Probably cheaper to have a room thats locked where you can keep the desktops running. Are you sure your virtual desktop continues after you disconnect? You could try to run scripts to "keep session alive" or "kill screenlock" like sendkeys numlock or other scripts where the VDI keeps active.
  9. https://learn.microsoft.com/en-us/visualstudio/debugger/introducing-spy-increment?view=vs-2022 and there have been implemenations by others over the years but not sure if still maintained. https://share.google/aimode/KIlYSWvTQeUuXKkZu
  10. Some other topics you could look into all with their own pro and cons. With IUIAutomation you can "subscribe" to these events a little bit higher then diving into the system hooks which are relatively hard without a separate dll doing the work. There are many examples on the MS IUIAutomation on determining windows and catching events.
  11. Its all in this thread and I can see I updated all in post 1.
  12. If spytools are not showing it most likely you cannot retrieve with api. For sure you need to look not at the button for the text. Best chance to send ctrl a and ctrl c and get it from the clipboard with the clipboard functions
  13. How large is your ini file? How many sections do you expect? Why would you expect getprivateprofilesection to be faster? Is there a need to do it with the windows functions regarding compatibility with the windows limits?
  14. $t = _UIA_getPropertyValue($oUIElement, $UIA_BoundingRectanglePropertyId) And drawrect will give the information you need to use in screencapture function
  15. Just add _ScreenCapture_Capture that isn't a workaround. That would be the solution. You already have the ltwh as part of the highlight parameters.
×
×
  • Create New...