怎样 用DELPHI开发一个能隐藏在任务栏的小程序?(100分)

  • 主题发起人 主题发起人 lzg76
  • 开始时间 开始时间
L

lzg76

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样 用DELPHI开发一个能隐藏在任务栏的小程序?
 
这问题还问?
都问烂了,到前面去搜索 trayicon 的问题去。
 
  一般Windows 运行程序时都会在任务栏上出现按钮,如果你的程序是一个监视程序,那么出现按钮就不是明智之举了。要实现该功能就要在OnCreate事件里利用到API函数SetWindowLong
procedure TForm1.FormCreate(sender:TObject);
begin
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;

 
哎,这个问题都N遍了.
是不是送分的?
 
查一查已答问题,这样的问题送分,太不值了!
已答问题很有用的,强力推荐!
 
可惜啊!一百个大洋,如果搜索一下就省了
下面是答案:
把程序最小化并把图标放在状态栏:
Shell_NotifyIcon

Shell_NotifyIcon( DWORD dwMessage,
PNOTIFYICONDATA pnid);

dwMessage
Message value to send. This parameter can be one of these values: NIM_ADD
Adds an icon to the status area.
NIM_DELETE Deletes an icon from the status area.
NIM_MODIFY Modifies an icon in the status area.
pnid
Address of a NOTIFYICONDATA structure. The content of the structure
depends on the value of dwMessage.
调用该函数后可以调用SetWindowlong函数把状态栏的显示去掉,
然后再把窗口的显示移出屏幕.
 
如下编程:
var
Form1: TForm1;
nd:notifyicondata;
hs:longword;
formhide:boolean;
information:string;
c_already_run_time:string;
c_current_time:string;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin // form1.Icon.Handle;
formhide:=true;
hs:=loadicon(hinstance,'mainicon');
//填充NotifyIconData记录型变量nd1
nd.cbSize := sizeof(NotifyIconData);
nd.Wnd := handle;
nd.uID := 0;
nd.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
nd.uCallbackMessage := WM_TRAYNOTIFY;
nd.hIcon := hs;
StrPLCopy(nd.szTip, '成功!', 63);
//在任务栏状态区添加图标
Shell_NotifyIcon(NIM_ADD, @nd);
timer1.enabled:=true;
end;
 
灌水真没劲
 
后退
顶部