Título: Id de procesos [VB.NET]
Publicado por: Grave en 9 Noviembre 2007, 19:42 pm
Hola necesito ayuda con una funcion que devuelva las ids de procesos o algo parecido a la herramienta tasklist, para usarlo con la funcion AppAtivate, el codigo es este: Dim ProcID as Integer ProcID = CInt(TextBox1.Text) AppActivate(ProcID) My.Computer.Keyboard.SenKey(TextBox2.Text, True) 'Resto del codigo
Estoy aprendiendo y la verdad veo muy cutre que se tenga que escribir el ID del proceso (aunque tambien se puede escribir el titulo de la venta con una modificacion), lo que quisiera es que apareciera una pequeña lista en un listbox con los procesos y cuando se seleccione uno "ProcID" obtenga el valor de su ID, o tambien uno con los titulos de las ventanas, de paso si me ayudan con una funcion como el Sleep de VB6 porque a veces no envia las teclas si el cambio es muy rapido, espero y me ayuden
Título: Re: Id de procesos [VB.NET]
Publicado por: gusman en 9 Noviembre 2007, 21:19 pm
Buenas.
Si quieres enumerar los procesos de la máquina, puedes extraer una matriz de procesos usando System.Diagnostics.Process.GetProcesses(), desde ahí puedes recorrer esta matriz para sacar la ID del mismo.
Un saludo.
Título: Re: Id de procesos [VB.NET]
Publicado por: Grave en 12 Noviembre 2007, 20:30 pm
Gracias por responder, eso de los nombres ya lo hice, pero de ahí a lo de las IDs no encontre nada, me serviria de mucho que me dijeras cual es la funcion para sacar las ID, o el algoritmo
Título: Re: Id de procesos [VB.NET]
Publicado por: Grave en 13 Noviembre 2007, 21:35 pm
Solventado Private Sub EnumProcesses() ' Enumerate all processes Try Dim Processes() As Process
' Timespans for individual process information Dim tpt As TimeSpan Dim tppt As TimeSpan Dim tupt As TimeSpan
' Timespans for machine Dim mtpt As TimeSpan Dim mtppt As TimeSpan Dim mtupt As TimeSpan
Dim i As Integer Dim p As Process
If Not mcolProcesses Is Nothing Then mcolProcesses = New Collection() End If
If Me.lvProcesses.Items.Count > 0 Then Me.lvProcesses.Items.Clear() Me.lvProcessDetail.Items.Clear() Me.lvThreads.Items.Clear() End If Processes = Process.GetProcesses()
For Each p In Processes mcolProcesses.Add(p, p.Id.ToString())
' Get processor time and store tppt = p.PrivilegedProcessorTime tupt = p.UserProcessorTime tpt = p.TotalProcessorTime
' Add the current process’ times to total times. mtpt = mtpt.Add(tpt) mtppt = mtppt.Add(tppt) mtupt = mtupt.Add(tupt)
' % User Processor Time Dim strPUPT As String = CDbl(tupt.Ticks / tpt.Ticks).ToString("#0%") ' % Privileged Processor Time Dim strPPPT As String = CDbl(tppt.Ticks / tpt.Ticks).ToString("#0%")
Dim strTPT As String With tpt strTPT = (.Days.ToString("00") & "." & .Hours.ToString("00") & ":" & .Minutes.ToString("00") & ":" & .Seconds.ToString("00")) End With
With Me.lvProcesses.Items.Add(p.ProcessName & " (0x" & Hex(p.Id).ToLower() & ")") .SubItems.Add(p.Id.ToString()) .SubItems.Add(strTPT) .SubItems.Add(strPPPT) .SubItems.Add(strPUPT) End With Next
' % Total User Processor Time Dim mstrPUPT As String = CDbl(mtupt.Ticks / mtpt.Ticks).ToString("#0%") ' % Total Privileged Processor Time Dim mstrPPPT As String = CDbl(mtppt.Ticks / mtpt.Ticks).ToString("#0%")
Dim mstrTPT As String With mtpt mstrTPT = (.Days.ToString("00") & "." & .Hours.ToString("00") & ":" & .Minutes.ToString("00") & ":" & .Seconds.ToString("00")) End With
' Add entry for all processes With Me.lvProcesses.Items.Add(PROCESS_NAME_TOTAL) .SubItems.Add(PID_NA) .SubItems.Add(mstrTPT) .SubItems.Add(mstrPPPT) .SubItems.Add(mstrPUPT) End With Catch exp As Exception MessageBox.Show(exp.Message, exp.Source, MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub
Título: Re: Id de procesos [VB.NET]
Publicado por: mmob en 14 Noviembre 2007, 09:56 am
No entiendo muy bien lo que quieres, pero puedes mirar esta direccion http://www.elguille.info/NET/dotnet/procesos.htm a ver si van por ahi los tiros.
Título: Re: Id de procesos [VB.NET]
Publicado por: elmaro en 6 Diciembre 2007, 15:41 pm
para usar el sleep pones esto System.Threading.Thread.Sleep(2000) 2000 milisegundos = 2 segundos saludos
|