web-dev-qa-db-ja.com

Sikuliで「Ctrl + c」を送信する方法は?

これはかなり簡単なはずですが、これを行う方法に関するドキュメントが見つかりません。

シクリにタイプしてもらいたい Ctrl+C テキストをクリップボードにコピーします。

type(KEY_CTRL+'c')は機能せず、type(KEY_CTRL,'c')も機能しません。

助言がありますか?

22
Dave S

代わりにtype("c",KEY_CTRL)を使用してください。

メモ帳で行を入力し、それをダブルクリックしてマークを付け、ドキュメントに再度ctrl + x ctrl + vする簡単なスクリプトを書きました。よく働く。

openApp("notepad.exe")

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

type("x", KEY_CTRL)

click("theTextField.png" )
type("v",KEY_CTRL)
24
Jompa234

以下は、0.9以降のバージョンの sikuli で動作します。

type('x', KeyModifier.CTRL)
19
spearson

キーオブジェクトは、ほとんどすべての修飾キーとテンキーに定義されています。とにかく、それはこのように見えるはずです

keyDown(Key.CTRL)
タイプ( 'c')
keyUp(Key.CTRL)

6
Belfordz

Type()の使用法と考えられるキー名は次のとおりです。

4
RaiMan

type( 'x'、Key.CTRL)も機能します。

1
user2524670

他の人が述べたように、以下を使用してください:

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

言及する価値のあるポイント-do not大文字を使用する、つまり:

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

私はSikuliソースコードを調べていませんが、これは暗黙的にShift+Cとしてこれを送信するため、まったく別のコマンドになります。

1
robyaw

また、NUM_LOCKがオフになっていることを確認してください。 NUM_LOCKがオンになっていると、Key Modifier.CTRLまたはKey Modifier.SHIFTの動作に問題が生じる可能性があります。

0
autoKarma

次のコードを試すことができます:

keyDown(Key.CTRL)
type("c")
keyUp(Key.CTRL)
0
Paul Hurski

Flashコンテンツを自動化する必要がありました。次のコードは私のために働いた。これらは、自動化の一部として実行する次の手順です。

  1. ユーザー名とパスワードを入力してください
  2. ログインボタンをクリックしてください
  3. アプリケーションに移動するボタンをクリックします

私が直面した課題は、プレースホルダーのないユーザー名とパスワードに集中することでした。そのため、フォーカシングは困難でした。そこで、CTRLキーを使用してこれを行いました。

    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
user3363458