در جدول زير مقادير مربوط به Environment Variables را براي مواردي كه معمولا" لازم هست قرار داده ام
توجه داشته باشيد كه در اين جدول نام كاربر سيستم xxx فرض شده است :
کد:
$COMMONFILES C:\Program Files\Common Files
=============================================================================
$PROGRAMFILES C:\Program Files
=============================================================================
$SYSDIR C:\Windows\system32
=============================================================================
$ADMINTOOLS current ADMINTOOLS=C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools
all ADMINTOOLS=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools
=============================================================================
$APPDATA current APPDATA=C:\Users\xxx\AppData\Roaming
all APPDATA=C:\ProgramData
=============================================================================
$DESKTOP current DESKTOP= C:\Users\xxx\Desktop
all DESKTOP= C:\Users\Public\Desktop
=============================================================================
$DOCUMENTS current DOCUMENTS= C:\Users\xxx\Documents
all DOCUMENTS= C:\Users\Public\Documents
=============================================================================
$FAVORITES current FAVORITES= C:\Users\xxx\Favorites
all FAVORITES= C:\Users\xxx\Favorites
=============================================================================
$LOCALAPPDATA current LOCALAPPDATA= C:\Users\xxx\AppData\Local
=============================================================================
$PROFILE C:\Users\xxx
=============================================================================
$QUICKLAUNCH C:\Users\xxx\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
=============================================================================
$SENDTO C:\Users\xxx\AppData\Roaming\Microsoft\Windows\SendTo
=============================================================================
$SMPROGRAMS current SMPROGRAMS= C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
all SMPROGRAMS= C:\ProgramData\Microsoft\Windows\Start Menu\Programs
=============================================================================
$SMSTARTUP current SMSTARTUP=C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
all SMSTARTUP=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
=============================================================================
$STARTMENU current STARTMENU= C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu
all STARTMENU= C:\ProgramData\Microsoft\Windows\Start Menu
=============================================================================
$TEMP C:\Users\xxx\AppData\Local\Temp
=============================================================================
$WINDIR C:\Windows
=============================================================================
همانطور كه مشاهده مي كنيد،در جدول بالا بعضي مقادير را در يك سطر و بعضي را در دو سطر مشخص
كرده ام.
اين به خاطز آن است كه بعضي مقادير همواره يكسان هستند كه اين ها در يك سطر مشخص گرديده اند.
ولي بعض از مقادير داراي دو حالت هستند يك مقدار براي كاربر عادي سيستم بوده و مقدار دوم مخصوص
كار بر اصطلاحا" All Users مي باشد كه اين گروه را در دوسطر مشخص نموده ام.
نكته خيلي مهمي كه در اين مورد بايد در نظز داشته باشيد اين است كه NSIS موارد را براي كاربر فعلي
سيستم بيان كرده است . براي مثال اگر عبارت APPDATA $ را استفاده نمائيد اين عبارت مخصوص كاربر
عادي سيستم بوده و معادل آدرس C:\Users\xxx\AppData\Roaming مي باشد.
ولي اگر بخواهيم كه اين عبارت براي كاربر All Users بكار رود در اين صورت برنامه آدرس را C:\ProgramData
خواهد شناخت.
براي اينكه سيستم به آدرس All Users عمل كند بايد قبل از دستور مربوطه دستور SetShellVarContext all
زا بنويسيم.
براي مثال دستور زير در آدرس C:\Users\xxx\AppData\Roaming كار خواهد كرد:
کد:
SetOutPath "$APPDATA"
ولي دستور زير دز آدرس C:\ProgramData كار خواهد كرد:
کد:
SetShellVarContext all
SetOutPath "$APPDATA"
موفق باشید
علاقه مندی ها (بوک مارک ها)