zoukankan      html  css  js  c++  java
  • c# 路径空格---ProcessStartInfo参数问题

    今天在整合程序的时候,要从一个程序转到另一个程序 当然要使用: 
      ProcessStartInfo startInfo = new ProcessStartInfo("\Program Files\IE\IE.exe", s); 
                         Process.Start(startInfo); 
    不过对于wm来说 不支持Process.Start(string)形式 真汗。 

    这里的s 是指: 
    string fullname = treeView1.SelectedNode.FullPath; 
    //  string s = """ + @fullName + """;   
                         string s =  @fullName ; 
    开始我还傻了吧唧的 吧@"+ fuluuname 如此使用 结果错误的,@直接跟路径名就好。系统自动辨认。 

    传递好参数之后,那么怎么使用这个参数呢 : 
    在被启动程序中 
      [MTAThread] 
            static void Main(string[] args) 
            { 
            
                if(string.IsNullOrEmpty(string.Join(" ", args))) 
                { Application.Run(new Form1()); } 
                else 
                { 

                    Application.Run(new Form1(string.Join(" ", args))); 
                } 
            } 
    这里一定要注意 “ ”之间我是按了一个空格的,args会自动根据空格分成数组如 
    D:My Documents 他会分成 arg[0]=D:My  arg[1]=Documents 
    就因为这个问题我高了一下午,开始还以为自己重写的ie有问题,加上调式wm不是很方便真的郁闷的要死。 空格没有转义字符   只有空字符null有转义字符,有时候真的搞不懂网络上那些标题命名为 空格转义字符的人   竟然不具体标明 ,乱转。 
    在网络中还搜索到了一片 
    http://www.cnblogs.com/tuyile006/archive/2006/05/09/395193.html 
    写的不错 不过没有调试 其内容如下: 
    这几天做一个通讯程序,要通过“运行”开启一个进程 
    结果有时候可以正常调用,有时候就出现问题 
    出问题代码如下: 

       Process p=Process.Start(t_path.Text.ToString(),t_file.Text.ToString()); 
            Process.start()第一个参数是运行的程序名称,后面是该程序参数 

    如果这两个路径中不含空格的时候就可以正常运行, 
    如果包含像"D:Program Files"或者"G:Documents and Settings"之类的路径程序就会出问题 
    原因是在运行行里面 如果运行的程序只接收一个参数,参数里面夹一个空格就相当于回车 
    也就是说,如果运行输入:c:aa.exe  d:Program Files t.txt 
    其实运行的是:c:aa.exe  d:Program 
    这样肯定会出错了 

    正确的写法应该是: 
    Process p=Process.Start("""+t_path.Text.ToString()+""","""+t_file.Text.ToString()+"""); 

    这种写法绝对保险。 

    调用的时候采用if (args.Length<=0) 
                { Application.Run(new Form1()); } 
                else 
                { 

                    Application.Run(new Form1(args[0])); 
                } 
    在从一个程序 引用另一个程序后 有时候 在单独启动第二个程序就会出现 
    部署和/或注册失败,错误为: 0x8973190e。 写入文件“%CSIDL_PROGRAM_FILES%**.exe”时出错。错误 0x80070020: 另一个程序正在使用此文件,进程无法访问 
    的错误 这时候应该 
    其实这个东东的路径是在我的文档下的**.exe路径下,根本没有任何程序在使用这个文件 
    在mobile上选择文件--清除保存的状态,然后把mobile退出一下就好了 
    就是模拟上的file 当然我的是英文版的 然后选择里面的clear的一个类似选项就可以了 
    你也可以参看 
    http://www.wmisv.com.cn/bbs/dispbbs.asp?boardID=2&ID=5065

  • 相关阅读:
    【Python】版本自动控制/在上一次版本中自动生成本次的版本号
    【Python】获取当前国内时间(适用于服务器部署在国外的)
    【Python】url编码/解码/转义
    mysql 优化详解
    shiro-redis整合
    springboot 整合redis ,jedis
    maven的pom配置详解
    SpringMVC集成LogBack,相关配置
    客户端连接caching-sha2-password 报错问题
    (转)navicat premium 12 破解版,注册机激活
  • 原文地址:https://www.cnblogs.com/gc2013/p/3843093.html
Copyright © 2011-2022 走看看