vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: dll erstellen 
Autor: VB_User
Datum: 03.11.05 19:23

Hallo, ich habe hier eine Funktion im Internet gefunden, mit der man die Ansicht des Desktops ändern kann.
Diese Funktion wollte ich in eine DLL Datei auslagern. Dies sieht bei mir so aus:

cDA.dll
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
 
Private Const VM_ICON = &H0
Private Const VM_REPORT = &H1
Private Const VM_SMALLICON = &H2
Private 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 strukt
  Alt As Long
  Neu As Long
End Type
 
Function DLLMain(ByVal ansicht As Long) As Boolean
  DLLMain = 1
End Function
 
Sub Main()
  'Leer
End Sub
 
Function Style(ByVal ansicht As Long) As Boolean
  Dim hWnd As Long
  Dim st As strukt
 
  On Error GoTo fehler
 
  hWnd = FindWindow("Progman", "Program Manager")
  hWnd = GetWindow(hWnd, GW_CHILD)
  hWnd = GetWindow(hWnd, GW_CHILD)
 
  With st
    .Alt = GetWindowLong(hWnd, GWL_STYLE)
    .Neu = .Alt
    .Neu = .Neu And Not LVS_TYPEMASK
    .Neu = .Neu Or ansicht
  End With
 
  SendMessage hWnd, WM_STYLECHANGED, GWL_STYLE, st
  Style = True
  Exit Function
 
fehler:
  Style = False
End Function
Und der Aufruf der Funktion sieht so aus:
Private Declare Function Style Lib "cDA.dll" (ByVal ansicht As Long) As Boolean
 
Private Sub Command1_Click(Index As Integer)
  Dim result As Boolean
 
  Select Case Index
    Case 0: result = Style(VM_ICON)
    Case 1: result = Style(VM_SMALLICON)
    Case 2: result = Style(VM_LIST)
    Case 3: result = Style(VM_REPORT)
  End Select
 
  If result = True Then
    MsgBox "Style wurde geändert.", vbInformation
  Else
    MsgBox "Style wurde NICHT geändert.", vbCritical
  End If
End Sub
Jetzt habe ich jedoch das Problem, dass immer False zurückgegeben wird.
Habt Ihr eine Idee warum und was ich evtl. falsch mache?!

Ich habe genau die PDF-Anleitung befolgt, nur es kommt immer das gleiche raus.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
dll erstellen728ApfelBaum05.09.05 22:24
Re: dll erstellen520Martin Walcher05.09.05 23:15
Re: dll erstellen480ApfelBaum07.09.05 20:01
Re: dll erstellen452Mr. Fox07.09.05 23:12
Re: dll erstellen531VB_User03.11.05 19:23
Re: dll erstellen423Martin Walcher04.11.05 09:20
Re: dll erstellen460VB_User04.11.05 18:12

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel