VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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
という方法があります。


なお、環境変数を変更しても、それが即座に反映されないソフトウェアも少なくありませんので、
アプリケーション間で共有する場合、環境変数設定後は再起動を行っておくのが無難です。
これは、設定値をアプリ起動時にしか取得せず、実行中の動的書き換えに対応できていない
アプリケーションが少なからず存在するためです。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -