2010-01-25 13 views
9

Est-ce que quelqu'un connaît l'existence d'un wrapper géré .NET autour des fonctionnalités de l'API Windows qui n'est pas disponible dans le framework .NET lui-même?Enveloppe .NET pour la fonctionnalité de l'API Windows

domaines tels que la création de la fenêtre et styles d'affichage, la manipulation de contrôle de l'interface utilisateur commune, clavier/souris d'entrée, des informations de fichiers et le disque, la mémoire mappée fichiers etc

Je suis un habitué au visiteur http://www.pinvoke.net/ et trouver une grande ressource . Cependant devoir utiliser directement DllImport de fonctions et ensuite localiser les structures et les énumérations requises chaque fois est lent et sujet à l'erreur.

(je réalise faire des choses dans 100% du code managé, si possible, est presque toujours la meilleure approche, mais il y a beaucoup de choses, en particulier dans les Windows Forms où vous ne pouvez pas le faire en utilisant uniquement le code managé.)

En se concentrant sur Windows XP pour l'instant, mais peut-être passer à Windows 7 dans le futur.

+0

avez-vous méprenez pas gérés et non gérés? la terminologie? juste curieux .. – nawfal

Répondre

7

Pour Windows 7/Vista, Microsoft a publié un Windows® API Code Pack:

Windows® API Code Pack pour Microsoft .NET Framework fournit une bibliothèque de code source qui peut être utilisé pour accéder à certaines fonctionnalités de Windows 7 et Windows Vista à partir du code managé Ces fonctionnalités Windows ne sont pas disponibles pour les développeurs dans le .NET Framework.

10

Un projet sur SourceForge appelé Managed Windows API semble fournir les fonctionnalités requises.

Il semble ne pas avoir été mis à jour depuis environ un an, mais semble toujours très prometteur. Certaines fonctionnalités WinAPI encapsulées incluent:

  • Paramètres de fenêtre généraux.
  • Commandes ListView et TreeView.
  • Sons et audio.
  • Accessibilité.
  • Entrée clavier et souris.
  • Crochets du système de bas niveau.

Voici le on-line documentation.

+3

Notez que sa licence est LGPL. –