Comment envoyer "Ctrl + c" en Sikuli?

cela semble comme si cela devrait être assez facile, mais je ne peux pas trouver de documentation sur la façon de le faire:

je veux juste que Sikuli tape Ctrl + C pour copier du texte dans le bloc-notes.

type(KEY_CTRL+'c') ne fonctionne pas et ne fonctionne pas non plus type(KEY_CTRL,'c') .

des suggestions?

21
demandé sur JasonMArcher 2011-06-14 03:39:16

10 réponses

essayez d'utiliser type("c",KEY_CTRL) à la place.

j'ai écrit un script simple qui tape une ligne dans notepad, double clique pour la marquer et puis ctrl+x Ctrl+v it dans le document à nouveau. Fonctionne très bien.

openApp("notepad.exe")

find("textfield.png" )
type("Some text")
doubleClick("theText.png")

type("x", KEY_CTRL)

click("theTextField.png" )
type("v",KEY_CTRL)
22
répondu Jompa234 2015-09-02 08:14:46

les travaux suivants dans 0.9 et les versions plus récentes de

type('x', KeyModifier.CTRL)
17
répondu spearson 2016-02-04 16:58:02

les objets-clés sont définis pour presque toutes les clés modificatrices et les clés num pad. De toute façon, ça devrait ressembler à quelque chose comme ça

keyDown(Key.CTRL)

type ('c')

keyUp (KeyUp.Ctrl)

5
répondu Belfordz 2013-06-20 02:18:45

l'usage de type() et les noms de clés possibles sont documentés ici:

4
répondu RaiMan 2012-12-27 12:08:07

type ('x', Clé.CTRL) fonctionne également.

1
répondu user2524670 2013-07-01 13:44:30

comme d'autres l'ont mentionné, utilisez ce qui suit:

type('c', Key.CTRL) # Copy command

un point à mentionner - do not utiliser des caractères majuscules, i.e.:

type('C', Key.CTRL) # Does not copy, avoid this

Je n'ai pas regardé dans le code source de Sikuli, mais ma meilleure supposition est qu'il envoie implicitement cela comme Shift+C , qui résulte en une commande entièrement différente.

1
répondu robyaw 2017-02-01 14:51:29

aussi, assurez-vous que NUM_LOCK est éteint. Si NUM_LOCK est activé, il peut faire n'importe quoi avec KeyModifier.Ctrl ou KeyModifier.MAJ se conduisent mal.

0
répondu autoKarma 2013-11-07 19:26:19

vous pouvez essayer le code suivant:

keyDown(Key.CTRL)
type("c")
keyUp(Key.CTRL)
0
répondu Paul Hurski 2014-03-16 16:08:08

j'avais une exigence d'automatiser un contenu flash. Le code suivant a fonctionné pour moi. Il s'agissait des étapes suivantes que je devais effectuer dans le cadre de l'automatisation:

  1. entrer Nom d'Utilisateur et mot de passe
  2. cliquez sur le bouton de connexion
  3. cliquez sur le bouton qui vous mènera à l'application

le défi que j'ai eu à relever était de me concentrer sur le nom D'Utilisateur et le mot de passe qui n'avait pas réservé. Par conséquent, la mise au point était difficile. Donc j'ai utilisé les clés CTRL pour faire ça .

    Pattern appLogo = new Pattern("C:\images\appLogo.png");
    StringSelection userNameText = new StringSelection("username");              
   Toolkit.getDefaultToolkit().getSystemClipboard().setContents(userNameText, null);//Copy the text into the memory   
        Screen s = new Screen(); 
            s.find(appLogo);
            s.click(appLogo);
            s.type(Key.TAB);//I had to enter tab twice to focus on user name textbox
            s.type(Key.TAB);
            s.type("V",KeyModifier.CTRL);

            StringSelection password = new StringSelection("password");               
            Toolkit.getDefaultToolkit().getSystemClipboard().setContents(password, null);
            s.type(Key.TAB);//I had to enter tab twice to focus on user name textbox
            s.type("V",KeyModifier.CTRL);

            Pattern loginButton =  new Pattern("C:\images\Login.png");
            s.find(loginButton);
            s.doubleClick(loginButton);
0
répondu user3363458 2017-06-09 11:11:00

le scénario est comme je dois appuyer sur la touche E de say dans mon clavier après avoir terminé le test comment ajouter ceci dans le script en Sikuli IDE.

-1
répondu Bharadwaj 2016-09-23 11:43:09