diff --git a/trunk/ProcessHacker/Components/ServiceProperties.cs b/trunk/ProcessHacker/Components/ServiceProperties.cs
index 4f0291b6a..bfce3fbe9 100644
--- a/trunk/ProcessHacker/Components/ServiceProperties.cs
+++ b/trunk/ProcessHacker/Components/ServiceProperties.cs
@@ -215,6 +215,23 @@ namespace ProcessHacker
{
textDescription.Text = "";
}
+
+ try
+ {
+ using (ServiceController controller = new ServiceController(
+ listServices.SelectedItems[0].Name))
+ {
+ if (controller.DependentServices.Length == 0)
+ buttonDependents.Enabled = false;
+ if (controller.ServicesDependedOn.Length == 0)
+ buttonDependencies.Enabled = false;
+ }
+ }
+ catch
+ {
+ buttonDependents.Enabled = false;
+ buttonDependencies.Enabled = false;
+ }
}
catch (Exception ex)
{
diff --git a/trunk/ProcessHacker/Providers/Provider.cs b/trunk/ProcessHacker/Providers/Provider.cs
index d79d115c6..84636037c 100644
--- a/trunk/ProcessHacker/Providers/Provider.cs
+++ b/trunk/ProcessHacker/Providers/Provider.cs
@@ -126,8 +126,16 @@ namespace ProcessHacker
/// Creates a new instance of the Provider class.
///
public Provider()
+ : this(null)
+ { }
+
+ ///
+ /// Creates a new instance of the Provider class, specifying a
+ /// custom equality comparer.
+ ///
+ public Provider(IEqualityComparer comparer)
{
- _dictionary = new Dictionary();
+ _dictionary = new Dictionary(comparer);
_thread = new Thread(new ThreadStart(Update));
_thread.SetApartmentState(ApartmentState.STA);
diff --git a/trunk/ProcessHacker/Providers/ServiceProvider.cs b/trunk/ProcessHacker/Providers/ServiceProvider.cs
index 310ba7e07..d3830e319 100644
--- a/trunk/ProcessHacker/Providers/ServiceProvider.cs
+++ b/trunk/ProcessHacker/Providers/ServiceProvider.cs
@@ -37,9 +37,9 @@ namespace ProcessHacker
public class ServiceProvider : Provider
{
public ServiceProvider()
- : base()
+ : base(StringComparer.InvariantCultureIgnoreCase) // Windows is case-insensitive with services
{
- this.ProviderUpdate += new ProviderUpdateOnce(UpdateOnce);
+ this.ProviderUpdate += new ProviderUpdateOnce(UpdateOnce);
}
public void UpdateServiceConfig(string name, Win32.QUERY_SERVICE_CONFIG config)