v3.99 - Getting back full XP SP0 and W2K compatibility

Started by Jeremy Collake, September 24, 2010, 09:21:31 PM

Previous topic - Next topic

Jeremy Collake

Ok, after spending so much time in Windows 7 and upgrading to Visual Studio 2010, I've broken compatibility with Windows 2000 and XP pre-SP2. I will be fixing this, and other minor XP compatibility issues with the new beta. Known issues are:

[[ REMOVED ]]
- Only remaining issue is Windows 2000 compatibility is still disabled pending some debugging. Please use v3.84 (the last final) if you are using Windows 2000.

These will be addressed soon, and I'll restore full W2K compatibility. I feel this is important.

Software Engineer. Bitsum LLC.

Jeremy Collake

The system tray tooltip has been fixed as of v3.99.30 in XP, but a minor system tray tooltip anomaly in Vista exists in v3.99.30 (truncated in some cases). I am fixing it in v3.99.31.
Software Engineer. Bitsum LLC.

boco

ProcessLasso 3.99 beta 33 still doesn't work in Windows 2000 SP4 fully updated. I'm getting a dialog window saying:

---------------------------
Process Lasso
---------------------------
Process Lasso is not compatible with this version of Windows.
---------------------------
OK   
---------------------------
Process Lasso Pro with Lifetime updates since 2009-05-14, Entire home since 2010-12-14.

TfH

Hello, boco.

I found this on changelog ( http://www.bitsum.com/changelog/pl/changes.htm )
QuoteWARNING: The beta is currently incompatible with Windows 2000 and XP pre-SP2. We plan to address this by final release.

boco

From the 3.99.33 beta changelog:
Quote# v3.99.33 beta
# Fix.All: (beta2beta) Restored Windows XP pre-SP2 compatibility to this beta series
Process Lasso Pro with Lifetime updates since 2009-05-14, Entire home since 2010-12-14.

Jeremy Collake

#5
Yes, sorry for the late reply. Windows 2000 had an 'issue' of some sort where the GUI would simply crash while trying to show the listview(s). I therefore disabled support in the beta until it is worked out. However, we are 98% there as far as W2K compatibility. I am SURE it is something minor. Note that XP pre-SP2 support is functioning fine, for the 3 people in the world XP SP0 or SP1 ;)

Remember: v3.84.x (last final) should be fully compatible with Windows 2000
Software Engineer. Bitsum LLC.

Jibz

Since you mention VS2010, I am guessing it could be caused by the CRT no longer supporting Win2K and WinXP pre-SP2, as noted <a href="http://msdn.microsoft.com/en-us/library/ws0swas0.aspx">here</a>.

While you can set the subsystem to 5.0 through the linker, it is my understanding that the CRT calls functions in kernel32.dll that were not present in earlier versions of Windows (EncodePointer/DecodePointer), so depending on what you are doing it may still not work.

Jeremy Collake

Quote from: Jibz on October 12, 2010, 01:24:51 PM
Since you mention VS2010, I am guessing it could be caused by the CRT no longer supporting Win2K and WinXP pre-SP2, as noted <a href="http://msdn.microsoft.com/en-us/library/ws0swas0.aspx">here</a>.

While you can set the subsystem to 5.0 through the linker, it is my understanding that the CRT calls functions in kernel32.dll that were not present in earlier versions of Windows (EncodePointer/DecodePointer), so depending on what you are doing it may still not work.

It WAS the cause, and I actually took an alternate approach to solving it. You can set it to use the older v9 CRT instead of v10 in the project configurations ('general / platform toolset'). This was the easiest approach (for me). You simply set 'v90' there, and likely need the older SDK installed. Anyway, that did the trick fine. Before that I also tried emulating the Encode/DecodePointer functions with dummy funcs, but I wanted something less kludgy. I figured if Microsoft 'dropped' XP pre-SP2 support in CRT v10, I better just stay with CRT v9. After all, CRT v10 doesn't offer many advantages.. and those ridiculous Encode/DecodePointer functions probably slow things down (very marginally I admit). Yes, I find their whole concept absurd.. I see the point, though its absurd still to me.

