Jump to content
Sign in to follow this  
sdfg4545

accessing control info

Recommended Posts

sdfg4545

I have to tab (Send("{TAB}")) through an app until I land on specific controls. The controls are HTML buttons and links in an IE control (not an IE browser).

Is there a function that can "_GetCurrentObjectText()"?

I want to do something like the following:

For $i = 1 to 100 Step 1 ;loop 100 times

Send("{TAB}") ; move to next object

if (_GetCurrentObjectText() = "search text") then ; is this what I am looking for?

Send("{ENTER}") ; if yes, click the button

EndIF

Next

Share this post


Link to post
Share on other sites
water

Haven't done it myself but you could use _IEAttach to "connect" to the Browser Control (use "embedded"). Then you can get a collection of all links by _IELinkGetCollection and then search the one you need.

If you know the name or id of the object (have a look at the HTML source code) then you can access the object using _IEGetObjbyName.

That's it in short.

Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites
sdfg4545

I think IEAttach and embedded is what I need to do.

I dont understand what parameters to pass to IEAttach?

Documentation suggests this:

$oIE = _IEAttach ("[REGEXPTITLE:ICQ; INSTANCE:2]", "embedded", 3)

My app runs in a window called "iMedic Explorer".

Window Info: control within the app, the control is a browser

>>>> Control <<<<

Class: Internet Explorer_Server

Instance: 1

ClassnameNN: Internet Explorer_Server1

Advanced (Class): [CLASS:Internet Explorer_Server; INSTANCE:1]

ID:

Text:

Share this post


Link to post
Share on other sites
water

My app runs in a window called "iMedic Explorer".

So I would try (under the prerequisite that there is only one window with this title):

$oIE = _IEAttach("iMedic Explorer", "embedded")
ConsoleWrite("Error : " & @error & " - Extended: " & @extended & @CRLF)

Please run this code using ScITe and post the console output.

Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites
sdfg4545

I just figured it out, this is what I did:

(I now have access to all the links)

WinActivate ("iMedic Explore")

$hWnd = WinGetHandle("[CLASS:WindowsForms10.window.8.app.0.202c666]") ; got this from window info

$oIE = _IEAttach ($hWnd, "embedded")

$oLinks = _IELinkGetCollection ($oIE)

For $oLink In $oLinks

MsgBox(0, "Link Info", $oLink.href)

Next

Thanks,

Water: i see you use 'ConsoleWrite', i'll try that instead of msgbox

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.