ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 08.02.2000

Diese Seite wurde zuletzt aktualisiert am 08.02.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für IE, Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Desktop-Symbole kontrollieren

Zurück...


Anzeige

(-hg) mailto:hg_desktopicons@aboutvb.de

In meinen Augen ist es eher nur eine Spielerei - mir fällt einfach kein sinnvoller Grund ein, warum man die Symbole auf dem Desktop vor den Augen des Anwenders verbergen können sollte. Aber da immer wieder danach gefragt wird - nun, bitte schön. Eher kann ich mir da noch vorstellen, dass ein Sperren der Desktop-Symbole sinnvoll sein könnte. Wie dies geht, zeige ich Ihnen daher in einem Aufwasch in diesem Artikel, da die Funktionalität und Technik fast die gleiche ist.

Die Sichtbarkeit der Symbole können Sie über die hier vorgestellte Eigenschaft DesktopIconsVisible eines Standard-Moduls kontrollieren oder über die Prozeduren ShowDesktopIcons und HideDesktopIcons. Mit der Funktion ToggleShowDesktopIcons schalten Sie die Sichtbarkeit um und erhalten den aktuellen Status im Rückgabewert geliefert (True oder False).

Die Desktop-Symbole sind auf einem Fenster mit dem Windows-Klassennamen "progman" platziert. Dessen Handle wird über die API-Funktion MSDN Library - API FindWindowFindWindow ermittelt. Die Sichtbarkeit wird über die API-Funktion MSDN Library - API ShowWindowShowWindow mit den Flag-Konstanten SW_SHOW und SW_HIDE gewählt. Bei der Umschaltfunktion ToggleShowDesktopIcons ermittelt die API-Funktion MSDN Library - API IsWindowVisibleIsWindowVisible die aktuelle Sichtbarkeit.

Beim Setzen der Eigenschaft DesktopIconsVisible kommt ein kleiner Trick zum Zuge. Hier wird der in New_DesktopIconsVisible übergebene bool'sche Wert direkt in den von ShowWindow erfordertern Flag-Wert konvertiert, statt die Auswertung über eine Verzweigung vorzunehmen. Von dem Wert wird mit der Visual Basic-Funktion Abs der absolut Wert ermittelt, um gegebenenfalls das negative Vorzeichen des bool'schen Wertes zu eliminieren, und anschließend mit der Flag-Konstante SW_SHOW multipliziert. Wurde False übergeben, ergibt das 0, entsprechend der Flag-Konstante SW_HIDE. Wurde True übergeben, ergibt das den gewünschten Flag-Wert.

Die Eigenschaften, Prozeduren und Funktionen zum Sperren der Desktop-Symbole sind analog dazu aufgebaut. Die hier verwendeten API-Funktionen sind  MSDN Library - API EnableWindowEnableWindow  und MSDN Library - API IsWindowEnabledIsWindowEnabled.

Private Declare Function EnableWindow Lib "user32" _
 (ByVal hWnd As Long, ByVal Enable As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
 (ByVal ClassName As String, ByVal WindowName As String) As Long
Private Declare Function IsWindowVisible Lib "user32" _
 (ByVal hWnd As Long) As Long
Private Declare Function IsWindowEnabled Lib "user32" _
 (ByVal hWnd As Long) As Long
Private Declare Sub ShowWindow Lib "user32" _
 (ByVal hWnd As Long, ByVal Show As Long)

Private Const SW_HIDE = 0
Private Const SW_SHOW = 5

Private Const kProgmanClass = "progman"

Public Property Get DesktopIconsEnabled() As Boolean
  DesktopIconsEnabled = IsWindowEnabled(FindWindow(kProgmanClass, _
   vbNullString))
End Property

Public Property Let DesktopIconsEnabled _
 (ByVal New_DesktopIconsEnabled As Boolean)
  EnableWindow FindWindow(kProgmanClass, vbNullString), _
   Abs(New_DesktopIconsEnabled)
End Property

Public Property Get DesktopIconsVisible() As Boolean
  DesktopIconsVisible = IsWindowVisible(FindWindow(kProgmanClass, _
   vbNullString))
End Property

Public Property Let DesktopIconsVisible _
 (ByVal New_DesktopIconsVisible As Boolean)
  ShowWindow FindWindow(kProgmanClass, vbNullString), _
   Abs(New_DesktopIconsVisible) * SW_SHOW
End Property

Public Sub DisableDesktopIcons()
  EnableWindow FindWindow(kProgmanClass, vbNullString), 0
End Sub

Public Sub EnableDesktopIcons()
  EnableWindow FindWindow(kProgmanClass, vbNullString), 1
End Sub

Public Sub HideDesktopIcons()
  ShowWindow FindWindow(kProgmanClass, vbNullString), SW_HIDE
End Sub

Public Sub ShowDesktopIcons()
  ShowWindow FindWindow(kProgmanClass, vbNullString), SW_SHOW
End Sub

Public Function ToggleEnableDesktopIcons() As Boolean
  Dim nIconsWnd As Long
  
  nIconsWnd = FindWindow(kProgmanClass, vbNullString)
  If IsWindowEnabled(nIconsWnd) Then
    EnableWindow nIconsWnd, 0
  Else
    EnableWindow nIconsWnd, 1
    ToggleEnableDesktopIcons = True
  End If
End Function

Public Function ToggleShowDesktopIcons() As Boolean
  Dim nIconsWnd As Long
  
  nIconsWnd = FindWindow(kProgmanClass, vbNullString)
  If IsWindowVisible(nIconsWnd) Then
    ShowWindow nIconsWnd, SW_HIDE
  Else
    ShowWindow nIconsWnd, SW_SHOW
    ToggleShowDesktopIcons = True
  End If
End Function


Modul modDesktopIcons (modDesktopIcons.bas - ca. 2,5 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikel

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer