Jump to content

KernelEx with ProgramData folder and User Profiles?


awkduck

Recommended Posts

Some applications use user profile folders to store settings. Windows 9x has limited support for this; and that support is often completely ignored, by newer applications.

It is usually not the end of the world, if applications can't access these folders. A common outcome is that you may not be able to save application specific settings.

The application might make a folder (intended for your profile folder) on your root directory; but it most likely won't be able to use it. They seem to just land there, when an NT style profile is not found.

There are times when this is a more significant issue. A hand full of applications save their license key, in the user folder. Without access to that information, the application may be unusable or trial ware.

I've been able to patch some applications, to treat the application's folder as the user profile folder. But some require patching beyond my current skill. I've also tried creating profile environment variables, and executing the application under them. But that hasn't ever worked for me.

Has anyone worked this out?

 

 

Edited by awkduck
Link to comment
Share on other sites


I've set userprofile and others as environment variables pointing to my application data folder long ago.

What applications have you got problem with?

Link to comment
Share on other sites

Posted (edited)

Dxirc (as an example) had an issue, but could be easily patched.

Mackie Tracktion 3, as a better example, is not so easily patched; and it has not responded to environmental variables. It is also the last version to work well, with a single core. It is a great example of Shareware, without the user profile folder to save the key. And of course, it cannot save any settings either.

Quote

I've set userprofile and others as environment variables pointing to my application data folder long ago.

Did you have to set registry key values, as well?

Edited by awkduck
Link to comment
Share on other sites

Environment variables are stored in the registry in Windows ME, so yes, but apart from that , nope. It should make no difference for a program however where Windows stores these variables.

I see on the Web people reporting problems with trying to register old versions of Tracktion.

Link to comment
Share on other sites

Posted (edited)

Well, I was wrong. The issue is with the ProgramData folder, not a user profile folder. I edited the thread title, as best I could.

1 hour ago, loblo said:

I see on the Web people reporting problems with trying to register old versions of Tracktion.

If your machine code is the same (same machine), between different Windows installs, your old key will work. Ever since the Mackie service went down, I haven't been able to generate new keys (for a different machine). There is a way, but that should not be discussed here.

When a key is invalid (from different machine), a "Invalid Key" notice will pop up. When a key is valid, a notice will inform you that the application in unlocked. In this case, no access to Tracktion settings file, nothing happens. The key is examined, but cannot be stored in the settings file; typically found in "C:\ProgramData\Tracktion 3". So you do not get the "Invalid Key" notice; but instead get no notice at all.

Edited by awkduck
Link to comment
Share on other sites

  • awkduck changed the title to KernelEx with ProgramData folder and User Profiles?

Well, I was wrong again. It is accessing the folder, it drops at the root directory. The issue is specific to Tracktion 3's activation code and being used on Win98.

Note: Earlier I deleted two images, attached to my original post, in this thread. I did not attach those images; so have no idea how they got there. They were images of a LCD monitor, with Win98 running on it.

Link to comment
Share on other sites

C:\ProgramData is Vista+ path, Win98 equivalent would be C:\WINDOWS\All Users\Application Data, but there's no supported programmatic way to get it as the relevant CSIDL isn't recognized by relevant functions of Win98's SHELL32.DLL. Nir Sofer's SpecialFoldersView will show folders that are officially obtainable.

Some applications seem to query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Shell Folders\Common AppData from registry to get it instead, but that's not officially correct way and I remember seeing warning directly in one of those keys on some Windows version in the past saying to use shell functions instead.

Edited by UCyborg
Link to comment
Share on other sites

The only thing that has remotely worked, is setting the key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\User Shell Folders\Common AppData". But that only fools the installer.

The application will access the orphaned ProgramData\Tracktion 3 folder (in this case F:\Tracktion 3), but only for certain things. It never finds what has been installed to "C:\Windows\All Users\Application Data"; or where ever I have redirected it to, with the registry entry above.

Sounds like my best attempt would be to patch the appliction to use a different CSIDL, if that is even possible.

Link to comment
Share on other sites

