none
Clipboard error RRS feed

  • Discussion générale



  • bonjour,

    je ne sais pas faire du vba,

    je connai par contre le C++ et batch,

    mais je rencontre le meme problème que ce topic

    https://social.msdn.microsoft.com/forums/fr-fr/a23c31df-e645-4500-ab4a-e6178510a9b1/clipboard-error


    à la fin DEREK semble fournir la solution

    Derek,
    the SetDataObject 
    Clipboard.SetDataObject(object data, bool copy, int retryTimes, int 
    retryDelay)

    did work and resolved my problem.
    I used retryTimes=2



    sauf que je n'arrive pas à l'adapter à mon bout de code que voici : (je demande de l'aide merci)



    /*
    this simple tool will copy file passed as argument into windows clipboard

    http://stackoverflow.com/questions/17189010/how-to-copy-cut-a-file-not-the-contents-to-the-clipboard-in-windows-on-the-com
    */
    using System;
    using System.Windows.Forms;
    using System.Collections.Generic;
    using System.Collections.Specialized;

    using System.Reflection;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;

    [assembly: AssemblyTitle("File2Clip")]
    [assembly: AssemblyDescription("copies file to clipboard (as a file)")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("rostok - https://github.com/rostok/")]
    [assembly: AssemblyProduct("File2Clip")]
    [assembly: AssemblyCopyright("Copyright © 2016")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]

    namespace File2Clip
    {
        public class App
        {
        
        private static bool isConsoleSizeZero { 
            get{  return 0 == (Console.WindowHeight + Console.WindowWidth); }
        }
        public static bool IsOutputRedirected {
            get { return isConsoleSizeZero && !Console.KeyAvailable; }
        }
        public static bool IsInputRedirected {
            get { return isConsoleSizeZero && Console.KeyAvailable; }
        }

            [STAThread]
            static void Main(string[] args)
            {
    //Console.WriteLine("File2Clip");
                List<string> list = new List<string>();

           string line;

    try{
    bool ka = Console.KeyAvailable;
    // if this should raise an error we are dealing with redirection
    // http://stackoverflow.com/questions/12911833/how-to-catch-all-exceptions-in-c-sharp-using-try-and-catch
    // http://stackoverflow.com/questions/3453220/how-to-detect-if-console-in-stdin-has-been-redirected/3453272#3453272
    // http://stackoverflow.com/questions/7302544/flushing-system-console-read
    }
    catch (Exception e)
    {
    //Console.WriteLine("Console.KeyAvailable PROBLEM");
        // stdin 
                    //if (!IsInputRedirected)
                    {
                    while(!string.IsNullOrEmpty(line = Console.ReadLine())) list.Add(line);
                    }
        //Console.WriteLine("Console.In.Peek() "+ Console.In.Peek());
    }


                // args
                foreach (string s in args) {
                list.Add(s);
                }

                StringCollection paths = new StringCollection();
                foreach (string s in list) 
                {
                    paths.Add( 
                        System.IO.Path.IsPathRooted(s) ? 
                          s : 
                          System.IO.Directory.GetCurrentDirectory() + 
                            @"\" + s);
                }
                if (paths.Count>0)
                {
                Clipboard.SetFileDropList(paths);
                }
    else
    {
    Console.WriteLine("Input is Empty! Provide file paths via STDIN or command line arguments.");
    }
            }
        }
    }


    sauf que je n'arrive pas à l'adapter à mon bout de code que voici : (je demande de l'aide merci)

    sauf que je n'arrive pas à l'adapter à mon bout de code que voici : (je demande de l'aide merci)

    vendredi 16 juin 2017 06:39

Toutes les réponses

  • Bonjour,

    Je comprends pas trop ce que vous voulez faire mais toujours est-il que dans votre collection paths, il faut le chemin complet de fichiers (et pas de répertoire).

    Si par exemple j'ai un fichier nommé test.txt dans le répertoire c:\Logs, je dois avoir dans paths :

    paths = new[] {"c:\\Logs\\test.txt"}];

    Ensuite, on peut faire un Ctrl+V dans n'importe quel autre répertoire et ca copiera ce fichier.

    Vérifiez que dans votre collection paths, vous avez bien des noms de fichiers, et des fichiers qui existent ;-)


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    vendredi 16 juin 2017 07:27
  • Bonjour,

    Voulez vous le faire en VBA, C# ou VB.net ?

    Peut-être que le lien suivant vous donnera un coup de main https://msdn.microsoft.com/fr-fr/library/system.windows.forms.clipboard(v=vs.110).aspx

    Pourriez vous nous apporté plus d'information ?

    Cordialement,


    Cordialement,

    vendredi 16 juin 2017 09:21
    Auteur de réponse
  • j'ai trouvé ce que je voulais faire avec powershell

    script qui  selectionne le fichier image capture extension PNG le plus recent dans le dossier "D:\_capture"  et puis ça simule comme avec une souris  le click droit copy sur le fichier selectionné.

    voici le bout de code que j'ai élaboré en mode brouillon

    (commande Set-Clipboard)

    .....

    Import-Module Microsoft.PowerShell.Management

    $strString = Get-ChildItem -Path "D:\_capture" -name  -include *.png  | select -last 1
    foreach($k in $strString){
    Write-Output $k
    $concat = "D:\_capture\" + $k
    Write-Output $concat
    Set-Clipboard -Path $concat
    }
    .....




    • Modifié hermes6236 vendredi 1 septembre 2017 14:46
    vendredi 1 septembre 2017 14:45