2012-06-16 95 views
7

Tôi muốn ứng dụng của tôi (WPF Window) được khởi chạy khi khởi động Windows. Tôi đã thử các giải pháp khác nhau, nhưng không ai có vẻ làm việc. Những gì tôi phải viết trong mã của tôi để làm điều này?Khởi chạy Window khi khởi động Windows

+1

Giải pháp bạn đã thử là gì? – BoltClock

+0

Tôi đã cố gắng viết một khóa registry: HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run – Nick

+0

Và bạn có đăng nhập không? Trong mọi trường hợp, bạn lưu trữ gì trong khóa đăng ký? Giải pháp đó sẽ hoạt động. –

Trả lời

13

Bạn đúng khi bạn nói rằng bạn phải thêm khóa vào sổ đăng ký.

Thêm một chìa khóa để:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

nếu bạn muốn khởi động ứng dụng cho người dùng hiện.

Hoặc:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

Nếu bạn muốn bắt đầu nó cho tất cả người dùng.

Ví dụ, bắt đầu ứng dụng cho người dùng hiện:

var path = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; 
RegistryKey key = Registry.CurrentUser.OpenSubKey(path, true); 
key.SetValue("MyApplication", Application.ExecutablePath.ToString()); 

Chỉ cần thay thế dòng thứ hai phù hợp với

RegistryKey key = Registry.LocalMachine.OpenSubKey(path, true); 

nếu bạn muốn tự động khởi động ứng dụng cho tất cả người dùng trên Windows khởi động .

Chỉ cần xóa giá trị đăng ký nếu bạn không muốn tự động khởi động ứng dụng nữa.

Như vậy:

var path = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; 
RegistryKey key = Registry.CurrentUser.OpenSubKey(path, true); 
key.DeleteValue("MyApplication", false); 

mẫu mã này đã được thử nghiệm cho một ứng dụng WinForms. Nếu bạn cần xác định đường dẫn đến tệp thực thi cho ứng dụng WPF, hãy thử sau.

string path = System.Reflection.Assembly.GetExecutingAssembly().Location; 

Chỉ cần thay thế "Application.ExecutablePath.ToString()" bằng đường dẫn đến tệp thực thi của bạn.

+0

[Ứng dụng] (http://msdn.microsoft.com/en-us/library/system.windows.application_members (v = vs.90)) không có ExecutablePath. – Nick

+0

Mã mẫu này dành cho ứng dụng Windows Forms. Bạn cần có đường dẫn đến tệp thực thi theo cách khác cho các ứng dụng WPF. –

+0

Nó hoạt động! Nếu tôi muốn xóa hành vi này, tôi có phải xóa khóa không? Bạn có thể chỉ cho tôi như thế nào? – Nick

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