我用了 System.Diagnostics.Process.Start(exepath,exefile);
其中exepath是执行程序的绝对路径,exefile是文件的路径,可执行时CAD的运行环境是打开了,但是提示找不到指定的图形文件,这是什么问题啊?望高手赐教,该问

解决方案 »

  1.   

    你先在CMD里试试,或者查查exepath执行程序的帮助文档,看有没有命令行参数,再使用System.Diagnostics.Process.Start
      

  2.   

    exepath,exefile两个参数都是有值的,我要先打开运行环境,然后再打开该文件,现在是运行环境打开了,可是它提示找不到图形文件(说明一下,我是想查看CAD图)
    请高手赐教!很急
      

  3.   


    你先CMD里试试啊,不是有值就能用的,有可能exepath根本不接收exefile这个参数,所以你传进去也是没用的
    另外,还有一种方法,就是修改注册表,把exepath这个软件作为.dwg后缀的默认打开软件
    HKEY_CLASSES_ROOT\.dwg
      

  4.   

    exepath,exefile我不太懂cad,就算其文件名叫 a.cad 吧,如果在XP中,双击这个文件名就能用 autocad(或其他软件) 打开它,那么就问题.比如你的a.cad 文件路径为 c:\cad\a.cad那你就直接写 System.Diagnostics.Process.Start(@"c:\cad\a.cad"); 即可如果你不想用默认程序打开,可以把要用的程序exe路径写在第一个参数,文件写成第二个参数即可.
    我给你个例子,比如 我的 e:\a.txt 我可以默认记事本打开 
    System.Diagnostics.Process.Start(@"e:\a.txt");
    也可以用word打开
    System.Diagnostics.Process.Start(@"C:\Program Files\Microsoft Office\Office12\WINWORD.EXE" ,@"e:\a.txt");你去试试.应该可以的.
      

  5.   

    你有CAD的环境那就直接打开好了,就像楼上说的那样!
      

  6.   

    楼主,在cmd方式下打开没有问题(用得是acad 2004)
    在程序中测试也没有问题System.Diagnostics.Process.Start(@"c:\program files\autocad 2004\acad.exe", @"d:\test.dwg"); 你还是检查一下程序吧,主要是文件路径是否写正确
      

  7.   

    System.Diagnostics.Process.Start(@"C:\Storm.exe", "C:\\111.mp3");
    我试了试也是不行。
    是在不可以就设置他的默认启动项为CAD,然后只写打开文件名参数,不要写CAD的文件路径了
      

  8.   

    "在cmd方式下打开没有问题(用得是acad 2004)"请问CMD是什么方式,很菜的问题!
      

  9.   

    系统带的dos环境
    在运行--》Command可以看到
      

  10.   

    关键是我不能把文件的打开方式做死了,客户的机子上有两个不同版本的CAD软件,他需要打开相应的CAD环境来查看相应的图形文件,根据大家的提议,我做的程序如下,望高手指点:
    string exefile = di + "\\" + filename;/////需要查看的文件(例如:C:\Documents and Settings\ww\Local Settings\Temp\Test\CAD.dwg)
                this.openFileDialog1.InitialDirectory = "c:\\";
                this.openFileDialog1.ShowDialog();
                string exepath = "";
                if (this.openFileDialog1.FileName.Length > 0)
                    exepath = this.openFileDialog1.FileName;//////选择的执行程序(例如:D:\Program Files\AutoCAD 2004\acad.exe)
                Process myprocess = new Process();
                myprocess.StartInfo.Verb = "Open";
                myprocess.StartInfo.FileName = exepath.Trim();
                myprocess.StartInfo.CreateNoWindow = true;
                myprocess.StartInfo.Arguments = exefile.Trim();
                myprocess.Start();
    执行完后,就提示找不到图形文件,其实文件是存在的
      

  11.   

    关键是我不能把文件的打开方式做死了,客户的机子上有两个不同版本的CAD软件,他需要打开相应的CAD环境来查看相应的图形文件,根据大家的提议,我做的程序如下,望高手指点: 
    string exefile = di + "\\" + filename;/////需要查看的文件(例如:C:\Documents and Settings\ww\Local Settings\Temp\Test\CAD.dwg) 
                this.openFileDialog1.InitialDirectory = "c:\\"; 
                this.openFileDialog1.ShowDialog(); 
                string exepath = ""; 
                if (this.openFileDialog1.FileName.Length > 0) 
                    exepath = this.openFileDialog1.FileName;//////选择的执行程序(例如:D:\Program Files\AutoCAD 2004\acad.exe) 
                Process myprocess = new Process(); 
                myprocess.StartInfo.Verb = "Open"; 
                myprocess.StartInfo.FileName = exepath.Trim(); 
                myprocess.StartInfo.CreateNoWindow = true; 
                myprocess.StartInfo.Arguments = exefile.Trim(); 
                myprocess.Start(); 
    执行完后,就提示找不到图形文件,其实文件是存在的
      

  12.   

    诚然,如果有空格,路径就会被截断,自然不能找到预想的文件了。
    在 Windows 桌面环境中是通过将路径包围在双引号中来解决该问题的,不知道通过编程的方式是否可行。
    比如:string filename = "\"C:\\Some Path\\file.ext\"";