引用 放牛党主席:因为qq弹窗的标题有很多 后面几个都是我用了一个星期 发现的 然后再加进去的,这样做方便以后 再加
能不能先把那些标题写进去啊,大姐,这样傻瓜试的对我这种文盲才有用啊
引用
评论
[DllImport("User32.dll", EntryPoint = "FindWindow",CharSet = CharSet.Auto) ]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "FindWindowEx", CharSet = CharSet.Auto)]
private extern static IntPtr FindWindowEx(IntPtr parent, IntPtr child, string classname, string captionName);
[DllImport("user32", SetLastError = true, ExactSpelling = true)]
public static extern bool DestroyWindow(IntPtr hndw);
[DllImport("user32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
static void Main(string[] args)
{
IntPtr HWND = new IntPtr(0);
int delay = 100;
string[] Title;
string[] processTitle;
Process[] process;
if (args.Length > 0)
{
delay = Convert.ToInt32(args[0]);
Title = new string[args.Length];
args.CopyTo(Title, 0);
}
else
{
Title = new string[] { "腾讯新闻" };
}
processTitle = new string[] { "YoukuMediaCenter", "wwbizsrv" };
while (true)
{
for (int i = 1; i < Title.Length; i++)
{
HWND = FindWindow(null, Title);
if (HWND != IntPtr.Zero)SendMessage(HWND, 0x0010, 0, 0);
}
foreach (var item in processTitle)
{
process = Process.GetProcessesByName(item);
foreach (var item2 in process) item2.Kill();
}
Thread.Sleep(delay);
}
}
}启动程序的时候需要把要监视关闭的窗口标题传进来
引用 放牛党主席:因为qq弹窗的标题有很多 后面几个都是我用了一个星期 发现的 然后再加进去的,这样做方便以后 再加
能不能先把那些标题写进去啊,大姐,这样傻瓜试的对我这种文盲才有用啊
引用 acmilan:好的
SendMessage返回值是IntPtr,hwnd、wParam和lParam也都是IntPtr,只有uMsg是int。
另外循环变量不要用i,可以用j或k,因为论坛有bug,方括号里的i会被当成ubb标记和谐掉。