title: How to detect if a virusscanner and/or firewall is installed? (And a few other security-related Q's.)
body: <p>I have an application and I'm trying to make sure it's running in a secure environment. First of all, I check if <a href="https://stackoverflow.com/questions/1458896/how-to-detect-if-a-windows-version-is-legal-or-not">Windows is genuine</a>, which makes it more likely that the user keeps it up-to-date. If not, I just pop up a message warning the user there's a possible risk because he still needs to validate Windows.</p>
  
  <p>Now, I want to do a bit more. I also want to check if the user has installed a virusscanner. I don't care which one, as long as he has installed one. Then the same for checking if a firewall is installed. And if possible, I want to check when the user updated his Windows/Scanner/Firewall the last time just to make sure it's not too old. So:</p>
  
  <p>1) How do I check if a virusscanner is installed?<br />
  2) How do I determine when the virusscanner was updated?<br />
  3) How to detect when the virusscanner did it's last full-system check?<br />
  4) How do I detect if a firewall is installed and active?<br />
  5) How do I check when Windows received it's most recent update?</p>
  
  <p>Basically, when my application starts I want to display a screen with warnings (just once per day) just in case any of these things have a problem. This because my application works with all kinds of sensitive information that the user collects from his clients. (Which includes bank account numbers, ID numbers of passports, NAW+DOB, income and a lot more.) Basically, if the system has a problem, the user must confirm that he's aware of these problems. It takes the possible liability away from my application if he continues while knowing his system is possibly insecure...<hr />And language? Basically C++ or Delphi for WIN32 examples and C# for .NET examples. It's more about .NET/Windows API/.NET than language.</p>