Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#581
Cita de: rigorvzla en  8 Enero 2019, 17:41 PMcomo podria obtener el nombre de un proceso seleccionado desde un listbox?

Si solo conoces el nombre del proceso entonces debes usar la función Process.GetProcessesByName() (como en el ejemplo que te mostré.). Dicha función devolverá un Array, puesto que puede haber más de un proceso en ejecución con el mismo nombre, por ende, debes utilizar algún criterio adicional para elegir un único proceso del Array. Lo ideal es que te asegures de conocer el identificador de proceso (PID), ya que dicho identificador es único, y de esa manera puedes usar la función Process.GetProcessById() para devolver un único proceso / elemento...

un ejemplo:

VB.NET:
Código (vbnet) [Seleccionar]
Dim prDict As New SortedDictionary(Of String, Integer)(
   Process.GetProcesses().ToDictionary(Function(pr) String.Format("{0} [{1}]", pr.ProcessName, pr.Id),
                                       Function(pr) pr.Id), StringComparer.Ordinal)

Me.ListBox1.DataSource = prDict.Keys.ToList()

...
Código (vbnet) [Seleccionar]
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim lb As ListBox = DirectCast(sender, ListBox)
Dim pid As Integer = prDict(lb.SelectedItem.ToString())
Dim pr As Process = Process.GetProcessById(pid)
' ...
End Sub


C#:
Código (csharp) [Seleccionar]
SortedDictionary<string, int> prDict =
   new SortedDictionary<string, int>(Process.GetProcesses().ToDictionary(
       (pr) => string.Format("{0} [{1}]", pr.ProcessName, pr.Id), (pr) => pr.Id),
       StringComparer.Ordinal);

this.listBox1.DataSource = prDict.Keys.ToList();

...
Código (csharp) [Seleccionar]
private void listBox1_SelectedIndexChanged(object sender, EventArgs e) {
   ListBox lb = (ListBox)sender;
   int pid = prDict[lb.SelectedItem.ToString()];
   Process pr = Process.GetProcessById(pid);
   // ...
}







Nótese que este ejemplo tan solo tiene el objetivo de demostrarte como solucionar el problema que has descrito. No se tiene en cuenta si un proceso sigue en ejecución o se terminó despues de haber seleccionado el nombre de dicho proceso en el ListBox; para ello siempre puedes utilizar una colección que implemente la interfaz INotifyCollectionChanged (ej. ObservableCollection) y refrescar la lista de procesos en ejecución del ListBox mediante una tasa de refresco a tu elección...

Saludos
#582
Cita de: rigorvzla en  7 Enero 2019, 13:43 PMmi no saber es como enviar por medio de ese nugget una pulsacion de tecla a una ventana NO activa

No puedes.

Cita de: rigorvzla en  7 Enero 2019, 13:43 PMEn resumen, es posible enviar la accion a una ventana no activa una pulsacion de tecla con el inputSimulator?

No. La librería Windows Input Simulator es un wrapper de la función nativa SendInput, y el propósito de dicha función es simular las pulsaciones de teclado, movimientos del mouse o pulsaciones de los botones a la ventana que tenga el foco de entrada activo.

Así pues, ni con SendInput ni con System.Windows.Forms.SendKeys.Send puedes hacer tal cosa, ya que ambos requieren que primero actives el foco de la ventana a la que pretendes enviarle las pulsaciones (función nativa AttachThreadInput + SetFocus, o SetForegroundWindow), lo cual activará dicha ventana.

Creo que todo lo que acabo de explicar ya lo expliqué en el comentario que te sugerí leer. El propósito era evitar la necesidad de volver a explicar lo mismo...

Cita de: rigorvzla en  7 Enero 2019, 13:43 PMde lo contrario, como puedo lograr mi objetivo con el sendkey.

