PATHを設定してCommand.comを実行したいのですが、
CreateProcessでの環境変数の設定の仕方がわかりません
char* env = "PATH=c:\\data";
CreateProcess(NULL,"command.com /k path ", NULL, NULL, FALSE, 0, env, NULL, &si, &pi);
このようにしてみたところDos窓が起動しますが、
表示されるPATHはデフォルトのままです。
環境は VC++6.0 MFC です。
どうか宜しくお願いします。
No.2ベストアンサー
- 回答日時:
Windows XP で cmd.exe に変更して実行しましたが、PATH=c:\data と表示されます。
OS に関係なく、command.com は特殊なプログラムなのかもしれないですね。
--------------------------------
char *env = "PATH=c:\\data\0";
CreateProcess(NULL, "cmd.exe /k path ", NULL, NULL, FALSE, 0, env, NULL, &si, &pi);
がーん
そうですか、command.comが悪かったなんて
それじゃ、ShellExecuteでは、Win95系で環境変数の設定を行うのはムリっぽいですね。(泣)
わかりましたちょっと他の方法を探ってみます。
バッチファイルを使うくらいしか思いつかないのですが・・・。
もし、他にPathを効かせてコマンドを実行する方法がありましたらアドバイスをいただけると嬉しいです。
お忙しいところ、わざわざ試していただき、本当にありがとうございました。
No.1
- 回答日時:
danner です。
MSDNを調べると
「環境ブロックの構成は次のようになります。
name1=value1<NULL>name2=value2<NULL>……nameN=valueN<NULL><NULL>」
となっています。
したがって、環境設定変数の最後はダブルヌルにしないといけないのでは?
>char* env="PATH=c:\\data";
ではなく、例えば
char env[1024];
strcpy(env, "PATH=c:\\data");
env[strlen(env)+1]=NULL;
実際には確かめていませんがどうでしょうか?
この回答への補足
早速の回答ありがとうございます。
さっそく試してみたのですが、やはりうまくいきません。
説明はとてもよくわかりました。
これでいけると思ったんですけど・・・。
なにか根本的に間違ってるのでしょうか?
一応
C:\Dataというフォルダが無いとかいうオチはありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 pathが通らない 2 2023/03/27 11:28
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- UNIX・Linux WSL+Dockerでpython実行環境構築について 3 2023/05/05 17:03
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/10/26 17:14
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- PHP 書籍よりも より良い htmlspecialchars の変更を 1 2022/04/18 02:28
- C言語・C++・C# C++の標準入力の書き方 6 2023/02/23 23:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
エクセルVBA:日付データの変換...
-
ビットデータのチェック方法
-
linuxのシェルでファイル名に先...
-
FFTがうまくできない
-
char str[256]の256の意味は?
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
Excel VBA メール作成について ...
-
バイナリとBCDコード
-
ワイド文字のバイト数が取得で...
-
DataGridViewの特定列に入力さ...
-
「1TB」のHDDに日本語は何字入...
-
POSTメソッドの最大容量について
-
エクセルシート名の制限を変更...
-
PHPのCookieが有るか無いかで、...
-
デバイスコンテキストに書いた...
-
Line Inputにて改行があっても...
-
C言語でwin32apiを使ってnotepa...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
stable diffusionのエラー
-
ポインター引数の関数でコンパ...
-
printfの%eで指数部分の桁数を...
-
パイソン、データーサイエンス...
-
エクセルVBA:日付データの変換...
-
C#でのswitch文
-
int型(2バイト)データの分割
-
CreateProcessでの環境変数の設...
-
【Excel VBA】10進数を2進数に...
-
python 気象データの取得
-
テキストファイルの結合について
-
RegQueryValueExでの2バイト文字
-
linuxのシェルでファイル名に先...
-
'dataType' 引数を Null にする...
-
C言語についてです! 同じ年の...
-
オセロゲーム 2次元配列で困...
-
PINVOKEで構造体配列をマーシャ...
-
matlabのソースコードをpython...
-
C言語の勉強しています。すみま...
-
System.Collections.ArrayList ...
おすすめ情報