C# で外部プロセスを起動するときの注意。
・コマンドライン引数の文字コードは変更できない。
 たとえば、UTF-8をコマンドライン引数に受け取るプログラムを起動しようとした場合、正確に動作しない。
 

・起動するプロセスの環境変数を設定できる。ただしそれは全て小文字である。
 StartInfo.EnvironmentVariablesは環境変数をしていできる。
 しかしこれはStringDirectoryクラスであり、キーとなる環境変数は全て小文字になる。

 Windowsの環境変数は大文字、小文字を区別しないため、.NETフレームワーク同士のプロセスを起動するには問題にならない。
 しかし、Cygwinなどで作成したプロセスを起動使用とした場合、大文字の環境変数が絶対に渡せなくなることになる。
 なお、回避する方法として、以下のようなバッチファイルを作成してそれを実行することにした。

 参考:環境変数を指定して同じディレクトリのrcs.exeを起動するバッチファイル
 
@echo off
SET LANG=ja_JP.cp932
%~dp0\rcs.exe %*

[PR]
by mima_ita | 2013-09-19 00:34 | .NET
<< Cygwin + gccの文字... TF-IDFによる各政党のホー... >>



実験ですお
検索
カテゴリ
最新の記事
.NET4.5におけるasy..
at 2014-07-02 00:46
.NETでTwitterを検..
at 2014-06-29 00:49
Redmineのプラグインで..
at 2014-06-28 03:29
IO.popenのwrite..
at 2014-06-28 03:25
RedmineのWikiでU..
at 2014-06-28 03:16
以前の記事
最新のトラックバック
その他のジャンル
ブログパーツ