社区
Delphi
帖子详情
应用程序隐藏在系统托盘中的问题!
wrsy
2002-07-08 10:40:43
主程序调用的外部应用程序启动时隐藏在系统托盘中,怎样可以在外部应用程序启动时全屏显示?
...全文
128
17
打赏
收藏
应用程序隐藏在系统托盘中的问题!
主程序调用的外部应用程序启动时隐藏在系统托盘中,怎样可以在外部应用程序启动时全屏显示?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wrsy
2002-07-12
打赏
举报
回复
外部应用程序隐藏在系统托盘中的问题用非技术方式解决了,感谢大家的支持与帮助!
dext
2002-07-11
打赏
举报
回复
ShellExecute(Handle,'open','YourProgramName',nil,nil,SW_MAXIMIZE);
行不行!
记得uses ShellAPI;
dext
2002-07-11
打赏
举报
回复
ShellExecute(Handle,'open','YourProgramName',nil,nil,SW_MAXIMIZE);
行不行!
记得uses ShellAPI;
wrsy
2002-07-11
打赏
举报
回复
to dext
第一次启动的问题解决了,全屏的还不行。
主程序调用外部应用程序,外部应用程序隐藏在系统托盘中,可我希望它全屏显示,我用IsIconic来判断,没成功。
wrsy
2002-07-11
打赏
举报
回复
to dext
是否是第一次启动的问题解决了,全屏的还不行。
主程序调用外部应用程序,外部应用程序隐藏在系统托盘中,我想让它直接全屏显示,不隐藏,试了几种方法都不行。
项目花园范德彪
2002-07-11
打赏
举报
回复
其实没太懂楼主的意思,
什么还是隐藏的
什么是全屏,(是不是最大化)
?
wrsy
2002-07-11
打赏
举报
回复
不行,还是隐藏的
wrsy
2002-07-11
打赏
举报
回复
不行,还是隐藏的
dext
2002-07-10
打赏
举报
回复
至于是否是第一次启动看看下面:
避免二次运行
实现单实例运行的关键是判断前一实例是否存在,Win3.x中运行的程序能获知前 一实例的句柄,从而可以方便地进行判断,但 Windows 95 是抢先式多任务系统,其程序的前一实例句柄恒为零,所以只有另寻其他办法。目前最有效的办法是通过查看是否有相同窗口类名的例程存在来进行判断。下面介绍在Delphi中实现的方法。
1、对主窗口程序的改动:
在主窗口(即程序创建的第一个窗口)中interface节加入
const
CM_RESTORE = WM_USER + $1000; {自定义的“恢复”消息}
MYAPPNAME = "My Delphi Program";
并在Form的定义的public节中加入
procedure CreateParams(var Params: TCreateParams); override;
Procedure RestoreRequest(var message: TMessage); message CM_RESTORE;
在implementation节中加入
{指定窗口名称}
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WinClassName := MYAPPNAME;
end;
{处理“恢复”消息}
procedure TForm1.RestoreRequest(var message: TMessage);
begin
if IsIconic(Application.Handle) = TRUE then
Application.Restore
else
Application.BringToFront;
end;
经过以上修改,程序的主窗口的类名已经被指定了,这是进行判断的基础。一般在程 序刚开始运行的时候进行判断,所以还要对DPR文件进行修改。
2、对DPR文件的改动
在 uses 节中添加 windows、messages这两个单元加入下列语句,注意两个文件中常 量CM_RESTORE和MYAPPNAME的定义必须一致
const
CM_RESTORE = WM_USER + $1000; {自定义的“恢复”消息}
MYAPPNAME = "My Delphi Program";
var
RvHandle : hWnd;
将下列语句插到程序最前部(在Application.Initialize之前)
RvHandle := FindWindow(MYAPPNAME
NIL);
if RvHandle > 0 then
begin
PostMessage(RvHandle
CM_RESTORE
0
0);
Exit;
end;
这段程序的意思是如果找到一个类名相同的窗口,则向该窗口发送一个消息,并退 出,而本例中原窗口收到该消息后会自动激活或从图标还原,从而达到了避免二次运行.
dext
2002-07-10
打赏
举报
回复
嗬嗬,至于启动是全屏幕,有两个方法:
1。将窗口的状态属性设置为最大化
2。将窗口设置位充满客户区。就是那个以a开头的属性
dext
2002-07-09
打赏
举报
回复
我还有源代码!!!!你要吗?
老规矩,不,这次得多点100分。
因为这不仅是我自己写的,而写是纯API做的,没有用VCL
我的Email你知道,具体的情况发Email给我!
lyhold
2002-07-08
打赏
举报
回复
回复人: netlib(河外孤星) ( ) 信誉:116 2002-07-08 10:49:00 得分:0
起动后用
findwindow找到后,给主窗口发消息,
或用SHowwindow也可以。
这个只能最大化,大全屏不知道是哪个消息!!
zhptj
2002-07-08
打赏
举报
回复
用cooltrayicon控件
或者看delphi5开发人员指南,上面写的很详细
s_cube
2002-07-08
打赏
举报
回复
visible := not visible;
application.ShowMainForm := visible;
netlib
2002-07-08
打赏
举报
回复
起动后用
findwindow找到后,给主窗口发消息,
或用SHowwindow也可以。
My_first
2002-07-08
打赏
举报
回复
form1.width:=screen.width;
form1.heigth:=screen.heigth;
wrsy
2002-07-08
打赏
举报
回复
在启动时全屏显示,而不是在启动后
我试了一下,在启动后二位所提的方法是对的,谢谢二位,请继续帮帮忙,帮我想个办法!
还有我想判断外部程序是否是第一次启动,用findwindow可以吗?
Qt 使用paint的一些简单使用和
系统托盘
的简单应用,实现只能通过
系统托盘
关闭,才能关闭程序
Qt paint的简单使用和
系统托盘
的一些简单使用,实现了任务栏关闭程序
隐藏
程序,只有在
系统托盘
中
关闭程序,才能真正的关闭程序
QT将
应用程序
缩小到右下角任务栏的
系统托盘
内
资源效果及讲解博客地址:http://blog.csdn.net/csnd_ayo/article/details/56004234
仿QQ即时通信系统开发(2016版)
共22讲,讲解如何实现一个仿腾讯QQ即时通信系统的课程;主要功能有:用户注册,登录,...在线聊天,上线通知,下线通知,更改状态,更换主界面皮肤,发送文件,发送表情,抖动,通知铃声,发送群信息,
系统托盘
等功能;
隐藏
程序到托盘HideItv0.8.6官方版
隐藏
程序到托盘(HideIt)是一个小的,简单的和有用的工具,可用于最小化和
隐藏
各种应用到托盘图标。 启动程序,右键点击你想
隐藏
的程序上的最小化按钮。所有最小化的
应用程序
从
系统托盘
中
,可以查看和恢复
Qt实现最小化到托盘任务栏-完整工程代码.zip
【3】消息通知:利用托盘图标的弹出通知,可以在接收到新消息或事件时向用户发送通知,类似于QQ、微信等
应用程序
在
系统托盘
区域显示新消息数量的功能。 通过使用Qt框架提供的QSystemTrayIcon类,可以为自己的应用...
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章