请教:非控制台程序,如何得到命令行参数? 控制台程序,main中有参数,窗口程序,main函数没有参数,有什么好办法可以得到命令行参数吗?另外请教个问题,控制台程序有没有办法使用类似于messagebox.show的方法,弹出一个提示? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1. Winform程序可以通过 string[] args = Environment.GetCommandLineArgs(); 获得。2. Console程序可以用 Console.WriteLine() 输出提示。 当然引用 System.Windows.Forms.dll 就可以使用MessageBox.Show,不过没这么用的。 fangxinggood你好,非常感谢,受益匪浅!还有个问题请教一下,命令行参数可以接受多少字符呢?不是在控制台输入,使用程序调用exe文件加命令行的方式。控制台是有输入限制的,程序调用是不是没有限制?应为string[] args,这个string是非常大的。 这个真没有试过,但是只要内存够大都可以收下。不过命令行都是为了方便调用而设定的,不应该传太复杂的参数。不过参数真的很多字符的话,应该考虑用别的方法传入。比如:App.config等配置文件的方法。 program.cs 里面也有 main 函数的,在里面加 string[] args 即可 给你个例子吧,正好写到了program.cs中static void Main(string[] args) { //。Application.Run( new Form1(args[0].Trim(), args[1].Trim(), args[2].Trim(), args[3].Trim(), args[4].Trim()) );}这样FORM就能拿到参数了,form1.cs中public Form1(string db, string logonID) { #region 获取参数 this.DB = db; this.LogonID = logonID; #endregion InitializeComponent();} 参考MSDN吧http://msdn.microsoft.com/zh-cn/library/system.environment.getcommandlineargs(v=VS.80).aspx返回包含当前进程的命令行参数的字符串数组返回值字符串数组,其中的每个元素都包含一个命令行参数。第一个元素是可执行文件名,后面的零个或多个元素包含其余的命令行参数。 备注--------------------------------------------------------------------------------数组中的第一个元素包含执行程序的文件名。如果该文件名不可用,则第一个元素等于 String.Empty。其他元素包含在命令行输入的任何附加标记。程序文件名可以(但不是必须)包含路径信息。除非在引号 (QUOTATION MARK, U+0022) 中出现空白,否则用空白(SPACE (U+0020) 或 CHARACTER TABULATION (U+0009))分隔命令行参数。引号中的空白被视为引用文本的一部分。分隔��不包括在命令行参数之中。引号后跟的反斜杠字符 (REVERSE SOLIDUS (U+005C)) 需要分情况解释。如果 2n 个反斜杠后跟引号,命令行参数则包含 n 个反斜杠。而且,如果其前面的文本为非引用文本,则开始引用其后的文本;如果其前面的文本为引用文本,则结束文本引用。如果 2n+1 个反斜杠后跟引号,命令行参数则包含 n 个反斜杠和一个原意引号。如果 n 个反斜杠后未跟引号,命令行参数则包含 n 个反斜杠。若要获取作为单个字符串的命令行,请使用 CommandLine 属性 谢谢大家。Environment.GetCommandLineArgs(); 获得的参数第一个是程序文件名。main(string[] args)获得的参数,不包含文件名,如果没有参数,args.length是0这是我测试的结果,main()函数的参数记得是包括文件名的,可能是我弄错了。 请教如何进行屏幕取词 WindowForm生命周期 在asp.net 中怎样导入excel 根据gridview中某列合并单元格 我发现逆波兰算法有一个致命的问题 高分调查两个问题(1)分页的使用(2)上传文件的存取 在VS的服务器资源管理器中,数据库访问出错,快指教快揭贴 C#使用mscomm控件进行串口编程,大家能不能给一个例子。 如何实现水晶报表和DataGrid的动态绑定?急啊!马上要交付了. 简单问题 请教用C#写一个UDP端口转发器 如何在Form1下重写WndProc(消息)
2. Console程序可以用 Console.WriteLine() 输出提示。
当然引用 System.Windows.Forms.dll 就可以使用MessageBox.Show,不过没这么用的。
还有个问题请教一下,命令行参数可以接受多少字符呢?不是在控制台输入,使用程序调用exe文件加命令行的方式。控制台是有输入限制的,程序调用是不是没有限制?应为string[] args,这个string是非常大的。
不应该传太复杂的参数。不过参数真的很多字符的话,应该考虑用别的方法传入。
比如:App.config等配置文件的方法。
static void Main(string[] args)
{
//。
Application.Run(
new Form1(args[0].Trim(), args[1].Trim(), args[2].Trim(), args[3].Trim(), args[4].Trim())
);
}这样FORM就能拿到参数了,form1.cs中
public Form1(string db, string logonID)
{
#region 获取参数 this.DB = db;
this.LogonID = logonID; #endregion InitializeComponent();
}
字符串数组,其中的每个元素都包含一个命令行参数。第一个元素是可执行文件名,后面的零个或多个元素包含其余的命令行参数。 备注
--------------------------------------------------------------------------------数组中的第一个元素包含执行程序的文件名。如果该文件名不可用,则第一个元素等于 String.Empty。其他元素包含在命令行输入的任何附加标记。程序文件名可以(但不是必须)包含路径信息。除非在引号 (QUOTATION MARK, U+0022) 中出现空白,否则用空白(SPACE (U+0020) 或 CHARACTER TABULATION (U+0009))分隔命令行参数。引号中的空白被视为引用文本的一部分。分隔��不包括在命令行参数之中。引号后跟的反斜杠字符 (REVERSE SOLIDUS (U+005C)) 需要分情况解释。如果 2n 个反斜杠后跟引号,命令行参数则包含 n 个反斜杠。而且,如果其前面的文本为非引用文本,则开始引用其后的文本;如果其前面的文本为引用文本,则结束文本引用。如果 2n+1 个反斜杠后跟引号,命令行参数则包含 n 个反斜杠和一个原意引号。如果 n 个反斜杠后未跟引号,命令行参数则包含 n 个反斜杠。若要获取作为单个字符串的命令行,请使用 CommandLine 属性
Environment.GetCommandLineArgs(); 获得的参数第一个是程序文件名。
main(string[] args)获得的参数,不包含文件名,如果没有参数,args.length是0
这是我测试的结果,main()函数的参数记得是包括文件名的,可能是我弄错了。