(-: Fibergeek's Blog :-)
Inhoud blog
  • Python 2 of 3
  • IDA-python: GetStructureIdAt
  • Geslaagd in Microsoft's 70-680 examen
  • minibio: kort vervolg
  • miniboa: een voorbeeld
    Zoeken in blog

    Categorieën
  • Code: C/C++ (2)
  • Code: Powershell (1)
  • Code: Python (8)
  • Code: WPF (2)
  • Programmeren (5)
  • 11-12-2011
    Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.Text op het Windows Clipboard zetten in Python
    # Deze code is getest met Python 2.6 en Python 3.1

    import ctypes
    from sys import version_info
    strcpy           = ctypes.cdll.msvcrt.strcpy
    wcscpy           = ctypes.cdll.msvcrt.wcscpy
    OpenClipboard    = ctypes.windll.user32.OpenClipboard
    EmptyClipboard   = ctypes.windll.user32.EmptyClipboard
    GetClipboardData = ctypes.windll.user32.GetClipboardData
    SetClipboardData = ctypes.windll.user32.SetClipboardData
    CloseClipboard   = ctypes.windll.user32.CloseClipboard
    GlobalAlloc      = ctypes.windll.kernel32.GlobalAlloc
    GlobalLock       = ctypes.windll.kernel32.GlobalLock
    GlobalUnlock     = ctypes.windll.kernel32.GlobalUnlock
    CF_TEXT          = 1
    CF_UNICODETEXT   = 13
    GMEM_DDESHARE    = 0x2000
    is_python3 = version_info[0] >= 3
    if is_python3:
     default_type = CF_UNICODETEXT
    else:
     default_type = CF_TEXT
    def get_globaldata_as_ansistring(hCd):
     GlobalLock.restype = ctypes.c_char_p
     
     ptr = GlobalLock(hCd)
     GlobalUnlock(hCd)
     
     return ptr
    def get_globaldata_as_unicodestring(hCd):
     GlobalLock.restype = ctypes.c_wchar_p
     
     ptr = GlobalLock(hCd)
     GlobalUnlock(hCd)
     
     return ptr
    def get_ansistring_as_globaldata(string):
     GlobalLock.restype = ctypes.c_long
     
     hCd = GlobalAlloc(GMEM_DDESHARE, len(string) + 1)
     ptr = GlobalLock(hCd)
     strcpy(ctypes.c_char_p(ptr), string)
     GlobalUnlock(hCd)
     
     return hCd
    def get_unicodestring_as_globaldata(string):
     GlobalLock.restype = ctypes.c_long
     
     hCd = GlobalAlloc(GMEM_DDESHARE, len(string) * 2 + 2)
     ptr = GlobalLock(hCd)
     wcscpy(ctypes.c_wchar_p(ptr), string)
     GlobalUnlock(hCd)
     
     return hCd
    def SetText(data):
     if type(data) != str:
      raise TypeError("Data must be a string!")
     OpenClipboard(None)
     try:
      EmptyClipboard()
      if is_python3:
       data = get_unicodestring_as_globaldata(data)
      else:
       data = get_ansistring_as_globaldata(data)
      SetClipboardData(default_type, data)
     except:
      pass
     finally:
      CloseClipboard()
    def GetText():
     data = None
     OpenClipboard(None)
     try:
      data = GetClipboardData(default_type)
      if data:
       if is_python3:
        data = get_globaldata_as_unicodestring(data)
       else:
        data = get_globaldata_as_ansistring(data)
     except:
      pass
     finally:
      CloseClipboard()
     return data

    11-12-2011, 13:45 Geschreven door Fibergeek  


    Categorie:Code: Python
    Tags:Python,Clipboard
    Archief per week
  • 25/11-01/12 2013
  • 05/11-11/11 2012
  • 07/05-13/05 2012
  • 05/03-11/03 2012
  • 20/02-26/02 2012
  • 13/02-19/02 2012
  • 30/01-05/02 2012
  • 12/12-18/12 2011
  • 05/12-11/12 2011
  • 19/09-25/09 2011
  • 15/08-21/08 2011
  • 01/08-07/08 2011
  • 04/07-10/07 2011
  • 06/06-12/06 2011

    E-mail mij

    Druk op onderstaande knop om mij te e-mailen.


    Gastenboek

    Druk op onderstaande knop om een berichtje achter te laten in mijn gastenboek


    Blog als favoriet !


    Blog tegen de wet? Klik hier.
    Gratis blog op https://www.bloggen.be - Meer blogs