- PR -

Prpcess.Startでエラー

1
投稿者投稿内容
TSATOH
会議室デビュー日: 2004/10/01
投稿数: 4
投稿日時: 2008-05-09 10:26

お世話になります。
p = Process.Start(EXENAME,ARGUMENT)
でARGUMENTの部分を2000文字以上の引数(実態は複数のファイルパス)を渡しております。
このとき、実行されずに、「アクセスが拒否されました」となってしまいます。
ためしにファイルパスを少し減らして実行してみたところ正常に動作いたします。

またSEHLL関数での実行を行うと正常に動作いたします。
Process.Startについて何か制限みたいなものがあるのでしょうか。
ご教授願えたら幸いです。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-05-09 10:40
ProcessStartInfo.Arguments プロパティ の説明より
引用:

プロパティ値
FileName プロパティで指定したアプリケーションに関連付けることができる、ファイルの種類に固有の引数。既定値は空の文字列 ("") です。.NET Framework アプリケーションの最大文字列長が 2,003 文字で、.NET Compact Framework では 488 文字です。



Process.Start(fileName, arguments) で指定できるargumentsにも同様の制限があるのだと思います。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2008-05-09 10:43
引用:

TSATOHさんの書き込み (2008-05-09 10:26) より:

お世話になります。
p = Process.Start(EXENAME,ARGUMENT)
でARGUMENTの部分を2000文字以上の引数(実態は複数のファイルパス)を渡しております。
このとき、実行されずに、「アクセスが拒否されました」となってしまいます。
ためしにファイルパスを少し減らして実行してみたところ正常に動作いたします。

またSEHLL関数での実行を行うと正常に動作いたします。
Process.Startについて何か制限みたいなものがあるのでしょうか。
ご教授願えたら幸いです。


まず誤字はやめようよ。
PrpcessとかSEHLLとかどう発音するのさ。
こういうのがあると状況確認も正しくできていないのではないかと疑われる。

本題に入ると仕様見直すのが1番だと思うよ。
2000文字以上って正気?
それだけの情報量を渡すなら普通は別の手段をとる。
外部ファイルとかDBとかいろいろあるんだけど。
TSATOH
会議室デビュー日: 2004/10/01
投稿数: 4
投稿日時: 2008-05-09 11:42
ぶさいくろう様
誤字は後で気づいたのですがそのままにしておきました。すいません。
とりあえず仕様等の確認をする前に制限等を確認しておきたかったのです。
また暫定的なPGものでもあり、できるだけ手を加えずに簡略化したかったことももあります。

rain様
きっとSTARTに渡す文字数に関係があると思っていましたが、そのものズバリのご回答ありがとうございました。助かりました。
1

スキルアップ/キャリアアップ(JOB@IT)