Delphi使程序的窗口出现在最前面并激活
2017-02-14 16:39
183 查看
procedure setAppFront(); //使程序的窗口出现在最前面并激活 var pt, OldPt, NewPt: TPoint; begin //判断Application是否最小化,而不是主窗口的Handle, 使用Restore来还原 if IsIconic(Application.Handle) then Application.Restore; SetWindowPos(Application.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE); SetWindowPos(Application.Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE); // 保存鼠标位置,模拟点击窗口,然后再还原鼠标位置 GetCursorPos(OldPt); NewPt:=Point(0, 0); Windows.ClientToScreen(Application.Handle, NewPt); SetCursorPos(NewPt.X, NewPt.Y); mouse_event(MOUSEEVENTF_LEFTDOWN, NewPt.X, NewPt.Y, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, NewPt.X, NewPt.Y, 0, 0); SetCursorPos(OldPt.X, OldPt.Y); end;
相关文章推荐
- C#写的ActiveX弹出窗口在Delphi程序中的应用时出现了问题。
- C#写的ActiveX弹出窗口在Delphi程序中的应用时出现了问题。
- delphi 所有程序运行调试都出现cpu窗口,急!
- 打开并激活已存在程序窗口
- Delphi2007-Delphi2010 程序不出现在任务栏的方法
- Process打开Notepad.exe,想让它只开一个,如果打开过,就让它的主窗口在桌面最前面激活
- vfp 枚举第三方程序子窗口,并激活子窗口
- DELPHI中进程、窗口句柄、文件属性、程序运行状态
- winform程序,使用dotnetbar后,偶尔出现的打开窗口异常的解决
- 使用DELPHI编译的程序出现病毒的解决方法
- 防止重复运行程序并且激活当前正在运行的窗口
- delphi向另一程序窗口某处发送鼠标事件所用的工具
- C#中出现了一个问题,就是程序主窗体已经打开,在调用子窗体时候出现了创建窗口句柄时出错。
- Delphi实现程序只运行一次并激活已打开的程序
- delphi 7.0程序运行关闭最后弹出CPU窗口:ntdll.DbgBreakPoint的解决方法
- 处理WinForm多线程程序时的陷阱,出现窗口句柄为创建就被访问
- 让程序窗口总是在最前面
- 妙用Delphi编译器开关为程序增加便捷的控制台调试/日志窗口
- DELPHI调试程序出现“探测到调试器 - 请关闭后重启”
- Delphi动态创建窗口可能出现的问题