Jump to content

Recommended Posts

Posted (edited)

Hello, I know I should rather ask this on some Microsoft forum, but maybe some people here will know. This is what you get when you type this command

d:\utils>echo %appdata%
C:\Documents and Settings\Administrator\Application Data

but this is what you get if you first do runas /u:anotheruser cmd and in this cmd line do the same

C:\WINDOWS\system32>echo %appdata%
%appdata%

The command "set" shows all the environment variables and %appdata% is not defined even if the folder exists for this user! This can cause serious troubles when installing applications via runas and I would like to know WTH does this mean, if this is the default in XP and if I can change some settings somewhere to fix this.

This problem does not occur on windows 7...

Thank you for ideas

Edited by LoWang
Posted (edited)

Cool, a question I can help with :mellow:

%appdata% isnt always set for xp, cant remember what the rules where....it is in vista and up tho.

Here's some code I use to get the directory (I needed it to find Chrome).....

Const $CSIDL_LOCAL_APPDATA = 28
Const $CSIDL_APPDATA = 26
 
Local $AppData = SHGetSpecialFolderPath($CSIDL_APPDATA)
 
MsgBox(0, "", $AppData)
 
Func SHGetSpecialFolderPath($csidl)
;hwndOwner
;Reserved.
 
;lpszPath
;[out] A pointer to a null-terminated string that receives the drive and path of the
;specified folder. This buffer must be at least MAX_PATH characters in size.
 
;csidl
;[in] A CSIDL that identifies the folder of interest. If a virtual folder is specified
;, this function will fail.
 
;fCreate
;[in] Indicates whether the folder should be created if it does not already exist. If
;this value is nonzero, the folder is created. If this value is zero, the folder is
;not created.
Local $hwndOwner = 0 , $lpszPath = "" , $fCreate = False , $MAX_PATH = 260
$lpszPath = DllStructCreate("char[" & $MAX_PATH & "]")
 
$BOOL = DllCall("shell32.dll","int","SHGetSpecialFolderPath","int",$hwndOwner,"ptr", DllStructGetPtr($lpszPath),"int",$csidl,"int",$fCreate)
if Not @error Then
Return SetError($BOOL[0],0,DllStructGetData($lpszPath,1))
Else
Return SetError(@error,0,3)
EndIf
EndFunc

Edit: Sorry I listed it with localappdata and you wanted appdata, updated with both.

You can get a list of the special directory ids here....

http://code.snapstream.com/api/bm11/SnapStream.Util.CSIDL.html

Edited by PAEz
Posted

Try it with @AppDataDir instead of trying to use the environment variable.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

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...