本サイトはアフィリエイト広告を利用しています

UWSCを使って複数のpythonプログラムを自動で実行してみた

UWSC pythonプログラムを自動で実行

背景

複数のpythonプログラムを自動で実行したく、古くから無料RPAツールとして知られているUWSCを使ってみました。

有償のRPAツールはローコードのものが主流ですが、このUWSCはスクリプトベースでWindows上で行う処理を自動化するというものです。

プログラミング初心者ですが、簡単にできましたので紹介させていただきます。

UWSCをダウンロード⇒起動

以下のサイトからUWSCをダウンロードします。

https://www.vector.co.jp/download/file/winnt/util/fh688296.html

ダウンロードしたらフォルダを解凍し、”UWSC.exe”をダブルクリックします。

UWSC

このようなウィンドウが立ち上がります。

UWSC

既にスクリプトを選択しているため、スクリプト名が表示されていますが、初めて立ち上げる方はまずスクリプトを読み込まないといけません。

次に、自動実行するためにスクリプトを組みます。

UWSCのスクリプト(2つのpythonプログラムを自動で実行)

//Get Window ID
DIM ID = GETID("cmd")

//Activate WIndow
CTRLWIN(ID,ACTIVATE)

//----------program1----------
//p
KBD(80,CLICK,10)

//y
KBD(89,CLICK,10)

//t
KBD(84,CLICK,10)

//h
KBD(72,CLICK,10)

//o
KBD(79,CLICK,10)

//n
KBD(78,CLICK,10)

//space
KBD(32,CLICK,10)

//a
KBD(65,CLICK,10)

//b
KBD(66,CLICK,10)

//c
KBD(67,CLICK,10)

//d
KBD(68,CLICK,10)

//e
KBD(69,CLICK,10)

//f
KBD(70,CLICK,10)

//g
KBD(71,CLICK,10)

//-
KBD(189,CLICK,10)

//h
KBD(72,CLICK,10)

//i
KBD(73,CLICK,10)

//.
KBD(190,CLICK,10)

//p
KBD(80,CLICK,10)

//y
KBD(89,CLICK,10)

//enter
KBD(13,CLICK,10)

//----------program2----------
//p
KBD(80,CLICK,1000)

//y
KBD(89,CLICK,10)

//t
KBD(84,CLICK,10)

//h
KBD(72,CLICK,10)

//o
KBD(79,CLICK,10)

//n
KBD(78,CLICK,10)

//space
KBD(32,CLICK,10)

//j
KBD(74,CLICK,10)

//k
KBD(75,CLICK,10)

//l
KBD(76,CLICK,10)

//m
KBD(77,CLICK,10)

//n
KBD(78,CLICK,10)

//o
KBD(79,CLICK,10)

//p
KBD(80,CLICK,10)

//-
KBD(189,CLICK,10)

//q
KBD(81,CLICK,10)

//r
KBD(82,CLICK,10)

//s
KBD(83,CLICK,10)

//t
KBD(84,CLICK,10)

//u
KBD(85,CLICK,10)

//.
KBD(190,CLICK,10)

//p
KBD(80,CLICK,10)

//y
KBD(89,CLICK,10)

//enter
KBD(13,CLICK,10)

スクリプトの内容

“abcdefg-hi.py”、”jklmnop-qrstu.py”という2つのpythonプログラムを自動で実行します。

流れは以下です。

  1. コマンドプロンプトの画面IDを取得
  2. コマンドプロンプトをアクティブにする
  3. KBD関数で文字を打ち込んでいく

SENDSTR関数を使えば文字列をいっぺんに送信できるはずなのですが、何故か動作しなかったので、KBD関数で地道に打ち込みました。

実行結果

UWSCスクリプトを実行してみました。

C:\work\uwsc>python abcdefg-hi.py
program1

C:\work\uwsc>python jklmnop-qrstu.py
program2

pythonプログラム自体は文字列を表示するだけの簡単なもので試行しています。

次に、これを繰り返しできるようにしたいと思います。

繰り返しの処理を入れる

// setting repeat count
DIM repeat_count = 3

//Get Window ID
DIM ID = GETID("cmd")

//Activate Window
CTRLWIN(ID, ACTIVATE)

SLEEP(5)

FOR i = 1 TO repeat_count
    //----------program1----------
    // p
    KBD(80, CLICK, 10)
    
    // y
    KBD(89, CLICK, 10)
    
    // t
    KBD(84, CLICK, 10)
    
    // h
    KBD(72, CLICK, 10)
    
    // o
    KBD(79, CLICK, 10)
    
    // n
    KBD(78, CLICK, 10)
    
    // space
    KBD(32, CLICK, 10)
    
    // a
    KBD(65, CLICK, 10)
    
    // b
    KBD(66, CLICK, 10)
    
    // c
    KBD(67, CLICK, 10)
    
    // d
    KBD(68, CLICK, 10)
    
    // e
    KBD(69, CLICK, 10)
    
    // f
    KBD(70, CLICK, 10)
    
    // g
    KBD(71, CLICK, 10)
    
    // -
    KBD(189, CLICK, 10)
    
    // h
    KBD(72, CLICK, 10)
    
    // i
    KBD(73, CLICK, 10)
    
    // .
    KBD(190, CLICK, 10)
    
    // p
    KBD(80, CLICK, 10)
    
    // y
    KBD(89, CLICK, 10)
    
    // enter
    KBD(13, CLICK, 10)
    
    //----------program2----------
    // p
    KBD(80, CLICK, 1000)
    
    // y
    KBD(89, CLICK, 10)
    
    // t
    KBD(84, CLICK, 10)
    
    // h
    KBD(72, CLICK, 10)
    
    // o
    KBD(79, CLICK, 10)
    
    // n
    KBD(78, CLICK, 10)
    
    // space
    KBD(32, CLICK, 10)
    
    // j
    KBD(74, CLICK, 10)
    
    // k
    KBD(75, CLICK, 10)
    
    // l
    KBD(76, CLICK, 10)
    
    // m
    KBD(77, CLICK, 10)
    
    // n
    KBD(78, CLICK, 10)
    
    // o
    KBD(79, CLICK, 10)
    
    // p
    KBD(80, CLICK, 10)
    
    // -
    KBD(189, CLICK, 10)
    
    // q
    KBD(81, CLICK, 10)
    
    // r
    KBD(82, CLICK, 10)
    
    // s
    KBD(83, CLICK, 10)
    
    // t
    KBD(84, CLICK, 10)
    
    // u
    KBD(85, CLICK, 10)
    
    // .
    KBD(190, CLICK, 10)
    
    // p
    KBD(80, CLICK, 10)
    
    // y
    KBD(89, CLICK, 10)
    
    // enter
    KBD(13, CLICK, 10)
    
    SLEEP(5)  // 少し待機してから次の繰り返し
NEXT

スクリプト変更点

スクリプトに以下変更を加えました。

  • 変数repeat_countで繰り返し回数を設定できるようにした
  • FOR文でrepeat_countで指定した回数繰り返す処理を入れた

実行結果

C:\work\uwsc>python abcdefg-hi.py
program1

C:\work\uwsc>python jklmnop-qrstu.py
program2

C:\work\uwsc>python abcdefg-hi.py
program1

C:\work\uwsc>python jklmnop-qrstu.py
program2

C:\work\uwsc>python abcdefg-hi.py
program1

C:\work\uwsc>python jklmnop-qrstu.py
program2

あまり面白くはないですが、3回繰り返しできました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です