111,120
社区成员
发帖
与我相关
我的任务
分享 private void FakeMin()
{
while (true)
{
if (p == -1)
{
fakeMinOff();
return;
}
while (p==0)
{
Win32.Rect rc = new Win32.Rect();
Win32.GetWindowRect(hWndOld_W, ref rc);
x_W = (int)rc.left;
y_W = (int)rc.top;
w_W = rc.right - rc.left;
h_W = rc.bottom - rc.top;
Thread.Sleep(200);
}
if (p==4)
{
if (IsIconic(hWndOld_W))
{
p = 1;
goto Min;
};
Win32.Rect rc = new Win32.Rect();
Win32.GetWindowRect(hWndOld_W, ref rc);
x_W = (int)rc.left;
y_W = (int)rc.top;
w_W = rc.right - rc.left;
h_W = rc.bottom - rc.top;
Thread.Sleep(200);
}
Min:
switch (p)
{
case 1:
ShowWindow(hWndOld_W, 1);
MoveWindow(hWndOld_W, w_S, w_S, w_W, h_W, true);
Thread.Sleep(1000);
p = 3;
break;
case 2:
MoveWindow(hWndOld_W, x_W, y_W, w_W, h_W, true);
Thread.Sleep(1000);
p = 4;
break;
case 3:
if (GetForegroundWindow() == hWndOld_W) p = 2;
Thread.Sleep(200);
break;
default:
break;
}
}
}w_S, w_S是屏幕分辨率
void FakeMin()
{
while (true)
{
if (p == -1) return;
while (p==0)
{
Thread.Sleep(200);
}
if (IsIconic(hWndOld_W)) p = 1;
if (GetForegroundWindow() == hWndOld_W) p = 2;
switch (p)
{
case 1:
fakeMinOn();
p = 3;
break;
case 2:
fakeMinOff();
p = 3;
break;
case 3:
Thread.Sleep(200);
break;
default:
break;
}
}
}另外两个函数不贴了,就是记录坐标窗口大小移动窗口之类的。