<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" > <channel> <title>スクリプト | Qwerty.work</title> <atom:link href="https://qwerty.work/blog2/archives/tag/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/feed" rel="self" type="application/rss+xml" /> <link>https://qwerty.work/blog2</link> <description>パソコンに関することをいろいろメモしています。</description> <lastBuildDate>Thu, 12 Jan 2023 07:24:54 +0000</lastBuildDate> <language>ja</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <generator>https://wordpress.org/?v=6.8.1</generator> <image> <url>https://qwerty.work/wp/wp-content/uploads/2022/11/cropped-favicon_QwertyWork-32x32.png</url> <title>スクリプト | Qwerty.work</title> <link>https://qwerty.work/blog2</link> <width>32</width> <height>32</height> </image> <item> <title>【Python】マウスカーソルの座標とキーコードを取得するスクリプト</title> <link>https://qwerty.work/blog2/archives/191</link> <dc:creator><![CDATA[postmaster]]></dc:creator> <pubDate>Wed, 11 Jan 2023 07:41:05 +0000</pubDate> <category><![CDATA[Python]]></category> <category><![CDATA[PyAutoGUI]]></category> <category><![CDATA[スクリプト]]></category> <category><![CDATA[取得]]></category> <category><![CDATA[座標]]></category> <guid isPermaLink="false">https://qwerty.work/blog2/?p=191</guid> <description><![CDATA[目次 マウスカーソルの座標が知りたい使用しているライブラリについてインストールコマンドライブラリを確認するコマンド マウスカーソルの座標が知りたい Windowsの操作をPythonで自動化するために座標が欲しい。といっ […]]]></description> <content:encoded><![CDATA[ <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label> <div class="toc-content"> <ol class="toc-list open"><li><a href="#toc1" tabindex="0">マウスカーソルの座標が知りたい</a></li><li><a href="#toc2" tabindex="0">使用しているライブラリについて</a><ol><li><a href="#toc3" tabindex="0">インストールコマンド</a></li><li><a href="#toc4" tabindex="0">ライブラリを確認するコマンド</a></li></ol></li></ol> </div> </div> <h2><span id="toc1">マウスカーソルの座標が知りたい</span></h2> <p><span class="marker-under">Windowsの操作をPythonで自動化するために座標が欲しい。</span>といったときに、マウスカーソルの位置を取得するフリーソフトはありますが、あまりそういうのは入れたくないのですが、Pythonは入っているときに使えるものを見つけました。</p> <a rel="noopener" href="https://irohaplat.com/python-mouse-coordinates-and-keycode-sample/" title="キーコードとマウス座標を取得する 【Python】" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://irohaplat.com/wp-content/uploads/2020/08/marketing1.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">キーコードとマウス座標を取得する 【Python】</div><div class="blogcard-snippet external-blogcard-snippet">Python で pyautogui 等を使って、マウス座標とキーコードを取得するサンプルスクリプトです。GUI は tkinter を使っています。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://irohaplat.com/python-mouse-coordinates-and-keycode-sample/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">irohaplat.com</div></div></div></div></a> <p>上記のサイトにあるスクリプトをコピペして実行するだけで簡単にできました。めちゃ便利です。</p> <p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-193" src="https://qwerty.work/wp/wp-content/uploads/2023/01/No-00.png" alt="マウスカーソルの座標を表示している画面" width="442" height="172" srcset="https://qwerty.work/wp/wp-content/uploads/2023/01/No-00.png 442w, https://qwerty.work/wp/wp-content/uploads/2023/01/No-00-300x117.png 300w" sizes="(max-width: 442px) 100vw, 442px" /></p> <h2><span id="toc2">使用しているライブラリについて</span></h2> <p>ここで使用されているPythonのライブラリのうち、<strong>tkinter</strong>と<strong>ctypes</strong>は標準ライブラリなので、インストール不要ですが、<strong>pyautogui</strong>はインストールが必要です。</p> <h3><span id="toc3">インストールコマンド</span></h3> <p>コマンドプロンプトから以下のコマンドでインストールできます。</p> <pre class="code hljs properties" data-lang="" data-unlink=""><span class="hljs-attr">pip</span> <span class="hljs-string">install pyautogui</span></pre> <h3><span id="toc4">ライブラリを確認するコマンド</span></h3> <pre class="hljs properties"><span class="hljs-attr">pip</span> <span class="hljs-string">list</span></pre> ]]></content:encoded> </item> <item> <title>【PyAutoGUI】PythonでWindowsのマウスとキーボードを操作する</title> <link>https://qwerty.work/blog2/archives/180</link> <dc:creator><![CDATA[postmaster]]></dc:creator> <pubDate>Wed, 11 Jan 2023 06:20:55 +0000</pubDate> <category><![CDATA[Python]]></category> <category><![CDATA[PyAutoGUI]]></category> <category><![CDATA[Windows自動化]]></category> <category><![CDATA[キー操作]]></category> <category><![CDATA[スクリプト]]></category> <category><![CDATA[マウス操作]]></category> <category><![CDATA[モジュール]]></category> <category><![CDATA[自動化]]></category> <guid isPermaLink="false">https://qwerty.work/blog2/?p=180</guid> <description><![CDATA[目次 特定のキーを繰り返して押す作業を自動化したいPyAutoGUIをインストールKeyboardモジュールも必要Python実行ファイルを用意pyファイルを実行pyファイルを直接実行したい場合コマンドプロンプトから実行 […]]]></description> <content:encoded><![CDATA[ <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label> <div class="toc-content"> <ol class="toc-list open"><li><a href="#toc1" tabindex="0">特定のキーを繰り返して押す作業を自動化したい</a></li><li><a href="#toc2" tabindex="0">PyAutoGUIをインストール</a></li><li><a href="#toc3" tabindex="0">Keyboardモジュールも必要</a></li><li><a href="#toc4" tabindex="0">Python実行ファイルを用意</a></li><li><a href="#toc5" tabindex="0">pyファイルを実行</a><ol><li><a href="#toc6" tabindex="0">pyファイルを直接実行したい場合</a></li><li><a href="#toc7" tabindex="0">コマンドプロンプトから実行したい場合</a></li><li><a href="#toc8" tabindex="0">処理を中断したいとき</a></li></ol></li><li><a href="#toc9" tabindex="0">Excelなどでも使えそう</a></li></ol> </div> </div> <h2><span id="toc1">特定のキーを繰り返して押す作業を自動化したい</span></h2> <p>Kintone(キントーン)のレコードの情報を更新するために、編集、保存、次への作業を最初のレコードから最後のレコードまで繰り返し行うことがありました。これをショートカットキーで行っていたのですが、レコード数が少なければ手動で問題ありませんが、これが数百とか数千以上あるとちょっと大変です。</p> <p>ちなみに、レコード詳細画面で<strong>「E」は編集モード</strong>、<strong>「Ctrl+S」が保存</strong>、<strong>「J」が次のレコードに移動</strong>を行うショートカットキーで、これを繰り返し連打していました。</p> <a rel="noopener" href="https://jp.cybozu.help/k/ja/trouble_shooting/general/shortcuts.html" title="https://jp.cybozu.help/k/ja/trouble_shooting/general/shortcuts.html" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fjp.cybozu.help%2Fk%2Fja%2Ftrouble_shooting%2Fgeneral%2Fshortcuts.html?w=160&h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://jp.cybozu.help/k/ja/trouble_shooting/general/shortcuts.html</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://jp.cybozu.help/k/ja/trouble_shooting/general/shortcuts.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">jp.cybozu.help</div></div></div></div></a> <p>キントーン側でJavascriptを使うやり方もあるかと思うのですが、初心者で無料体験中なので、どうやればいいかわからなかったので、VBScriptとか使ってWindows側からできないかな?と調べていたら<span class="marker-under">PythonとPyAutoGUIというモジュールを使ってできる</span>といったページを見つけたので、試すことにしました。</p> <p><iframe title="【PyAutoGUI】Pythonでマウスとキーボードを操作する - RAKUS Developers Blog | ラクス エンジニアブログ" src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftech-blog.rakus.co.jp%2Fentry%2F20220613%2Fpython%23PyAutoGUI%25E3%2581%25AE%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B9%25E3%2583%2588%25E3%2583%25BC%25E3%2583%25AB" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;"></iframe></p> <h2><span id="toc2">PyAutoGUIをインストール</span></h2> <p>WindowsにPythonがインストールされていることが前提ですが、その状態でコマンドプロンプトを起動し、PyAutoGUIをコマンドでインストールします。</p> <p>Pythonのバージョン確認するコマンド</p> <pre>python -v</pre> <p>PyAutoGUIをインストールするコマンド。</p> <pre class="code" data-lang="" data-unlink="">pip install pyautogui</pre> <p>pipはPythonのパッケージ管理ツールで、コマンドを実行すると、以下の画面が表示されます。</p> <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-183" src="https://qwerty.work/wp/wp-content/uploads/2023/01/No-01.jpg" alt="PyAutoGUIインストール画面" width="614" height="478" srcset="https://qwerty.work/wp/wp-content/uploads/2023/01/No-01.jpg 614w, https://qwerty.work/wp/wp-content/uploads/2023/01/No-01-300x234.jpg 300w" sizes="(max-width: 614px) 100vw, 614px" /></p> <p>インストール完了時の表示。</p> <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-184" src="https://qwerty.work/wp/wp-content/uploads/2023/01/No-02.jpg" alt="PyAutoGUIインストール完了" width="614" height="478" srcset="https://qwerty.work/wp/wp-content/uploads/2023/01/No-02.jpg 614w, https://qwerty.work/wp/wp-content/uploads/2023/01/No-02-300x234.jpg 300w" sizes="(max-width: 614px) 100vw, 614px" /></p> <p>インストールされているPythonのパッケージとバージョンを確認するコマンド</p> <pre>pip list</pre> <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-185" src="https://qwerty.work/wp/wp-content/uploads/2023/01/No-03.jpg" alt="インストールされたパッケージの確認" width="614" height="478" srcset="https://qwerty.work/wp/wp-content/uploads/2023/01/No-03.jpg 614w, https://qwerty.work/wp/wp-content/uploads/2023/01/No-03-300x234.jpg 300w" sizes="(max-width: 614px) 100vw, 614px" /></p> <p>ここに<strong>PyAutoGUI</strong>があればOKです。</p> <h2><span id="toc3">Keyboardモジュールも必要</span></h2> <p>自動化処理を実行中に中断したい場合に備え、特定のキー押下で停止できるようにする場合、キーの押下を検出するために<strong>keyboardモジュール</strong>が必要です。PyAutoGUI同様にコマンドプロンプトからコマンドでインストールします。</p> <pre>pip install keyboard</pre> <h2><span id="toc4">Python実行ファイルを用意</span></h2> <p>以下のソースをテキストエディタで拡張子を<code>.py</code>にして適当な場所に保存します。</p> <pre> import pyautogui import keyboard import os # 一時停止 os.system('PAUSE') # 処理を実行するたびに1秒待機 pyautogui.PAUSE = 0.5 # 画面のサイズを取得 width, height = pyautogui.size() # 指定の位置にカーソルを移動 pyautogui.moveTo(100, 400, duration=2) # 現在のカーソルの位置で左クリックを1回 pyautogui.click(button="left") # 順番にキーを押す処理を繰り返す num = 0 end_num = 10 while num < end_num: if keyboard.is_pressed("shift"): print("SHIFTキーが押されたので中断します。") os.system('PAUSE') print(str(num+1)+"回目の処理を実行中です。(SHIFTキーで停止)") pyautogui.press("e") pyautogui.hotkey("ctrl", "s") pyautogui.press("j") num += 1 if num == end_num: print("処理が終わりました。同じ処理を繰り返しますか?") os.system('PAUSE') num = 0 continue print("処理が終わりました。") # 一時停止 os.system('PAUSE') </pre> <h2><span id="toc5">pyファイルを実行</span></h2> <h3><span id="toc6">pyファイルを直接実行したい場合</span></h3> <p>ファイルをダブルクリックします。</p> <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-186" src="https://qwerty.work/wp/wp-content/uploads/2023/01/No-04.jpg" alt="Pythonスクリプト実行中の画面" width="641" height="497" srcset="https://qwerty.work/wp/wp-content/uploads/2023/01/No-04.jpg 641w, https://qwerty.work/wp/wp-content/uploads/2023/01/No-04-300x233.jpg 300w" sizes="(max-width: 641px) 100vw, 641px" /></p> <h3><span id="toc7">コマンドプロンプトから実行したい場合</span></h3> <p>コマンドプロンプトからpyファイルを呼び出せば、記載されたスクリプトが実行されます。例えば、<strong>test.py</strong>というファイルが<strong>Cドライブ直下</strong>にあったとしたら、以下のようになります。</p> <pre>python c:\test.py</pre> <h3><span id="toc8">処理を中断したいとき</span></h3> <p>誤った操作になってしまったときは、Pythonの画面でキーボードの<kbd>PAUSE</kbd>を押下すると一時停止。Python及びコマンドプロンプトで<kbd>Ctrl</kbd>+<kbd>Cを押すと終了させることができます。</kbd></p> <h2><span id="toc9">Excelなどでも使えそう</span></h2> <p>今回、Kintone(キントーン)上で繰り返しキー操作を行うためにこのスクリプトを使いましたが、Excel(エクセル)やWindows上で自動で繰り返し行いたい作業がある場合に使えそうです。</p> ]]></content:encoded> </item> </channel> </rss>