`
wang_peng1
  • 浏览: 3930676 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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有转义字符\0,有时候真的搞不懂网络上那些标题命名为 空格转义字符的人   竟然不具体标明 ,乱转。
在网络中还搜索到了一片
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\tt.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
分享到:
评论

相关推荐

    传带空格的命令行参数

    本篇内容将深入解析如何在不同的编程环境中处理带有空格的命令行参数,并通过示例来解决如“document and setting”等特殊字符串的传递问题。 ### 命令行参数基础 #### 什么是命令行参数? 命令行参数是指用户在...

    C#多线程之如何弹出一个模式窗口来显示进度条

    在C#编程中,多线程技术是一种常见且强大的工具,用于提高应用程序的性能和响应性。当一个耗时的任务需要执行时,如文件读写、网络请求或复杂的计算,多线程可以使用户界面(UI)保持流畅,不被长时间阻塞。在本教程...

    C#控制台程序之间参数传递

    在C#编程中,控制台程序之间的参数传递是一项常见的任务,尤其在系统集成或脚本自动化等场景下。本文将详细讲解如何从一个控制台应用程序(源程序)启动另一个控制台应用程序(目标程序),并传递参数字符串,以及...

    C# 调用带参数EXE文件及带启动参数EXE制作

    在C#编程中,有时我们需要创建可执行文件(EXE)并传递参数,或者从一个应用程序调用另一个带有参数的EXE。以下是如何在C#中实现这些功能的详细步骤。 首先,我们来讨论如何创建一个带启动参数的EXE文件: 1. 定义...

    c#调用其他应用程序

    在实际开发中,还需要考虑进程间的通信(如传递参数和读取返回值),这通常可以通过`ProcessStartInfo`的`Arguments`属性传递参数,或者使用管道、内存映射文件等方式进行更复杂的通信。 总的来说,C#调用其他应用...

    C#调用bat文件 bat处理 c#调用bat

    在IT行业中,尤其是在Windows应用程序开发领域,经常需要在C#...在实际应用中,你可能还需要考虑错误处理、参数传递以及bat文件的权限问题等细节。记住,始终确保bat文件的执行不会对用户的数据或系统安全构成威胁。

    C#中得到可执行文件(程序)的路径

    ### C#中获取可执行文件路径的多种方法 在C#编程中,有时我们需要知道当前正在运行的应用程序的完整路径,这在很多场景下都非常有用,比如读取配置文件、定位资源文件等。本文将详细介绍如何在C#中获取可执行文件的...

    C#调用winrar压缩文件实例---C#.Net实例代码

    1. **创建进程启动信息**:在C#中,我们可以使用`System.Diagnostics.ProcessStartInfo`类来创建一个进程启动信息对象,它包含了启动外部程序所需的参数,如程序路径、命令行参数等。 2. **设置进程启动信息**:...

    C#-WinForm执行CMD命令

    // 创建ProcessStartInfo对象,设置命令行参数 ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = "cmd.exe"; // 指定要启动的程序 psi.RedirectStandardInput = true; // 重定向标准输入 psi....

    打开网页C#源代码程序System.Diagnostics.Process.Start

    它接受一个字符串参数,通常是一个文件路径或URL,然后根据该参数启动相应的应用程序或打开指定的网页。例如,当你传入一个网页URL时,系统会调用默认的浏览器来打开这个页面。 ```csharp using System.Diagnostics...

    C#打开电脑本地文件(地址)

    在这个代码段中,我们首先定义了要打开的本地文件的路径,然后创建了一个`ProcessStartInfo`对象,并设置了`UseShellExecute`为`true`,这样操作系统会使用文件关联的默认程序来打开它。`CreateNoWindow`属性确保...

    热点Wi-Fi c#制作,windows环境

    在本文中,我们将深入探讨如何在Windows环境下使用C#编程语言创建一个热点Wi-Fi,以及涉及到的.NET框架和Microsoft的ICS(Internet Connection Sharing)API。首先,我们需要理解热点Wi-Fi的基本概念,它允许设备...

    C#调用Winrar 压缩包

    为了在C#中使用WinRAR,你需要先安装WinRAR软件,并将其安装路径添加到系统环境变量PATH中,这样C#程序可以通过命令行调用Rar.exe。 一、压缩文件 在C#中调用WinRAR进行压缩,主要涉及以下步骤: 1. 创建一个包含...

    C#调用exe程序并运行

    总结起来,C#中调用exe程序并运行主要依赖`System.Diagnostics.Process`类,通过设置`ProcessStartInfo`属性来配置启动参数。理解并熟练掌握这一技巧,对于编写需要与其他应用程序交互的C#程序至关重要。在实际应用...

    C#调用BarTender条码并打印

    对于BarTender,我们可以通过指定其可执行文件的路径,传递参数以实现对条码模板的调用和数据的修改。 1. **创建BarTender对象**:首先,我们需要实例化一个`Process`对象,指定BarTender的主程序路径。例如: ```...

    C#RAR文件解压源码

    这部分代码通过创建`ProcessStartInfo`对象设置WinRAR的启动参数,并使用`Process`类启动WinRAR进程来进行RAR文件的解压操作。同时,设置`WindowStyle`为`Hidden`是为了隐藏WinRAR的界面,使之在后台运行。 ### 四...

    C#使用FFmpeg.exe完成视频截图功能

    这段代码定义了一个`TakeScreenshot`方法,接受视频文件路径和截图保存路径作为参数。通过`ProcessStartInfo`设置FFmpeg命令行参数,并启动FFmpeg进程。`-i`参数指定输入视频文件,`-vframes 1`表示只截取一帧,最后...

    C# winform页面多进程打开exe

    - 在启动exe时,确保参数用引号括起来,尤其是包含空格的参数。 4. **WinForm界面集成**: 在WinForm页面上,你可能需要显示每个exe的运行状态或者结果。可以创建多个控件(如标签、文本框或进度条)来反馈进程的...

    C#调用Codesoft批量打印条码实例

    总结,C#调用Codesoft批量打印条码的关键在于理解进程间通信和命令行参数的使用。通过正确配置和调用,我们可以轻松地将C#应用程序与Codesoft集成,实现高效、自动化的条码打印流程。在实践中,应根据具体需求进行...

Global site tag (gtag.js) - Google Analytics