2011-06-13 15 views
20

それはかなり簡単なはずが、私はこれを行う方法のドキュメントを見つけることができないようにこれは感じている:Sikuliで "Ctrl + c"を送信するには?

私はちょうどSikuliがクリップボードにテキストをコピーするはCtrl + Cを入力します。

type(KEY_CTRL+'c')は動作しませんし、どちらもtype(KEY_CTRL,'c')をしていません。

提案がありますか?

答えて

20

ではなくtype("c",KEY_CTRL)を使用してみてください。

私はそれが再び文書にV CTRL + X CTRL +のそれをマークし、ためにどのタイプのメモ帳内の行を、ダブルクリックの簡単なスクリプトを書きました。よく働く。

openApp("notepad.exe") 

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

type("x", KEY_CTRL) 

click("theTextField.png") 
type("v",KEY_CTRL) 
+1

これは、(KEY_CTRL、 'c')は機能しませんが( 'c'、KEY_CTRL)は、図になります! –

+2

バージョンX1.0-rc3以降[非推奨](http://doc.sikuli.org/keys.html)。 [@spearsonによる答え](http://stackoverflow.com/a/9526380/1086034)を参照してください。 – willkil

17

0.9で、次の作品や

type('x', KeyModifier.CTRL) 
+2

大文字と小文字が区別されますのでご注意ください。 'x'と 'c'は動作しますが、 'X'と 'C'は動作しません! –

5

キーオブジェクトはすべての修飾キーとnum padキー用に定義されています。とにかく、それはこの

のKeyDown(Key.CTRL)のようなもの
タイプ( 'C')
keyUpイベント(Key.CTRL)

+0

これは動作しますが、1行で十分な場合には3行かかります。 'type( 'x'、KeyModifier.CTRL)' –

+0

あなたのプログラムハンドルの一部を修飾子を押して、別の部分をメリーボタンが押されているかどうかわからない場合は、 – Belfordz

1

タイプ( 'x' は、キーになります。 CTRL)も機能します。

0

また、NUM_LOCKがオフになっていることを確認してください。 NUM_LOCKがオンの場合、KeyModifier.CTRLまたはKeyModifier.SHIFTが不正な動作をする可能性があります。

+0

Num Lockは私にとって何の違いもありません。この問題は特定のプラットフォームで確認できましたか? –

+1

@ JonathanBenn、Windows 7 Home Premium、Java 7(アップデート65)、Sikuli 1.0.1を使用していました。 – autoKarma

0

あなたは、次のコードを試すことができます:私はどのようにSikuli IDE内のスクリプトでこれを追加するためのテストを終えた後、私のキーボードでキーEを言う押す必要がありますように

keyDown(Key.CTRL) 
type("c") 
keyUp(Key.CTRL) 
-1

シナリオがあります。他の人が述べたように

1

は、以下を使用します - 言及する価値

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

ワンポイントをない使用大文字、つまり操作を行います。

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

私はに見ていませんSikuliのソースコードですが、これは暗黙のうちにShift+Cという名前で送信されているため、別のコマンドが完全に発生しています。

0

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

  1. は、ユーザー名とパスワードを入力します
  2. ログインボタン上
  3. クリック
  4. アプリケーション
にナビゲートしますボタンをクリックします

私が直面した課題は、プレースホルダのないユーザー名とパスワードに焦点を当てることでした。したがって、焦点合わせは困難でした。だから私はこれを行うために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); 
関連する問題