2012-02-29 11 views
7

Có "Dự án thiết lập" trong VS. Trong quá trình cài đặt, tôi khởi chạy một quy trình khác:Quy trình chạy theo người dùng hiện tại

System.Diagnostics.Process process = new System.Diagnostics.Process(); 
//fill StartInfo and run call Start() 
process.Start(); 

Nếu tôi chạy trình cài đặt trong Windows 7 và cài đặt cho "Mọi người", quá trình bắt đầu trong SYSTEM. Nếu tôi cài đặt "Chỉ cho tôi", hãy bắt đầu quá trình trong Người dùng hiện tại. Làm cách nào để tôi luôn bắt đầu quá trình trong Người dùng hiện tại?

Trả lời

4

Tôi đã tìm thấy rất đơn giản solution. Tất cả những gì bạn cần chỉ cần tạo một lớp mới và sao chép văn bản từ liên kết này.

Để khởi chạy quá trình gọi ProcessAsUser.Launch("program name");

-1

Sử dụng lớp ProcessStartInfo và thuộc tính của nó UserName, sau đó sử dụng nó làm đối số cho phương thức tĩnh Process.Start.

ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 
Process.Start(startInfo); 
+0

Tôi đã thử nó trước đây, nhưng tôi nhận được thông báo lỗi tiếp theo: "Các stud nhận dữ liệu xấu". Và tôi không biết cách khắc phục vấn đề này. – kralex

+0

còn mật khẩu thì sao? điều này sẽ không làm việc mà không có nó :) – John

0

Tôi đã có một vấn đề tương tự: mở rộng thiết lập của tôi (tùy chỉnh hành động) cần đặc quyền quản trị mà đã đưa ra một hộp cao. Sau khi tôi bắt đầu ứng dụng của mình vào cuối "Just for Me", quy trình đã có các cài đặt được tạo cho ngữ cảnh quản trị. Ví dụ: tài khoản người dùng của tôi thích xem tất cả các phần mở rộng của tệp trong Windows Explorer nhưng tài khoản quản trị đã được định cấu hình để ẩn chúng. Vì vậy, trong mỗi tập tin mở hộp tôi không thể nhìn thấy các phần mở rộng. Để khắc phục điều này, đoạn mã này hoạt động:

ProcessStartInfo startInfo = new ProcessStartInfo(ShortcutTarget); 
startInfo.LoadUserProfile = true; 
startInfo.UseShellExecute = false; 
Process.Start(startInfo); 

Chỉ hoạt động ở chế độ "Chỉ cho tôi", trong "Mọi người" cài đặt của quản trị viên được sử dụng. Nhưng điều này là ok cho tôi.