Avatar billede mbsnet Nybegynder
01. december 2008 - 10:21 Der er 2 kommentarer og
1 løsning

Tray-ikoner som hober sig op i xp bundlinien

Hej

Når man benytter et tray-ikon sammen med et program, og genstarter programmet flere gange i træk, kommer der et nyt tray-ikon hver gang, som bliver synligt.

For at opdatere bjælken er det nok at køre musen hen over ikonerne, derefter forsvinder ikonerne igen.

Mit spørgsmål er, om der findes et api-kald man kan lave, så eventuelt hele værktøjsbjælken opdateres, eller om man kan sende en message eller noget.?

//mvh mbs
Avatar billede a_nor Nybegynder
01. december 2008 - 10:53 #1
Så længe hver instans af dit program kører skal ikonet vel være der ?

Har du husket at fjerne ikonet når dit program lukker ?

procedure TForm1.FormDestroy(Sender: TObject);
begin
  if Shell_NotifyIcon(NIM_DELETE, @TrayIconData) then;
end;

mvh.
Avatar billede mbsnet Nybegynder
01. december 2008 - 12:39 #2
yes yes, mit tray-komponent er komplet og virker, men det er hvis et program ikke bliver rigtigt afsluttet, og det kan jo også være andre programmer, man ikke selv har lavet
Avatar billede mbsnet Nybegynder
06. december 2008 - 23:35 #3
...lukker spørgsmålet igen.
Fandt et hack af en løsning, men ikke en løsning som var særlig brugbar.

function winTaskBarHandle:tHandle;
begin
result:=findWindow('Shell_TrayWnd',nil)
end;

procedure mouseMoveRect(aRect:tRect;const aStep:byte=16);
var memP:tPoint;x,y:longInt;
begin
getCursorPos(memP);
with aRect do begin y:=bottom;
  while y>top do begin x:=right;
  while x>left do begin
    setCursorPos(x,y);sleep(10);dec(x,aStep)
  end;dec(y,aStep)
  end
end;
with memP do setCursorPos(x,y)
end;

procedure TForm1.Button1Click(Sender: TObject);
const ICON_AREA_WIDTH=200;
var aRect:tRect;
begin
getWindowRect(winTaskBarHandle,aRect);
aRect.left:=screen.width-ICON_AREA_WIDTH;
mouseMoveRect(aRect)
end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester