Zwischenablage

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
jogo
Beiträge: 44
Registriert: 22.11.2020 20:05
Computerausstattung: 'ne Handvoll gebrauchte Laptops & PCs mit Mint Mate

Re: Zwischenablage

Beitrag von jogo »

jo, das Programm läuft (über IDE) // keine Debuggermeldung // hab dann im xed probiert.
die Zeile: ;SDL_SetMainReady() hab ich probehalber temporär einkommentiert, keine Änderung.

Ich werde das Tool mal kompilieren und seperat starten - vllt. gibt es da ja Unterschiede..

Was genau (grob vom logischen Ablauf her) passiert denn genau mit diesem Tool?
Ich muß es ja dann irdendwie in mein Programm einbinden ;-)

Edit:
Oder muß ich für dieses Programm ein Fenster erzeugen, damit es funktioniert?
Ich muß es ja irgendwie beenden können.
Oder ich starte es als Thread - müßte mich denn da reinwuseln..

Edit2:
hab jetzt direkt dein Beispiel kompiliert // also mit auskommentierter Zeile (;SDL_SetMainReady(), wie im Beispiel ) und ausgeführt.
In der Systemüberwachung ist es auch da und schläft & läuft abwechselt.
Aber der Testtext kommt nicht bei mittlerer Maus.
Oder muß ich das mit den Konstanten, wie über dem Beispiel auch entsprechend durchziehen?

Edit3:
Ich krieg das nicht zum laufen. Keine Fehlermeldung - aber auch kein Resultat.
Möglicherweise meine Dummheit. Muß denn irgendwas noch definiert werden? // Subsystem etc?
--
Ideen gibt es viele - man muss sie nur haben...
Mint Mate 18.3/19.3 // PureBasic 5.73
ccode_new
Beiträge: 1169
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Zwischenablage

Beitrag von ccode_new »

Bekommst du das hier zum laufen?

SDL2 mit Fenster (Es ist leider keine Eventabarbeitung ohne oder mit versteckten Fenster möglich)

Code: Alles auswählen

EnableExplicit

;- SDL_events.h

Macro VERSION_ATLEAST(X, Y, Z): #True :EndMacro

