关于应用程序传参的问题

问题描述

我现在做的一个程序包括两个应用程序,app1和app2。app1中需要启动app2,而且需要给app2传参数。app1中代码如下:System.Diagnostics.ProcessStartInfopsi=newSystem.Diagnostics.ProcessStartInfo(strApp2Name,strArguments);psi.RedirectStandardOutput=true;psi.WindowStyle=System.Diagnostics.ProcessWindowStyle.Normal;psi.UseShellExecute=false;System.Diagnostics.ProcesssubPro;subPro=System.Diagnostics.Process.Start(psi);其中strArguments为传递的参数,以空格分隔。大约5000个参数,但在app2的Main(string[]args)函数中,发现被传入的参数只有1500个左右。不知道是怎么回事。是有什么限制么?可我查了些资料,都说应该没有限制,即使有我这点参数也应该没有到限。这个问题很急,希望各位帮帮忙了,在这先谢谢了。

解决方案

解决方案二:
.NETFramework类库ProcessStartInfo.Arguments属性.NETFramework应用程序和.NETCompactFramework应用程序中的最大字符串长度分别为2,003字符和488字符。
解决方案三:
不同进程之间传递参数可以通过管道共享内存remoting交换文件等等用参数在你的情况下不合适
解决方案四:
那么长还是写成一个文件,把文件名传进去。再解析文件就可以了。那就不会超长了。
解决方案五:
app1把参数写到一个临时XML文件,然后把文件名传给app2,app2用完该临时文件后把文件删除。这是最简单的、而且保险的。虽然不是最高效的。
解决方案六:
谢谢jiatong1981的回复。但我还是不太清楚。你的意思是只能传2003个参数么,还是参数的长度最大2003?我现在的情况是,app1中strArguments空格分隔后的个数是5000多个,正确传入app2的参数个数为1500左右。而这1500个参数的总字符长度大概10000。每个参数的最大长度只有20左右。
解决方案七:
谢谢大家的回复,写临时文件这种方法我也想过,但开始时,测试没遇到这么多参数的情况,而且主要也考虑到效率问题。其实改成临时文件没有什么太大问题,只是不太了解传参限制这方面的知识,所以还请了解这方面知识的朋友多多帮忙了。谢谢了。
解决方案八:
解决方法ls都有启动参数这么多还是用别的方法吧XML就不错启动参数是有长度限制的MSDN上注明了是2003个字符
解决方案:
他的这个参数只是一个字符串。

时间: 2024-08-01 01:58:38

关于应用程序传参的问题的相关文章

微信小程序链接传参并跳转新页面_javascript技巧

 像传统的传参一样,只是在微信里面的标签不一样而已,navigator标签的文档说明: https://mp.weixin.qq.com/debug/wxadoc/dev/component/navigator.html?t=20161122 下面是传递参数并展示新页面的一个简单栗子: 这是index.wxml代码: <navigator class="bury-wrapper wx-li" url="../detail/detail?id={{name.id}}&qu

使用java传参调用exe并且获取程序进度和返回结果的一种方法

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在某个项目中需要考虑使用java后台调用由C#编写的切图程序(exe),并且前端能够获取到切图的进度和相关描述信息. 2.解决思路 a.首先改造切图程序为接受参数从Main函数传递. b.编写java后台传参调用exe的函数. c.解决通信问题. 3.具体实现 3.1改写C#窗体程序   C#中的入口程序为Main函数,其中Main函数默认是没有参数的,如果添

各种语言执行入口的传参方法

在操作系统中,执行程序时可以由系统传入参数,就是在执行的时候,附带上参数.比如: 1 ping www.kryptosx.info 后面跟着的网址就是ping的参数. Linux和windows的shell都遵循这个参数传入方式.这里列一下各种语言的执行入口传参方法.主要分为两类,一种是有main函数的语言,一种是没有main函数的. 在执行命令的时候,linux系统会先对命令行进行分解.通常是以空格分解,如果有双引号,双引号内的也是认为是一个参数,无论里面有无空格. C类语言的执行入口传参:

python-Python多线程问题,target以及kwargs传参出错,请问应该怎么写

问题描述 Python多线程问题,target以及kwargs传参出错,请问应该怎么写 def A(a,b,c): 代码块省略 def B(a,b,c,d): 代码块省略 def thread(self,arg*): t1 = threading.Thread(target=A,args=(a,b,c)) 问题一:这里我想参数target=需要多开线程的方法名,然后我随便定义一个变量作为方法名参数传到target里面,,不行,,程序报错.求正确的传参方法,难不成我要为每一个要多开的方法都要多写一

js html-在线等,急(大神帮帮忙):js动态嵌入html代码,代码中调用函数,当传参为字符串时,函数没有响应

问题描述 在线等,急(大神帮帮忙):js动态嵌入html代码,代码中调用函数,当传参为字符串时,函数没有响应 <!DOCTYPE html> <br> function insert()<br> {<br> var a="jioho";<br> var str="<table><tr><button type='button' onclick='test("+ a+"

调试-java单例模式传参问题

问题描述 java单例模式传参问题 用sshexec连接linux ConnBean connInfo = new ConnBean(remoteAddress, userName, password); SSHExec sshExec = SSHExec.getInstance(connInfo); 假设每次传过来的conninfo参数是变的,但是debug查看每次都是第一次的参数. private static SSHExec ssh; public static SSHExec getIn

springMVC3.0(文件上传,@RequestMapping加参数,@SessionAttributes,@ModelAttribute,转发,重定向,数值获取,传参,ajax,拦截器)

1.项目包结构如下: 2.       spring配置文件springMVC.xml修改如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xml

Silverlight实用窍门系列:37.Silverlight和ASP.NET相互传参的两种常用方式(QueryString,Cookie)【附带实例源码】

在本节中将讲述Silverlight和ASP.NET页面的相互传参的两种常用方式:Cookie和QueryString.首先我们新建一个名为SLConnectASP.NET的Silverlight应用程序,然后在SLConnectASP.NET.web项目中添加一个Index.aspx的页面. 一.Silverlight和ASPX页面的QueryString传参 实现思路:在Silverlight端跳转到页面到Index.aspx并且传递一个QueryString参数ID,在该Index.asp

默认-masonry+infinitescroll瀑布流布局怎么传参?

问题描述 masonry+infinitescroll瀑布流布局怎么传参? masonry+infinitescroll瀑布流布局怎么传参? 链接的选择器是: <div id="navigation"><a href="page?page=1"></a></div> 这里有个问题,如果<a>标签的href属性传参,例如href="page?page=1&XX=1&..."