3

In Windows XP and Vista it was possible to know at a glance the number of taskbar grouped instances/opened windows for each application:

1
2
3 4

For some reason this feature has been removed in Windows 7. Is there a way to reactivate it somehow, even if it requires third-party software?

  • It should be possible to write a utility that counts the number of running instances of each program and overlays it on the taskbar button, but so far I haven't come across one. – Karan Apr 27 '15 at 19:32
  • 1
    @Karan : I found this but it doesn't seem to work... – danicotra Apr 27 '15 at 19:40
  • Yes, I've seen that thread before but never tried the script. Seems like a kludge anyway to run it every time and I'd much rather use a small purpose-built utility instead. – Karan Apr 27 '15 at 19:44
  • 1
    @Karan : yes... for example what? – danicotra Apr 27 '15 at 19:46
  • See my first comment. :) – Karan Apr 27 '15 at 19:51
5

This can be done now with the help of 7+ Taskbar Numberer (developed by RaMMicHaeL, who's also behind the brilliant 7+ Taskbar Tweaker).

If you start the program with the -v4 command-line parameter, it will display the number of grouped windows/taskbar buttons for each application as long as the program is running:

1

If you start the program with the -v5 command-line parameter, it will display the number of grouped windows/taskbar buttons for each application as long as the program is running and Win is not pressed. If Win is pressed, it will instead display the position number of each taskbar button group so that Win+Digit can be used to activate each group:

2

  • that tool is so good for some old_school users(not me), is good and use minimal resources. – Francisco Tapia May 19 '15 at 19:13
  • 1
    Yes, it's a very nice bit of coding. – Karan May 19 '15 at 19:14
  • WOW, thank you man, accepted as solution (and I'm going to upvote your answer as soon as I can). I almost had lost hope and tried to manage the thing by myself in someway (see my answer) but the suggested application is clearly a better solution. – danicotra May 20 '15 at 16:52
  • @danicotra: You're welcome, and as a bonus a nice utility I knew of has been improved even further. Win-win! :) – Karan May 20 '15 at 17:41
0

After Karan answer I think this is a little bit useless now, yet having spent some time on it I decided to share it anyway.

As said before, the best way to suit the needing is an application that "enhances" Windows 7 taskbar in a way to make the number of grouped windows to show just within the relative icon, but it seemed nothing like that already existed so I thought about creating one by myself. Well, I think the language to go in this case should be MS C++ .NET (not even C# could be suitable for the purpose I guess...) and since I'm definitely not skilled enough to achieve that by now (and I don't think I'll have the time for becoming anyway) the thing I did to get a sort of "acceptable" solution for my needs's been modify this AHK script as follow:

;;WARNING NOTE 1: does't count grouped open folders
;;WARNING NOTE 2: opened Windows Media Player counts as 4 instances
;;WARNING NOTE 3: count fails in the remote hypothesis that, for example, a folder named ".pdf - Adobe Reader" is open 
;; based on http://www.autohotkey.com/board/topic/35867-winget-count-is-telling-me-i-have-6-windows-open-but/

#SingleInstance, force 

Gui, add, text, , Windows count (including not grouped ones) = 
Gui, add, text, x+5 vcount, XX 
Gui, add, edit, xm r20 vWList w400 -wrap +0x100000 +readonly 
Gui, Show
GoSub, checklist

SetTimer, checklist, 3000 
return 

checklist: 
  WinGet, count, count
  WinGet,current,List 
  nocount = 0
  last_app_name = %A_Space%- %A_Tab% ; something that surely can't be used for files/folders file... Tip: anyway "Start" should always be the first element of the list
  myArray := Object()
  log = grouped applications instances:
  loop, %current% { 
    WinGetTitle, tTitle, % "ahk_id " current%A_Index% 
    if tTitle is space
    {
      nocount += 1 
    }
    else if (tTitle == A_ScriptName || tTitle == "Start" || tTitle == "Program Manager" || tTitle == "Default IME" || tTitle == "HTA Test" || tTitle = "C:\Windows\system32\cmd.exe") ; note == for everything except = path as case may vary on different PCs
    {
      nocount += 1
    }
    else
    {
     temp_FoundP := InStr(tTitle, last_app_name, 0) 
     if ((temp_FoundP != 0 ) && (last_app_name == substr(tTitle, temp_FoundP) ))
     {
       myArray[last_app_name] += 1
     }
     else
     {
      temp_FoundP := InStr(tTitle, " - ", 0) 
      if (temp_FoundP != 0) {
        last_app_name := substr(tTitle, temp_FoundP)
      }
      else {
        last_app_name = %A_Space%- %A_Tab%
      }
      if myArray[last_app_name] {
        myArray[last_app_name] += 1
      }
      else { myArray[last_app_name] := 1
      }
     }
    } 
   } 
  remaindercount = 0
  For key, value in myArray
  {
;MsgBox %key% = %value% ; DELETE THIS LINE
    if (key == "-" || value == 1) {
      remaindercount += value
    }
    else {    
      log .= "`n" key " = " value 
    }
  }
  if remaindercount > 0
      log .= "`n(remaining = " remaindercount ")"
;  Sort, log, C   ; uncomment this to sort by name 
  count -= nocount
  GuiControl, , count, %count%
  GuiControl, , WList, %log% 
  return 

GuiClose: 
ExitApp

FINAL NOTE: this was my first time with AHK and I'm always in a hurry so my coding may not be "optimal" an fully tested... besides that there are some limitations (read warning notes). Anyway, as said, I think this isn't useful anymore after Karan answer (that I accepted as solution) yet anyone able to suggest a more convenient way/solution (another similar application or some coding in a "more serious" programming language than AHK for instance... well, ok maybe this is more stackoverflow matter) is still welcome. Many thanks.

  • Heh, funny you selected AHK. :) This is what I asked after reading your question. However I wasn't able to improve it sufficiently and wasn't satisfied with the results, so I requested RaMMicHaeL instead. – Karan May 20 '15 at 17:13
  • Yeah, I knew it recently but I feel AHK can be very useful especially for one-trick-ponyes when you need a quick and dirty one-specific-task utility but not only... The only negative aspect, for me, is the documentation that definitively needs some improvements... I find it a bit uncomfortable and think that some more examples, for instance, wouldn't do bad... – danicotra May 26 '15 at 10:34
  • Oh yes, AHK/AutoIt can be quite useful indeed in many situations. Perhaps you misunderstood, I wasn't saying your choice was bad. I just thought it was a bit funny because AHK was just what I thought of too when I read your question, which is why I asked on their forum. – Karan May 26 '15 at 18:00
  • Haha, yes, yes, I understand what you meant... It's probably me writing something wrong if you thought I understood you where mocking me; I didn't, don't worry. I was only making some personal considerations about the potential of AHK (which I discovered in this occasion during my googling in search for a possible way to achieve what I needed) and its "not-so-comfortable" documentation – danicotra May 30 '15 at 15:00
  • I agree with you there, the docs could definitely use improvement. Lots of programmers prefer coding to commenting and documenting the code I guess. :) – Karan May 30 '15 at 18:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.