■ このスレッドは過去ログ倉庫に格納されています
自動化ツールUWSC使いよ集まれ14
- 1 :名無しさん@お腹いっぱい。:2015/03/08(日) 00:18:57.40 ID:itdOhEn30.net
- Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある
ttp://www.uwsc.info/download.html
●UWSC 掲示板(※作成依頼掲示版ではありません)
質問の際には自力で作ったスクリプトを晒すか、具体的な解らない場所を提示すること
上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫
ttp://www3.bigcosmic.com/board/s/board.cgi?id=umiumi
ttp://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=past
●UWSC - Wikipedia
ttp://ja.wikipedia.org/wiki/UWSC
●使い方・基礎解説学習サイト
ttp://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584
ttp://www.confrage.com/uwsc/
ttp://necro.jp/dev/uwsc/
ttp://park14.wakwak.com/~simizu/uwsc/fruwsc.html
ttp://canal22.org/
ttp://big.tm.land.to/handbook/uwsc.htm
ttp://www.game-rev.com/review/gameut/uwsc.html
●スクリプトテンプレサイト
ttp://izagne.com/uwsc/
ttp://scripts.web.fc2.com/
ttp://www.nagomi-jp.net/~liners/
ttp://nem.symphonic-net.com/uwsct/0610uwsct.html
ttp://siromasa.digi2.jp/uwsc/
ttp://iriyak.adam.ne.jp/uwsc.html
- 905 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:23:57.83 ID:Xo6NmJ950.net
- >>903
上の方にある>>646がイメージ的には近いんですけど、試しに試行してみた所、実行権限が上手く移行出来ていないのかずっとSLEEPで止まったままになってしまうのです
- 906 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:50:57.68 ID:nnr3IjCE0.net
- 並列処理っていうのは基本的に上級者向けだから
ピンと来ないなら諦めたほうがいいよ
>>646絡みでレスついてるけど
それ読んでもヒントにならないなら無理(あなたには)
- 907 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:55:06.99 ID:nnr3IjCE0.net
- 並列処理しなくても>>903の言うとおり「そのまま書けばいい」が正解。
その代わり、元のウィンドウが待機時間に入ったとみなして
別のウィンドウの処理に入っている最中、元のウィンドウの待機時間が
終わって処理Bが可能となったとしても、別のウィンドウの処理Aが終わ
るまで元のウィンドウの処理Bは保留状態となる。
しかしそれでも全く問題ないだろ?
自分で手動操作する場合は結局そうするのだから。
- 908 :名無しさん@お腹いっぱい。:2015/06/22(月) 20:47:58.06 ID:DelgEmlV0.net
- UWSCって非同期できる?
- 909 :名無しさん@お腹いっぱい。:2015/06/22(月) 20:52:07.07 ID:SgLm1iVs0.net
- 非同期って一言で言われても色々あるぞ?
スレッド使えば基本的な非同期はできるぞとしか
- 910 :名無しさん@お腹いっぱい。:2015/06/22(月) 21:43:56.78 ID:A846/Vfm0.net
- >>904
実際に試して時間測れよ
- 911 :名無しさん@お腹いっぱい。:2015/06/22(月) 22:23:15.33 ID:My8ZQvWB0.net
- >>902
ウインドウの待機状態を感知して
ウインドウIDを保存、新たに同じ処理スレッドを作成
処理スレッド中にウインドウの待機状態と待機終了を感知して
さらに処理を開始、もしくは処理したいスレッドに戻ってくる
という方針で考えてみた
コンセプトはこんな感じでいいんじゃないかな
以下コード、分割する
Public HASHTBL BackupWindowID //ウインドウIDを格納する配列
Public CurrentWinID //操作したいIDを入れる器
MainThread(0) //メインの関数、引数はスレッド識別用
Procedure MainThread(ThreadNum)
CurrentWinID = GetID("なんか処理したいウインドウ")
// (なんか処理)
//処理中所々に以下に行を咬ませる
If (なんかあったら) Buzy = 1 Then Lock(ThreadNum) //忙しいなら現在のウインドウを冷凍
UnLock(ThreadNum) //取り敢えず全ウインドウの解凍を試みる
// (なんか処理続き)
FEnd
- 912 :名無しさん@お腹いっぱい。:2015/06/22(月) 22:23:43.27 ID:My8ZQvWB0.net
- (続き)
Procedure Lock(Num, UnLock = 0)
BackupWindowID[Num] = CurrentWinID //冷凍容器に操作中のウインドウを冷凍保存
If UnLock = 1 Then Exit // ウインドウ解凍時に呼ばれたのならこれにて失敬
MainThread(Random(9999) + 10000) //識別用にランダムな値を生成し、新スレッドを作成
FEnd
Procedure UnLock(Num)
For i = 0 to Length(BackupWindowID) -1 //全ウインドウの解凍を試みる
ThreadCash = BackupWindowID[i, HASH_KEY] //冷凍容器から識別IDを取り出し
WinID = WindowID[ThreadCash] //識別IDからウインドウIDを取り出し
Ifb (WinIDの処理が待機中から外れていたら)
Lock(Num, 1) // さっきまで処理していたウインドウを冷凍
CurrentWinID = WinID //待機処理が終了したウインドウを実行中タスクへ戻す
BackupWindowID[ThreadCash, HASH_REMOVE] //冷凍庫を掃除
EndIf
Next
FEnd
- 913 :名無しさん@お腹いっぱい。:2015/06/22(月) 22:43:23.52 ID:T4WVL5xj8
- あ、しまった。これだと元の処理に戻ってないじゃないか
ははは!
- 914 :名無しさん@お腹いっぱい。:2015/06/23(火) 02:48:15.57 ID:5lMefh0T0.net
- checking関数ってどんな技術使って実装されてるの?
- 915 :名無しさん@お腹いっぱい。:2015/06/23(火) 10:49:10.66 ID:XeeDdpBx0.net
- >>904
処理の開始と終了にgettimeを入れて
その差を見ればいい
- 916 :名無しさん@お腹いっぱい。:2015/06/23(火) 10:51:32.50 ID:y2P1rAvh0.net
- >>911-912
そういうやり方もあるかも知れないが、
実用化するには結構膨大な例外処理が必要そうだな。
第1にスレッドが子スレッドを無限に生成しかねない。
UWSCとしてスレッド数を制限する隠し上限値があってエラーで止まるが、
処理内容によってはメモリリーク様症状を起こしたり大量のスレッドで
CPU時間を占有しかねないので、その辺の統制が必要だろう。
第2に、UWSCが自動操作対象とする資源は非常にデッドロックが起きやすい。
> RE:cpuの高いときは休む umiumi
> UWSCの場合、他アプリとの関係が発生したりするので
> 他アプリのハンドルをつかんで何かする瞬間にサスペンドされ
> その後に画面構成が変わった後に再開したら、どうなるのかとか。
> また、一部の関数は内部的に排他制御しているので、排他制御中にサスペンド
> されるとデッドロックの可能性があります。
> それらを考えると、使用は全く勧められません。
> DATE:2007/3/17(Sat) 20:56
デッドロックを避けるために、スリーパーになるタイミングは慎重でなくてはならず、
複数のスレッドが同じ資源を掴まないように管理する処理を自力で実装したり、
デッドロックが発生して止まったスレッドを識別したり、そのゾンビスレッドが
いつの間にか勝手にロックから抜けだした時に勝手なことをしないように自殺させたり、
色々と必要なことは多い。
それらスレッドとの通信はすべてUWSCではグローバル変数を介さないと行うことが出来ない。
- 917 :名無しさん@お腹いっぱい。:2015/06/23(火) 10:52:39.30 ID:XeeDdpBx0.net
- >>905
スレッド使わないと無限ループになるよ
あと机上で適当に考えたやつだから
もともと動かない欠陥があったらスマン
- 918 :名無しさん@お腹いっぱい。:2015/06/23(火) 11:07:41.67 ID:7mhVk4To0.net
- IDA=GETID ←1 WC
IDB=GETID ←2 WC
WC=1
while t
CTRLWIN(WC,ACTIVATE)
A処理
if 待機条件
if wc=1
wc=2
continue
elseif wc=2
wc=1
break
endif
endif
wend
while
CTRLWIN(WC,ACTIVATE)
B処理
wend
こんなんでいいんじゃないの?
- 919 :名無しさん@お腹いっぱい。:2015/06/23(火) 16:57:05.34 ID:l7BNyIR/0.net
- chkimgで検索する画像って
小さければ小さいほど処理は軽くて済むと思いますが、
例えば16x1pxと8x2pxと4x4pxと1x16pxだとどれが一番速いとか
構造上あり得るんでしょうか?
画面や画像にもよるとは思いますが。
検索方式によっては極力複数行にしないで
縦1dotの画像にした方が良いのでしょうか。
www.alg.cei.uec.ac.jp/itohiro/e-science/files/e-sci110904-5.pdf
ここのp.16の計算式とか見るとそんな感じぽいですが。
- 920 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:11:51.58 ID:OTChzhaD0.net
- 自分でマウスを動かしてるときに自動マクロが実行された場合競合してしまうのですが、
独立してマクロを動かすにはどうすればよいでしょうか?
- 921 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:20:34.89 ID:enpumEg80.net
- >>920
仮想環境入れるかもう一台PCを用意してそこで動かす
- 922 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:23:22.53 ID:1zVYU7i40.net
- デュアルマウスtoolとかあるけど、あれ入れた状態でマウスマクロはどんな反応するんだろ?
- 923 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:25:50.35 ID:/m2trk+h0.net
- LOCKHARDでロックする手もあるぞ
- 924 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:31:43.18 ID:wPOi6Obb0.net
- ロックハードでループ入ってデータ吹っ飛んだことある
- 925 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:37:28.27 ID:enpumEg80.net
- ロックハードだとキー押してる間やドラッグ中にされると
挙動おかしくならね?
ロックハード後に、キーアップしてみたがうまくいかなかったからやめたわ
- 926 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:48:15.34 ID:/m2trk+h0.net
- >>925
あーなるかも
俺は吹き出しで3秒前に予告させるという何の解決にもならない方法を取ってるけども
- 927 :名無しさん@お腹いっぱい。:2015/06/23(火) 19:18:42.72 ID:OTChzhaD0.net
- 仮想デスクトップというソフトですかね?
いろんな種類があるみたいですけどオススメありますか?
- 928 :名無しさん@お腹いっぱい。:2015/06/23(火) 20:37:20.75 ID:yQA0bOaw0.net
- >>927
有名どころを上から順に試してみろや
- 929 :名無しさん@お腹いっぱい。:2015/06/23(火) 20:52:57.90 ID:uh0kyjqX0.net
- 仮想デスクトップじゃなくて仮想PCだよ
- 930 :名無しさん@お腹いっぱい。:2015/06/23(火) 22:27:38.05 ID:wPOi6Obb0.net
- EXECで起動できますが、終了はどうしたらいいですか?
- 931 :名無しさん@お腹いっぱい。:2015/06/23(火) 22:45:30.24 ID:ZIbaErIb0.net
- ソフトの終了操作を自動化したら良いんじゃないのけ
- 932 :名無しさん@お腹いっぱい。:2015/06/23(火) 23:34:57.57 ID:i+Ijn81p0.net
- EXCEL.quit
- 933 :名無しさん@お腹いっぱい。:2015/06/23(火) 23:38:40.94 ID:dLQWe0cz0.net
- 仮想PCってどの仮想PCソフト使えばいいの?
- 934 :名無しさん@お腹いっぱい。:2015/06/23(火) 23:49:27.96 ID:YFUQBjtZ0.net
- vmwareが主流と思われ
- 935 :名無しさん@お腹いっぱい。:2015/06/24(水) 07:05:50.59 ID:0UW+sVlw0.net
- >>930
doscmd("taskkill /f /im xxx.exe")
- 936 :名無しさん@お腹いっぱい。:2015/06/24(水) 11:25:34.62 ID:0UW+sVlw0.net
- >>919
実際に試して見るのが早いけどほぼ変わらないと思うよ
処理速度を上げるためだったら、他の視点を持った方がいい
サーチ範囲を狭めるとか、
画像サイズをギリギリまで小さくするとか、
peekcolorで頑張るとか、
ファイルじゃなくメモリアクセスにするとか…
- 937 :名無しさん@お腹いっぱい。:2015/06/24(水) 12:04:40.42 ID:Hspgd6GT0.net
- IDがわかってるならCtrlWin(ID,Close)で殺せるんでないの?
- 938 :名無しさん@お腹いっぱい。:2015/06/24(水) 15:06:11.96 ID:l1R57tJH0.net
- //A
BTN(LEFT,CLICK,955,163,10000)
//B
SLEEP(10)
BTN(LEFT,CLICK,955,163,0)
すいません、AとBは全く同じでしょうか?
違いやメリットデメリットがあれば教えて欲しいです?
- 939 :名無しさん@お腹いっぱい。:2015/06/24(水) 15:13:07.26 ID:hWL3irCZ0.net
- なんも考えずにSLEEP使うといいよ
- 940 :名無しさん@お腹いっぱい。:2015/06/24(水) 15:22:51.00 ID:u1SFGEEE0.net
- 多分違う
時間計測を挟んでみるとわかるけれど引数の値の近似値にはならないのよね
なんとなくのイメージ論になっちゃうけれど
引数の方は最大待機時間っぽい感じがする
- 941 :名無しさん@お腹いっぱい。:2015/06/25(木) 18:22:16.80 ID:oPZ+haqw0.net
- ひょっとして自動クリックが誤動作で連射になるときある・・?
プログラム動作中に他の作業でマウス使ってたら競合して連射とか予期せぬ動作とかしない?
- 942 :名無しさん@お腹いっぱい。:2015/06/25(木) 18:29:50.15 ID:wqp1X+za0.net
- >>941
そりゃ、ちょうどマウスのボタンを押そうと思ったときに、マクロ側も押そうとしたら2連射になるよね
- 943 :名無しさん@お腹いっぱい。:2015/06/25(木) 20:13:48.47 ID:cDTqbBy20.net
- マウス無効化すればいいw
- 944 :名無しさん@お腹いっぱい。:2015/06/25(木) 20:20:52.39 ID:FY/KLTGZ0.net
- 仮想がさいつよ
はっきりわかんだね
- 945 :名無しさん@お腹いっぱい。:2015/06/26(金) 01:49:25.66 ID:gz7aLMMI0.net
- 仮想か別PCで動かさないとやばいな
クレイジーな挙動になるときがある
- 946 :名無しさん@お腹いっぱい。:2015/06/26(金) 01:54:37.32 ID:sdP5f9pC0.net
- それはフォーカスに過度に依存しているスクリプトなんだよ
色々と事前チェックが足りない
- 947 :名無しさん@お腹いっぱい。:2015/06/26(金) 04:48:07.06 ID:hH8a5ejS0.net
- IEで、ひとつのウィンドウで開いている2つのタブを、
二つのウィンドウに分けたい場合はどのように処理したら良いでしょうか?
二つ起動するのではなく、既に開いているタブ二つを分割したいのです
マウス操作以外で方法があったら教えて下さい。
- 948 :名無しさん@お腹いっぱい。:2015/06/26(金) 06:27:30.46 ID:5tv/9hgA0.net
- ブラゲーマクロなんかはマウスに依存せざるをえないんじゃないかなあ
flash解体して操作なんてできないでしょ
- 949 :名無しさん@お腹いっぱい。:2015/06/26(金) 08:56:03.95 ID:uOfWxV270.net
- 仮想化以外で現実的なのは
マウスクリックのひとつ前の処理に座標取得とマウス無効化入れて、
処理が終わったら無効化解除してもとあった座標に戻す、ぐらいかな
- 950 :名無しさん@お腹いっぱい。:2015/06/26(金) 10:15:39.35 ID:/WN731vj0.net
- もしくはmouseorgで
- 951 :名無しさん@お腹いっぱい。:2015/06/26(金) 13:49:41.53 ID:gz7aLMMI0.net
- 時刻を参照して
・・:00
・・:10
・・:20
・・:30
のときだけ動作(一回のみ)させるにはどう記述すればよいでしょうか?
- 952 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:17:51.76 ID:9QDhhXNK0.net
- スケジュールで式による設定
NN=(00 or 10 or 20 or 30)
- 953 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:32:32.73 ID:OscSNhMp0.net
- >>951
スクリプト上なら
dim exeminute[] = 0,10,20,30
beforeminute=-1
while true
for i=0 to resize(exeminute)
gettime()
if g_time_nn=exeminute[i] and beforeminute<>g_time_nn
beforeminute=g_time_nn
//やりたい処理
break
endif
next
wend
- 954 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:44:52.03 ID:NVjv4qWL0.net
- >>947
IEオプションのタブ項目弄った方が楽
- 955 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:51:40.89 ID:8b6cWaM60.net
- >>951 >>953
自分なら
While !GetKeyState(VK_ESC)
GetTime()
If !(G_TIME_SS MOD 10) Then やりたい処理()
Sleep(1)
WEnd
- 956 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:52:32.82 ID:8b6cWaM60.net
- あ、分か
SSじゃなくNNだったな
- 957 :名無しさん@お腹いっぱい。:2015/06/26(金) 16:04:42.66 ID:OscSNhMp0.net
- >>955
sleep(60)にして一分ごとにチェックすると思うけど、それだと飛びが発生する可能性があるよ
例えば、9分59秒99のタイミングでチェックした後、
sleep(60)したら11分0秒00で次のチェックが走った場合
- 958 :名無しさん@お腹いっぱい。:2015/06/26(金) 17:27:14.95 ID:9RWcGcCt0.net
- そんな誤差を許容するなら、NN mod 10 の結果が減った時を検出するのがいいかな
- 959 :名無しさん@お腹いっぱい。:2015/06/26(金) 19:35:38.53 ID:tMFd7SQN0.net
- 60にする必要まったくなくね
っとおもったらsleep(1)じゃん
別にこれでいいと思うよ
- 960 :名無しさん@お腹いっぱい。:2015/06/26(金) 19:36:09.55 ID:7mDgY6gd0.net
- 等号(=)での比較がきらいなので
GetTimeして
次の予定は(00秒、10秒、20、30)のどれになるかを計算して
----ループ開始
GetTimeして、次の予定を過ぎていたら(>=)
まず、その次の予定を計算して代入してから「やりたい処理」をする
----ループの先頭へ
もしも「やりたい処理」が10秒以内で終わらないかもしれないなら
そのためのエラー処理ルーチンを入れるか
「やりたい処理」を別スレッドにして並列で幾つも幾つも実行させる
- 961 :名無しさん@お腹いっぱい。:2015/06/26(金) 19:51:18.78 ID:YwwzOsxf0.net
- タスクスケジューラを利用
- 962 :名無しさん@お腹いっぱい。:2015/06/27(土) 00:43:47.94 ID:4DjkU5u70.net
- CHKBTNやCLKITEMでラジオボタンを対象にする場合で質問
キャプションの文字列が存在しない場合はどう指定すればいい?
- 963 :名無しさん@お腹いっぱい。:2015/06/27(土) 00:47:56.11 ID:kmOp9RrE0.net
- SPY++でコントロールIDを直接調べる
- 964 :名無しさん@お腹いっぱい。:2015/06/27(土) 07:26:49.45 ID:AXu8qFQR0.net
- >>959
それだと10分に何十回も実行してしまう
- 965 :名無しさん@お腹いっぱい。:2015/06/27(土) 09:24:31.94 ID:i0mwW7lv0.net
- >>964
やりたい処理の最後にSleep(60)でええやん
- 966 :名無しさん@お腹いっぱい。:2015/06/27(土) 15:37:47.24 ID:wCNQu5qC0.net
- 最後に実行した時のNNを変数に保存して比較すればいいよ
自動操作という性質上そういう重複操作を統制する手法は常識
- 967 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:23:30.15 ID:YBWE773w0.net
- 初回だけ検出したらその後は sleep(600) だけでいいのでは
- 968 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:38:09.35 ID:kmOp9RrE0.net
- 求める精度は用途によって様々
人それぞれなんで答えは一つじゃないさ
- 969 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:51:46.71 ID:Cp3CV12G0.net
- >>967
処理にかかった時間の分だけずれていく
- 970 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:56:41.75 ID:92XqVBFW0.net
- ダブルマウスダブルキーボードの人いる?チャレンジしてみようかな
- 971 :名無しさん@お腹いっぱい。:2015/06/27(土) 19:42:01.53 ID:yUPbOYud0.net
- >>969
じゃあ時間で判断したらええやん
- 972 :名無しさん@お腹いっぱい。:2015/06/27(土) 21:11:52.43 ID:YPLPZoo+0.net
- それがsleep(1)だろ…
- 973 :名無しさん@お腹いっぱい。:2015/06/28(日) 00:23:09.01 ID:yZ8ohOQ90.net
- >>970
翻訳頼む
- 974 :名無しさん@お腹いっぱい。:2015/06/29(月) 01:19:56.72 ID:0u/Dye8K0.net
- 時間で判断というのはGETTIMEを元にリアルタイムを判定するってことだね
判定サイクルに挟み込むwaitがSLEEP(1)なら誤差は何回ループしても
1秒+処理時間までに収まる
- 975 :名無しさん@お腹いっぱい。:2015/06/29(月) 04:29:46.10 ID:9eIZINV/0.net
- >>974
現在の時刻と実行したい時刻までの時間の差を図って、それだけ待ってから実行したらどうか
- 976 :名無しさん@お腹いっぱい。:2015/06/29(月) 09:35:36.32 ID:r9CE5fkI0.net
- peekcolorで明らかに座標位置とは違う色が取れる時があるんだけど何故だ?
赤いエリアでやってるのに時々黒に近いデータが返ってきたり。
- 977 :名無しさん@お腹いっぱい。:2015/06/29(月) 10:11:16.49 ID:ka0ucbGy0.net
- >>976
プログラムは思ったとおりには動かない
書いたとおりに動くからだよ
- 978 :名無しさん@お腹いっぱい。:2015/06/29(月) 10:43:14.50 ID:0I5Issh10.net
- Mouseorg()でID指定してるのに
G_MOUSE_X/YでPeekcolor()してるとか?
- 979 :名無しさん@お腹いっぱい。:2015/06/30(火) 00:10:13.02 ID:BJA2Xrw00.net
- 連想配列の中身をcsvに書き込むのってどうやればいい?
- 980 :名無しさん@お腹いっぱい。:2015/06/30(火) 00:17:49.37 ID:eWBCRJq80.net
- 初心者なのですがここで質問していいのか分かりませんが、お答えしてもらえると嬉しいです
同じ画面でウィンドウの名前が「ひとつめ」「ふたつめ」というものがあるとして
ID1 = GETID("ひとつめ")
ID2 = GETID("ふたつめ")
dim id[] = ID1,ID2
for d = 0 to 1
CTRLWIN(id[d],ACTIVATE)
MOUSEORG(id[d],1)
next
という文だと
ひとつめのウィンドウをアクティブ化
↓
ひとつめのウィンドウを相対座標にする
↓
ふたつめのウィンドウをアクティブ化
↓
ふたつめのウィンドウを相対座標にする
ということになるのでしょうか?
手元にパソコンがないので試すこともできないので教えていただけると嬉しいです
- 981 :名無しさん@お腹いっぱい。:2015/06/30(火) 01:28:47.06 ID:Ond76hrU0.net
- ※ 有効範囲はスレッド単位
- 982 :名無しさん@お腹いっぱい。:2015/06/30(火) 01:38:14.53 ID:/I1DQEUO0.net
- テキストボックスの数字を変える場合は、
「ダブルクリック→数字キー」が良いですかね?
オススメありますか?
念のためバックスペースかましたり、あるいはコントロールA使ったりいろいろありそうですけど。
- 983 :名無しさん@お腹いっぱい。:2015/06/30(火) 12:52:55.95 ID:3s3VXGwt0.net
- 画面ロックして外出して帰ってきたんだけど、プログラム動いてなかった。なにこれ?どういうこと?
- 984 :名無しさん@お腹いっぱい。:2015/06/30(火) 12:56:27.49 ID:fj872/AM0.net
- そーゆうこと
- 985 :名無しさん@お腹いっぱい。:2015/06/30(火) 13:07:51.12 ID:3s3VXGwt0.net
- まじっすか
ロック中でも動かす方法ある?
どうすればいいの?
- 986 :名無しさん@お腹いっぱい。:2015/06/30(火) 13:39:09.23 ID:XitTC9f90.net
- FUKIDASIなんですが、一度表示してずっと表示されてる時と
表示した直後にすぐ消えてしまう時があります
どこで変わるのでしょうか?
表示時間みたいなパラメータ指定は無いですよね?
- 987 :名無しさん@お腹いっぱい。:2015/06/30(火) 13:48:52.36 ID:Ond76hrU0.net
- スクリプトが終了したら消えるのでそれじゃないかな?
結果を視認しないとダメなケースはSleep入れるのも手
- 988 :名無しさん@お腹いっぱい。:2015/06/30(火) 14:30:27.22 ID:3s3VXGwt0.net
- ロック中でも他のアプリは動くけど、UWSCだけ動かないぞダメじゃん。
- 989 :名無しさん@お腹いっぱい。:2015/06/30(火) 15:22:56.20 ID:HJpJ9xnX0.net
- スクリーンセイバーは?
- 990 :名無しさん@お腹いっぱい。:2015/06/30(火) 19:38:25.50 ID:Ond76hrU0.net
- 端的にいうとマウス、キーボードに依存していないスクリプトならロック中でも動く
だって内部的には切断されるからね
- 991 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:13:13.58 ID:MQiSjpZ/0.net
- CHIKING関数で画像認識のスクリプトを練習してるのですが手詰まってましてヒントだけでもいいので教えてほしいです
例えばある二つのフォトビューワーを起動していてどちらもクリックするごとにA,B,C,Dの画像をランダムに表示するとします。
「両方にB画像が出るまでクリックを両方に繰り返す」
というものを作成したいのですが
While (CHIKING("B画像.bmp")=FALSE)
クリック作業
WEND
となると片方にBが表示されると止まってしまいますよね?
「両方にBが表示された時に」という条件はどう書けばいいのでしょうか?><
- 992 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:28:10.65 ID:RZWrQIbZ0.net
- Dim ID1 = GetID("フォトビュアー1")
Dim ID2 = GetID("フォトビュアー2")
Dim ST1[4] = Status(ID1, ST_X), Status(ID1, ST_Y), Status(ID1, ST_X) +_
Status(ID1, ST_Width), Status(ID1, ST_Y) + Status(ID1, ST_Height)
Dim ST2[4] = Status(ID2, ST_X), Status(ID2, ST_Y), Status(ID2, ST_X) +_
Status(ID2, ST_Width), Status(ID2, ST_Y) + Status(ID1, ST_Height)
While true
If !(ChkImg("B画像.bmp", 0, ST1[0], ST1[1], ST1[2], ST1[3]) Then 1のクリック
If !(ChkImg("B画像.bmp", 0, ST2[0], ST2[1], ST2[2], ST2[3]) Then 2のクリック
WEND
- 993 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:48:21.50 ID:eWBCRJq80.net
- >>992
ありがとうございます!!
- 994 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:51:56.38 ID:3s3VXGwt0.net
- スクリーンセーバーもダメだったw
しかしこれは盲点だったorz
パソコンから離れられないんだけど
皆さんはなんか工夫してんの?
- 995 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:56:36.38 ID:GbIhkVsn0.net
- chkimgの対象ウィンドウをmouseorgで切り換えたほうがいいと思う
mouseorgはchkimg以外でも使用するのが常套手段だが、使用すればchkimgにも作用してしまう。
そのため複数ウインドウ処理時は、現在の対象ウィンドウが不確かになるのを防ぐため、
常にchkimgの直前にmouseorgすると良く、記述の煩雑化を避けるためにchkimgをラッピングする
自作関数を定義し、引数にウィンドウIDを指定できるようにすると良い。
- 996 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:57:39.55 ID:RZWrQIbZ0.net
- >>994
馬鹿かお前は
UWSCはバックグランドアプリでもサービスアプリでもないアクティブアプリだ
最小化しかり、ウインドウが作成されない環境で操作できると思ってる方がおかしいわ
どうしてもやりたきゃ仮想化一択 結論出てんだろ
- 997 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:02:08.33 ID:bE8J7fSf0.net
- マウスやキーボードや画面表示に依存しないスクリプトなら動くかも?
- 998 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:03:20.74 ID:FoC7tnPp0.net
- ファイル操作くらいか。
- 999 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:04:25.60 ID:b0cRK8490.net
- >>995
STATESの勉強しに行くつもりでしたが、そちらの方が後の事を考えると手間がすくないんでしょうか?
ありがとうございます!
- 1000 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:13:22.54 ID:RZWrQIbZ0.net
- >>999
Mousorgが上級者向き
やらかすと混迷するから注意しとき
STATUSで理解した方が内部的に何やってるか理解が進むよ
- 1001 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:19:06.98 ID:b0cRK8490.net
- >>1000
なるほど....
ご丁寧にありがとうございます!
ひとまずはSTATESから勉強してみようと思います!
ていうかなんでIDがコロコロかわってるんだろう...
- 1002 :名無しさん@お腹いっぱい。:2015/07/01(水) 00:01:16.25 ID:We4qjDRi0.net
- >>994
仮想化すればロックしてても関係ない
親相手ならhardlock(true)くらい入れときゃいじられんだろ
- 1003 :名無しさん@お腹いっぱい。:2015/07/01(水) 01:09:57.39 ID:j4P+NWwq0.net
- ディスプレイの電源切るじゃダメなんですかね。
- 1004 :名無しさん@お腹いっぱい。:2015/07/01(水) 09:00:13.61 ID:ZnimBi9e0.net
- CHECKINGとかSTATESとかわざとやってんのか?
- 1005 :名無しさん@お腹いっぱい。:2015/07/01(水) 09:57:37.69 ID:SnVS9ErY0.net
- >>1004
関数は基本的にコピペで書いてたからスペルミスだ!
自分で書けるようにしといたほうがやっぱりいいよね
総レス数 1144
361 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200