《2022年在Delphi中如何控制其它应用程序窗口Delphi教程.docx》由会员分享,可在线阅读,更多相关《2022年在Delphi中如何控制其它应用程序窗口Delphi教程.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022年在Delphi中如何控制其它应用程序窗口Delphi教程 <-SSE WIDTH=100% SSE->在编写Delphi的应用程序中,经常涉及对其它Windows应用程序的操作。例如,在数据库的管理系统中,财务人员须要运用计算器,即可调用Windows内含的计算器功能,若每次运用,均通过“起先/程序/附件/计算器”来打开计算器,明显是特别繁琐的,当然可以考虑在桌面上建立一“计算器”的快捷方式,且定义一热键,须要运用计算器时,就按下这个热键来打开“计算器”。但由于“计算器”是一个“非模式”窗口程序,即每运行一次计算器,就会打开一个“计算器”窗口,这样的结果是桌面上出现了几十
2、个“计算器”,不仅大量增加了系统内存的开销,而且也不便利用户的操作。在Delphi中可较轻易地限制,效果特别完备。下面就两个主要问题提出实现方法。1如何限制设计?新建一表单,在表单中放入两个按钮,其Caption分别为“打开”(即启动“计算器”)和“关闭”(退出结束),且为它们分别添加Click事务处理。详见表单Form1及单元文件Unit1。其中,最主要的几条语句有:fwnd:=FindWindow(SciCalc,计算器);函数原型为(详见Delphi的帮助):HWND FindWindow(LPCTSTR lpClassName, / pointer to class nameLPCTS
3、TR lpWindowName / pointer to window name);此处,SciCalc 为计算器的类名,计算器为计算器的窗口标题}setWindowPos(fwnd,HWND_NOTOPMOST,0,0,0,0,SWP_SHOWWINDOW or SWP_NOSIZE or SWP_NOMOVE);函数原型为:BOOL SetWindowPos(HWND hWnd, / handle of windowHWND hWndInsertAfter, / placement-order handleint X, / horizontal positionint Y, /
4、vertical positionint cx, / widthint cy, / heightUINT uFlags / window-positioning flags);ShowWindow(fwnd,SW_RESTORE); /显示已打开的计算器函数原型为:BOOL ShowWindow(HWND hWnd, / handle of windowint nCmdShow / show state of window);Ret:=WinExec(c:windowscalc.exe,SW_SHOWNORMAL); /启动计算器函数原型为:UINT WinExec(LPCSTR lpCmdL
5、ine, / address of command lineUINT uCmdShow / window style for new application);运行“计算器”程序并检测返回值(从而利用返回值来推断可能发生的错误)2如何明确应用程序的“类名”?要限制应用程序,首先必需明确应用程序的“类名”。“类”的概念,Delphi的程序已经特别清晰,如:新建一表单Form1,该表单的“类名”为TForm1。那么其它Windows程序的“类名”如何确定呢?值得一喜的是,Delphi供应了一好用工具Winsight,它正如一面照妖镜,不论何方妖怪,均会显露出它们的“类名”。运用Winsight的方法如下:运行Winsight(程序名为ws32.exe,与主文件delphi32.exe同一书目),见图;从Winsight的菜单中选择“间谍”中的“跟随焦点”,见图;运行“计算器”程序;在Winsight中显示出了目标,如图所示。软件环境:中文Win98/中文Delphi5.0。