Como ya recomendé en el párrafo que has citado, deberías utilizar las funciones de mensajería de ventana. La más simple para este caso es la función PostMessage, ya que si deseas simular una pulsación del teclado usando la función SendMessage / SendMessageTimeout entonces deberás construir un "parámetro de tecla" más complejo (el cómo construirlo está especificado en la documentación del mensaje de ventana WM_KEYDOWN y WM_KEYUP en docs.microsoft.com / MSDN). Un ejemplo básico:

Código (vbnet) [Seleccionar]

Friend NotInheritable Class NativeMethods

   Private Sub New()
   End Sub

   <DllImport("User32.dll", SetLastError:=True)>
   Friend Shared Function PostMessage(
       <MarshalAs(UnmanagedType.SysInt)> hWnd As IntPtr,
       <MarshalAs(UnmanagedType.U4)> msg As Integer,
       <MarshalAs(UnmanagedType.SysInt)> wParam As IntPtr,
       <MarshalAs(UnmanagedType.SysInt)> lParam As IntPtr
       ) As <MarshalAs(UnmanagedType.Bool)> Boolean
   End Function

End Class

...

Código (vbnet) [Seleccionar]
Public Shared Function SendKeyDown(ByVal hWnd As IntPtr, ByVal key As Integer) As Boolean
   Const WM_KEYDOWN As Integer = 256
   Return NativeMethods.PostMessage(hWnd, WM_KEYDOWN, New IntPtr(key), IntPtr.Zero)
End Function

Public Shared Function SendKeyUp(ByVal hWnd As IntPtr, ByVal key As Integer) As Boolean
   Const WM_KEYUP As Integer = 257
   Return NativeMethods.PostMessage(hWnd, WM_KEYUP, New IntPtr(key), IntPtr.Zero)
End Function

Public Shared Function SendKeyPress(ByVal hWnd As IntPtr, ByVal key As Integer) As Boolean
   Return ((SendKeyDown(hWnd, key) And SendKeyUp(hWnd, key)) = True)
End Function

...

Código (vbnet) [Seleccionar]
Dim hWnd As IntPtr = Process.GetProcessesByName("notepad").Single().MainWindowHandle
Dim key As Integer = System.Windows.Forms.Keys.F5 ' VK_F5 (0x74)

Dim success As Boolean = SendKeyPress(hWnd, key)
If Not (success) Then
   Dim win32ErrCode As Integer = Marshal.GetLastWin32Error()
   Throw New Win32Exception(win32ErrCode)
End If


Saludos.
#584
Cita de: snakeseven en  4 Enero 2019, 17:09 PM
ya probé con net webclient downloadstring

El método WebClient.DownloadString(), como su nombre indica por si mismo se utiliza para descargar el recurso solicitado como un string. Para descargar el recurso a un archivo local, debes usar el método WebClient.DownloadFile(). No hay necesidad de recurrir a aplicaciones de terceros como WGET si estás haciendo uso principálmente de PowerShell / .NET Framework. De todas formas, si no proporcionas una descripción detallada del error (el mensaje de error exacto, y tu código actual) no vas a solucionar ningún problema que tengas.

Saludos.
#585
Vale, ¿pero qué tiene que ver esto con la informática?. (y/o con la política, por ser el segundo tema más tratado en las noticias del foro... que no debería serlo.)

De todas formas la noticia en si misma me parece una tremenda gilipollez, pues te lo venden con un exceso de amarillismo (como de costumbre), como si la gente saliese a la calle con una venda en los ojos a cruzar pasos de peatones, cuando ni siquiera llegan a salir de una habitación de su propia casa...

En fin. No se que pinta Netflix haciendo un comunicado de ningún tipo sobre esto cuando no hay nada que advertir a nadie. ¿acaso alguien ha sufrido un accidente o ha muerto por causa de realizar este "desafío"?, pus eso. Me parece que esto es una forma innecesaria (y absurda) de auto-publicitarse por parte de Netflix. Lo mejor de todo es que el precio de la suscripción a Netflix si que es algo realmente "peligroso" de lo que habría que advertir a todo el mundo. xD

