[VB.NET 2008]Passare comando ad applicazione esterna

domenica 30 novembre 2008 - 14.56

aleroot Profilo | Junior Member

Dalla mia applicazione lancio un'apllicativo esterno, una volta lanciato dopo 3 secondi dovrei mandargli il comando invio della tastiera, è possibile ?

Come posso fare ?

freeteo Profilo | Guru

Ciao,
devi sapere l'handle, e mandargli il tasto tramite "SendMessage", qualcosa di questo tipo:
Dim p As Process = New Process p.StartInfo.FileName = "c:\...\file.exe" p.Start Thread.Sleep(5000) SendKeys.Send("{ENTER}")
però attenzione che questo funziona solo se la finestra ha il fuoco perchè il SendMessage non fa altro che simulare la pressione del tasto.
Non so se possa andarti bene, altrimenti bisogna pensare di mandare tramite API "SendMessage" di Windows,quindi con un codice leggermente più complicato.


Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

aleroot Profilo | Junior Member

ok, quando lancio applicazione esterna con pstart, posso anche dargli il focus(all'applicazione esterna) ?

freeteo Profilo | Guru

Ciao,
allora diciamo che se l'utente non sta cliccando ingiro per le finestre di windows, quella applicazione ha il focus quindi non hai problemi.
Chiaro che se si sposta con il cursore finchè sta partendo il processo allora no...si può fare lo stesso ma bisogna passare tramite API di Windows...


Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5