This was fixed a few betas ago, though Windows 2000 compatibility is still disabled for now due to a separate issue with the common controls (just something I need to debug). WXP pre-SP2 compatibility is back though, for the surprisingly many people who *never* went with SP2.

TO READERS -- Remember: v3.84.x (last final) should be fully compatible with Windows 2000 and I'll have support restored soon in this beta series. I may go ahead and do it right now, as I'm tired of hearing of it ;)
Software Engineer. Bitsum LLC.

Jeremy Collake

I have restored Windows 2000 compatibility to v3.99. Our new icon extraction code wasn't backwards compatible with Windows 2000. I spent a lot of time on that code, and now I wonder if it is even worth using to be honest. While I debate that, I have uploaded daily beta builds of v3.99.38 here that *should be* fully Windows 2000 compatible:

http://www.bitsum.com/files/daily/prolasso.zip
http://www.bitsum.com/files/daily/prolasso64.zip
Software Engineer. Bitsum LLC.

boco

No dice. But almost there! It starts now, but:

1. I get the "Activation" screen at every start.

2. It doesn't show any processes in the "All processes" area, at least for the current user. If I enable managing other users, it shows the processes for System only.

Process Lasso Pro with Lifetime updates since 2009-05-14, Entire home since 2010-12-14.

Jeremy Collake

Ok, so we're almost there then ;). I'll work on this, thanks.

The activation dialog is set to show at run each time now *if* the product is not activated. It never expires, never times out.. but you gotta click 'Skip' when you first start Process Lasso. It is this, or a timed nag screen. I have to give users *some* incentive to upgrade, and a reminder -- every time I've scaled back these efforts, orders plummet. Given that I'm barely in business, I'd say its best to have free users click 'Skip' so I can continue to stay in business ;).

Now if that activation dialog is shown even though you are activated, then that is another problem.
Software Engineer. Bitsum LLC.

boco

Personally, I find this new dialog much more annoying than the old one.

I'm already fully licensed on my main PC (3 license pack wasn't available then I think). And I've always used the license only on that one OS, even before it was enforced. However, I have more PCs than one, and I can't afford buying licenses for all of them.

Maybe you could give users who actually bought a license from you the possibility to register a certain amount of PL Free instances. That would mean, an activation key which DOESN'T provide the Pro features, just silences the nags. It could be in effect as long as the main license runs. People who never bought a license have to click away the message. Note this is just a proposal.
Process Lasso Pro with Lifetime updates since 2009-05-14, Entire home since 2010-12-14.

Jeremy Collake

FYI, not applicable here really, but I found that the activation dialog on that daily build was mal-functional anyway (some new checks I added to make sure the key was in the right format).

You find that more annoying than a countdown requiring you to wait up to 10 seconds before continuing? It may be that you never reached the point on the free instances where the nag really got annoying, as it only invoked after a certain amount of time. I do find that surprising, but believable, so maybe I'll reduce the frequency of the activation dialog to 1 out of every 2 or 3 starts?

It is a 5 license pack, and I do offer the option to upgrade to it... For what it is worth. I need to check to see if that's available and listed when you login. Under some accounts it is, others not.. depending on the type of license you originally purchased.

UPDATE: Boco, check your Private Messages here in the forum. I proposed a solution for you.
Software Engineer. Bitsum LLC.

Jeremy Collake

#13
Quote
2. It doesn't show any processes in the "All processes" area, at least for the current user. If I enable managing other users, it shows the processes for System only.

