2012-06-12 27 views
5

tôi có thể chạy tốt điều này từ dòng lệnh:Không thể chạy lệnh từ Process.Start

C:\Windows\System32\rundll32.exe "C:\Program Files (x86)\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg 

Hình ảnh mở ra không có vấn đề.

Tuy nhiên, khi tôi cố gắng và làm điều này:

exe = "C:\\Windows\\System32\\rundll32.exe \"C:\\Program Files (x86)\\Windows Photo Viewer\\PhotoViewer.dll\", ImageView_Fullscreen C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg"; 
Process.Start(exe); 

tôi nhận được một System.ComponentModel.Win32Exception

: Hệ thống không thể tìm thấy các tập tin định

Tôi có đã thử với dấu ngoặc kép trên cả dòng lệnh và C#, và không làm việc với chúng. Theo một câu trả lời tôi đọc trên SO gần đây phần cuối cùng không nên được trích dẫn.

Điều gì đang xảy ra?

+0

Bạn có thể cần phải quấn param cuối cùng với dấu ngoặc kép là tốt, vì một phần của đường dẫn chứa một không gian. –

+0

Cảm ơn bạn đã trả lời. Tôi đọc một bài viết ở đây một nơi nào đó nói rằng phần cuối cùng không nên được báo giá, và phiên bản dòng lệnh không làm việc với dấu ngoặc kép xung quanh mục cuối cùng hoặc. – sennett

+1

Hãy thử nó anyways ;-) Ngoài ra bạn có thể chạy Process Monitor để xem tập tin được chỉ định không thể được tìm thấy, mà có thể đưa ra một gợi ý. –

Trả lời

13

Hóa ra người ta phải vượt qua các lệnh và đối số riêng biệt:

exe = "C:\\Windows\\System32\\rundll32.exe"; 
arguments = "\"C:\\Program Files (x86)\\Windows Photo Viewer\\PhotoViewer.dll\", ImageView_Fullscreen C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg"; 
Process.Start(exe, arguments); 
+0

là giả sử này để làm việc nếu đó là một thư mục tập tin là trong một hình thức của một URL? – user1166085

+0

@ user1166085 Tôi không nghĩ vậy. http://msdn.microsoft.com/en-us/library/h6ak8zt5(v=vs.110).aspx, phần Nhận xét: 'Nếu địa chỉ của tệp thực thi để bắt đầu là URL, quá trình này không được bắt đầu và null được trả về. ' – sennett

Các vấn đề liên quan