VB 5/6-Tipp 0449: Desktop-Style verändern
von Sebastian Klose
Beschreibung
Der Desktop mit den Icons ist eigentlich auch nur eine ListView, dessen Ansichtsmodus(Symbole, Liste, Detailansicht) per Api problemlos verändern werden kann. Über den praktischen Nutzen kann man hier natürlich nur rätseln ;-)
Schwierigkeitsgrad: | Verwendete API-Aufrufe: FindWindowA (FindWindow), GetWindow, GetWindowLongA (GetWindowLong), SendMessageA (SendMessage) | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Projekt1.vbp ------------- '--------- Anfang Modul "Module1" alias Module1.bas --------- Option Explicit Private Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" ( _ ByVal hWnd As Long, _ ByVal nIndex As Long) As Long Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" ( _ ByVal hWnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Private Declare Function FindWindow Lib "user32" _ Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function GetWindow Lib "user32" ( _ ByVal hWnd As Long, _ ByVal wCmd As Long) As Long Public Const VM_ICON = &H0 Public Const VM_REPORT = &H1 Public Const VM_SMALLICON = &H2 Public Const VM_LIST = &H3 Private Const GW_CHILD = 5 Private Const GWL_STYLE = (-16) Private Const LVS_TYPEMASK = &H3 Private Const WM_STYLECHANGED = &H7D Private Type StyleBits dwOld As Long dwNew As Long End Type Public Sub SetDesktopStyle(ByVal Flag As Long) Dim hWnd As Long Dim sb As StyleBits hWnd = FindWindow("Progman", "Program Manager") hWnd = GetWindow(hWnd, GW_CHILD) hWnd = GetWindow(hWnd, GW_CHILD) With sb .dwOld = GetWindowLong(hWnd, GWL_STYLE) .dwNew = .dwOld .dwNew = .dwNew And Not LVS_TYPEMASK .dwNew = .dwNew Or Flag End With SendMessage hWnd, WM_STYLECHANGED, GWL_STYLE, sb End Sub '---------- Ende Modul "Module1" alias Module1.bas ---------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Schaltfläche "Command1" (Index von 0 bis 3) Option Explicit Private Sub Command1_Click(Index As Integer) Dim lngFlag As Long Select Case Index Case 0 lngFlag = VM_ICON Case 1 lngFlag = VM_SMALLICON Case 2 lngFlag = VM_LIST Case 3 lngFlag = VM_REPORT End Select SetDesktopStyle lngFlag End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Projekt1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 3 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von UnknownLifeform am 11.11.2007 um 14:36
Tja bei mit funktionieren nur die Ansichen 'Große Symbole' und 'Kleine symbole' Bei den anderen Ansichten verschwinden die Symbole.
Kommentar von Oliver am 25.05.2005 um 14:17
Ja hallo, wollt ma fragen:
sobald man den Desktop Aktualisiert ist alles wie vorher, also so wie mans kennt.
Kann man das nicht ändern???
Kommentar von Nase am 04.06.2002 um 10:57
Hi,
klappt wunderbar!
Aber kann man auch die Spaltenbreite der Detailansicht anpassen????
Mfg
Nase