Articles of pinvoke

Comment puis-je marshall un pointeur sur un pointeur d’un tableau de structures?

Mes déclarations C sont les suivantes: int myData(uint myHandle, tchar *dataName, long *Time, uint *maxData, DATASTRUCT **data); typedef struct { byte Rel; __int64 Time; char Validated; unsigned char Data[1]; } DATASTRUCT ; Mes déclarations C # sont les suivantes: [DllImport(“myData.dll”, EntryPoint = “myData”)] public static extern int myData(uint myHandle, [MarshalAs(UnmanagedType.LPTStr)] ssortingng dataName, out long Time, […]

Détecter Ctrl + V avec RegisterHotKey mais ne pas l’intercepter

Je dois détecter quand un utilisateur appuie sur Ctrl + V (quel que soit le focus de la fenêtre – mon application sera probablement réduite au minimum), mais je ne dois pas arrêter l’opération de collage réelle. J’ai essayé quelques choses: (je lie avec succès aux frappes avec RegisterHotKey) J’ai: protected override void WndProc(ref Message […]

Besoin d’activer une fenêtre

J’ai une situation comme celle-ci. J’ai le handle de fenêtre d’une application. J’ai besoin de l’activer. J’ai essayé toutes ces fonctions mais je ne travaille pas toujours (la plupart du temps, cela ne fonctionne pas la première fois et il faut que je clique dessus manuellement pour l’activer. Je le fais parce que j’ai du […]

Comment afficher la boîte de dialog des propriétés / préférences de l’imprimante et enregistrer les modifications?

EDIT: de ma faute! Je m’attendais à ce que les modifications soient réécrites dans les parameters d’imprimante par défaut alors qu’en fait seule l’instance locale de PrinterSettings est modifiée. – Le code ci-dessous semble fonctionner comme prévu J’essaie d’afficher les propriétés d’imprimante personnalisées d’une imprimante donnée. J’ai besoin de cela dans le cadre d’un PrintDialog […]

Comment puis-je passer un const char * à une fonction C à partir de C #?

J’essaie d’appeler une fonction C simple à partir d’une DLL externe à partir de mon application C #. Cette fonction est définie comme void set_param(const char *data) Maintenant, j’ai quelques problèmes pour utiliser cette fonction: Comment spécifier ce “const” dans le code C #? public static extern void set_param(sbyte *data) semble manquer la partie “const”. […]

C # P / Invoke: structures de Marshalling contenant des pointeurs de fonction

Désolé pour l’introduction verbeuse qui suit. J’ai besoin de perspicacité de la part de quelqu’un connaissant mieux que moi les éléments internes de P / Invoke. Voici comment je regroupe des structures contenant des pointeurs de fonction de C à C #. J’aimerais savoir si c’est le moyen le plus propre et / ou le […]

caractère équivalent * en C #

J’ai un DLL qui est écrit en c ++. Et je p / invoquant pour appeler les fonctions. J’ai cette déclaration c ++. int dll_registerAccount(char* username, char* password); J’ai fait cette déclaration dllimport: [DllImport(“pjsipDlld”)] static extern int dll_registerAccount(IntPtr username, IntPtr password); Mon DllImport serait-il l’équivalent du c ++ utilisant IntPtr? Merci beaucoup pour tout conseil,

Impossible d’utiliser pinvoke pour envoyer WM_CLOSE à une fenêtre de l’Explorateur Windows

J’ai une application C # qui utilise la méthode pinvoke SendMessage pour envoyer un message “Fenêtre fermée” (WM_CLOSE / 16) à différentes fenêtres extérieures à l’application. Cela fonctionne très bien, sauf lorsque la fenêtre en question est une fenêtre de l’Explorateur Windows. Je ne reçois pas d’exception, mais la fenêtre ne se ferme pas. Voici […]

Comment mapper les types Win32 aux types C # lors de l’utilisation de P / Invoke?

J’essaie de faire quelque chose comme ça en C #. J’ai découvert comment appeler les méthodes Win32 à partir de C # en utilisant P / Invoke à partir de ce lien . Cependant, j’ai rencontré des difficultés pour implémenter P / Invoke. Par exemple, une des méthodes auxquelles j’aimerais accéder est PdhOpenQuery , signature: […]

Comment charger et décharger dynamicment un fichier DLL natif?

J’ai des fichiers DLL tiers bogués qui, après un certain temps d’exécution, lancent les exceptions de violation d’access. Lorsque cela se produit, je souhaite recharger ce fichier DLL. Comment je fais ça?