가상 키보드와 같은 소프트웨어를 만들고 싶다면 AlwaysTop 창을 사용하고 다른 프로세스/창에 데이터를 넣으십시오. 이 경우 모든 데이터를 클립 보드에 기록하고이 데이터가 패턴과 호환되는지 비교합니다 (A###
은 patern이고 A123
은 patern과 호환 됨). 그렇다면 응용 프로그램에서이를 목록 상자에 넣고 사용자가 붙여 넣을 수 있습니다 다른 프로세스/windows (이미 열려있는) 목록에있는 항목을 클릭하십시오.배경 창/프로세스를 상단에 놓는 방법
제 질문은 마지막 응용 프로그램/프로세스에이 정보를 저장하는 방법에 관한 것입니다. 이미 프로토 타입의 코드를 시작했지만 표시된 코드가 잘못되었습니다. 내 코드에서 현재 프로세스이므로 클릭하기 전에 마지막으로 사용해야합니다. 내 양식에.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("user32.dll")]
static extern IntPtr SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
internal static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("User32.dll")]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
private void button2_Click(object sender, EventArgs e)
{
Process currentProcess = Process.GetCurrentProcess(); //this line is wrong
IntPtr hWnd = currentProcess.MainWindowHandle; //this line is wrong
if (hWnd != IntPtr.Zero)
{
SetForegroundWindow(hWnd);
ShowWindow(hWnd, 9);
SendKeys.Send("A123");
}
}
}
}