trovare il hwnd di una finestra che utente seleziona, attraverso c #
-
23-08-2019 - |
Domanda
Ho scritto un programma C # che riproduce colpi di tastiera programatically. La mia idea era di passare questi colpi di tastiera a un'altra applicazione che può avere un insieme di testo a fuoco.
Quindi, nel mio programma voglio all'utente di selezionare la finestra a cui devo reindirizzare i colpi di tastiera a. Per questo, voglio sapere un metodo in cui posso aspettare, lasciare all'utente di selezionare la finestra a cui colpi di tastiera devono essere inviate, e quindi l'utente fa clic su OK relativa alla mia domanda per confermare, e quindi la mia app sa che è la finestra che deve controllo ottenendo è hWnd.
Come posso fare questo?
Soluzione
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Text;
public class MainClass
// Declare external functions.
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
private static extern int GetWindowText(IntPtr hWnd,
StringBuilder text,
int count);
public static void Main() {
int chars = 256;
StringBuilder buff = new StringBuilder(chars);
// Obtain the handle of the active window.
IntPtr handle = GetForegroundWindow();
// Update the controls.
if (GetWindowText(handle, buff, chars) > 0)
{
Console.WriteLine(buff.ToString());
Console.WriteLine(handle.ToString());
}
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow