Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1563 | Anzahl registrierter User: 1896 | Besucher online: 34
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Taskbar ausblenden


Autor: Volker Steitz
Sprache: VB.NET
Bewertung:
8.68 (6 votes)
Anzahl der Aufrufe: 7003
  
Kick it on dotnet-kicks.de  

Beschreibung:

Um alle Einträge in der Taskleiste unsichtbar zu machen benötigt man zuerst einmal den Klassennamen des Taskbars. Dieser ist Shell_TrayWnd.

Hat man diesen, lässt sich dieses Fenster - mehr ist die Taskleiste nun mal nicht - per Befehl ein- oder ausblenden.

Im folgenden:

Die Klasse die den Fenstertitel bestimmt und die TrayLeiste ein und ausblendet und ein Anwendungsbeispiel.

Ein Programm verwendet 2 Buttons. Einen - btnHide - blendet die Trayleiste aus und speichert diese in der Registry. Startet das Programm beim nächsten mal, liest es die Registry aus, erkennt das die Taskleiste nicht sichtbar sein soll und blendet sie sofort aus.

Schützt vor neugierigen Usern ;-)

Der 2 Button - btnShow - blendet die Taskleiste wieder ein, und setzt den Registrywert ensprechend.

Der Wert wird in HKEY_Local_Machine geschrieben - dies sichert zu, dass ein einfacher User dies nicht verändern kann.

Sobald das Programm gestartet wird,


Abgelegt unter: Taskbar, Tray, Shell_TrayWnd.



Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
'Hier zunächst die entsprechende Klasse:
'Auf Wunsch kann noch eine Sicherheitsabfrage eingeblendet
'werden.

'Den auskemmentierten Messageboxblock wieder einbinden


Option Strict On
Option Explicit On

Imports Microsoft.VisualBasic

Public Class clsHideTaskbar

Private Declare Auto Function FindWindow Lib "user32" (ByVal lpClassName As String, _
                                                           ByVal lpWindowName As String) As Integer

Private Declare Auto Sub SetWindowPos Lib "User32" (ByVal hWnd As Integer, _
                                                        ByVal hWndInsertAfter As Integer, _
                                                        ByVal X As Integer, _
                                                        ByVal Y As Integer, _
                                                        ByVal cx As Integer, _
                                                        ByVal cy As Integer, _
                                                        ByVal wFlags As Integer)

Public Sub TaskBarVisible(ByVal Visible As Boolean)
        Dim Handle As Integer = FindWindow("Shell_TrayWnd", "")

        If Visible = True Then
            SetWindowPos(Handle, 0, 0, 0, 0, 0, 64)
            My.Computer.Registry.SetValue("HKEY_LOCAL_MACHINE\Software\" & _
                                          My.Application.Info.CompanyName & "\" & _
                                          My.Application.Info.ProductName & "\Tray", "Visible", "True")


        Else
            '  If MessageBox.Show("You want to hide the Taskbar?", "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Yes Then

            SetWindowPos(Handle, 0, 0, 0, 0, 0, 128)

            My.Computer.Registry.SetValue("HKEY_LOCAL_MACHINE\Software\" & _
                                          My.Application.Info.CompanyName & "\" & _
                                          My.Application.Info.ProductName & "\Tray", "Visible", "False")
            'End If
        End If
End Sub


End Class


'Hier der Aufruf, realisiert durch ein Formular.
'Darauf bitte 2 Command Buttons anordnen, 
'diese mit btnHide und btnShow benennen.

'Wird als Private declariert, damit die 
'Variablen über die ganze Form zugreifbar sind

Private cls As New clsHideTaskbar
Private keyValue As Boolean


Private Sub btnHide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHide.Click
        cls.TaskBarVisible(False)
End Sub

Private Sub btnShow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShow.Click
        cls.TaskBarVisible(True)
End Sub


'Nun der Zugriff auf die Reg beim Prog-Start
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            keyValue = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\Software\" & _
                       My.Application.Info.CompanyName & "\" & _
                       My.Application.Info.ProductName & "\Tray", "Visible", "")

            If keyValue = False Then
                cls.TaskBarVisible(False)
            End If
        Catch ex As Exception
        End Try
End Sub
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Tim Hartwig schrieb am:  14.01.2007 11:04:31

Diesen Snippet gibt es aber schon:
<a href="http://dotnet-snippets.de/dns/taskleiste-verstecken-SID331.aspx">
Taskleiste verstecken</a>
Volker Steitz schrieb am:  15.01.2007 08:08:35

Stimmt, hab´s auch gerade bemerkt.
Da hab ich nicht richtig recherchiert, ob jemand schon etwas ähnliches veröffentlicht hat. Sorry, Volker
Klaus Tillmann schrieb am:  15.01.2007 10:45:56

Find ich nicht schlimm. Der Code wurde ja auch um wesentliches ergänzt. Die Art und Weise wie
in der Reg. die Daten gespeichert und gelesen werden find' ich gut
Jochen schrieb am:  25.09.2007 07:50:37

Soso, tolle sachen. Was aber interessanter wäre und noch nicht hier ist: Task-Manger verstecken - kann das jemand?
Jakob schrieb am:  12.02.2009 15:32:38

Wie wendet man dieses "Snippet" an?
[Das einzigste was ich programmiere ist "Java"]
Viele Grüße Jakob


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.