- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Radera döda systrayikoner Kategori: System
Inlagt: 2006-04-27
Läst: 1251
Inlagt av: Benny
Beskrivning
Denna procedur raderar alla systrayikoner som inte är i drift.
Kod
procedure RemoveDeadIcons; 
var 
TrayWindow : HWnd; 
WindowRect : TRect; 
SmallIconWidth : Integer; 
SmallIconHeight : Integer; 
CursorPos : TPoint; 
Row : Integer; 
Col : Integer; 
begin 
//Get tray window handle and bounding rectangle  
TrayWindow := FindWindowEx(FindWindow('Shell_TrayWnd',NIL),0,'TrayNotifyWnd',NIL); 
if not GetWindowRect(TrayWindow,WindowRect) then 
  Exit; 
// Get small icon metrics  
SmallIconWidth := GetSystemMetrics(SM_CXSMICON); 
SmallIconHeight := GetSystemMetrics(SM_CYSMICON); 
// Save current mouse position  
GetCursorPos(CursorPos); 
// Sweep the mouse cursor over each icon in the tray in both dimensions  
with WindowRect do 
begin 
  for Row := 0 to (Bottom - Top) DIV SmallIconHeight do 
  begin 
   for Col := 0 to (Right - Left) DIV SmallIconWidth do 
   begin 
    SetCursorPos(Left + Col * SmallIconWidth, Top + Row * SmallIconHeight); 
    Sleep(0); 
   end; 
  end; 
end; 
//Restore mouse position  
SetCursorPos(CursorPos.X,CursorPos.Y); 
//Redraw tray window (to fix bug in multi-line tray area) 
RedrawWindow(TrayWindow,NIL,0,RDW_INVALIDATE OR RDW_ERASE OR RDW_UPDATENOW); 
end; 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -