投稿日 | : 2007/05/30(Wed) 13:07 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re^3: SetEnvironmentVariable |
> 提示いただいたページでは0以外正常とありますが、
> http://onegland.hp.infoseek.co.jp/wincgi/help/winerror.txt
> このページでは1は「不正な関数」とあるので混乱しております。
そのページで紹介されている値を使うのであれば、このような形になるでしょうね。
Const FAILURE As Long = 0
retCode = SetEnvironmentVariable(……)
If retCode = FAILURE Then
Select Case Err.LastDLLError
Case 1
MsgBox "不正な関数です。"
Case 2
MsgBox "指定されたファイルが見つかりません。"
:
End Select
End If
ちなみに、これらのエラーメッセージは FormatMessage API にて取得できます。
> SETコマンドの実行でも継続的な環境変数の新規登録、変更はできないようですが、
> これを行う方法はありますでしょうか。よろしくお願いいたします。
一般的には、マイコンピュータ→プロパティ→詳細設定タブ→環境変数ボタンですね。
ユーザ環境変数でもよいのであれば、
Dim userName As String
'userName = Environ("UserName")
userName = "Administrator"
With GetObject("winmgmts:\\.\root\cimv2").Get("Win32_Environment").SpawnInstance_
.Name = "Test"
.VariableValue = "abcd"
.userName = userName
.Put_
End With
という方法があります。
なお、環境変数を変更しても、それが即座に反映されないソフトウェアも少なくありませんので、
アプリケーション間で共有する場合、環境変数設定後は再起動を行っておくのが無難です。
これは、設定値をアプリ起動時にしか取得せず、実行中の動的書き換えに対応できていない
アプリケーションが少なからず存在するためです。