Macro char:   a  :EndMacro
Macro int:    l  :EndMacro
Macro unsignedint: l :EndMacro
Macro void:   l  :EndMacro
Macro enum: l :EndMacro
Macro size_t: q : EndMacro
Macro punsignedlong: long :EndMacro
Macro penum : long : EndMacro
Macro psize_t: long : EndMacro
Macro pfloat: float :EndMacro
Macro pint:    long  :EndMacro
Macro punsignedint: long :EndMacro
Macro pvoid: ascii :EndMacro
Macro r_ascii: i : EndMacro; Ascii (don't free)
Macro r_utf8: i : EndMacro ; UTF8 (don't free)
Macro r_fascii: i : EndMacro; Ascii (free!)
Macro r_futf8: i : EndMacro ; UTF8 (free!)
Macro r_Uint8: i :EndMacro
Macro r_void: i :EndMacro
#SDLALIGN = #PB_Structure_AlignC ;4

Macro Sint8:  b : EndMacro
Macro Uint8:  a : EndMacro
Macro Sint16: w : EndMacro
Macro Uint16: u : EndMacro
Macro Sint32: l : EndMacro
Macro Uint32: l : EndMacro
Macro Sint64: q : EndMacro
Macro Uint64: q : EndMacro
Macro unsignedlong: l :EndMacro
Macro t_bool: l :EndMacro
Macro pSint8:  byte : EndMacro
Macro pUint8:  ascii : EndMacro
Macro pSint16: word : EndMacro
Macro pUint16: unicode : EndMacro
Macro pSint32: long : EndMacro
Macro pUint32: long : EndMacro
Macro pSint64: quad : EndMacro
Macro pUint64: quad : EndMacro

Macro t_Keycode: Sint32 :EndMacro
Macro t_JoystickID: Sint32 :EndMacro
Macro t_TouchID: Sint64 :EndMacro
Macro t_FingerID: Sint64 :EndMacro
Macro t_GestureID: Sint64 :EndMacro

Structure Keysym Align #SDLALIGN
  scancode.enum
  sym.t_Keycode
  mod.Uint16
  unused.Uint32
EndStructure

Macro r_SysWMmsg: i :EndMacro
Structure SysWMmsg: EndStructure
#RELEASED = 0
#PRESSED = 1
Enumeration EventType
  #FIRSTEVENT = 0
  #QUIT = $100
  #APP_TERMINATING
  #APP_LOWMEMORY
  #APP_WILLENTERBACKGROUND
  #APP_DIDENTERBACKGROUND
  #APP_WILLENTERFOREGROUND
  #APP_DIDENTERFOREGROUND
  CompilerIf VERSION_ATLEAST(2,0,14)
    #LOCALECHANGED
  CompilerEndIf
  CompilerIf VERSION_ATLEAST(2,0,9)
    #DISPLAYEVENT = $150
  CompilerEndIf
  #WINDOWEVENT = $200
  #SYSWMEVENT
  #KEYDOWN = $300
  #KEYUP
  #TEXTEDITING
  #TEXTINPUT
  CompilerIf VERSION_ATLEAST(2,0,4)
    #KEYMAPCHANGED
  CompilerEndIf
  #MOUSEMOTION = $400
  #MOUSEBUTTONDOWN
  #MOUSEBUTTONUP
  #MOUSEWHEEL
  #JOYAXISMOTION = $600
  #JOYBALLMOTION
  #JOYHATMOTION
  #JOYBUTTONDOWN
  #JOYBUTTONUP
  #JOYDEVICEADDED
  #JOYDEVICEREMOVED
  #CONTROLLERAXISMOTION = $650
  #CONTROLLERBUTTONDOWN
  #CONTROLLERBUTTONUP
  #CONTROLLERDEVICEADDED
  #CONTROLLERDEVICEREMOVED
  #CONTROLLERDEVICEREMAPPED
  CompilerIf VERSION_ATLEAST(2,0,14)
    #CONTROLLERTOUCHPADDOWN
    #CONTROLLERTOUCHPADMOTION
    #CONTROLLERTOUCHPADUP
    #CONTROLLERSENSORUPDATE
  CompilerEndIf  
  #FINGERDOWN = $700
  #FINGERUP
  #FINGERMOTION
  #DOLLARGESTURE = $800
  #DOLLARRECORD
  #MULTIGESTURE
  #CLIPBOARDUPDATE = $900
  #DROPFILE = $1000
  CompilerIf VERSION_ATLEAST(2,0,5)
    #DROPTEXT
    #DROPBEGIN
    #DROPCOMPLETE
  CompilerEndIf
  #AUDIODEVICEADDED = $1100
  #AUDIODEVICEREMOVED
  CompilerIf VERSION_ATLEAST(2,0,9)
    #SENSORUPDATE = $1200
  CompilerEndIf
  CompilerIf VERSION_ATLEAST(2,0,2)
    #RENDER_TARGETS_RESET = $2000
  CompilerEndIf
  CompilerIf VERSION_ATLEAST(2,0,4)
    #RENDER_DEVICE_RESET
  CompilerEndIf
  #USEREVENT = $8000
  #LASTEVENT = $FFFF
EndEnumeration
Enumeration eventaction
  #ADDEVENT
  #PEEKEVENT
  #GETEVENT
EndEnumeration
#QUERY = -1
#IGNORE = 0
#DISABLE = 0
#ENABLE = 1
#TEXTEDITINGEVENT_TEXT_SIZE = (32)
#TEXTINPUTEVENT_TEXT_SIZE = (32)
Macro EventFilter: integer :EndMacro ;EventFilter.int (*userdata.pvoid, *event.event);
Structure CommonEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
EndStructure
Macro r_CommonEvent: i :EndMacro
CompilerIf VERSION_ATLEAST(2,0,9)
  Structure DisplayEvent Align #SDLALIGN
    type.Uint32
    timestamp.Uint32
    display.Uint32
    event.Uint8
    padding1.Uint8
    padding2.Uint8
    padding3.Uint8
    data1.Sint32
  EndStructure
  Macro r_DisplayEvent: i :EndMacro
CompilerEndIf
Structure WindowEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  windowID.Uint32
  event.Uint8
  padding1.Uint8
  padding2.Uint8
  padding3.Uint8
  data1.Sint32
  data2.Sint32
EndStructure
Macro r_WindowEvent: i :EndMacro
Structure KeyboardEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  windowID.Uint32
  state.Uint8
  Repeat.Uint8:CompilerIf #False:Until:CompilerEndIf
  padding2.Uint8
  padding3.Uint8
  keysym.Keysym
EndStructure
Macro r_KeyboardEvent: i :EndMacro
Structure TextEditingEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  windowID.Uint32
  text.char [ #TEXTEDITINGEVENT_TEXT_SIZE ]
  start.Sint32
  length.Sint32
EndStructure
Macro r_TextEditingEvent: i :EndMacro
Structure TextInputEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  windowID.Uint32
  text.char [ #TEXTINPUTEVENT_TEXT_SIZE ]
EndStructure
Macro r_TextInputEvent: i :EndMacro
Structure MouseMotionEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  windowID.Uint32
  which.Uint32
  state.Uint32
  x.Sint32
  y.Sint32
  xrel.Sint32
  yrel.Sint32
EndStructure
Macro r_MouseMotionEvent: i :EndMacro
Structure MouseButtonEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  windowID.Uint32
  which.Uint32
  button.Uint8
  state.Uint8
  clicks.Uint8
  padding1.Uint8
  x.Sint32
  y.Sint32
EndStructure
Macro r_MouseButtonEvent: i :EndMacro
Structure MouseWheelEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  windowID.Uint32
  which.Uint32
  x.Sint32
  y.Sint32
  CompilerIf VERSION_ATLEAST(2,0,4)
    direction.Uint32
  CompilerEndIf
EndStructure
Macro r_MouseWheelEvent: i :EndMacro
Structure JoyAxisEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  which.t_JoystickID
  axis.Uint8
  padding1.Uint8
  padding2.Uint8
  padding3.Uint8
  value.Sint16
  padding4.Uint16
EndStructure
Macro r_JoyAxisEvent: i :EndMacro
Structure JoyBallEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  which.t_JoystickID
  ball.Uint8
  padding1.Uint8
  padding2.Uint8
  padding3.Uint8
  xrel.Sint16
  yrel.Sint16
EndStructure
Macro r_JoyBallEvent: i :EndMacro
Structure JoyHatEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  which.t_JoystickID
  hat.Uint8
  value.Uint8
  padding1.Uint8
  padding2.Uint8
EndStructure
Macro r_JoyHatEvent: i :EndMacro
Structure JoyButtonEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  which.t_JoystickID
  button.Uint8
  state.Uint8
  padding1.Uint8
  padding2.Uint8
EndStructure
Macro r_JoyButtonEvent: i :EndMacro
Structure JoyDeviceEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  which.Sint32
EndStructure
Macro r_JoyDeviceEvent: i :EndMacro
Structure ControllerAxisEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  which.t_JoystickID
  axis.Uint8
  padding1.Uint8
  padding2.Uint8
  padding3.Uint8
  value.Sint16
  padding4.Uint16
EndStructure
Macro r_ControllerAxisEvent: i :EndMacro
Structure ControllerButtonEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  which.t_JoystickID
  button.Uint8
  state.Uint8
  padding1.Uint8
  padding2.Uint8
EndStructure
Macro r_ControllerButtonEvent: i :EndMacro
Structure ControllerDeviceEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  which.Sint32
EndStructure
Macro r_ControllerDeviceEvent: i :EndMacro
CompilerIf VERSION_ATLEAST(2,0,14)
  Structure ControllerTouchpadEvent Align #SDLALIGN
    type.Uint32
    timestamp.Uint32
    which.t_JoystickID
    touchpad.Sint32
    finger.Sint32
    x.float
    y.float
    pressure.float
  EndStructure
  Macro r_ControllerTouchpadEvent: i :EndMacro
  Structure ControllerSensorEvent Align #SDLALIGN
    type.Uint32
    timestamp.Uint32
    which.t_JoystickID
    sensor.Sint32
    Data.float [ 3 ]
  EndStructure
  Macro r_ControllerSensorEvent: i :EndMacro
CompilerEndIf
CompilerIf VERSION_ATLEAST(2,0,4)
  Structure AudioDeviceEvent Align #SDLALIGN
    type.Uint32
    timestamp.Uint32
    which.Uint32
    iscapture.Uint8
    padding1.Uint8
    padding2.Uint8
    padding3.Uint8
  EndStructure
  Macro r_AudioDeviceEvent: i :EndMacro
CompilerEndIf
Structure TouchFingerEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  touchId.t_TouchID
  fingerId.t_FingerID
  x.f
  y.f
  dx.f
  dy.f
  pressure.f
  CompilerIf VERSION_ATLEAST(2,0,12)
    windowID.Uint32
  CompilerEndIf
EndStructure
Macro r_TouchFingerEvent: i :EndMacro
Structure MultiGestureEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  touchId.t_TouchID
  dTheta.f
  dDist.f
  x.f
  y.f
  numFingers.Uint16
  padding.Uint16
EndStructure
Macro r_MultiGestureEvent: i :EndMacro
Structure DollarGestureEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  touchId.t_TouchID
  gestureId.t_GestureID
  numFingers.Uint32
  error.f
  x.f
  y.f
EndStructure
Macro r_DollarGestureEvent: i :EndMacro
Structure DropEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  *file.pchar
  CompilerIf VERSION_ATLEAST(2,0,5)
    windowID.Uint32
  CompilerEndIf
EndStructure
Macro r_DropEvent: i :EndMacro
CompilerIf VERSION_ATLEAST(2,0,9)
  Structure SensorEvent Align #SDLALIGN
    type.Uint32
    timestamp.Uint32
    which.Sint32
    Data.f [ 6 ]
  EndStructure
  Macro r_SensorEvent: i :EndMacro
CompilerEndIf
Structure QuitEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
EndStructure
Macro r_QuitEvent: i :EndMacro
Structure OSEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
EndStructure
Macro r_OSEvent: i :EndMacro
Structure UserEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  windowID.Uint32
  code.Sint32
  *data1.pvoid
  *data2.pvoid
EndStructure
Macro r_UserEvent: i :EndMacro
Structure SysWMEvent Align #SDLALIGN
  type.Uint32
  timestamp.Uint32
  *msg.pSysWMmsg
EndStructure
Macro r_SysWMEvent: i :EndMacro
Structure Event Align #SDLALIGN
  StructureUnion
    type.Uint32
    common.CommonEvent 
    CompilerIf VERSION_ATLEAST(2,0,9)
      display.DisplayEvent 
    CompilerEndIf
    window.WindowEvent   
    key.KeyboardEvent    
    edit.TextEditingEvent
    text.TextInputEvent  
    motion.MouseMotionEvent 
    button.MouseButtonEvent 
    wheel.MouseWheelEvent   
    jaxis.JoyAxisEvent      
    jball.JoyBallEvent      
    jhat.JoyHatEvent        
    jbutton.JoyButtonEvent  
    jdevice.JoyDeviceEvent  
    caxis.ControllerAxisEvent 
    cbutton.ControllerButtonEvent 
    cdevice.ControllerDeviceEvent 
    CompilerIf VERSION_ATLEAST(2,0,4)
      ctouchpad.ControllerTouchpadEvent
      csensor.ControllerSensorEvent 
    CompilerEndIf
    CompilerIf VERSION_ATLEAST(2,0,4)
      adevice.AudioDeviceEvent      
    CompilerEndIf
    CompilerIf VERSION_ATLEAST(2,0,9)
      sensor.SensorEvent            
    CompilerEndIf
    quit.QuitEvent                
    user.UserEvent                
    syswm.SysWMEvent              
    tfinger.TouchFingerEvent      
    mgesture.MultiGestureEvent    
    dgesture.DollarGestureEvent    
    drop.DropEvent                
    padding.Uint8[56]             
  EndStructureUnion
EndStructure
Macro r_Event: i :EndMacro
CompilerIf VERSION_ATLEAST(2,0,10)
  CompilerIf SizeOf(event) <> 56
    CompilerError("SDL_EVENTS - Structure wrong size!")
  CompilerEndIf
CompilerEndIf

ImportC "-lSDL2"
  SDL_SetClipboardText(text.p-utf8)
  SDL_Init(flags.l)
  SDL_SetMainReady()
  SDL_WaitEvent(*evt.event)
  SDL_PollEvent(*evt.event)
  SDL_GetError()
  SDL_CreateWindow(title.p-utf8, x.l, y.l, w.l, h.l, flags.l)
EndImport

CompilerIf Not Defined(SDL_INIT_EVENTS, #PB_Constant)
  #SDL_INIT_EVENTS = 16384
CompilerEndIf

CompilerIf Not Defined(SDL_K_ESCAPE, #PB_Constant)
  #SDL_K_ESCAPE = 27
CompilerEndIf

CompilerIf Not Defined(SDL_WINDOW_HIDDEN, #PB_Constant)
  #SDL_WINDOW_HIDDEN = 8
CompilerEndIf

CompilerIf Not Defined(SDL_WINDOW_INPUT_GRABBED, #PB_Constant)
  #SDL_WINDOW_INPUT_GRABBED = 256
CompilerEndIf

CompilerIf Not Defined(SDL_WINDOW_FULLSCREEN_DESKTOP, #PB_Constant)
  #SDL_WINDOW_FULLSCREEN_DESKTOP = 4097
CompilerEndIf

#SDL_KEYDOWN_ = 768

#SDL_QUIT_ = 256

Global evt.event
Global quit.b = #False
;SDL_SetMainReady()
If SDL_Init(#SDL_INIT_VIDEO|#SDL_INIT_EVENTS) = 0
  SDL_CreateWindow("", 0, 0, 200, 200, 0)
  If Not SDL_SetClipboardText("PureBasic sagt Hallo mit der Power der SDL-Lib.")
    Debug SDL_GetError()
  EndIf
  ;Debug SDL_WaitEvent(evt)
  While Not quit
    If SDL_PollEvent(evt)
      ;Debug "Die Eventschleife"
      Select evt\type
        Case #SDL_QUIT_
          quit = #True
          Debug "Das Programm wurde beendet."
        Case #SDL_KEYDOWN_
          Select evt\key\keysym\sym 
            Case #SDL_K_ESCAPE
              quit = #True
              Debug "Das Programm wurde beendet."
          EndSelect
      EndSelect
    EndIf
  Wend
  End 0
Else
  Debug SDL_GetError()
  End SDL_GetError()
EndIf

Ansonsten ist die Lösung mit xsel eigentlich die Beste.
Betriebssysteme: Windows 11 (mit WSL (Linux)) / RaspberryPi OS - Bullseye / Mac OS 11 / Android 11
...
jogo
Beiträge: 44
Registriert: 22.11.2020 20:05
Computerausstattung: 'ne Handvoll gebrauchte Laptops & PCs mit Mint Mate

Re: Zwischenablage

Beitrag von jogo »

hey ccode_new,
funktioniert wie verrückt :mrgreen: da hast ja richtig Gas gegeben - Respekt 8)
Ist 'ne Menge Code. Und die ganzen Macros.. Das hätte ich nie im Leben zusammen gekriegt.

Mal sehen, wie ich das in mein Projekt reingefummelt kriege.
SDL2 muß vorhanden sein. Weiß garnicht, ab welchen Linux, SDL2 dabei ist..

Vielen Dank für deine Mühe :allright:

Edit:
die CPU-Last geht auf 96-100 hoch. Gib es da vllt. 'ne Stelle zum schrauben?
--
Ideen gibt es viele - man muss sie nur haben...
Mint Mate 18.3/19.3 // PureBasic 5.73
ccode_new
Beiträge: 1169
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Zwischenablage

Beitrag von ccode_new »

jogo hat geschrieben: 14.07.2022 22:59 Ist 'ne Menge Code. Und die ganzen Macros.. Das hätte ich nie im Leben zusammen gekriegt.
Da geht der meiste Dank dann an GPI hier im Forum, für seine tolle Arbeit die SDL2 Includes von C nach PureBasic zu portieren.

Den meisten Teil habe ich einfach aus seiner übersetzen sdl.pbi - Datei kopiert.

Das SDL-Event Gedöns muss nämlich für SDL2 kompatibel sein.
Außerdem sind viele Konstanten in PureBasic falsch oder nicht verfügbar.
Das überhaubt SDL Konstanten in PureBasic verfügbar sind liegt übrigens an der Verwendung der "uralten" SDL1.2 Lib die PureBasic für die Audio-CD Funktionen unter Linux benötigt. (Es gibt da für auch andere native Möglichkeiten)
Unter SDL2 gibt es im übrigen leider keine offizielle Audio-CD-Kompatibilität mehr.
jogo hat geschrieben: 14.07.2022 22:59 die CPU-Last geht auf 96-100 hoch. Gib es da vllt. 'ne Stelle zum schrauben?
Einfach mal ein Delay von wenigen Millisekunden in den Event-Loop packen.

->Noch ein paar kleine Tipps:
Mit der Einbindung von "SDL_MinimizeWindow(*win)" kannst du das Fenster auch minimiert starten.

Verwende z.B. die Möglichkeit die zu kopierende Zeichenkette per Programmparameter mitzugeben.
clipboard_plain_text.s = ProgramParameter(0)
_____________
Anbei:

Kannst du das hier mal testen:
Copy-Text-Test mit der FLTK-Bibliothek (Linux-X64)
Betriebssysteme: Windows 11 (mit WSL (Linux)) / RaspberryPi OS - Bullseye / Mac OS 11 / Android 11
...
ccode_new
Beiträge: 1169
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Zwischenablage

Beitrag von ccode_new »

Ich habe da auch noch etwas ohne zusätzlichen Ballast (Fltk, SDL2).

Hier eine Lösung mit Gtk2 (Müsste auch mit Gtk3 gehen.):

Code: Alles auswählen

EnableExplicit

CompilerIf Subsystem("gtk2")
  Global quit.b = 0
  Procedure Main()
    Protected *clip.long
    Protected quit.b = 0
    If OpenWindow(0, 0, 0, 200, 200, "Copy-Test", #PB_Window_ScreenCentered)
      
      *clip = gtk_clipboard_get_(gdk_atom_intern_("PRIMARY", #True))
      
      gtk_clipboard_set_text_(*clip, "Hello World", Len("Hello world"))
      
      Repeat
        
      Until WindowEvent() = #PB_Event_CloseWindow
      quit = 0
    Else
      quit = -1
    EndIf
    ProcedureReturn quit
  EndProcedure
  quit = Main()
  End quit
CompilerEndIf
Betriebssysteme: Windows 11 (mit WSL (Linux)) / RaspberryPi OS - Bullseye / Mac OS 11 / Android 11
...
jogo
Beiträge: 44
Registriert: 22.11.2020 20:05
Computerausstattung: 'ne Handvoll gebrauchte Laptops & PCs mit Mint Mate

Re: Zwischenablage

Beitrag von jogo »

jo, danke für die Zusatztipps ;-) jetzt hab ich reichlich Stoff zum rumtesten und probieren und die Qual der Wahl^^

Und dein letzter Schnipsel ist ja wohl der Hammer - knackiger gehts nicht - damit rückst mal ganz so nebenbei zum Schluß raus :mrgreen:

Die unterschiedlichen Ansätze sind auf jeden Fall eine riesen Hilfe - Danke nochmals :allright:
--
Ideen gibt es viele - man muss sie nur haben...
Mint Mate 18.3/19.3 // PureBasic 5.73
Antworten