社区
Delphi
帖子详情
应用程序隐藏在系统托盘中的问题!
wrsy
2002-07-08 10:40:43
主程序调用的外部应用程序启动时隐藏在系统托盘中,怎样可以在外部应用程序启动时全屏显示?
...全文
133
17
打赏
收藏
应用程序隐藏在系统托盘中的问题!
主程序调用的外部应用程序启动时隐藏在系统托盘中,怎样可以在外部应用程序启动时全屏显示?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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将
应用程序
缩小到右下角任务栏的
系统托盘
内
资源效果及讲解博客地址:http://blog.csdn.net/csnd_ayo/article/details/56004234
VC程序代码之
隐藏
系统托盘
VC程序代码之
隐藏
系统托盘
使用PB编写
系统托盘
程序
在 PowerBuilder
中
应用 Win32 API 函数编写
系统托盘
程序, 将 PowerBuilder
应用程序
最小化到
系统托盘
上, 显示为它的图标, 适用于暂时不使用或者暂时后台运行的情况
隐藏
托盘文件!托盘文件
隐藏
托盘文件
隐藏
,绿色按全!
隐藏
托盘文件!!! 占用资源极少!!!托盘文件
隐藏
!托盘文件
隐藏
任务栏
系统托盘
隐藏
工具
隐藏
系统右下角托盘图标使打开的程序更方便
隐藏
不被发现
Delphi
5,928
社区成员
262,931
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章