ja du behöver använda win32 apin både för att få ner en ikon i trayen och även för att kunna lyssna efter knapptryckningar utanför programmet...
en variant är getaSyncKeyState() apin i en loop men det kan ju tänkas ta en del resurser....
om ditt program endast ska svara på en speciell knapp så ska det finnas nån hotkey api tror jag så du kan binda en knapp till ditt program
lite kod för en hotkey jag hittade på webben (hoppas att det är vb6 kod ):
To register a hot key in Windows, instead of using GetKeyState (takes CPU-power)..
Private Const WM_SETHOTKEY = &H32
Private Declare Function SendMessageByLong Lib "user32" Alias "SendMessageA"
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As
Long) As Long
Public Enum echkModifierKeys
HOTKEYF_SHIFT = &H1
HOTKEYF_CONTROL = &H2
HOTKEYF_ALT = &H4
HOTKEYF_EXT = &H8
HOTKEYF_SHIFTCONTROL = &H3
HOTKEYF_ALTSHIFT = &H5
HOTKEYF_CONTROLALT = &H6
HOTKEYF_CONTROLALTSHIFT = &H7
End Enum
Public Function SetHotKey( _
ByVal hWnd As Long, _
ByVal eKeyCode As VBRUN.KeyCodeConstants, _
ByVal eModifier As echkModifierKeys _
) As Boolean
Dim iR As Long
Dim lKey As Long
' wParam is a word with the LoByte set to
' the key code and the HiByte set to the modifier:
lKey = (eKeyCode And &HFF&) Or ((eModifier And &HFF&) * &H100&)
iR = SendMessageByLong(hWnd, WM_SETHOTKEY, lKey, 0)
Select Case iR
Case 2
Err.Raise 20001, App.EXEName & ".SetHotKey", "Hot key previously
assigned"
Case 1
' success
SetHotKey = True
Case 0
Err.Raise 20002, App.EXEName & ".SetHotKey", "Invalid window for Hot
key"
Case -1
Err.Raise 20003, App.EXEName & ".SetHotKey", "Invalid Hot key"
Case Else
Err.Raise 20004, App.EXEName & ".SetHotKey", "Failed to set Hot key"
End Select
End Function
har nog en annan kod på datorn men jag kan inte kolla den nu..
för systrayen så har du lite kod här
http://forum.sweclockers.com/showthread.php?s=&threadid=99709...
http://forum.sweclockers.com/showthread.php?s=&threadid=98168...