110,534
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("user32.dll", EntryPoint = "FindWindow")]
public static extern int FindWindow(
string lpClassName,
string lpWindowName
);
[DllImport("user32.dll", EntryPoint = "IsIconic")]
public static extern int IsIconic(
int hwnd
);
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
int h = FindWindow("SciCalc", "计算器");
if (h != 0)
{
this.TopMost =IsIconic(h)==1?true:false;
}
timer1.Enabled = true;
}
private void Form1_Load(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("calc.exe");
timer1.Interval = 1000;
timer1.Enabled = true;
timer1.Tick += new EventHandler(timer1_Tick);
}
}
}
[DllImport("user32.dll", EntryPoint="IsIconic")]
public static extern int IsIconic (
int hwnd
);
使用IsIconic判断窗口是否最小化了
/*
<00001> 002301FA S WM_WINDOWPOSCHANGING lpwp:0498EAB4
<00002> 002301FA R WM_WINDOWPOSCHANGING
<00003> 002301FA S WM_WINDOWPOSCHANGED lpwp:0498EAB4
<00004> 002301FA R WM_WINDOWPOSCHANGED
<00005> 002301FA S WM_ACTIVATEAPP fActive:True dwThreadID:0000168C
<00006> 002301FA R WM_ACTIVATEAPP
<00007> 002301FA S WM_NCACTIVATE fActive:True
<00008> 002301FA R WM_NCACTIVATE
<00009> 002301FA S WM_ACTIVATE fActive:WA_ACTIVE fMinimized:False hwndPrevious:(null)
<00010> 000A0BEA S WM_IME_SETCONTEXT fSet:1 iShow:C000000F
<00011> 000A0BEA S WM_IME_NOTIFY dwCommand:IMN_OPENSTATUSWINDOW dwCommand:00000002 dwData:00000000
<00012> 000A0BEA R WM_IME_NOTIFY
<00013> 000A0BEA R WM_IME_SETCONTEXT
<00014> 000A0BEA S WM_SETFOCUS hwndLoseFocus:(null)
<00015> 002301FA S WM_CTLCOLORBTN hdcButton:7001111F hwndButton:000A0BEA
<00016> 002301FA R WM_CTLCOLORBTN hBrush:01900015
<00017> 000A0BEA S WM_GETTEXTLENGTH
<00018> 000A0BEA R WM_GETTEXTLENGTH cch:9
<00019> 000A0BEA S WM_GETTEXT cchTextMax:20 lpszText:0498D510
<00020> 000A0BEA R WM_GETTEXT cchCopied:9 lpszText:0498D510 ("c")
<00021> 002301FA S WM_DRAWITEM idCtl:658410 lpdis:0498DCF4
<00022> 000A0BEA S message:0x202B [User-defined:WM_USER+7211] wParam:000A0BEA lParam:0498DCF4
<00023> 000A0BEA R message:0x202B [User-defined:WM_USER+7211] lResult:00000000
<00024> 002301FA R WM_DRAWITEM fProcessed:False
<00025> 000A0BEA R WM_SETFOCUS
<00026> 002301FA R WM_ACTIVATE
<00027> 000A0BEA P WM_PAINT hdc:00000000
<00028> 002301FA S WM_NCACTIVATE fActive:False
<00029> 002301FA R WM_NCACTIVATE fDeactivateOK:True
<00030> 002301FA S WM_ACTIVATE fActive:WA_INACTIVE fMinimized:False hwndPrevious:(null)
<00031> 002301FA R WM_ACTIVATE
<00032> 002301FA S WM_ACTIVATEAPP fActive:False dwThreadID:00000C28
<00033> 002301FA R WM_ACTIVATEAPP
<00034> 000A0BEA S WM_KILLFOCUS hwndGetFocus:(null)
<00035> 000A0BEA R WM_KILLFOCUS
<00036> 000A0BEA S WM_IME_SETCONTEXT fSet:0 iShow:C000000F
<00037> 000A0BEA S WM_IME_NOTIFY dwCommand:IMN_CLOSESTATUSWINDOW dwCommand:00000001 dwData:00000000
<00038> 000A0BEA R WM_IME_NOTIFY
<00039> 000A0BEA R WM_IME_SETCONTEXT
<00040> 000A0BEA P WM_PAINT hdc:00000000
*/