vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

Fortgeschrittene Programmierung
Re: Zwischenablage systemweit 
Autor: Blackbox
Datum: 21.01.12 11:02

Hallo,

jupp ;) GlobalAlloc()

Private Const CF_TEXT As Long = 1
Private Const GMEM_MOVEABLE As Long = &H2
Private Const GMEM_DDESHARE As Long = &H2000
 
Private Declare Function OpenClipboard Lib "user32.dll" (ByVal hWnd As Long) As _
  Long
 
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
 
Private Declare Function GetClipboardData Lib "user32.dll" (ByVal wFormat As _
  Long) As Long
 
Private Declare Function EmptyClipboard Lib "user32.dll" () As Long
 
Private Declare Function GlobalLock Lib "kernel32.dll" (ByVal hMem As Long) As _
  Long
 
Private Declare Function GlobalUnlock Lib "kernel32.dll" (ByVal hMem As Long) _
  As Long
 
Private Declare Function GlobalSize Lib "kernel32.dll" (ByVal hMem As Long) As _
  Long
 
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" _
   (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
 
Private Declare Function GlobalAlloc Lib "kernel32.dll" (ByVal wFlags As Long, _
  ByVal dwBytes As Long) As Long
 
Private Declare Function SetClipboardData Lib "user32.dll" (ByVal wFormat As _
  Long, ByVal hMem As Long) As Long
 
 
Public Function GetGlobalText(ByVal hWnd As Long) As String
    Dim hMem As Long
    Dim hPtr As Long
    Dim sClip As String
    Dim nSize As Long
 
    OpenClipboard hWnd
    hMem = GetClipboardData(CF_TEXT)
    If hMem > 0 Then
       nSize = GlobalSize(hMem)
       hPtr = GlobalLock(hMem)
       sClip = Space(nSize)
       CopyMemory ByVal StrPtr(sClip), ByVal hPtr, nSize
       GetGlobalText = StrConv(sClip, vbUnicode)
       GlobalUnlock hMem
    End If
 
    CloseClipboard
End Function
 
Public Sub SetGlobalText(ByVal hWnd As Long, ByVal sTxt As String)
    Static hMem As Long
    Dim hPtr As Long
    Dim sClip() As Byte
    Dim nSize As Long
 
    OpenClipboard hWnd
    EmptyClipboard
 
    hMem = GlobalAlloc(GMEM_MOVEABLE Or GMEM_DDESHARE, Len(sTxt) + 1)
    If hMem > 0 Then
       hPtr = GlobalLock(hMem)
       sClip() = StrConv(sTxt, vbFromUnicode)
       CopyMemory ByVal hPtr, ByVal VarPtr(sClip(0)), Len(sTxt) + 1
       SetClipboardData CF_TEXT, hMem
       GlobalUnlock hMem
    End If
 
    CloseClipboard
End Sub


Beitrag wurde zuletzt am 21.01.12 um 11:22:25 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zwischenablage systemweit2.150HarryLobster20.01.12 09:18
Re: Zwischenablage systemweit1.364Zardoz20.01.12 14:15
Re: Zwischenablage systemweit1.373HarryLobster20.01.12 15:13
Re: Zwischenablage systemweit1.456Blackbox20.01.12 18:32
Re: Zwischenablage systemweit1.374HarryLobster20.01.12 18:36
Re: Zwischenablage systemweit1.400Blackbox20.01.12 19:06
Re: Zwischenablage systemweit1.339HarryLobster21.01.12 10:08
Re: Zwischenablage systemweit1.436Blackbox21.01.12 11:02
Re: Zwischenablage systemweit1.340HarryLobster21.01.12 11:31
Re: Zwischenablage systemweit1.448Preisser21.01.12 11:46
Re: Zwischenablage systemweit1.333OGGI21.01.12 19:19
Re: Zwischenablage systemweit1.281Manfred X21.01.12 20:46
Re: Zwischenablage systemweit1.320OGGI21.01.12 21:50
Re: Zwischenablage systemweit1.311Blackbox21.01.12 22:37
Re: Zwischenablage systemweit1.358Manfred X21.01.12 22:47

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-2024 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