Jump to content


  • Posts

  • Joined

  • Days Won

  • Donations


ntfoxy last won the day on October 15 2021

ntfoxy had the most liked content!

About ntfoxy

Profile Information

  • OS
    2003 x86

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

ntfoxy's Achievements



  1. Sorry for this long reply. Did you assigned the identifiers properly? They're different now, either you need to use another utility to reorder them, or run SysTrayUtil with debug parameter to list identifiers. It should be something like explorer:ConnectionsTray:0123abcd instead of explorer:ConnectionsTray:pci.8086.1337 (pay attention to the last segment, there should be 8 symbols now). @404notfound no, I don't. Should I? I didn't plan to make "serious projects" from these programs.
  2. With the current algorithm — no. It seems that you have 2 network adapters bound to the same hwid (either you have 2 identical network cards, or they have 2 interfaces). Determining how connection tray icon corresponds to network adapter is a dirty hack: SysTrayUtil just extracts the adapter name from icon's tooltip and tries to find the adapter with the same name. However, it's possible to assign the same name to different adapters, which will also break the algorithm. In this case, I'd recommended to rename your adapters. If your adapters are named differently (so you have multiple adapters assigned to the same hwid) and you still have this problem, you can try this fixed version. It uses adapter ID (assigned to each network adapter by Windows) instead of hwid as icon identifier, however this can lead to other problems (I'm not sure how well Windows keeps these ID across device reconnects, etc). You'll need to manually reorder connection icons. systrayutil.dll
  3. OP is updated, as I released SysTrayUtil 1.1 which includes the fixes for incorrectly identified programs and ability to use * as CLASSNAME identifier. In addition, a bug with incorrecly transformed identifiers was fixed. This will probably affect your configuration, @Dave-H. Here is the list of how identifiers were changed (according to the Order value you posted above). There is additional inner identifier assigned to any tray icon by a program, it's just a number. However, it's a bad idea to rely on these numbers (to identify icons) as programs may use them as they wish. For instance, netshell.dll (which is loaded as a part of explorer.exe and displays network adapters in the tray) re-assigns a new number each time connection is down or up. Instead, I use a combination of EXENAME + CLASSNAME as identifier. But for netshell (explorer:ConnectionsTray identifiers) there is additional EXTRA field which contains hwid if available, so it would be possible to order network adapters separately. This a special case implemented for netshell only. In other cases, it's impossible to do this. For example, if you have 2 hwinfo32 icons, you can't place any icon in between — SysTrayUtil will always reorder them so hwinfo32 icons will be placed next to each other. But the "number" I told above is still used to order them within the group!! This is why CPU 0 icon is always placed before CPU 1 — it's hwinfo32 has assigned properly ordered numbers for each tray icon. For other programs this may or may not work. However, it's a pretty rare case when a program have multiple tray icons, so I'm fine with this (for now, at least). I just have an old laptop (because I love old laptops), so I thought it will be a good idea to install XP on it. Apart from that, I didn't use Windows since 2016 or so.
  4. Ah, sorry, should be hwinfo32:* instead. Basically, get the initial identifier (it was hwinfo32:Afx400000b100116102bd in your case) and replace everything after colon with asterisk. I changed the algorithm which generates identifier. Now there should be a colon before TrusteerNotificationAreaMsgBox (like :TrusteerNotificationAreaMsgBox). Identifier follows this format: EXENAME:CLASSNAME, where EXENAME is a lower case name of executable file without extension (like hwinfo32, eudora, etc), and CLASSNAME is a simplified window class name. EXENAME may be empty like in case of Trusteer (so it will be just :CLASSNAME). CLASSNAME can be * which matches any class (EXENAME:*). (There are special cases for explorer:ConnectionsTray and explorer:SystemTrayMain, which have extra field in their identifiers, but that's another story.) This is what I find wrong with identifiers… EXENAMEs should always be in lower case (plexMediaServer should become plexmediaserver), and CLASSNAMEs are simplified (they surely shouldn't contain underscores, so _SearchTrayIconClass_ should become SearchTrayIconClass). Can you check they're the same in the log?
  5. Weird program, it uses random window class names, so identifiers I generate for icons differ across hwinfo restart… I looked at PSTrayFactory to see how it solves this problem. Well, for me it didn't work (for some reason hwinfo icon wasn't listed at all, other icons were fine). But I noticed there is an option which allows to ignore window class name. I think, it's a good solution, but for SysTrayUtil it will require manual registry intervention. So, instead of hwinfo:Afx400RanDomMeSs there should be hwinfo:* in Order value (the * sign makes it match any class name). I implemented it in a new (test) dll I attached below. (Actually, I refactored the code a lot, there might be new problems!) Yes, It helps to understand what happens with hwinfo… Actually, I'd asked to make a log again, there is something wrong with some identifiers, I want to make sure it was fixed. Also, what about Eudora? I don't see it in the log. Does it mean the problem with Eudora remains, or it just wasn't started? systrayutil.dll
  6. Whoa, I didn't know about PSTrayFactory. The reason I made SysTrayUtil is because I didn't find any methods to arrange the tray :/ Trusteer Rapport is fun. The way it requires to enter captcha before exit is fantastic, hehe. Anyway, it's indeed a strange program, because it places its tray window under PID 0. Maybe it's better to just ignore these cases… I'm attaching a modified dll with attempt to fix this problem (it's not a new version, just an attempt). Regarding Eudora, I'm not sure, it works for me (does version matter?). Running in debug mode (instead of run) may help to reveal the reason. systrayutil.dll
  7. KbdTray Display keyboard layout in the system tray. This utility may be used as standard language bar replacement, which has some bugs on XP (occasionally loses position, increases taskbar height). The language bar should be disabled in "Control Panel" → "Regional and Language Options" → "Languages" → "Details…" → "Language Bar…" → uncheck "Show the Language bar on the desktop" (disabling it via toolbar menu may cause language bar to show again after logout). Download: kbdtray-1.0.7z SysTrayUtil Preserve system tray icon order. Note, that this program doesn't allow to move icons, it only preserves the order! Here are recommended programs to move them: Taskbar Shuffle — Drag taskbar items and tray icons. Shell Tray Info — Display system tray information, move icons using buttons within program's window. Download: systrayutil-1.1.7z WPA Supplicant Manage wireless network connections. WPA/WPA2 supplicant. This program is useful on XP SP1/SP2, which don't support WPA/WPA2. It has supplicant service and GUI utility to manage connections. There are some alternatives, like (probably the most shilled here) Boingo Wireless, but they all are proprietary and have ugly GUI. I was surprised to find that WPA Supplicant was maintained for Windows decades ago, but faced some problems when tried to use it. So, it's not my project, I just added some bug fixes and cosmetic patches. All these patches are included into the archive. Download: wpa-supplicant- -------------------------------------------------- I made/modified these programs just for fun. I doubt I'll seriously maintain them, but I thought they might be useful for someone here (it seems to be a pretty large XP users community). There is README.txt file in all archives with further instructions to install programs or build them from the source code (included into the archives). All links are archived on web.archive.org (just in case somebody will want to use these programs in 2030, who knows). I didn't try to use these programs on Windows 2000, but they probably will work.

  • Create New...