Sign in to follow this  
Followers 0
GZE

Class

10 posts in this topic

Hello,

I need to retrieve the class of a window to use it in my script.

What is the easiest way accomplish this?

You could offcourse use the AU3Info.exe and write a routine to filter out the class but I am hoping there is a more direct way.

Ex. For a explorer window I would need ExploreWClass. (see below for AU3info.exe)

Kind regards

GZE

Press CTRL-ALT-F to pause the display.

>>>>>>>>>>>> Window Details <<<<<<<<<<<<<

Title: C:\

Class: ExploreWClass

Size: X: -4 Y: -4 W: 1928 H: 1155

>>>>>>>>>>> Mouse Details <<<<<<<<<<<

Screen: X: 962 Y: 175

Cursor ID: 5

>>>>>>>>>>> Pixel Color Under Mouse <<<<<<<<<<<

RGB: Hex: 0xD4D0C8 Dec: 13947080

>>>>>>>>>>> Control Under Mouse <<<<<<<<<<<

Size: X: 589 Y: 76 W: 1329 H: 1030

Control ID: 1

ClassNameNN: SysListView321

Text:

>>>>>>>>>>> Status Bar Text <<<<<<<<<<<

(1): 59 object(s) (plus 3 hidden) (Disk free space: 8,67 GB)

(2): 992 KB

(3): My Computer

>>>>>>>>>>> Visible Window Text <<<<<<<<<<<

C:\

C:\

59 object(s) (plus 3 hidden) (Disk free space: 8,67 GB)

>>>>>>>>>>> Hidden Window Text <<<<<<<<<<<

Share this post


Link to post
Share on other sites



Might try:

From help file:

WinGetClassList

--------------------------------------------------------------------------------

Retrieves the classes from a window.

WinGetClassList ( "title" [, "text"])

Parameters

title The title of the window to read.

text [optional] The text of the window to read.

Return Value

Success: Returns a string containing the window classes read.

Failure: Returns numeric 1 and sets @error to 1 if no window matches the criteria.

Remarks

Class names are linefeed (@LF) separated. WinGetClassList works on both minimized and hidden windows. Up to 64KB of text can be retrieved. If multiple windows match the criteria, the classes are read from the most recently active window.


SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Share this post


Link to post
Share on other sites

Might try:

From help file:

<{POST_SNAPBACK}>

I already found that comand but it does not give the wanted result.

These are the values it returns:

SciTEWindowContent

Scintilla

Scintilla

ToolbarWindow32

SysTabControl32

msctls_statusbar32

And there is not sign of "ExploreWClass"

So please try again :)

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Class names of a window do not change, so is there a particular reason why you need to obtain a class name programmatically?

Edited by LxP

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

Class names of a window do not change, so is there a particular reason why you need to obtain a class name programatically?

<{POST_SNAPBACK}>

That is just the reason i would like to use them.

eg. Use winlist() and BitAND() to get al your visible windows and close them if they are explorer windows or Internet explorer windows.

it's like sometimes you have like 10 of those bastards open and you would like to close them all at once :).

Class is just a handy way of identifying them.

Grtz

GZE

Edited by GZE

Share this post


Link to post
Share on other sites

why don't you just use ProcessList?

returns the Process Name and Process ID's into an array.

Then you could loop through the array and kill all process of certain type name.


SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Share this post


Link to post
Share on other sites

That is just the reason i would like to use them.

eg. Use winlist() and BitAND() to get al your visible windows and close them if they are explorer windows or Internet explorer windows.

it's like sometimes you have like 10 of those bastards open and you would like to close them all at once  :).

Class is just a handy way of identifying them.

Grtz

GZE

<{POST_SNAPBACK}>

seems like if windows or internet explorer, you could identify them by the title of the window since they both have some static text to match. also, if you kill the iexplore process, i believe that gets rid of all open internet explorer windows.

1100111 00001011101111 00011101101111 00010111100100 00001111110100 00110111110010 00101101111001 0011100i didn't make up this form of encryption, but i like it.credit to the lvl 6 challenge on arcanum.co.nz

Share this post


Link to post
Share on other sites

eg. Use winlist() and BitAND() to get al your visible windows and close them if they are explorer windows or Internet explorer windows.

it's like sometimes you have like 10 of those bastards open and you would like to close them all at once  :).

<{POST_SNAPBACK}>

I haven't tried this but I imagine it would work:

; allow searching of windows by class name
opt("winTitleMatchMode", 4)

while (winExists("classname=ExploreWClass"))
    winClose("last")
wEnd

while (winExists("classname=AnotherClass"))
    winClose("last")
wEnd

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

Func WinGetClassName($Hwnd)
   Local $Ret = DllCall("user32.dll", "int", "GetClassName", "hwnd", $Hwnd, "str", "", "int", 64)
   If Not @Error Then Return $Ret[2]
EndFunc

:)

Edited by Burrup

[u]Old Projects:[/u]A3MORGB2Hex[u]Old Functions:[/u]_TimeAdd/_TimeSub_AddComma_BubbleSort _RippleSort "He who does not understand your silence will probably not understand your words." - Elbert Hubbard.

Share this post


Link to post
Share on other sites

Func WinGetClassName($Hwnd)
   Local $Ret = DllCall("user32.dll", "int", "GetClassName", "hwnd", $Hwnd, "str", "", "int", 64)
   If Not @Error Then Return $Ret[2]
EndFunc

:D

<{POST_SNAPBACK}>

:evil:

That i didn't think about that one... :)

Thnx

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  
Followers 0