Code/C#
PInvoke SetForegroundWindow Sample Code
Hide Code
2008. 1. 14. 11:53
SetForegroundWindow 메쏘드를 이용한 샘플 코드이다.
1초에 한번씩 노트패드에 "abc " 스트링을 입력을 하는 것이다.
using System;
using System.Diagnostics;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace ControlHandle
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.timer1.Interval = 1000;
this.timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
Process[] processes = Process.GetProcessesByName("notepad");
foreach (Process process in processes)
{
IntPtr hWnd = process.MainWindowHandle;
this.textBox1.Text += hWnd.ToString() + Environment.NewLine;
SetForegroundWindow(hWnd);
SendKeys.SendWait("abc ");
}
}
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
}
}
아래는 실행 결과 화면이다.
1초에 한번씩 노트패드에 "abc " 스트링을 입력을 하는 것이다.
using System;
using System.Diagnostics;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace ControlHandle
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.timer1.Interval = 1000;
this.timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
Process[] processes = Process.GetProcessesByName("notepad");
foreach (Process process in processes)
{
IntPtr hWnd = process.MainWindowHandle;
this.textBox1.Text += hWnd.ToString() + Environment.NewLine;
SetForegroundWindow(hWnd);
SendKeys.SendWait("abc ");
}
}
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
}
}
아래는 실행 결과 화면이다.