PDA

View Full Version : [VB.NET] Handle o hwnd di Interop.Word.Application


canax
10-11-2009, 08:18
Ciao vorei sapere se é possibile conoscere l'handle di un
microsoft.office.Interop.Word.Application, perchè una volta aperta la finestra word vorrei metterla in un pannello all'interno della mia applicazione!

Grazie

MarcoGG
10-11-2009, 12:29
Ma non avevi già la soluzione qui ?

http://www.hwupgrade.it/forum/showthread.php?t=2080573

Se l'applicazione Word va aperta in un Panel, anzichè direttamente nella Form, bastava :

SetParent(P.MainWindowHandle, Panel1.Handle)

canax
11-11-2009, 09:37
si questo funziona, ma il problema é che nn risco ad avere l'handle del processo visto che creo l'oggetto, e non faccio proces.star("winword.exe")

x avere l'handle ho dovuto fare una ricerca con:
proces = Process.GetProcessesByName("WINWORD")
dim handle as integer = process.handle()


xò così se ci sono piu word aperti rischio di prendere l'identificatore sbagliato e non quello appena aperto.

MarcoGG
11-11-2009, 09:52
si questo funziona, ma il problema é che nn risco ad avere l'handle del processo visto che creo l'oggetto, e non faccio proces.star("winword.exe")

x avere l'handle ho dovuto fare una ricerca con:
proces = Process.GetProcessesByName("WINWORD")
dim handle as integer = process.handle()

xò così se ci sono piu word aperti rischio di prendere l'identificatore sbagliato e non quello appena aperto.

Beh, ma se fai così ti ritrovi lo stesso Handle che avresti semplicemente interrogando la proprietà .Handle del Process P... :rolleyes:

Cmq, anche se non ho capito il perchè del tuo agire, puoi sempre interrogare i processi di tipo "WinWord" con Process.GetProcessesByName("WINWORD"), prima di creare il tuo, ottenendo una lista.
L'Handle che "rimane fuori dalla lista", dopo la creazione, sarà l'ultimo arrivato, ossia il tuo.

canax
11-11-2009, 10:04
Grazie x il trucco di farmi dare la lista prima e dopo la creazione, nn ci avevo pensato :) !

Cmq creo l'oggetto e nn faccio partire il processo winword.exe, perchè cosi ho a disposizione tutti i metodi per interagire con word da vb.