关于传递参数process.StartInfo.Arguments的问题?

hkwlk 2003-11-01 05:14:31
我的程序project.exe可以接受很长的参数,但用以下的方法启动我的程序,
如果mes 内容过长,则后面的显示不完,如何解决?或用别的办法?
string run_name="project.exe";
string mes="1111111111111222222222222223333333333333333333334444444444444445555555555aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";

Process process=new Process();
process.EnableRaisingEvents=true;
process.StartInfo.FileName=run_name;
process.StartInfo.Arguments=mes;
process.Start();
如果mes过长,显示process.StartInfo.Arguments也不是原来的mes,截掉了后面大
部分。
...全文
1950 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hkwlk 2003-11-02
  • 打赏
  • 举报
回复
谢谢saucer(思归)!
我找到原因了,是传进的参数有空格分开,当作了后面的第三第四个参数。
mail_dcb2 2003-11-02
  • 打赏
  • 举报
回复
>copy con dell.bat
del %1
mail_dcb2 2003-11-02
  • 打赏
  • 举报
回复
老大们,灵活一点,编个bat文件你愿意写多少参数就写里面,然后执行它
hkwlk 2003-11-01
  • 打赏
  • 举报
回复
project.exe 是一个windows应用程序,用来播放*.awv类型的提示声音和显示内容的
一个参数是传进的播放wav文件,第二个参数是提示的内容。
saucer 2003-11-01
  • 打赏
  • 举报
回复
try the following and let me know what's your output:


1. project.cs:

using System;

class TestProject
{
public static void Main(string[] args)
{
Console.WriteLine(args.Length);
foreach (string s in args)
{
Console.WriteLine("{0}\nsize:{1}\n\n", s, s.Length);
//Console.ReadLine();
}
}
}

2. testproject.cs:
using System;
using System.Diagnostics;
using System.Text;

class TestProject2
{
public static void Main()
{
string run_name="project.exe";

string mes="my.wav aa22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222";

Console.WriteLine(mes.Length);

Process process=new Process();

process.StartInfo.FileName=run_name;
process.StartInfo.UseShellExecute = false;
process.StartInfo.Arguments=mes;
process.Start();

}
}

3. here is the output on my machine:

E:\labs\csharp>
2
my.wav
size:6

aa22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
size:205
hkwlk 2003-11-01
  • 打赏
  • 举报
回复
第一个参数前面播放一段*.wav声音的文件,第二个参数是错误内容。
若在快捷方式 Project.exe的属性中目标输入:
D:\wxg\C#\zdfb\zdfb\bin\Debug\Project.exe my.wav 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
可以运行,
但两个参数一后面的放在mes中就不行
mes="my.wav aa22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222"
hkwlk 2003-11-01
  • 打赏
  • 举报
回复
谢谢!
project.exe是一个可接受两个参数可执行程序。有Email,我发给你!
saucer 2003-11-01
  • 打赏
  • 举报
回复
you are right, it seems the limit is 32752, but why are you passing such a long parameter?
saucer 2003-11-01
  • 打赏
  • 举报
回复
what kind of app is "project"? is it a managed program too? the following works form me

1. project.cs:

using System;

class TestProject
{
public static void Main(string[] args)
{
foreach (string s in args)
Console.WriteLine(s);

Console.ReadLine();
}
}

2. testproject.cs

using System;
using System.Diagnostics;

class TestProject2
{
public static void Main()
{
string run_name="project.exe";
string mes="1111111111111222222222222223333333333333333333334444444444444445555555555aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxx1111111111111222222222222223333333333333333333334444444444444445555555555aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayyyy1111111111111222222222222223333333333333333333334444444444444445555555555aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzzz";

Process process=new Process();
process.EnableRaisingEvents=true;
process.StartInfo.FileName=run_name;
process.StartInfo.Arguments=mes;
process.Start();

}
}

hkwlk 2003-11-01
  • 打赏
  • 举报
回复
up

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