IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Gestion du Presse-Papier en Multithreading avec Zennoposter : Votre Avis sur Ma Solution


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Mars 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Mars 2024
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Gestion du Presse-Papier en Multithreading avec Zennoposter : Votre Avis sur Ma Solution
    Coucou et bon dimanche

    L'utilisation du presse papier est a éviter en Automatisation/Zennoposter,
    mais dans certains cas je l'utilise car :
    1 l'emulation de texte prend trop de temps ( si je met en mode fast le texte n'est pas reconnu/la zone de texte n'est pas activé)
    2 pour le parasite SEO où je ne peux pas envoyer du code en html/markdown en tant que guest.

    Donc pour éviter les conflits en multithread de Presse-Papier j'utilise :
    lock(SyncObjects.InputSyncer)
    mais cela ne fonctionne que durant l'execution du block de C#

    Hors dans certains cas je fais des copier-coller qui ont plusieurs blocs entre eux qui ne sont pas des custom C# ( et que je ne peux/veux pas convertir)
    donc pour le moment je passe une solution simple :
    un fichier Externe qui "Lock" avec un choix booléen gèrant l'accès au presse papier!
    Le but étant que lorsqu'un element est copié ds le presse papier ce ne soit pas un autre thread qui le colle car il y a un décalage de plusieurs secondes entre les blocs et il peut y avoir un entrelacement

    J'ai créer le code ci dessous, que pensez vous de la méthode utilisé?
    Est ce qu'il y avait plus simple/robuste?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    // Lock : True
     
     
    // Construire le chemin du fichier
    var lockFilePath = Path.Combine(project.Directory, "01 - The Base\\01 - Cookies\\The Lock.txt");
    // Vérifier si le presse-papier est disponible
    if (File.ReadAllText(lockFilePath) == "False")
    {
        // Le presse-papier est disponible, écrivons "True" pour le verrouiller
        File.WriteAllText(lockFilePath, "True");
    }
    else
    {
        // Attendre jusqu'à ce que le presse-papier soit disponible
        while (File.ReadAllText(lockFilePath) != "False")
        {
            // Attendre 1 secondes avant de réessayer
            Thread.Sleep(1000);
        }  
        // Une fois que le presse-papier est disponible, écrivons "True" pour le verrouiller
        File.WriteAllText(lockFilePath, "True");
    }
    Puis à la fin du processus on écrit "False" ds le fichier Texte


    Merci par avance pour vos conseils!🙏

    Nom : image.jpg
Affichages : 98
Taille : 59,4 Ko

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Celle ci fonctionne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    lock(SyncObjects.InputSyncer) // lock
    {
        var descr = project.Variables["content"].Value;
    // save the previous buffer state String
        String previous_text = null;
        previous_text = System.Windows.Forms.Clipboard.GetText();
    // save the desired text to the buffer and paste it (programmatically do CTRL+V).
        System.Windows.Forms.Clipboard.SetText(descr);
        instance.ActiveTab.KeyEvent("v","press","ctrl");
    // erase the buffer and return it to its original state
        System.Windows.Forms.Clipboard.Clear();
        System.Windows.Forms.Clipboard.SetText(previous_text);
    }
    As-tu une solution pour mettre du texte formaté (mis en forme) dans le presse papier à partir de HTML ?
    Pour l'instant je passe par https://codebeautify.org/htmlviewer mais si il est possible de le faire en C# ou en JS ça serait mieux que de passer par des sites externes.

Discussions similaires

  1. [Python 3.X] PRESSE-PAPIER : Copier/coller avec python - problème de texte décalé lors du collage
    Par IVK2000 dans le forum Général Python
    Réponses: 3
    Dernier message: 03/10/2021, 10h39
  2. [Débutant] Gestion du Presse Papier (Clipboard)
    Par reultor dans le forum VB.NET
    Réponses: 9
    Dernier message: 13/03/2020, 13h00
  3. Réponses: 30
    Dernier message: 16/12/2016, 22h30
  4. gestion du presse-papier sous Python
    Par jpb974 dans le forum Général Python
    Réponses: 2
    Dernier message: 15/02/2014, 12h09
  5. Réponses: 1
    Dernier message: 07/08/2007, 17h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo