Avatar billede python Nybegynder
08. oktober 2003 - 19:01 Der er 6 kommentarer og
1 løsning

Fjerne Steam Iconet i systray

Sidder og roder med at fjerne Steam iconet fra systray uden at lukke steam of course.. Til dem der ikke ved hvad steam er: www.steampowered.com .. det er valves nye Content delivery system som man skal bruge for at spille deres nye spil inklusiv Counter-Strike 1.6 ..

Oh well her er hvad jeg har lavet so far.. ved ikke om jeg har fat i det rigtige vindue.. eller om jeg overhovedet gør det rigtige...

ved ikke om 65636 er det rigtige at skrive det var hWnd for steam .... tror jeg :) Hvis der er nogen der har mere forstand på det ku de så ik lige se om det er rigtigt..
:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
                        ByVal lpClassName As String, _
                        ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Public Function HideTaskBarSteam()
Dim FindClass As Long, FindParent As Long, Handle As Long
FindClass& = FindWindow("Shell_TrayWnd", vbNullString)
FindParent& = FindWindowEx(FindClass&, 0, "65636", vbNullString)
Handle& = FindWindowEx(FindParent&, 0, "65636", vbNullString)
ShowWindow Handle&, 0
End Function
Avatar billede dawin_dk Nybegynder
08. oktober 2003 - 19:03 #1
hwnd'en kan ændre sig fra gang til gang du kører programmet.. du bliver nødt til at foretage en søgning efter dets id/navn

... og nej .. kan jeg ik huske hvodn man gør... :)
Avatar billede tubber Juniormester
08. oktober 2003 - 20:02 #2
Jeg har noget kode til at fjerne og tilføje programmer i systray, smidder det lige:

Systemtray bas modul kode:
Option Explicit
'Declarations and constants for at tilføje Ikoner til
'System Tray
Private Type NOTIFYICONDATA
    cbSize As Long
    hwnd As Long
    uId As Long
    uFlags As Long
    ucallbackMessage As Long
    hIcon As Long
    szTip As String * 64
End Type

Private TrayIcon As NOTIFYICONDATA

Public Const WM_LBUTTONDBLCLICK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_RBUTTONDBLCLK = &H206
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_MOUSEMOVE = &H200
Const NIM_ADD = &H0
Const NIM_MODIFY = &H1
Const NIM_DELETE = &H2
Const NIF_MESSAGE = &H1
Const NIF_ICON = &H2
Const NIF_TIP = &H4

'API declaration der er nødvendig for at tilføje
'Ikon til System Tray
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias _
      "Shell_NotifyIconA" (ByVal dwMessage As Long, _
          pnid As NOTIFYICONDATA) As Boolean

Public Sub AddIcon(frm As Form, Optional sTip As String)
    'Sub til at tilføje Ikonet til
    'System Tray når programmet minimeres
    With TrayIcon
        .cbSize = Len(TrayIcon)
        .hwnd = frm.hwnd
        .uId = vbNull
        .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
        .ucallbackMessage = WM_MOUSEMOVE
        .hIcon = frm.Icon
        'Teksten der kommer når musen er over Ikonet
        If sTip = "" Then
            .szTip = frm.Caption & vbNullChar
        Else
            .szTip = sTip & vbNullChar
        End If
    End With
    'Tilføjer Ikonet
    Call Shell_NotifyIcon(NIM_ADD, TrayIcon)
    'Skjuler formen
    'frm.Hide
End Sub

Public Sub RemoveIcon(frm As Form)
    'Sub til at fjerne Ikonet fra
    'System Tray når programmet lukkes
    With TrayIcon
        .cbSize = Len(TrayIcon)
        .hwnd = frm.hwnd
        .uId = vbNull
    End With
    'Fjerne Ikonet
    Call Shell_NotifyIcon(NIM_DELETE, TrayIcon)
End Sub

Mouse Event:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim lMsg As Long
    lMsg = X / Screen.TwipsPerPixelX
    Debug.Print lMsg
    Select Case lMsg
            Case WM_LBUTTONDBLCLICK
                'Kode til venstre dobbelt-klik
                Me.WindowState = 0
                Me.Show
            Case WM_LBUTTONDOWN
                'kode når venstre knap holdes nede
            Case WM_LBUTTONUP
                'Kode for at slippe venstre knap
            Case WM_RBUTTONDBLCLK
                'kode for højre dobbelt-klik
            Case WM_RBUTTONDOWN
                'kode når højre knap holdes nede
            Case WM_RBUTTONUP
                'Kode for at slippe venstre knap
                'Typisk til en menu men minimer, osv.
                'me.PopupMenu Indstillinger
        End Select
End Sub

Resize Event:
'Kode for at fortælle hvornår programmet er
'minimeret
Private Sub Form_Resize()
    If Me.ScaleHeight = 0 Then
        Me.Visible = False
    End If
End Sub

Håber noget af det kan bruges.....
Avatar billede tubber Juniormester
08. oktober 2003 - 20:03 #3
hmmm skulle kun være en kommentar, da jeg jo ikke besvarer spg lige frem....
Avatar billede tubber Juniormester
08. oktober 2003 - 20:04 #4
jeg tror dog du skal kigge på den der hedder remove icon, der er der noget med en hwnd

Public Sub RemoveIcon(frm As Form)
    'Sub til at fjerne Ikonet fra
    'System Tray når programmet lukkes
    With TrayIcon
        .cbSize = Len(TrayIcon)
        .hwnd = frm.hwnd
        .uId = vbNull
    End With
    'Fjerne Ikonet
    Call Shell_NotifyIcon(NIM_DELETE, TrayIcon)
End Sub
Avatar billede python Nybegynder
08. oktober 2003 - 21:30 #5
nej det ka jeg ik bruge.. det er kun til ens egen app
Avatar billede michaelemanuel Nybegynder
09. oktober 2003 - 14:25 #6
Du kan ikke lukke et andet programs SysTray (medmindre du kan sniffe den hWnd og kender den uId som programmet brugte til at oprette SysTray iconet.)

PS: Under WinXP kan du sætte et SysTray icon til : Always hide
Avatar billede python Nybegynder
28. november 2003 - 20:50 #7
æv
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