高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

UWSC風動作モジュールを作ってみました

ふらっとステーション・とつかの作業など、いままで簡単なプログラム処理にはUWSCを使ってきていました。

それは、主に途中で簡単なGUI処理(コンボボックスで項目を選択させるとか)が必要だったときのためだったのですが、去年書いたとおり、UWSCは割と前から公式サイトにアクセスできず、未だ今後がどうなるのか全く不明な状態です。

blog.onpu-tamago.net

さて、そんなこんなでずっとこの状態を黙って見ているわけにもいかないので、いままでUWSCでやってきたことを徐々にPythonで実現できないか と、現在UWSC互換モジュールをいろいろ検討中。

github.com

UWStyleというモジュールです。海外からのプルリクエストも受け付けたいな ということで一応英語ベースで進行中。大して変わらないような気がしなくもないですが(どちらにしてもプルリクエストは来ない という意味で)。

いちおう、以下のようなダイアログを簡単なコードで表示可能です。UWSCのSLCTBOXにあるダイアログのタイムアウト(指定した秒数が経過すると、処理をキャンセルとして閉じる)も一応実装済み。

f:id:TakamiChie:20190116044404p:plain

そのほかExcelやブラウザ(現在Chromeのみ)の操作にも対応しています。必要に応じてメソッドやモジュールは増やしていく予定。

UWStyleモジュールで今のところできること

上記モジュールで今のところできるのは、以下の三つです。

  • uwstyle.dialogsモジュール:MSGBOX相当のダイアログ表示、SLCTBOX(SLCT_CMB)、SLCTBOX(SLCT_BTN)相当の選択ダイアログ表示ができます。
  • uwstyle.webbrowserモジュール(WebBrowserクラス):ブラウザ(現バージョンではChromeのみ)の操作ができます(Seleniumを使用)。
  • uwstyle.excelモジュール(Excelクラス):Excelの操作ができます(OLEを使用)

とりあえずわたしがUWSCでやっていることといえば大半がこれくらいなので、ひとまずやりたいことは最低限できている という感じです*1

実際の使い方は、それぞれのモジュールのinit.pyにテストコードが書かれているので、そちらを参考にしてください(本来ならちゃんとサンプルコードを用意すべきところですが)。

現状pipでインストールしたりなどといったことはできませんので、git submodule add https://github.com/TakamiChie/UWStyleMethods.git uwstyleなどとしてサブモジュールとして使うことをオススメします(内部でuwstyleというフォルダ名を使っているので、フォルダ名はuwstyleとしないと動作しません)。

とりあえず、作成において困ったところ、悩んだところなどはそのうちQiitaにでも書こうと思います。

*1:最初の職場などではCLKITEMメソッドなどを使ってアプリの自動操作などもよくやっていましたが、個人ではほとんどこれくらいしか使ってなかった