vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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

VB.NET - Fortgeschrittene
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen 
Autor: VBExpress
Datum: 15.11.08 10:27

Hier ist ein kleines Beispiel vielleicht hilft es dir etwas weiter.

Imports System.Runtime.InteropServices
Public Class CHook
    Public Event OnCallBack(ByVal x As Integer, ByVal y As Integer)
    Private Delegate Function CallBack(ByVal nCode As Integer, ByVal wParam As _
      IntPtr, ByVal lParam As IntPtr) As Integer
    Private WH_MOUSE As Integer = 7
    Private Shared hHook As Integer = 0
    Private hookID As CallBack
    <DllImport("User32.dll", CharSet:=CharSet.Auto, _
      CallingConvention:=CallingConvention.StdCall)> _
     Private Overloads Shared Function SetWindowsHookEx _
          (ByVal idHook As Integer, ByVal HookProc As CallBack, _
           ByVal hInstance As IntPtr, ByVal wParam As Integer) As Integer
    End Function
    <DllImport("User32.dll", CharSet:=CharSet.Auto, _
      CallingConvention:=CallingConvention.StdCall)> _
     Private Overloads Shared Function CallNextHookEx _
          (ByVal idHook As Integer, ByVal nCode As Integer, _
           ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer
    End Function
    <DllImport("User32.dll", CharSet:=CharSet.Auto, _
      CallingConvention:=CallingConvention.StdCall)> _
         Private Overloads Shared Function UnhookWindowsHookEx _
              (ByVal idHook As Integer) As Boolean
    End Function
    <DllImport("User32.dll", CharSet:=CharSet.Auto, _
      CallingConvention:=CallingConvention.StdCall)> _
    Private Overloads Shared Function GetWindowThreadProcessId(ByVal hWnd As _
    IntPtr, ByVal lpdwProcessId As Integer) As Integer
    End Function
    <DllImport("kernel32.dll", CharSet:=CharSet.Auto, _
      CallingConvention:=CallingConvention.StdCall)> _
    Private Overloads Shared Function GetModuleHandle(ByVal lpModuleName As _
    String) As Integer
    End Function
    <StructLayout(LayoutKind.Sequential)> Private Structure Point
        Public x As Integer
        Public y As Integer
    End Structure
    Private Structure MouseHook
        Public ptPos As Point
        Public handle As Integer
        Public Code As Integer
        Public eInfo As Integer
    End Structure
    Public Sub SetHook(ByVal ProcessID As Integer)
        Dim ThreadID As Integer
        Dim None As Integer
        Dim MHandle As Integer = Process.GetProcessById( _
          ProcessID).MainWindowHandle()
        Dim DLLHandle As IntPtr = GetModuleHandle("Hook.dll")
 
        ThreadID = GetWindowThreadProcessId(MHandle, None)
 
        If hHook.Equals(0) Then
            hookID = AddressOf MouseHookProc
            hHook = SetWindowsHookEx(WH_MOUSE, hookID, DLLHandle, ThreadID)
 
            If hHook.Equals(0) Then
                MsgBox("FEHLER !!", MsgBoxStyle.Information)
                Return
            End If
        Else
            Dim ret As Boolean = UnhookWindowsHookEx(hHook)
 
            If ret.Equals(False) Then
                MsgBox("Hook konnte nicht Entfernt werden !!", _
                  MsgBoxStyle.Information)
                Return
            Else
                hHook = 0
            End If
        End If
 
    End Sub
    Private Function MouseHookProc(ByVal nCode As Integer, ByVal wParam As _
      IntPtr, ByVal lParam As IntPtr) As Integer
        Dim MyHook As New MouseHook()
 
        If (nCode < 0) Then
            Return CallNextHookEx(hHook, nCode, wParam, lParam)
        End If
 
        MyHook = CType(Marshal.PtrToStructure(lParam, MyHook.GetType()), _
          MouseHook)
        Run(MyHook.ptPos.x, MyHook.ptPos.y)
 
        Return CallNextHookEx(hHook, nCode, wParam, lParam)
    End Function
    Private Sub Run(ByVal x As Integer, ByVal y As Integer)
        RaiseEvent OnCallBack(x, y)
    End Sub
Das ist die DLL die ich mir gebastelt habe. Nur wie ich schon sagte, stürzen andere Anwendungen ab, wenn ich den Hook setze.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Laufendes Programm aus Windows (XP) Taskleiste entfernen2.019lyris08.11.08 23:12
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.241VBExpress12.11.08 19:17
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.251lyris12.11.08 19:52
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.188VBExpress12.11.08 20:24
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.151lyris12.11.08 23:54
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.197VBExpress13.11.08 05:30
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.166lyris13.11.08 08:28
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.205VBExpress15.11.08 01:07
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.159lyris15.11.08 09:29
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.256VBExpress15.11.08 10:27
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.090lyris16.11.08 11:28
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.119lyris16.11.08 21:42
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.097VBExpress16.11.08 23:47
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.084lyris17.11.08 18:27
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.140VBExpress17.11.08 23:47
Re: Laufendes Programm aus Windows (XP) Taskleiste entfernen1.291lyris17.11.08 18:38

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