2016-11-30 47 views
5

Làm thế nào tôi có thể khởi chạy tệp exe bằng mã C#? Vì vậy, tôi có điều này:Khởi chạy tệp .exe mà không có vị trí đường dẫn C#

Process.Start(@"C:\Program Files (x86)\Photoshop\Photoshop.exe"); 

Nhưng đường dẫn có thể khác nhau ở các máy khác. Vì vậy, có bất kỳ ý tưởng để chạy .exe với cách khác nhau?

Cảm ơn!

+0

Bạn có thể tránh mã hóa cứng đường dẫn đến thư mục Tệp chương trình nhưng vẫn không giải quyết được sự cố. Tôi có thể đã cài đặt Photoshop vào một thư mục khác nhau (như tôi thực sự có), hoặc tôi có thể không có Photoshop cài đặt ở tất cả. –

+2

Quét Registry cho đường dẫn cài đặt của Photoshop. – Abion47

+0

@ Abion47 Không phải tất cả các chương trình đều lưu trữ thư mục cài đặt của chúng trong sổ đăng ký – BradleyDotNET

Trả lời

7

Tôi tìm thấy một dung dịch.

Activator.CreateInstance(Type.GetTypeFromProgID("Photoshop.Application")); 
1

Không, bạn không thể chạy tệp exe mà không biết vị trí của nó.

Những "ngoại lệ" là nếu thư mục thực thi là trong biến môi trường PATH, đó là lý do:

Process.Start("notepad.exe"); 

công trình.

+0

Trong khi điều này là đúng về mặt kỹ thuật, có nhiều cách khác để có được con đường bên cạnh việc mã hóa nó. – Abion47

+0

@ Abion47 Chắc chắn, có các lớp thư mục đặc biệt, vv, nhưng điều đó không vượt qua được vấn đề cơ bản khi khởi chạy một exe bất kể nó nằm ở đâu. – BradleyDotNET

0

Nếu tôi hiểu bạn một cách chính xác, thực thi là trong tầm tay của bạn, vì vậy chỉ cần đặt nó trong thư mục dự án và không chỉ định bất kỳ đường dẫn (mặc định là một đường dẫn tương đối):

Process.Start("Photoshop.exe"); 
+0

Điều đó có vẻ rất khó xảy ra trừ khi anh ta đang viết một ứng dụng được cài đặt cùng với photoshop – BradleyDotNET

+0

@ Dr.Haimovitz Tôi nghĩ bạn không thể chạy tất cả appa bằng mã của bạn. Có một số ứng dụng như notepad bạn có thể chạy mà không cần đường dẫn! –

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