Kommunikation zwischen zwei Programmen?

Anfängerfragen zum Programmieren mit PureBasic.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Kommunikation zwischen zwei Programmen?

Beitrag von DarkDragon »

TomS hat geschrieben:DarkDragon, deinen Code würde ich nicht verwenden.
Ich denke mal er erzeugt einen neuen Typen neben den 3 bekannten Standardtypen, Text, Data/Image und File.
Allerdings können diese 3 Typen nicht parallel benutzt werden.
Das heißt, wenn du einen Bildschnipsel aus Paint ausgeschnitten/kopiert hast und danach einen Text kopierst, ist der Bildschnipsel weg.
Wenn jetzt konstant im Hintergrund irgendwelcher für den Anwender unrelevanter Quatsch meine Text Schnipsel überschreibt, würde mich das sehr ärgern.
Nur wenn man EmptyClipboard verwendet wird der andere Inhalt gelöscht. Das habe ich nur exemplarisch ins lesen eingebaut, natürlich sollte man das so machen dann:

Code: Alles auswählen

Define CrypticalFormat.i
Define Memory.i
Define Text.s

CrypticalFormat = RegisterClipboardFormat_("WAIODJIWOADJWIOIAJISDJ")
If CrypticalFormat <> 0
  If OpenClipboard_(0)
    ; Read it if something is available
    Memory = GetClipboardData_(CrypticalFormat)
    If Memory <> 0
      Debug PeekS(GlobalLock_(Memory))
      GlobalUnlock_(Memory)
      SetClipboardData_(CrypticalFormat, 0)
    Else
      ; or write it if nothing is in the clipboard
      Text = "Hello, World!"
      Memory = GlobalAlloc_(#GMEM_MOVEABLE, StringByteLength(Text, #PB_Ascii))
      If Memory <> 0
        PokeS(GlobalLock_(Memory), Text, -1, #PB_Ascii)
        GlobalUnlock_(Memory)
        
        Debug "Writing data to clipboard."
        
        SetClipboardData_(CrypticalFormat, Memory)
      EndIf
    EndIf
    CloseClipboard_()
  EndIf
EndIf
Kopier irgendwelchen Text oder irgendwelche Bilder und führe den Code 2x aus, dann ist die Zwischenablage für dich immernoch die alte.
Aber ja, du hast recht wenn du es andersrum meinst:
Der Nutzer kopiert irgendwas zwischen dem 2x ausführen. Aber das könnte man auch handeln (Handshake und so..).

Ich schreib zu dem Posting lieber mal hinzu, dass es ein Scherz war, denn es gibt soviele Möglichkeiten, dass ich einfach alle geschrieben hab, die mir einfielen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
pureanfänger
Beiträge: 74
Registriert: 29.03.2008 15:22

Re: Kommunikation zwischen zwei Programmen?

Beitrag von pureanfänger »

Danke für die verschiedenen Tipps :)

Ich habe dazu aber noch eine konkrete Frage.

Wenn ich z.B. Benutzerdaten (Username + Passwort) von einem Programm zum anderen übertragen möchte, welche Methode würdet ihr vorschlagen ?
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Kommunikation zwischen zwei Programmen?

Beitrag von STARGÅTE »

Die Methode (in Bezug auf die hier genannten Möglichkeiten) ist eigentlich egal.
Wichtig ist bei "Benutzerdaten" nur, das du sie nicht als Klartext übertragen solltest,
sonden "Ein-Weg"-verschlüsselst, wenn es nur um einen "Vergleich geht" (ob beide das gleiche angegeben haben)
oder "Hin/Rück"-verschlüsselst, wenn die echten Daten wieder benötigt werden.

Verschlüsselungsmethoden findest du unter PureBasic - Cipher
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten