我在WIN2000下做了一个任务栏程序,但是遇上很奇怪的问题(50分)

  • 主题发起人 主题发起人 wwolf
  • 开始时间 开始时间
W

wwolf

Unregistered / Unconfirmed
GUEST, unregistred user!
我在繁体WIN2000下做了一个任务栏程序,但是遇上个很奇怪的问题:
程序在2000下执行后任务栏会出现图标,而将EXE拷贝到另一台的WIN98
下执行时,居然任务栏不会出现图标。我猜是因為
我調用了Shell32.dll裡的API函數Shell_NotifyIcon.
而2000的shell32.dll和98的shell32.dll好像不同(字節大小都不一樣)。
各位谁知道是为什么啊?我快急死了,该怎样解决
 
我在2000也写过托盘程序,98运行也没问题,
你记得把图标放在资源文件里一起编译。
如果还搞不定,就用控件,
这样的任务栏控件N多。
 
应该不是操作系统的问题,我查了MSDN,98、2000都支持此函数。
你还是到98下调试一下吧!
 
图标我是存在Imagelist里的,应该没问题吧

還有就是,我不想用控件,我在2000下已經可以用了會什麼要去用控件
 
没有可能呀?
 
检查代码
 
unit Unit4;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,ShellApi, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
IconData : TNotifyIconData;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
With IconData do Begin
cbSize := SizeOf(icon);
Wnd := Handle ;
uID := 1;
uFlags := NIF_ICON Or NIF_MESSAGE Or NIF_TIP;
uCallBackMessage := WM_USER+1001;
hIcon := Application.Icon.Handle;
StrCopy(szTip,Pchar('haha'));
End;

Shell_NotifyIcon(NIM_ADD,@IconData);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE,@IconData);

end;

end.

像这样的代码在Win2000里编译后,在win2000正常执行,在win98就不行。
到底是怎么回事啊
 
cbSize := sizeof(TNOTIFYICONDATA);
 
沒人回答出來,分我自已收回來。
 
任務欄中的小圖片是在程式中加入的嗎?
有可能你沒有把圖片附在程式一起,如果你做有安裝程式也需要把圖片附加上去,
我也做過這樣的小程式,不存在9X/ME/NT/2000不同平臺不能運行的事.不防去
http://delphigame.vip.idv.tw/ 再選遊戲下載
中下載 << 定時自動關機系統 >> Along 開發者 我寫的看看吧!
 
后退
顶部