elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Obtener EXEpath de la ventana activa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener EXEpath de la ventana activa  (Leído 2,159 veces)
bybaal

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Obtener EXEpath de la ventana activa
« en: 17 Abril 2023, 05:37 am »

He estado buscando y no logro encontrar la forma de obtener la ruta de la aplicación de la ventana activa, alguien tiene alguna idea de como sería


En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Obtener EXEpath de la ventana activa
« Respuesta #1 en: 17 Abril 2023, 07:07 am »

Hola!

El primer ejemplo que armé sacado de consultas de Google (notepad debe estar corriendo):

Código
  1. using System;
  2. using System.Diagnostics;
  3. using System.Runtime.InteropServices;
  4.  
  5. namespace test {
  6.    internal class Program {
  7.  
  8.        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
  9.        private static extern int GetWindowThreadProcessId(IntPtr handle, out uint processId);
  10.  
  11.        public static string GetProcessPath(IntPtr hwnd) {
  12.            uint pid = 0;
  13.            GetWindowThreadProcessId(hwnd, out pid);
  14.            Process proc = Process.GetProcessById((int)pid);
  15.            return proc.MainModule.FileName.ToString();
  16.        }
  17.  
  18.        static void Main(string[] args) {
  19.            Process[] processes = Process.GetProcessesByName("notepad");
  20.  
  21.            foreach (Process p in processes) {
  22.                IntPtr windowHandle = p.MainWindowHandle;
  23.                Console.WriteLine(GetProcessPath(windowHandle));
  24.            }
  25.            Console.ReadKey();
  26.        }
  27.    }
  28. }
  29.  

Algo a tener en cuenta es lo bits de tu ejecutable con los bits del ejecutable que quieres localizar. Si creas el tuyo como x86 y el target es x64, no funcionará. Deberás crear el tuyo como x64 para poder acceder a los de procesos de 64 bits.

Saludos!


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

bybaal

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: Obtener EXEpath de la ventana activa
« Respuesta #2 en: 17 Abril 2023, 07:40 am »

Creo que con el pedazo de código que tengo me puedo explicar mejor

Código
  1. Imports System.Runtime.InteropServices
  2.  
  3. Public Class Form1
  4.  
  5.    Private WithEvents tmr As New Timer With {.Interval = 100, .Enabled = True}
  6.  
  7.    <DllImport("user32.dll")>
  8.    Private Shared Function GetForegroundWindow() As IntPtr
  9.    End Function
  10.  
  11.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  12.  
  13.    End Sub
  14.  
  15.    Private Sub tmr_Tick(sender As Object, e As EventArgs) Handles tmr.Tick
  16.        Dim hWnd As IntPtr = GetForegroundWindow()
  17.        Text = hWnd
  18.  
  19.        'Aquí necesito obtener la ruta de la aplicación que tiene la ventana activa
  20.        'usando el hWnd que me devuelve la API GetForegroundWindow
  21.        'o de alguna otra manera
  22.        'Lo importante es que se obtenga la ruta de la aplicación que tiene la ventana activa
  23.  
  24.    End Sub
  25.  
  26. End Class
  27.  
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Obtener EXEpath de la ventana activa
« Respuesta #3 en: 17 Abril 2023, 15:43 pm »

Hola!

En mi ejemplo, deberías usar la funcion GetProcessPath (fijate que recibe un hWnd y devuelve un string con el path).

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Titulo de Ventana activa
Programación Visual Basic
jorson 5 4,348 Último mensaje 3 Enero 2006, 15:46 pm
por Kizar
Ventana activa
Programación Visual Basic
Meg 2 2,208 Último mensaje 9 Junio 2006, 01:26 am
por Meg
Obtener ventana activa real
.NET (C#, VB.NET, ASP)
mmob 2 2,605 Último mensaje 16 Noviembre 2007, 10:08 am
por mmob
[¿?]Obtener url de ventana activa del navegador
Programación Visual Basic
Mambaa 4 4,743 Último mensaje 26 Abril 2011, 17:38 pm
por Mambaa
Como mantener una ventana no activa, activa, al cambiar de ventana
Programación General
traviatØ 0 3,968 Último mensaje 16 Junio 2011, 02:55 am
por traviatØ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines