awkduck Posted January 7 Posted January 7 (edited) 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 January 7 by awkduck
loblo Posted January 7 Posted January 7 I've set userprofile and others as environment variables pointing to my application data folder long ago. What applications have you got problem with?
awkduck Posted January 7 Author Posted January 7 (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 January 7 by awkduck
loblo Posted January 7 Posted January 7 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.
awkduck Posted January 7 Author Posted January 7 (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 January 7 by awkduck
awkduck Posted January 7 Author Posted January 7 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.
UCyborg Posted January 8 Posted January 8 (edited) 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 January 8 by UCyborg
awkduck Posted January 8 Author Posted January 8 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.
UCyborg Posted January 8 Posted January 8 (edited) 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 January 8 by UCyborg
awkduck Posted January 9 Author Posted January 9 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.
awkduck Posted January 11 Author Posted January 11 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.
jumper Posted January 11 Posted January 11 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.)
awkduck Posted January 12 Author Posted January 12 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.
defuser Posted January 12 Posted January 12 (edited) 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:: 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: 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 January 12 by defuser
defuser Posted January 12 Posted January 12 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now