• 締切済み

VB6.0でシステム環境変数PATHへ、%XXX%設定後、ログオフ以外で反映する方法について

1.OS Windows2000 Professional SP4 2.プログラム VB6.0 3.質問内容   システム環境変数を登録後、ログアウトなしで、反映できない。   MS文書番号104011で、SendMessageTimeoutで、変更を通知しても   %XXXX%で、PATHに追加登録した内容が展開されない。   なお、regedt32.exeで、%XXXX%は、REG_EXPAND_SZで登録を確認 4.事象 1)登録内容   プログラムにて、システム環境変数に以下登録    A=C:\tmp    <= 新規     AA=%A%\work  <= 新規     PATH=現状項目;%A%\tmpi   <= 既存へ追加 2)プログラム実施結果    コマンドプロンプトで、確認を行うと、    AA=C:\tmp\work に、展開されているが、    PATH=現状項目;%A%\tmpi     と、展開されていない。また、この状態で、C:\tmp\tmpi に、    バッチを作成しC:\から、起動しても、PATHが通っていないため、    「プログラムが見つからない」というエラーがでます。    また、SendMessageTimeoutで、通知しても、コマンドプロンプトから    PATHを確認しても、PATH=現状項目;%A%\tmpi  となり、展開    されていない。   3)リブートすると、展開されるようです。     ※regedt32で、確認すると、PATHには、現状項目;%A%\tmpi で       登録されています。 5.疑問  リブートせずに、通知させる方法はないでしょうか?  特に、新規に登録したシステム環境変数はOKで、追加で登録したPATHに  反映できないのは、なぜでしょうか? 以上 アドバイスのほど、よろしくお願いします。

みんなの回答

  • zzzz0000
  • ベストアンサー率68% (127/186)
回答No.1

AAを展開するときには環境変数Aは定義されていたようですが、 PATHを展開するときに環境変数Aが定義されている保障はあるのですか? ログオン時にはA、AA、PATHの順に設定されたようですが、それは保障されていることなのですか?

