Domanda

So che questo può essere un lungo tiro così mi perdoni come io non so davvero più di tanto su COM.

Fondamentalmente quello che sto cercando di fare è ottenere il puntatore IUnknown per un'applicazione in esecuzione, il problema è l'unica cosa che so di che l'applicazione è il suo principale handle di finestra.

Questo sarebbe possibile?

È stato utile?

Soluzione

Il modo "standard" per farlo è con il AccessibleObjectFromWindow Win32. Detto questo, non molte cose in realtà supportano questa, così il vostro chilometraggio può variare. Faresti PInvoke per AccessibleObjectFromWindow, passare il HWND, quindi utilizzare Marshal.GetObjectForIUnknown sul IntPtr torni.

Altri suggerimenti

A volte sì, se la finestra è nel vostro processo (altrimenti un puntatore in un altro processo è privo di significato per voi) e scrittore della finestra esplicitamente dirvi che si aspetta un messaggio e la restituzione di un interfaccia. Per lo più no, la gente di solito non scrivono hack quando non v'è alcuna necessità di invio di messaggi e sconosciuti allo scrittore avrebbe un comportamento imprevedibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top