Is there an option to try the program on Windows ME? It should support that folder normally, just to be sure support for that CIDL is really the one making the program bug out.

If it creates ProgramData on C: disk, it seems to be trying something on its own, but the question is, does it only behave that way in the absence of shell support for CIDL or maybe the issue is more complicated. Judging from the thread title, I assume it wasn't meant to be run on any Windows 9x.

Edited by UCyborg
Link to comment
Share on other sites

With no alterations, WinME installation places the "settings" file in "C:\Windows\All Users\Application Data\Tracktion 3". There was no orphaned folder in root "C:\". It found no need to seek out a ProgramData folder.

I was unable to test functionality further, as I couldn't get Tracktion to run. I imagine that the install, of WinMe, needs updated files. It only had KernelEx installed, with basically original system files. I'm using Win98FE, updated as far as it can be, and Tracktion 3 runs great (activation aside); so an updated ME should run it.

Yes, Tracktion was not meant to run on any Win9x.

Link to comment
Share on other sites

So with Tracktion 3, the issue goes beyond shell32. Oh, well.

But, the orphaned "Application Data/Program Data" was fixed. For Win98SE, a person can just use the shell update, from 98SE2ME. I'm on Win98FE, so I only did this temporarily. The most updated Win98FE shlwapi.dll isn't new enough for ME's shell32.dll. But I can used ME's shlwapi.dll, just long enough to test things (it would eventually cause errors). I admit, I don't know 100% what you can get away with here. On Win98SE, you may have to update beyond just ME's shell, for stable operation.

Sadly, Tracktion 3 did not accept or reject it's key file. I manually edited the settings file, with the key file data. The application recognized the registration name/email, but it cannot process the key string. I may end up looking at things in Olly or something. I have Tracktion 2 to cross examine with; it has a similar "key string/key file" activation and works fine. That's a different topic, for a different forum.

Link to comment
Share on other sites

I'm also on Win98fe. IE is 4.0. Shlwapi.dll is part of IE. Win98se has IE 5.0, ME has 5.5. Best way to update Shlwapi is to update IE to 5.5. (IE 6.0 sometimes causes Explorer hangs.)

 

Link to comment
Share on other sites

Yes, I've extracted it from both explorer versions (5.5 and 6.0). Shell32.dll, from ME, isn't happy with either. You get the nice white box message and grey ok button, about needing to reinstall Windows.

There are two Shlwapi.dll files included with both IE versions. I've never gotten the one intended for Win98SE (and ME) to work for me (without errors). The other one, I think, is meant for Win95 and Win98FE. It's the one dependency walker says I support. Likewise, I can't use the one that comes stock from Win98SE (without errors).

So when I say Shell32.dll (from ME) isn't happy with either, I means that it isn't happy unless it is a Shlwapi.dll version that isn't fully compatible with my system.

Link to comment
Share on other sites

If you like Internet Explorer 4.0 and don't want to update it (or don't want to radically update 98FE
while maintaining the most original state), but you need an application compatibility level close to
Windows 98 SE + KeX (With up-to-date experimental updates), providing support for, for example, VLC 2\3, Mypal29\FF52 and
so on, you can install in a clean Windows 98 FE, at least Windows Installer (InstMsiA.exe), as well as
DirectX 7 (Optional). You will only need to update the following system files::

UpdFE.PNG.aaaad5eff8cbfbe37e21dd8bc0fb89d8.PNG

At the same time, the functionality of IE4 is fully preserved. You can also install IE5\5.5 while
maintaining IE4 (The system will have TWO browsers at the same time). This is a standard feature
provided by Microsoft, eliminated starting with IE6 and higher. To do this, select the appropriate item
in the IE 5.X installer:

IE4IE5.png.d5cf650da77c2bdaf1b0fe91687d1f69.png

However, the first option seemed more life-saving to me. I use it myself. This is basic. The rest should
be viewed locally (each specific program may have its own additional wishlist).

Edited by defuser
Link to comment
Share on other sites

And yes, some later programs also use this path to place their data folders:
C:\WINDOWS\Local Settings\Application Data\

Check just in case your program expects to see the necessary data in the folder located there.

Link to comment
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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...