関連するQ&A

  • システム環境変数Pathについて

    borland C をインストールしたあと、システム環境変数PathにC:¥bcc55¥Bin;を追加するところを誤って、すでにあるパスを消してしまいました。 どうすればいいでしょうか?

  • 環境変数 PATH を消してしまいました...

    javaのPATHを通そうと設定をしたのですがコマンドプロンプトで認識されていないことが 分かり、設定を色々替えていたところ、PATHと言う項目自体消えてしまいました。 ●●のユーザー環境変数(上部のウインド)には項目がなかったのですが、新規で追加を してみたのですが、上手く動かずそちらも削除してしまいました。 システム環境の変数(下部のウインド)に元々色々な文字が入っていた物を消してしまい シャットダウンをする時や立ち上げる時、プログラムを削除する時に『●●が見つからなかった ため....』と小窓が開いてしまいます。 それを調べたところ、PATHを消してしまったことが問題のようだと分かったのですが解決の 方法が分かりません。ほとんど分からないのに色々いじりすぎたことを反省しています。 どなたか教えてください。 宜しくお願いします。

  • 環境変数にアカウントに通っているパス以外のパスを反映させたいです

    情報自動収集用のシェルを組みましたが、 現在使用しているアカウントにパスが通っていない為、環境変数にパスを通そう(追加)と思っています。envを使用したことが無く、現在確認するためのUNIX環境が再編中のため検証ができずに困っております。私の調べましたところ export PATH = $PATH:/追加したい目的のパス もしくは PATH = $PATH:/追加したい目的のパス export PATH 上記コマンドをシェル実行前に実施すればいいのではないかと考えているのですが、 (1)上記コマンドを使用することで現在使用しているアカウントに検索するパスが追加されますでしょうか? (2)また上記コマンドを実施する際はルート権限が必要なのでしょうか? 自分のテスト環境が整っておらず恐縮ですが、御教授頂けないでしょうか、宜しく御願い致しますm(__)m

  •  JDKのPATHの設定(環境変数)について 

     JDKのPATHの設定(環境変数)について   JDKをインストールした時に「コンントロールパネル>システム>詳細設定> 環境変数から、JDKへのPATHを設定してやりますが、 ある本には、PATHを選択して編集して表示される内容の一番最後にJDKのPATHを 追加するように書いている本があります。  しかし、別の本では、TEMP>編集を選択して表示される内容の一番最後に JDKのPATHを追加するように書いている本があります。  また別の本には新しく「Java_HOME」という変数を作成してそこにPATHを追加 するとも書いています。  これはどのように使い分けるのでしょうか、またどのような意味があるので しょうか。  また、環境変数のダイヤログには「ユーザーの環境変数」と「システム環境変数」 という項目がありますが、これはどのような違いがあって、どのように使い分ける のでしょうか。

    • ベストアンサー
    • Java
  • PowerShellと環境変数pathについて、

    PowerShellと環境変数pathについて、 Windowsの環境変数pathには、アプリケーションをインストールしたら自動的に追加されたりします。 これらの中には%systemroot%のようにdos系の環境変数を使った物もあります。 PowerShell から$env:pathを参照した場合も dosから%path%を参照した場合も pathの内容自体は同じですが、 PowerShellから実行する場合は、%systemroot%のようなdos系の環境変数は機能せず、pathが通っていない状態になります。 そんなものなのでしょうか? PowerShellを同じように使うためには、 なんとなく気持ちが悪いですが、 %systemroot%をc:\windowsで登録しなおすか、もしくは二重登録する必要があるのでしょうか? 何かスマートな方法はありますでしょうか?

  • C#でシステム環境変数の「Path」に追記??

    C#でシステム環境変数の「Path」に“あるパス”を追加してあげたいのですが・・・ Microsoft.Win32.RegistryKey.SetValueでパスにセットしてしまうと以前から持っていた値がサクッと消えてしまいます・・・ どのようにしたら前の値を保持しつつ追記させることができるでしょうか?

  • javaのpath環境変数がうまくできません

    path環境変数がなかなか設定できません。 『システム変数の編集』で どうも設定を間違っているらしく、 C:\j2re1.4.2\binを追加するのに 前にあったはずの、C:\WINDOWS~~~ を削除してしまって、なんて入れれば環境変数が うまくできるかわからなくなってしまいました。 誰かお願いします。

    • ベストアンサー
    • Java
  • 環境変数PATHをスクリプトかバッチから設定する方法

    社内研修の準備のために、何台ものパソコン(Windows XPを想定)のセットアップを 行うことがありまして、 ・ZIPファイルの展開 ・展開後フォルダを特定の場所へ配置 ・環境変数JAVA_HOMEとPATHの変更 などをバッチやJavaScriptを利用して自動的に処理させようと しています。ZIPの展開と配置は解決できたのですが、 環境変数(pathなど)をスクリプトかバッチから設定できないでしょうか? JavaScript(またはVBスクリプト)で次のように記述すると、 一見うまくいったように見えるのですが、レジストリが書き換わるだけで、 再起動しないとpathが有効になりませんでした。(スクリプト実行後に開いた コマンドプロンプトで echo %path% をしても反映されていない。) <setenvion.js> var shell = WScript.CreateObject("WScript.shell"); shell.RegWrite("HKEY_CURRENT_USER\\Environment\\path", "C:\\Program Files\\Java\\jdk1.6.0_06\\bin", "REG_EXPAND_SZ"); googleで検索しても、バッチを実行するためにpathを設定しましょう、みたいな 情報しか見つからないので、質問させていただきました。 上記のスクリプトでも再起動すれば反映されるのでその点我慢すればよいのですが、 なにかよい方法をご存知の方、よろしくお願いします。

    • ベストアンサー
    • Java
  • JDKの環境変数の設定

    COmpiereというソフトをインストールしたいのですが、マニュアルに JDK5をインストール後、環境変数の設定をしなさいとあり、作業方法が わかりません。 マニュアルの内容は JDKのインストール終了後、システム環境変数JAVA_HOMEをインストール したディレクトリーに設定してください。 (例)JAVA_HOME=C:\Program Files\Java\jdk1.5.0.14 環境変数pathに「%JAVA_HOME%\bin;」を追加します。 私は以下のとおりにしましたがエラーになりました。 コントロールパネル>システム>環境変数>システム環境変数 に入り Pathの最後に以下の内容を追加しました。 ;%C:\Program Files\Java\jdk1.5.0.14%\bin よろしくご教授ください。

  • バッチでのレジストリPath環境変数方法

    バッチでのレジストリPath環境変数方法 お世話になっております。 レジストリのPath環境変数をバッチで変更しようとています。 バッチ処理の動きとしては、下記の処理をするバッチを 作りたいのですが、上手くいきません。 ≪処理≫ 1、reg queryで、指定されたPath設定を検索 2、if errorlevel ~ 構文で   if errorlevel 1 goto tran1   goto tran2     2-1、指定されたPath設定がなければ、3へ。   2-2、指定されたPath設定があれば、 4へ。     (指定されたPath環境変数は設定済み)    3、reg addで、Path環境変数を変更する 4、次の処理実施   (指定されたPath環境変数は設定済) 具体的な処理内容は、下記のような記述をしてます。 ≪バッチ内容(例)≫ @echo off reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path | findstr /i "C:\Program Files\navnt" if errorlevel 1 goto tran1 goto tran2 :tran1 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path /t REG_EXPAND_SZ /d "%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\navnt" /f :tran2 echo 次の処理へ しかし、実行すると、全てTran2へ行く処理になってしまい、Tran1への処理になりません。    ※reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path | findstr /i "C:\Program Files\navnt"  | findstr /i "C:\Program Files\navnt" 箇所の、findstr が上手く機能してないと思ってます。   オプションもいくつか追加して試しましたが、上手くいきませんでした。  (試)  findstr の /c:文字列 を追加  ⇒ 結果、NG ~ | findstr /i /c:"C:\Program Files\navnt" findstrの記述が原因と思いますが、 ●tran1の reg addへ飛ぶ処理の記述をご教授頂けますか? 宜しくお願い致します。