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);
}
}
아래는 실행 결과 화면이다.
'Code > C#' 카테고리의 다른 글
| [C#] Extension Methods 사용법 (0) | 2008.02.11 |
|---|---|
| [C#] const vs readonly (0) | 2008.02.11 |
| Process Class Sample Code 1 (0) | 2008.01.14 |
| GenericDictionaryXmlSerializer 클래스 2 사용 예제 (0) | 2007.12.16 |
| Generic Dictionary Xml Serialization C# Example 2 (0) | 2007.12.16 |