• 締切済み

applescriptでキーボードを操作

safariで特定のサイトを開き、tabキーやenterキー、command+vやcommand+cを操作したいのですがどうすればいいでしょうか? サイトを開くまではOKです。そこからのキーボード作業です。 以下に書き足す形で考えてます。 on run {input, parameters} (* Your script goes here *) return input end run

みんなの回答

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

System Eventsの「Processes Suite」を利用するといいでしょう。(下図参照) このスクリプトを実行してみると、いったいどういうもんか、イメージがわくと思います。 tell application "Safari" activate end tell tell application "System Events" keystroke "a" using command down keystroke "c" using command down end tell

ttn222111001
質問者

補足

ありがとうございます、なんとなくイメージがわいた気がします。 追加で申し訳ないのですが、矢印キーを押すにはどうすれば良いのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • automatorを使い、メールの自動送信の自動化をしようと思っていま

    automatorを使い、メールの自動送信の自動化をしようと思っています。 メールの作成まではうまく行ったのですが、最後の送信のところでどうしても止まってしまい、 ライブラリのアクションからではうまく行かないので、applescriptで試みようと思っています。 しかしながら、チンプンカンプンでして、「applescriptを実行」というアクションを挿入すると、 以下の文字が出るのですが、ここにどう記入すればよいのでしょうか。。。 やりたいことはメールの送信なので、ショートカットキーで言えば、 「command+shift+D」を押せればいいのですが。 on run {input, parameters} (* Your script goes here *) return input end run

    • ベストアンサー
    • Mac
  • ファイルメーカーのスクリプト実行で

    みなさん教えて下さい。 ファイルメーカーのスクリプトを実行するのに、マウスのクリックではなく、Enterキーを使いたいのです。 マウスは使わない方向で色々考えていまして、Tabキーで移動させEnterでスクリプトを実行させたいのです。 方法はありますか?

  • VB2010 DataGridView Enter

    現在、表を使ったプログラムを作成して居ます。 DataGridViewでデーターをセルに入れると、下のセルにフォーカスが移ってしまいます。 次に入れるデーターはどこに成るかはユーザーが決定したいので、出来れば入力したセルからフォーカスを移動させたく無いのですが、何か方法はあるでしょうか。 下記の様に、入力された時、右にフォーカスさせる方法は見つけましたが、フォーカスが移らない方法がありましたらお教え下さい。 宜しくお願い致します。 Public Class DataGridViewEx Inherits DataGridView <System.Security.Permissions.UIPermission( _ System.Security.Permissions.SecurityAction.Demand, _ Window:=System.Security.Permissions.UIPermissionWindow.AllWindows)> _ Protected Overrides Function ProcessDialogKey( _ ByVal keyData As Keys) As Boolean 'Enterキーが押された時は、Tabキーが押されたようにする If (keyData And Keys.KeyCode) = Keys.Enter Then Return Me.ProcessTabKey(keyData) End If Return MyBase.ProcessDialogKey(keyData) End Function <System.Security.Permissions.SecurityPermission( _ System.Security.Permissions.SecurityAction.Demand, _ Flags:=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _ Protected Overrides Function ProcessDataGridViewKey( _ ByVal e As KeyEventArgs) As Boolean 'Enterキーが押された時は、Tabキーが押されたようにする If e.KeyCode = Keys.Enter Then Return Me.ProcessTabKey(e.KeyCode) End If Return MyBase.ProcessDataGridViewKey(e) End Function End Class

  • エクセルの印刷ダイアログをSendkeysで操作したい。

    エクセルのマクロ処理でフォーム上のボタンから 印刷ダイアログを呼び出して、そのダイアログを Sendkeysでもって両面印刷設定にし印刷させると いう処理を行いたいのですが上手くいきません。 印刷ダイアログが表示された段階で止まり(エラーで 止まるわけではなく単に処理が止まる)、その先の Sendkeysによる命令へ進みません。 Private Sub CommandButton1_Click() Application.Dialogs(xlDialogPrint).Show SendKeys "%r", True SendKeys "%k", True SendKeys "^{tab}", True SendKeys "^{tab}", True SendKeys "^{tab}", True SendKeys "%r", True SendKeys "{enter}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "{enter}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "{enter}", True End Sub よくSendKeysは環境によって誤作動などが起こるので 使わない方がいいと言われますが、一度どのように 動くのか試してみたいと思っています。 ちなみに上のコードは当方のプリンタでの設定手順となります。 SendKeysで印刷ダイアログにキーを送ることは できないのでしょうか? 宜しくお願いします。

  • テキストボックスに入力した文字がエンター(リターン)キーで全て削除されてしまいます。

    テキストボックスに文字を入力し、確定のためにエンター(リターン)キーを押すと、先に入力された文字が全て削除されてしまいます。 <form name="myform" method="post"> <input type='text' name='keyword' size='46' value=""> ・ ・ ・ </form> エンター(リターン)キーを押しても上記文字が削除されることがないようにするには、 どのようにしたらよいでしょうか。

    • ベストアンサー
    • HTML
  • AppleScriptやXcodeについて質問できるフォーラムやサイトをご存知ありませんか?

    AppleScriptやXcodeについて質問できるフォーラムやサイトをご存知ありませんか? このサイトでも簡単なScript程度なら回答を得られますでしょうか? ちなみに以下の質問をしたいです tell application "System Events" key code {1, 2, 3} end tell の様な記述をAppleScriptでアプリケーション化してDockに登録したのですがスクリプトが上手く起動する時と起動しない時があります AppleScriptが起動するのが遅くスクリプトが実行できないのかな?と思ってみたりもしてます AppleScriptが起動している時や2回目3回目だと上手く起動します PCを再起動した直後や長時間放置した後などは上手く起動しません よろしくお願いします

    • ベストアンサー
    • Mac
  • Chrome検索後のtabショートカット

    Chromeで検索した後、tabキーを押すと検索結果の最初のサイトにチェックマークのようなものがつきenterキーでそのサイトを選択。 ということができていたと思うんですが、最近できません、何か設定しなければならないのでしょうか?

  • 【VBAでキーボード操作する方法について】

    【VBAでキーボード操作する方法について】 ボタンをクリックしたら、とあるサイトが自動的に検索できるツールを作成しておりますが、私が対象としているとあるサイトのsubmitボタンにname属性が指定されておりません。どうにかしてEnterキーを押したときと同じ動作になるようにしたいのですが、VBAでキーボードを操作することは可能なのでしょうか。 以下のソースはコマンドボタン2をクリックするとGoogleが立ち上がり、自動的に検索条件に"教えてGoo"と入力し、検索ボタンを押下してくれます。 ですが、これは、検索ボタンに"btnG"というname属性が指定されていたから可能であり、私が対象としているサイトではGoogleのようにsubmitボタンにはname属性は指定されておりません。 どうにかして自動的にEnterキーを押す(と同等な)ようなコードを記述することができないのでしょうか。 どなたか、お助けください。 Private Sub CommandButton2_Click() 'IEオブジェクト宣言 Dim objIE As Object 'IEオブジェクト作成 Set objIE = CreateObject("internetExplorer.application") '最前面に表示 objIE.Visible = True '対象URLへ移動 objIE.Navigate "http://www.google.co.jp/" '表示終了まで待つ Do While objIE.Busy = True DoEvents Loop '検索条件を指定 objIE.document.all.q.Value = "教えてGoo" 'ボタンを押してみる objIE.document.all.btnG.Click End Sub

  • NetScapeで、テキストボックス内でのEnterキー押下で、データチェック用関数を無視してすぐに次の画面へ遷移してしまう

    OS Windows2000、ブラウザ NetScape6.2&4.75を使用しています。また、<SCRIPT LANGUAGE="JavaScript">を使用するよう指定されています。 お伺いしたいのですが、 JavaScriptで禁則文字をはじくなど、テキストボックスに修正入力されたデータのチェックをする関数『function DataCheck()』をつくり、INPUT TYPE="submit"の確認ボタンでonClick="return DataCheck()"としています。return値は、データチェックの結果、OKならばtrue、チェックにひっかかるとfalseを返し、falseの場合はアラートで注意を促し、次画面には遷移させません。で、IEではテキストボックス内にカーソルを当ててENTERキーを押すと、onClick="return DataCheck()"を拾ってくれて、チェックにひっかかると次画面には遷移させませんが、今回実装しなければいけないNetScape4.75と6.2では、テキストボックス内にカーソルを当ててENTERキーを押すとonClick="return DataCheck()"をひろってくれません。なお、その画面には、確認ボタンのほかに、戻るボタンとリセットボタンもあり、戻るボタンもリセットボタンもINPUT TYPE="submit"のため(←前画面に戻る場合も、デフォルト表示にリセットする場合も、該当画面を表示させる為に再検索して表示させる仕様です。)、FORMタグ内にonSubmit="return DataCheck()"としてもリセットボタンや戻るボタンでもデータチェックをしてしまいます。なので、Enterキー押下でデータチェック関数を拾ってくれたとしてもひどいことに。。。どなたか、よい知恵をください。お願い申し上げます。

  • 拡張したコントロールはデザイナで操作できるのでしょうか?

    VB2008を使っています。フォームに貼り付けたDataGridViewコントロールをそのまま使っていましたが、拡張したDataGridViewExを使うときにForm1.Designer.vbを開いて直接コード編集すると良くないのでしょうか? 変更しようとすると、元のコードに以下のようなコメントが書いてありました。(コード エディタを使って変更しないでください) デザイナだけでできないので、クラスダイヤグラムの表示から直接フォームを定義しているコードを書き換えて、拡張コンポーネント名に置き換えて変更すると、動作しましたがこのやり方は正しいのでしょうか? --- 【Form1.Designer.vb】 'Windows フォーム デザイナで必要です。 Private components As System.ComponentModel.IContainer 'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。 'Windows フォーム デザイナを使用して変更できます。 'コード エディタを使って変更しないでください。 <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.StatusStrip1 = New System.Windows.Forms.StatusStrip --- やろうとしたこと、以下のクラスファイルDataGridViewEx.vbを作成し、 Form1.Designer.vbの次の2箇所を変更しました。 【Form1.Designer.vb】 (1) Private Sub InitializeComponent() Me.StatusStrip1 = New System.Windows.Forms.StatusStrip 'Me.DataGridView1 = New System.Windows.Forms.DataGridView Me.DataGridView1 = New DataGridViewEx (2) 'Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView Friend WithEvents DataGridView1 As DataGridViewEx --- 【DataGridViewEx.vb】 拡張したクラス Public Class DataGridViewEx Inherits DataGridView Protected Overrides Function ProcessDialogKey( _ ByVal keyData As Keys) As Boolean 'Enterキーが押された時は、ブラウザを開き、入力キーを無視する If (keyData And Keys.KeyCode) = Keys.Enter Then 'Return Me.ProcessTabKey(keyData) Process.Start("http://www.yahoo.com")  Return True '←これで無視しているのかな? End If Return MyBase.ProcessDialogKey(keyData) End Function Protected Overrides Function ProcessDataGridViewKey( _ ByVal e As KeyEventArgs) As Boolean 'Enterキーが押された時は、ブラウザを開き、入力キーを無視する If e.KeyCode = Keys.Enter Then 'Return Me.ProcessTabKey(e.KeyCode) Process.Start("http://www.yahoo.com") Return True '←これで無視しているのかな? End If Return MyBase.ProcessDataGridViewKey(e) End Function End Class 以上です。