質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

6417閲覧

pythonでフリーソフトを操作するためには何が必要でしょうか?

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/01 00:25

pythonでExcelを操作する事は出来ました。

これと同じようにフリーソフトも操作出来るのかと思い立ったのですが、そのフリーソフト自体がOSSとして公開されていなければ難しいのでしょうか?

例えば窓の杜とかで入手出来るフリーソフト(何でも良いんですが)を起動して、それの入力フォームに入力したり、あるいはVLCといった動画プレイヤーで特定の動画を再生するなどです。

VBAマクロだと、フリーソフトの起動自体は出来るのですが、さすがに操作自体は出来ないですね。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sfdust

2020/09/01 00:46

「エクセルの自動操作」とは、openpyxlを使った「操作」という意味ですか?
退会済みユーザー

退会済みユーザー

2020/09/01 03:59

ありがとうございます! そうです。openpyxlを使った操作です。Excelに入力されたものをyahooの路線図で検索したり、Excelに絡んだ操作をpython(モジュール)で操作出来ています。
guest

回答1

0

ベストアンサー

まず質問者さんが前提としているであろうエクセルの「操作」が
openpyxlであることを前提として話します。

excelを「自動操作」できている理由は、openpyxlはexcelのデータフォーマットを直接いじることで
あたかも自動操作しているように見えているだけです。

つまり、「データをいじる」のに必要な「データ形式」が(解析可能な形で)公開されているからこそ操作できるのです。

また、例にある「VLCといった動画プレイヤーで特定の動画を再生する」:について:
VLCは、操作するためのapiが公開されており、apiを入出力できる任意のプログラミング言語で操作可能です。pythonであればpython-vlcというライブラリがあり、これを使って操作可能です。

その他のソフトの操作について、
pythonプログラムで、そのアプリケーションの入力対象(テキストボックスやメニューなどの「コントロール」)のデバイスコンテキストや位置を識別し、キーコードを送ったり、マウスを動かしたりすれば「操作」することは一応可能です。
条件として、
・そのアプリケーションの入力対象のデバイスコンテキストや位置がpythonプログラムで補足できるようになっていること
・キーボードやマウスによる入力を受け付けられること
・ロボットによる自動化操作が禁止されていないこと
であれば、特に操作対象がオープンソースソフトウェアでなくても、入力可能な範囲で操作はできます。

下記の記事では、テスト用ロボットフレームワークを用いて、windowsデスクトップアプリの操作を自動化する例が記載されています。

https://medium.com/@joonasvenlinen/desktop-application-automation-with-robot-framework-6dc39193a0c7

ここで使われているのは、AutoItLibrary / AutoIt Window Info Tool というものです。

ただし、個人的には同じことをするなら、pythonではなく
AutoHotkeyやUWSCなどの専用化された自動化アプリを使う方がよっぽど楽だと思います。

一方、オープンソースだからといって、全部自動操作可能かと言えばそうではありません。
オープンソースソフトウェアは中身が完全に公開されているからといって、それを完全に理解して、そのアプリを操作するソフトウェアを書いたり、ソースをいじることができるとお考えでしょうか?
ライセンスによっては改造を禁止しているものもあります。
アプリの規約によってはロボットによる自動操作を禁止している場合もあります。(ゲーム等)

まとめると、自動化するアプリの対象は必ずしも、オープンソースソフトウェアである必要はありません。
操作したい対象、すなわちデータ形式なり、apiなり、コントロールなりが公開されていればよく、力技でロボットを使って自動化することも可能です。

ただし、そのアプリがオープンソースであろうとなかろうと、ロボットによる自動化やソースの解析・改造を禁止している場合は当然その限りではありません。

以上「可能かどうか」という論点について述べました。
「難しいか?」という部分については、個人の能力や知識や根気によるので、そこを明示して質問されていない以上、一概には答えられません。

言語について言えば、pythonというプログラミング言語だけでやるのは結構根気がいると思いますが上記のようなライブラリを使えば難しくはないでしょう。
(根気がいる=難しいという理解ならばあてはまりませんが。
そもそも自動化するのに楽な道なんてないと思う。)

>VBAマクロだと、フリーソフトの起動自体は出来るのですが、さすがに操作自体は出来ないですね。

これもフリーソフトの「公開」具合によりますが、vbaでも外部ツールやwindows apiを駆使してある程度操作することは可能です。

> 何が必要でしょうか?
対象ソフトウェアの仕様を理解する力(努力・素養)と検索力と根気。

投稿2020/09/01 02:54

編集2020/09/01 05:37
sfdust

総合スコア1137

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/01 05:43

ありがとうございます! API、そうでしたね。twitterでtweet取得の際にもAPI色々やったのを思い出しました。 そのソフトが合法の範囲でイジれるだけのものを公開しているかどうか、それを確かめて1歩前進してみたいと思います。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問