Sign in to follow this  
Followers 0
malcolmsearle

Grouping of AutoIt application windows in XP/Win 7

9 posts in this topic

Hi

I have produced a bunch of AutoIt scripts to improve my, and my teammates, productivity at work. Spent many hours browsing these forums and reading the helpfiles in order to be able to do that. Impressive, good info everywhere, thanks for that!

But maybe I've missed something...

A number of my scripts are part of a suite that we call "Script Central".

What I would like to be able to do is to be able to have Windows (some of us are on XP, some of us have moved to Windows 7) group any open "Script Central" applications on the taskbar.

Note that I don't want to force Windows to group open "Script Central" windows, I just want Windows to use it's own grouping settings to group all open "Script Central" windows when it deems it necessary.

I've searched through the help files and this forum but come up short. Can anyone point me in the right direction?

Sorry if I've misunderstood something very basic!

Cheers

Malcolm

Share this post


Link to post
Share on other sites



Have you tried right clicking the task bar, go to properties, check the box that says "Group similar taskbar buttons"? Or is this not what you're looking for?


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

Have you tried right clicking the task bar, go to properties, check the box that says "Group similar taskbar buttons"? Or is this not what you're looking for?

Thanks but that's not quite what I'm looking for.

If, for example, I start 5 copies of Word then they will all get grouped into one button (my Windows groups after 3 windows are open for any one specific app).

I would like to have the same happen for my "Script Central" scripts.

This might not be possible as they all have different file names.

If I start 3 copies of the same script they get grouped.

But I would like to group other my scripts too under one "Script Central" button.

Can I set some sort of application identifier in my scripts that would cause Windows to do this?

Share this post


Link to post
Share on other sites

Windows has something called an appband that might be of use for your needs. I don't know much about how to program them, but here is a link to the MSDN article describing them. I'm not sure if that would fit the bill for you or not, but it's a place to start.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

Windows has something called an appband that might be of use for your needs. I don't know much about how to program them, but here is a link to the MSDN article describing them. I'm not sure if that would fit the bill for you or not, but it's a place to start.

Thanks a lot. I'll check it out and post back here with an update later on.

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

Thanks a lot. I'll check it out and post back here with an update later on.

Had a read. Not sure that was what I was after.

I need something more like this method that is available through the WindowsAPICodePack on Win 7:

SetApplicationIdForSpecificWindow

Doesn't matter if I can't get this to work on XP, we're moving to Win 7 this last quarter of 2010 anyway.

Anyone have any experience doing this in AutoIt?

Edited by malcolmsearle

Share this post


Link to post
Share on other sites

From what I just read regarding SetApplicationIdForSpecificWindow, that does exactly the opposite of what you want to do. It will ungroup a grouped window by resetting it's application ID so that it's seen as a different parent window. At least that's how it looked to me. But then, I'm not a "real" programmer in that I don't know any of the various C flavors.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

Windows ID can be set with _WinAPI_SetWindowLong(), maybe its enough to unify these IDs for the Windows you want to group?

Edit:

MSDN: "Sets a new identifier of the child window. The window cannot be a top-level window."... might not work ;)

Edited by KaFu

Share this post


Link to post
Share on other sites

Windows ID can be set with _WinAPI_SetWindowLong(), maybe its enough to unify these IDs for the Windows you want to group?

Edit:

MSDN: "Sets a new identifier of the child window. The window cannot be a top-level window."... might not work ;)

You were right, doesn't work on top-level windows :-(

At this point I think I will have to stop looking for a solution. This is not a show-stopper, just more of a would-be-nice-to-have. Thanks to all for your input. If, of course, anyone does come up with an idea please add it to this thread. Cheers.

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