Hallo nochmal!
Ja, P/Invoke („platform invoke“) entspricht im wesentlichen dem Declare von VB. Du rufst letztlich Betriebssystemfunktionen direkt auf.
Dass C# oder VB.NET Code nur läuft, wenn das .NET Framework installiert ist, versteht sich von selbst. Das meinte ich aber auch nicht. Mit Process.GetProcesses() hatte ich in der Vergangenheit schon etliche Probleme.
- Funktioniert das nicht, wenn der Benutzer nur eingeschränkte Rechte hat, wenn ich mich recht erinnere.
- Gibt es Systeme, auf denen gewisse Performance-Counter deaktiviert oder defekt sind, wodurch Du dann eine InvalidOperationException bekommst, die ganz bescheiden zu beheben ist.
Die Win32-Funktion FindWindow() hat diese Einschränkungen nicht und ist - wie gesagt - um Größenordnungen schneller.
Aber wenn Du partout nicht willst…
Gruß,
Martin