Un saludo.
#586
Foro Libre / Re: Feliz año nuevo.
3 Enero 2019, 04:38 AM
Cita de: Machacador en  2 Enero 2019, 16:28 PM
"Felisaño" todo pegado... como debe ser...

Eso suena muy felino...

#587
Cita de: **Aincrad** en  1 Enero 2019, 17:12 PM
ahora buscare una api para descargar en mp4 y 3gp y la agregare al proyecto.

Hace unos años probé 'libvideo' y me funcionó de maravilla...


Saludos
#588
Cita de: srWhiteSkull en 31 Diciembre 2018, 19:22 PM
Claro, me había olvidado que la tierra es plana, allá acaba el mundo y hay una catarata de agua...

Saludos a ti también,


Eso me parece una respuesta precipitada, pues estás empleando la falacia del hombre de paja para caricaturizar un argumento/opinión el cual no está claro a lo que se refiere esa persona. Quizás él lo dijo por que habría que ser rico para la solución que tu propusiste de ir en expedición (lo cual es como decir que para descubrir si realmente existen los marcianos "solo" tienes que viajar a Marte... con "solo" hacer eso), o quizás también sea por que en teoría el Ártico es una zona "sellada" y militarizada (como supuestamente lo es el Polo Sur), por ejemplo el complejo militar ruso por nombre "Nagursky" en la frontera del Ártico: https://www.infobae.com/america/fotos/2017/04/18/asi-es-la-base-militar-que-rusia-construyo-en-secreto-en-el-artico/

Allá en el Norte literálmente no hay nada, ya no lo hay en esta realidad. Solamente se puede ver un agujero marítimo enorme entre Canadá y Groenlandia...

saludos
#589
Foro Libre / Re: Feliz año nuevo.
31 Diciembre 2018, 12:15 PM
#590
Cita de: buite en 28 Diciembre 2018, 09:48 AM
De todo hay en la viña del señor.

Tienes razón, por ejemplo hay gente que es capaz de leer el contenido de mi publicación, y gente que sin darle mucha importancia a la lectura se cree en el derecho de refutar los argumentos sin haber visto ni leido las evidencias que se ofrecen en el contenido de dicha publicación, dando así lugar a argumentos contradictorios o incoherencias...

Cita de: buite en 28 Diciembre 2018, 09:48 AM
la masa de hielo que está decreciendo a marchas forzadas por el efecto invernadero, hasta el punto en que su desaparición completa en verano ya se da por segura en los próximos decenios.

Te invito a que leas el útimo comentario que publiqué en este thread, el de las imágenes, en particular donde muestro una imagen del año 2017, lo cual contradice tu argumento.

De todas formas, aunque no te contradijeses, daría exactamente igual. Me refiero, yo considero que has cometido una contradicción debido a la prueba irrefutable que he mostrado en esa imagen del año 2017, y estoy comentando al respecto para aclarar ese aspecto, pero mi intención no es demostrar nada, por que aunque tuvieras razón, y aunque esa imagen del año 2017 no existiera... daría completamente igual, sería en vano intentar demostrar o refutar nada, por que ninguna supuesta evidencia ni refutación cambiarían los hechos del cambio de realidad. Si no comprende slo que digo, te entiendo, es dificil de comprender, hay que vivirlo.




@warcry

Por supuesto que soy un ignorante en la cartografía, no me molesta que me llamen ignorante, pues no es mi trabajo hacer mapas de La Tierra, pero precisamente es por eso que recurro a las evidencias (o "residuos") de imágenes satelitales, y, es por esto también que, teniendo estas imágenes satelitales no le encuentro sentido a tu argumento, por que los mapas pueden estar representadas como sea, y vale que tu argumento explicaría "fallos" en representciones, pero... es que teniendo imágenes satelitales, las representaciones de mapas y tu explicación quedarían fuera de lugar para demostrar que solamente se trata de ignorancia...

un saludo.