嗨,大家好,我有一個奇怪的問題。如何在Windows 7 64位上使用C#從註冊表中獲取所有啓動進程的列表?
我想從註冊表中獲取所有啓動程序的列表 - LocalMachine,CurrentUser,子項Run,RunOnce,RunOnceEx。之後,我能得到的啓動文件夾中的鏈接列表
對於Win64中我發現,啓動程序,在這個關鍵
LOCALMACHINE /軟件/ Wow6432Node /微軟/視窗/ CURRENTVERSION /運行
問題是在這段代碼中,運行它我得到不同的子應用程序列表LocalMachine \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Run而不是描述波紋管LocalMachine \ Software \ Microsoft \ Windows \ CurrentV ersion \ Run
這是正常的嗎?
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false);
foreach (string appName in key.GetValueNames())
{
try
{
MessageBox.Show(appName);
}
catch (Exception ex)
{
}
}
我tryed使用此WMI solution但它沒有得到所有啓動的應用程序。這就是爲什麼我決定從註冊表中手動獲取它們的原因。
- 這個腳本是否正確,以及它爲什麼不做它應該做的事情?
是否有任何其他方式獲取所有啓動應用程序和進程?
由於
偷偷摸摸,但可以理解。 – Amy 2010-12-16 00:36:15
謝謝薩姆,問題是我在64位Windows上使用32位應用程序。而我正在使用VS 2010 Express。所以編譯64位應用程序有點棘手。但現在一切都很好。無需probs即可獲取所有註冊表項。再次感謝! – nasko7 2010-12-16 05:30:52