function SetEnvVar(EnvName, VarStr: string): Boolean;
begin
Result := SetEnvironmentVariable(PChar(EnvName), PChar(VarStr));
end;
どなたか、ご教授頂けないでしょうか? 宜しくお願いします。
田中 芳起
> 次のような関数を用意し、環境変数に値をセットしようとしていますが上手くい
> きません。
D7 で次のように確認しましたが、問題なくセットされます。どのような環境
で、具体的に何がどのように上手くいかないのでしょうか?
なお、SetEnvironmentVariable は自プロセスの環境領域にセットするだけで、
ユーザー環境変数やシステム環境変数にはセットできないのでご注意を。
procedure TForm1.Button1Click(Sender: TObject);
var
s: array[0..511] of char;
begin
Edit1.Text := IntToStr(integer(SetEnvVar('TestVal', 'Environment Variable')));
GetEnvironmentVariable('TestVal', @s, 512); // Windows.pas
Edit2.Text := s;
Edit3.Text := GetEnvironmentVariable('TestVal'); // SysUtils.pas
end;
Hidemi Oya
> > ユーザー環境変数やシステム環境変数にはセットできないのでご注意を。
> 見落としておりました。逆に、これらの環境変数に設定する方法をご教授いただ
> けますでしょうか..。
Environment Variables (Windows)
http://msdn.microsoft.com/en-us/library/ms682653(VS.85).aspx
環境変数をシステムに通知する方法
http://support.microsoft.com/kb/104011
にあるとおり、レジストリに書き込んでWM_SETTINGCHANGEメッセージを
ブロードキャストすればいいとおもいます。なおこれらのレジストリに
書き込みを行うときはそれなりのユーザ権限が必要だと思われますので
ご注意ください。
+=========+=========+=========+=========+=========+=========+=========+
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fuk...@tts-inc.co.jp
+=========+=========+=========+=========+=========+=========+=========+