Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
I can't think of a reason why it would do this right now, I'm not modifying the working directory of child processes launched by a wallpaper process, but I do hook CreateProcess recursively to inject a DLL (well, just once, it was necessary for UE4 specifically). The working directory is just passed through though.
And in this folder there is an AppData Folder with stuff in it from the Applications i launched over the Desktop Mod. Those Data would never go there if i launch it normally via Explorer.
I still dont know what exactly is causing this but i think this could bring me closer to the solution.
Do you have any Idea Biohazard?
Edit:
Another interesting thing: In those File Dialogs if i try to go to the Desktop via Quicklinks on the left site it gives me following error at all Applications I launch in this way:
"C:\Windows\system32\config\systemprofile\Desktop" is not available.
Inn the Task Manager the executable which i put into the WP Engine and the Applications i launch from it have my Normal Main Username as their Username.
Edit 2:
As i made a little bit of research this is the Users Path for Services. Is it right that those WPE Applications run as a Service?
Because the executable is running as System User or Service, you have to change the User to the one you want to launch the applications with (Change password with your local usernames password and username with your Username):
System.Security.SecureString ss = new System.Security.SecureString();
foreach(char c in "password"){
ss.AppendChar(c);
}
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = fileSrc;
psi.WorkingDirectory = Path.GetDirectoryName(fileSrc);
psi.UseShellExecute = false;
psi.UserName = "username";
psi.Password = ss;
Process.Start (psi);
(Yeah i know it might not be the best solution to type in my password blank into the script but its only for my private use and i dont have the time and interest in making this more safe ;) )
It's not intended to be different from the normal user, but I guess it could happen if you use high-priority auto start. It uses a service but launches the program with CreateProcessAsUser using WTSQueryUserToken(WTSGetActiveConsoleSessionId()) as the current user. The service (wallpaperservice32_c.exe) will show a different user though.
Following is shown me:
- walppaper32.exe -> Florian (my local username)
- walpaperservice.exe32_c.exe -> SYSTEM
- Desk.exe (My own Application) -> Florian
I looked this up earlier and thought that everything fits well when my Desk.exe is running wth my Username but that seemed to be an conflict with those User Directory i had in the Desk.exe, so i tried out to change the Username to my Local one and it worked.
Will you provide a fix for this at some time, so i can have both, startup without User change and High Prio?
Anyways thx for dialog, really apreciating that there are still some devs out there who care about project and community, keep that work going ;)
Also I wonder where it actually goes wrong, since it shows the correct user in task manager. Maybe it is just launched too early in the end?
Could you enable high-priority, close the program over the tray icon and then restart the service (Wallpaper Engine Service) in task manager? That should restart the program through the service. Does this still have the issue? If you could check this, it should show whether it's launching too early after logon or if CreateProcessAsUser just doesn't work as expected.
The only thing I could think of is explicitly specifying a window station for the process with startupInfo.lpDesktop = L"WinSta0\\default"; so I added that.
wallpaper32 and Desk have Session ID 1
Firefox and Steam launched via Explorer also have Session ID 1 for example