This was not in line with my test results. Any possibility they really weren't any active processes (defined by processes consuming >0% of CPU for over a second). It takes A LOT to get W2K to blink. I had to move the mouse around quite rapidly to get the PL GUI to even hit 1%, and that was in a virtual machine. If that's not it (and probably wasn't), were you running as an Administrative User, or Limited User (rare for home installs)? Thanks for your help. I will get this figured out before release, guaranteed.
Software Engineer. Bitsum LLC.

boco

I just retested, and even started a few processes (Notepad, Calc etc.), but nothing is showing up in the "All Processes" tab. If I switch to "Active Processes", about 15-20 processes show immediately, including rules, CPU, memory et al. Fully functional, only the user column is empty. So it is ONLY the "All Processes" tab which doesn't show anything...

Could it be a dependency problem (DLL hell)?
Process Lasso Pro with Lifetime updates since 2009-05-14, Entire home since 2010-12-14.

Jeremy Collake

#15
Quote from: boco on October 18, 2010, 07:34:25 PM
I just retested, and even started a few processes (Notepad, Calc etc.), but nothing is showing up in the "All Processes" tab. If I switch to "Active Processes", about 15-20 processes show immediately, including rules, CPU, memory et al. Fully functional. So it is ONLY the "All Processes" tab which doesn't show anything...

I am going to make an embarrassing admission. I read your initial report completely backwards ;o. I guess I skimmed and somehow thought you meant nothing was showing the Active Processes tab. My mistake.

Quote
Could it be a dependency problem (DLL hell)?

Yes, it could be, but it is strange that the Active Processes listview control works but not the All Processes listview. So, I'm not ready to conclude that just yet. Let me review the code and see if there is any differences in their handling. The common controls DLL is what facilitates these, well, common controls (lol). With W2K SP4 I think it is at 4.71, maybe earlier. I'll check later. I did code everything to use the newer version's features when available, but work fine if they aren't available.

Thanks much for reporting this.

I am testing on a Windows 2000 SP4 virtual machine, but will go back to W2K SP0 even. In Windows 2000, some applications over-write the comctl32.dll in the winnt\system32 directory. This is what WFP (Windows File Protection) was created to fix -- Before WFP were the days of 'DLL hell'. Every time you installed an application, it went to update system DLLs. The only problem was that maybe some other program depended on the already installed version. The official recommendation by Microsoft was to install these DLLs to the program's specific folder (it looks there first when loading them). Sadly, very few software companies care if other people's stuff works on the PC. They just care if their stuff works. So, they either ignored the advice, or didn't realize they were causing harm (to this day).

Now, with Windows File Protection, the problem is largely solved. Windows lets these installers think they replaced the existing system DLL, but doesn't really allow it.

My point is that perhaps I could, perhaps, provide a 'safe' older comctl32.dll version for those who have systems (or applications) that depend on and/or overwrote the system one. I would hate to add to the installer size, but could download it at install time -- though that sometimes causes people troubles itself. Hmm... You may want to check your comctl32.dll version by finding it in :\Winnt\System32 and right-clicking for properties (you know this, I say for any other readers). Even if it isn't the problem here (and I have no reason to think it is yet), it may be a problem for someone else....
Software Engineer. Bitsum LLC.

boco

COMCTL32.DLL
File version: 5.81.4968.2500
Product version: 5.50.4968.2500
Language: English (United States)

Like I said, in "Active Processes" everything shows up as it should, but the User column is completely empty. Maybe that's a pointer to what's happening? Failure to correctly get the username (it shows in the log, however).

Process Lasso Pro with Lifetime updates since 2009-05-14, Entire home since 2010-12-14.

Jeremy Collake

Software Engineer. Bitsum LLC.

Jeremy Collake

Fixed username bug in user column of Active Processes in v3.99.39 beta (not pushed through update checker yet).
Software Engineer. Bitsum LLC.

Jeremy Collake

#19
During testing I have discovered some problems under Windows 2000, and am fixing them. Specifically, one big problem -- no processes are managed due to failure to retrieve username due to Terminal Services not being started. I apologize. Even as of v4 RC1, v3.84.8 remains the build to use for Windows 2000. It simply can't be beat.

I am fixing this problem now. Of course, when the listview is blank (or missing processes), simply restarting Process Lasso fixes the problem. The issue is a startup timing one. A service Process Lasso depends on may or may not be started by the time you log in, causing failure to resolve the user name.
Software Engineer. Bitsum LLC.

boco

Finally got around to testing the new version 4 (Final) under Windows 2000. It now works reasonably well, though the user column is kinda useless now (as every process now displays as System). But that's a small price to pay and Windows 2000 is a dying platform. Just wanted to let you know.

Process Lasso Pro with Lifetime updates since 2009-05-14, Entire home since 2010-12-14.

Jeremy Collake

#21
Quote from: boco on November 19, 2010, 10:02:36 AM
Finally got around to testing the new version 4 (Final) under Windows 2000. It now works reasonably well, though the user column is kinda useless now (as every process now displays as System). But that's a small price to pay and Windows 2000 is a dying platform. Just wanted to let you know.

Did it show the usernames to you in v3.84? If so, I can fix it. It isn't something I noticed with W2K, though doesn't surprise me at all since Terminal Services (a service that facilitates multiple user sessions) was in its infancy at that time. Even the W2K Windows Task Manager doesn't identify user names. I could 'fake it' if you wanted ;)

BTW and OT, for my development virtual machine I have went back to XP myself. For a VM, nothing performs better. I tried Win7, but it just isn't as snappy in the confines of a VM.
Software Engineer. Bitsum LLC.

boco

QuoteDid it show the usernames to you in v3.84?
If I remember correctly, yes (can deliver proof next time I'll use this VM). And my screenshot shows that in the log it shows the correct username at the start.

QuoteI could 'fake it' if you wanted ;)
Only if it's an easy fix. I don't want to keep you from doing the important stuff.
Process Lasso Pro with Lifetime updates since 2009-05-14, Entire home since 2010-12-14.

Jeremy Collake

This is kind of a touchy area of code. I have to support Windows 2000, XP SP0, XP SP2+, Vista, 7, etc.. I am hesitant to make any change so long as it is basically working. The username support requires Terminal Services be running in XP (many other functions of Windows require that, and so do many applications). In Vista+ Terminal Services is essentially 'always on' it is so important, so it is not an issue. For that reason, I believe it best to leave the code as is.

If your W2K system has multiple users and this affects you, I do apologize. If I think of an easy, *safe*, way to deal with no specific usernames in W2K, I will. For now, I just don't want to take any chances trying to improve that particular part of code for W2K users ;o. It is not worth the risk. I could do it, but would spend a lot of time 'standing still' when I'd rather be moving forward. Retaining support at all was hard enough ;o.

I wish I had a better answer at this time, but that is the truth of the matter ;(
Software Engineer. Bitsum LLC.

boco

#24
QuoteBTW and OT, for my development virtual machine I have went back to XP myself. For a VM, nothing performs better. I tried Win7, but it just isn't as snappy in the confines of a VM. I guess that's because of the DWM (Desktop Window Manager) in Vista+, it still drains a lot of resources for the Basic theme though Aero is unavailable (except VMWare). If you stop and disable that service it should switch back to Classic theme and behave better. The service with support for Luna theme is called ''Themes'' in XP. I personally use VirtualBox.

Yea, I'm well aware of DWM and previously used Win7 /w classic theme as my development VM. I made this change up, and haven't regretted it. I swear even with everything 'trimmed down' on Win7, XP still consumes less and performs faster in my experience. All those extra buffer security checks and 'safely' compiled native code maybe. They do have their cumulative effects. Of course, many of those are present in XP SP2+, so I dunno.

Overall, I love Windows 7 and would not choose it over WinXP as a host OS. As a development machine though XP does one additional thing besides being small and fast; It keeps me reminded of all those XP users out there ;)

A lot of people love VirtualBox. I've always used VMWare Workstation, though regret paying for a license now that the VMWare Player can create VMs and it is free. That said, I do like the clone support and such. Benchmarks show VirtualBox and VMWare are close enough to where it is user preference. I've tried VirtualBox, just can't leave VMWare though ;o. Especially now that they finally have priced their software in line with the rest of the market (VirtualBox and VirtualPC to be specific).

Well, this is way OT, but can split the thread if you feel compelled to respod ;).
Process Lasso Pro with Lifetime updates since 2009-05-14, Entire home since 2010-12-14.

boco

Something happened to my last post, lol. I never wrote that (or I'm suffering from schizophrenia). :P

To finally close this case, no, no older version showed the usernames right. Ever. I tested down to 3.40.1.

You can leave it as it is, just a display quirk. It works, that's important.


OT: Regarding the ''Upgrade to entire home'' statement in the support area, does that mean after upgrade I'm allowed to install PL to every computer in my home that fulfills system requirements?
Process Lasso Pro with Lifetime updates since 2009-05-14, Entire home since 2010-12-14.