Ortam Değişkenleri
Her işlemin, bir dizi ortam değişkeni ve değerlerini içeren bir ortam bloğu vardır. İki tür ortam değişkeni vardır: kullanıcı ortam değişkenleri (her kullanıcı için ayarlanır) ve sistem ortamı değişkenleri (herkes için ayarlanır).
Varsayılan olarak, bir alt işlem üst işleminin ortam değişkenlerini devralır. Komut işlemcisi tarafından başlatılan programlar, komut işlemcisinin ortam değişkenlerini devralır. Alt işlem için farklı bir ortam belirtmek için yeni bir ortam bloğu oluşturun ve CreateProcess işlevine parametre olarak bir işaretçi geçirin.
Komut işlemcisi, ortam bloğunu görüntülemek veya yeni ortam değişkenleri oluşturmak için kümesi komutu sağlar. Ortam değişkenlerini, Denetim MasasıSistem seçip gelişmiş sistem ayarlarıseçip Ortam Değişkenleri'ne tıklayarak da görüntüleyebilir veya değiştirebilirsiniz.
Her ortam bloğu ortam değişkenlerini aşağıdaki biçimde içerir:
-
Var1=Value1\0
Var2=Value2\0
Var3=Value3\0
...
VarN=ValueN\0\0
Ortam değişkeninin adı eşittir işareti (=) içeremez.
GetEnvironmentStrings işlevi, çağırma işleminin ortam bloğuna bir işaretçi döndürür. Bu, salt okunur bir blok olarak ele alınmalıdır; doğrudan değiştirmeyin. Bunun yerine, ortam değişkenini değiştirmek için SetEnvironmentVariableişlevinikullanın. getEnvironmentStrings alınan ortam bloğuyla işiniz bittiğinde, FreeEnvironmentStrings işlevini çağırarak bloğu serbest bırakabilirsiniz.
SetEnvironmentVariableçağrısının sistem ortamı değişkenleri üzerinde hiçbir etkisi yoktur. Sistem ortamı değişkenlerini program aracılığıyla eklemek veya değiştirmek için, bunları HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment kayıt defteri anahtarına ekleyin, ardından lParam "Environment" dizesine ayarlanmış bir WM_SETTINGCHANGE iletisi yayınlayın. Bu, kabuk gibi uygulamaların güncelleştirmelerinizi almasını sağlar.
Kullanıcı tanımlı ortam değişkeninin boyutu üst sınırı 32.767 karakterdir. Ortam bloğunun boyutuyla ilgili teknik bir sınırlama yoktur. Ancak, bloğa erişmek için kullanılan mekanizmaya bağlı olarak pratik sınırlar vardır. Örneğin, bir toplu iş dosyası en uzun komut satırı uzunluğundan daha uzun bir değişken ayarlayamaz.
Windows Server 2003 ve Windows XP: İşlem için ortam bloğunun en büyük boyutu 32.767 karakterdir. Windows Vista ve Windows Server 2008'den başlayarak, ortam bloğunun boyutuyla ilgili teknik bir sınırlama yoktur.
GetEnvironmentVariable işlevi, belirtilen değişkenin çağrı işleminin ortamında tanımlanıp tanımlanmadığını ve tanımlanıyorsa değerinin ne olduğunu belirler.
Belirli bir kullanıcının ortam bloğunun kopyasını almak için createEnvironmentBlockişlevinikullanın.
Ortam değişkeni dizelerini genişletmek için ExpandEnvironmentStringsişlevinikullanın.
İlgili konular