2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

自動化ツール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