■ このスレッドは過去ログ倉庫に格納されています
自動化ツール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
- 641 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:40:00.80 ID:sFbRDONtD
- >>633
色々ありがと! とりあえずいろいろ調べてみて、試せるところから試すわ。
- 642 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:36:01.89 ID:3KFoCyzZ0.net
- >>640
そう思ったけど
>>638の言うように、クリックして話す前にマウスが移動されたりするとかで挙動がおかしくなるから危険
コントローラ用のuwsを用意して、
二つuwsの処理に実行権限を振り分ける感じがいいかな
・コントローラuws
call a.uws;b.uws
i=0
while true
select i mod 2
case 0;a()
case 1;b()
selend
i=i+1
wend
・a.uws
fuction a()
//中断出来るまでの一処理だけ書く、2週目以降のための状態を変数に保存するのも忘れずに、public変数の競合も注意、classとかで括った方がいいかも
fend
・b.uwsはa.uwsと同じ感じで
- 643 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:36:08.62 ID:xMVR/Xi20.net
- 片方の処理をしてる時はもう片方は待つって処理を入れて
排他処理をさせれば良いだけではなくって?
- 644 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:44:25.07 ID:3KFoCyzZ0.net
- >>643
callで出来るならそっちの方がスマートか…
- 645 :名無しさん@お腹いっぱい。:2015/05/30(土) 18:06:06.45 ID:TZwPvYTO0.net
- >>644
丁寧な回答有難うございます
内容は完璧には理解出来てないのですが要勉強ですね…
>>643
例えば
aを処理してる間にbを待機させる処理を入れて
中断を挟める所にcallでbを処理させて、bが中断挟める所にaの処理をcall
以下ループという感じでスクリプトを組めば大丈夫という事でしょうか?
何か質問ばかりですいません…
- 646 :名無しさん@お腹いっぱい。:2015/05/30(土) 18:47:53.27 ID:3KFoCyzZ0.net
- >>645
>>644のcallで出来るならの部分は忘れて、変なこと言った
>>642をそのままの感じでやるか、
スレッドを使ってpublicな変数に実行する処理の識別子を入れる感じ?
・メインuws
public runNo="a"
//call宣言やスレッド実行処理を書く
・a.uws
procedure a()
while true
//やりたい処理を入れる
waitA()
//やりたい処理を入れる
waitA()
wend
fend
procedure waitA()
//他の処理実行
runNo="b"
//実行権限渡されるまで待つ
while runNo<>"a"
sleep(0.1)
wend
fend
・b.uws
//aとほぼ同じ
procedure waitB()
runNo="a"
while runNo<>"b"
- 647 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:00.81 ID:TZwPvYTO0.net
- >>646
ここまで丁寧でしかもテンプレ的な物まで作ってくれるなんて…
感謝の念でいっぱいです!
教えてもらった方法で色々試行錯誤してみます
本当に有難うございました!
- 648 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:09.37 ID:3KFoCyzZ0.net
- あとcallは処理実行するわけじゃなく、
その場所にソースをコピーしただけだと思った方がいい
- 649 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:11.95 ID:/5qWzqR+0.net
- 同じ事をするソースを2重に管理するのはバージョン管理が一致しないで後々バグの温床になるよ
スレッドを使った似たようなケースでこんなの作って
それぞれのスレッドから呼び出してどっちか区別可能しながら制御したことあるわ
//プロセス番号とスレッド識別子でIDを作成
DEF_DLL GetCurrentProcess(): hwnd: kernel32
DEF_DLL GetCurrentThreadId(): hwnd: kernel32
Function GetCurrentID()
result = GetCurrentProcess() + "." + GetCurrentThreadId()
FEnd
- 650 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:45:45.98 ID:k0Af3UX50.net
- 実際に並列処理ができるわけじゃないんだし、一つにまとめて順番にやった方がいいのでは
- 651 :名無しさん@お腹いっぱい。:2015/05/30(土) 20:09:31.86 ID:FaUG3gh00.net
- マウス操作などのユニークなリソースを
複数のスレッドから奪い合って制御するなんて
悪手の典型じゃんかデッドロックの温床だよ
UWSCはあくまで人間が手動で操作する所を自動化するもの
2人の人間が一つのPCを操作する様を自動化する状況なのか?
1人が対象を頻繁に切り替えて擬似並列する操作を自動化するはずだ
対象を切り替えて処理するのを実現するのは手間の問題で必ず実現可能だが、
手動では再現したことのないデバッグ不能な複数スレッドからの並行自動操作
を実現するのは、そもそもプログラムレベルで正しく書いたとしても、
その成果は、その構想がOSの仕様上そもそも不可能な動作だったことを証明
する結果となるリスクがあるぞ。
料理が盛りつけられたお皿が2つ。これを両手で同時に食べようとしても、
お箸が一膳しかなかったり、お口も一つしか無かったというオチにならんようにな。
- 652 :名無しさん@お腹いっぱい。:2015/05/30(土) 21:50:16.85 ID:5/MuJWZb0
- >>631
まず>>631が理解したほうが良いと思うことはUWSCはWindows操作を自動化するツールのスクリプトだということ
メリットは、手動で操作できることはほぼ比較的簡単に自動化出来ること
つまり新しくウインドウを作成してデータ処理をすることは(無理では無いが)不得意だということ
そこを踏まえて
>逆に多くの環境で間違いなく動く言語教えてもらえるとすげーありがたい。
多言語も変わらない(UWSCのような他プログラムをコントロールするプログラムという意味で)
コントロールされる側の環境、設定に(Windowsの環境、設定も含めて)依存する部分がどうしても出てくるし
たとえそれはC++等の他言語で作っても同じことで
多くの環境で動くようにするには環境間の差異を認識して処理を振り分ける必要があるのだけど
その環境間の差異は違う環境で実際動かしてみないと気づかない事が多々あると言うこと
その差異を認識して組んでるスクリプトを見ると参考になるし、素直に尊敬するよ
一言でいうと、言語の問題ではなく処理の問題 なのでUWSCでも環境の差異を吸収して動くものは作成可能
シェアウェアの販売方法を知りたいと他スレで質問するにしても
もう少し具体的に質問したほうがレスが付きやすいかもしれないね
- 653 :名無しさん@お腹いっぱい。:2015/05/31(日) 06:59:11.72 ID:1XAFtc6rG
- >>652
ありがとう!優しいな。
極端に言うと
msgbox("こんにちは")
って表示させるだけのプログラムであれば、またそれが相手側に表示を
させられていれば、言語は何でもいいし、問題もないってことだよね。
その辺踏まえていろいろ試してみるよ。uwscでもできそうで良かった。
ありがとう。l
- 654 :名無しさん@お腹いっぱい。:2015/05/31(日) 06:56:08.93 ID:hSYLC6Mx0.net
- https://service.gmx.com/registration.html
このページのフォームを埋めて行きたいのですが、
フォームのID?が動的に変わっているようで、指定の仕方がわかりません。
IESetData(IE,FirstName,"id57")
こんな感じだと思うのですが、id57の部分が変わってしまうのか入力されません
わかる方お願いします。
- 655 :名無しさん@お腹いっぱい。:2015/05/31(日) 07:42:54.65 ID:spRZd9M70.net
- >>654
ガチの犯罪報告ワロタwwww
通報しますた
- 656 :名無しさん@お腹いっぱい。:2015/05/31(日) 08:31:18.27 ID:+234HVzm0.net
- >>654
そんなの手でやればいい
大量にアカウント取得したいと思ってる悪人以外はそう考えるだろう
- 657 :名無しさん@お腹いっぱい。:2015/05/31(日) 15:46:00.29 ID:SDSS//Sp0.net
- 全部画像検索で操作したらいい
- 658 :名無しさん@お腹いっぱい。:2015/06/01(月) 07:23:47.81 ID:7eb6mTTQ0.net
- IELINKってフレーム分けされてるページだと文字列を読み込めないんですかね?
menu_fってフレームと、main_fってフレームがあって、menu_f内の「スケジュールの入力」って文字列をクリックさせたいんだけど、うんともすんとも言わん>.<
- 659 :名無しさん@お腹いっぱい。:2015/06/01(月) 14:29:47.45 ID:Axa8otif0.net
- 現在値のIEオブジェクトはフレーム定義のみのパターンかな
であればアクセスしたいフレームのIEオブジェクトを取得しよう
公式 FAQ #n37 に習って
同じドメインで同じプロトコルであればDOM操作するのも手
- 660 :名無しさん@お腹いっぱい。:2015/06/01(月) 20:00:58.86 ID:B4sEGaAv0.net
- 気になってframesetとiframeの両方を試してみたけど
IELinkは正常に動作する
操作を受け付けないframeとかあんのかな?
- 661 :名無しさん@お腹いっぱい。:2015/06/01(月) 20:04:32.22 ID:B4sEGaAv0.net
- IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.ink.or.jp/~bigblock/html/frame/01.html")
BusyWait(ie)
msgbox("frame IELink start")
msgbox(IELink(IE,"自己紹介"))
IE.Navigate("http://masaboo.cside.com/new_html1/ht_44.htm")
BusyWait(ie)
msgbox("iframe IELink start")
msgbox(IELink(IE,"次のページ"))
Procedure BusyWait(ie)
repeat
Sleep(0.2)
until (! ie.busy) and (ie.readyState=4)
Fend
- 662 :名無しさん@お腹いっぱい。:2015/06/02(火) 01:33:31.66 ID:kONnq2Nk0.net
- 変るか?
- 663 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:19:29.49 ID:SCl6mZXT0.net
- 皆さんありがとう
試行錯誤しながら、教えてもらったことを試してみます。
お前ら優しいのな
惚れてまうわ
- 664 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:45:41.51 ID:SCl6mZXT0.net
- 今試してみてページの作りの違いなのかソース表示すると
>>661さんのサンプルページの場合
どこでソース表示しても、メニューとコンテンツの二つのフレームがあると分かるけど、
自分がUWSCを使用したいページの場合
・各フレームのソースのみが表示される
→メニュー部分でソース表示するのと、メイン部分でソース表示するのと内容が違う
mainフレームにもmenuフレームにも、headとbodyがあって
さらに言えば、ページ内にヘッダーがあるんだけど、そのヘッダーにもheadとbodyがある…。
何かすげーややこしい構造の管理ページ。
ちなみに、ヘッド部分・メニュー部分・メイン部分のそれぞれのリンク先を指定してみたけど、どれも読み込めなかった
- 665 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:50:40.17 ID:SCl6mZXT0.net
- あれ、ファイアーフォックスだとちゃんとソース表示される
- 666 :名無しさん@お腹いっぱい。:2015/06/03(水) 14:49:13.90 ID:jzVkSga+0.net
- chkimg用の透過画像を簡単に作れる方法はないかな?
具体的には一番濃い色だけを残して他は透過色として塗りつぶしたいんだけど
色で選択して選択範囲反転、塗りつぶし、とやるのがいいのかな?
使ってるソフトがあったら教えて下さい
ペイントで1ドットずつやってるから目が疲れた
- 667 :名無しさん@お腹いっぱい。:2015/06/03(水) 15:11:46.10 ID:Gp34xgkt0.net
- 自分はフリーのgimpとか使ってたな
- 668 :名無しさん@お腹いっぱい。:2015/06/03(水) 15:39:19.35 ID:9AhfqGY+L
- twitterのプロフィール画像、ヘッダー画像をアップロードしたいんだけど、
プロフィールを編集を押下から先がわからない。
プロフィール画像を変更→画像をアップロードのやり方分かる人いる?
初めて1週間のおれにはソースにid,nameがないぽくてお手上げ状態。。
座標クリックで凌ぐしか今思いつかない。
分かる人助けて
- 669 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:28:14.77 ID:jzVkSga+0.net
- gimpか
ありがとう
- 670 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:48:09.69 ID:W59efDtX0.net
- paint.netもおすすめ
- 671 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:57:08.35 ID:UeOvBRd10.net
- 特徴的なごく狭い範囲を加工するだけだからMSPaintで十分だったわ。
てか、あまりでかい画像を持たせるのはなんかやだった。
- 672 :名無しさん@お腹いっぱい。:2015/06/04(木) 17:25:02.12 ID:CDT2sb0DE
- ここでは初歩的な質問かもしれないけど、どうしても作りたいマクロがあって質問したい。
A「@30分起きに一度再生したいスプリクト」・B「常に再生(ループ)しておきたいスクリプト」を2つ。
基本はBを再生しておきながら、30分おきにAを再生(その間Bは停止)する場合どういうスケジュールにすればいいかな。
- 673 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:03:55.25 ID:8OB69mUNU
- >30分おきにAを再生(その間Bは停止)
処理の内容によるとは思うけどAの再生状況をBが知る必要があるから
iniファイルを使ってAの再生フラグを作成してBの再生を制御するか
もしくはAとBを制御するCという制御用スクリプトを作ってそこから
CALLでAをB呼び出す方法
後者のほうが簡単かな
- 674 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:05:43.29 ID:8OB69mUNU
- ×CALLでAをB呼び出す方法
○CALLでAとBを(Cから)呼び出す方法
- 675 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:33:32.80 ID:KJajLfqNh
- -Main.uws-
Thread FunctionA()
Thread FunctionA()
Exit
Procedure FunctionB()
- 676 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:36:55.08 ID:KJajLfqNh
- 書き込みウインドウで編集しようとしたら途中で書き込んじゃった
>>672
これを起動しておく
--Main.uws--
Thread FunctionA()
Thread FunctionB()
Exit
Procedure FunctionA()
While True
CALL A.uws
Sleep(60 * 30)
WEnd
FEnd
Procedure FunctionB()
While True
CALL B.uws
WEnd
FEnd
- 677 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:44:00.99 ID:2TqM2PJKS
- 実質的に並行処理ではない(時間になったらBは途中であっても止める)から
この場合はスレッドは使うべきじゃないよ
Bで1行処理するごとに時間チェックする処理を呼び出して
時間になったらそのままAをコール、そのままBの処理に戻ると簡単
- 678 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:53:50.80 ID:2TqM2PJKS
- あと「30分おきに」の定義も厳密にしないとダメかな
>>676のような「30分+Aの処理が始まって終わるまでの時間」ごとになのか、
Aの処理時間とは無関係に、0分に最初の処理があれば30分、60分、90分・・・
のタイミングに呼ぶのかでも処理方法は全然違うから注意したほうがいい
- 679 :名無しさん@お腹いっぱい。:2015/06/05(金) 01:38:45.35 ID:Y75hI0BD0.net
- photoshopで「イメージ」→「色調補正」→「二階調化」閾値255
これは真っ白のみ切り抜く方法だが
他の色でやりたいなら「自動選択ツール」許容値1とかでも
それ以外のやり方聞いてるんですよねスミマセン…
- 680 :名無しさん@お腹いっぱい。:2015/06/05(金) 03:28:03.59 ID:ACIe9+Kh0.net
- このスレ的にはスクリプトでイメージを処理すれば良いんだけど
UWSCでイメージ処理は正直面倒くさい
- 681 :名無しさん@お腹いっぱい。:2015/06/05(金) 07:06:50.75 ID:lq3LJr2I0.net
- IrfanView
とかは?
- 682 :名無しさん@お腹いっぱい。:2015/06/05(金) 11:14:16.47 ID:55WfbWby0.net
- chkimgは処理速度が遅いから場所によっては数箇所peekcolorで判定する事もあるわ
- 683 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:33:41.73 ID:10/gL9fe0.net
- ブラウザ操作の質問です
IEがビジー状態の間待つ
というコードをchromeではどう書けばよいですか?
- 684 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:57:29.93 ID:UlD2Vx9U0.net
- 基本的には書けない
セレニウム使うか素直にIEで
- 685 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:58:52.47 ID:2jwoan/j0.net
- 俺なら、読み込み完了が分かる画像が表示されるまでスリープ
表示されたらさらに数秒スリープ
って感じのコードをゴリゴリ書くかな
アバウトだから、異常チェックは念入りに必要だけど
- 686 :名無しさん@お腹いっぱい。:2015/06/06(土) 10:45:55.76 ID:10/gL9fe0.net
- >>684
ありがとうございます
>>685
ありがとうございます。それに挑戦してみます
- 687 :名無しさん@お腹いっぱい。:2015/06/06(土) 22:30:19.68 ID:6ckcFYnr2
- uwscを起動すると通常は横に細長い小さなコントロール用パネルが表示されますが、
あるタブレットで起動すると、uwscのコントロール用パネルが最大化して起動してしまいます。
uwsc.exeの起動だけならウインドウバーをダブルクリックして元のサイズに戻せるのですが、
マクロファイルから起動させると最大化したままでウインドウバーが消えるので、まったく操作不能になります。
(タスクバーにも覆いかぶさるので、ソフトウエアキーボードが使えません)
タブレットはdell venue 8 pro、win8.1 32bit、
参考までに解像度は1280x800で、それ以下のサイズに変更しても同様の現象が起きます。
今落とせる古いバージョンのuwscでも同様の現象が起きます。
どなたか解決方法がわかる方いませんでしょうか。
- 688 :名無しさん@お腹いっぱい。:2015/06/07(日) 02:00:40.39 ID:gOW6AkJ5Y
- >>687
検索するとwin8以降は画面解像度と文字サイズ設定で常にウィンドウが最大化されて開く仕様があるらしい
という事はわかりましたが、質問に解像度の事が書いてあるのでそこは承知している感じを受けました
根本的な原因はわかりませんが、取り敢えずUWSCの改善案として
>uwsc.exeの起動だけ〜
→UWSC右クリック→「タスクトレイに格納」を選択する
これで次回から起動時にタスクトレイに格納されるはず
>マクロファイルから起動〜
スクリプトファイル先頭にUWSCを最小化する命令を追加しておく
CTRLWIN(GETID(GET_THISUWSC_WIN),MIN)
(しかし、関連起動ではメイン画面は表示されなかったと思うのですが…)
関連起動時に表示されるウィンドウがログ表示用ウィンドウだとしたら
スクリプトファイル最初にあるPRINT文の直後にACW命令を追加
ACW(GETID(GET_LOGPRINT_WIN),0,0,200,150)
似たようなスペックのwinタブレットASUS VivoTab Note 8を使っているのですが
該当した症状はないので機種固有の設定等なのかもしれませんね
原因がわかりましたら報告していただけると他の方の参考になると思うので助かります
- 689 :名無しさん@お腹いっぱい。:2015/06/07(日) 03:10:01.83 ID:xD+n8wnog
- >>688
早速有り難うございます。
>検索するとwin8以降は画面解像度と文字サイズ〜
この件はしりませんでした、後ほど調べて見るようにします。
>→UWSC右クリック→「タスクトレイに格納」を選択する
>これで次回から起動時にタスクトレイに格納されるはず
この通りになりました。
>スクリプトファイル先頭にUWSCを最小化する命令を追加しておく
>CTRLWIN(GETID(GET_THISUWSC_WIN),MIN)
>(しかし、関連起動ではメイン画面は表示されなかったと思うのですが…)
いつも使っているvistaでは確かに関連起動ではメイン画面は出ないのですが、同じスクリプトでもこのタブレットでは何故か表示されます。
(uwsc付属のサンプルスクリプトでも表示されます)
さしあたり例示していただいたスクリプトを挿入することでメイン画面の最大化は回避出来ました。
ただログウィンドウを表示するタイプのスクリプトを使っているので、一旦裏に回ったログウィンドウを表に出すと、
メイン画面も一緒に再び表に出てしまいます。
第一段落に書いていただいた、win8以降特有の現象かと思われますので、そちらの方からもう少し根本的な解決法を探ってみます。
ありがとうございました。
- 690 :名無しさん@お腹いっぱい。:2015/06/07(日) 13:14:51.89 ID:JD5ADCZJ0.net
- 非アクティブウィンドウの操作についての質問です。
対象ウィンドウは最小化しておらず、他ウィンドウに隠れた状態です。
uwscにマウス操作を取られずにウィンドウにマウス操作を送りたいのですが、
以下の記述でうまくいきません。
mouseorg(getid("hoge"),2) // hogeはウィンドウ名
ifb chkimg("img.bmp",0) then
print G_IMG_X
print G_IMG_Y
btn(LEFT,0,G_IMG_X,G_IMG_Y,100)
endif
上記を実行したところ、G_IMG_XとG_IMG_Yの値がコンソールに表示されますが、クリック動作が行われません。
mouseorg(getid("hoge"),1)を試してみたところ、目的の画像img.bmpのある位置をクリックできています。
chkimg関数は目的通りに動作しているようですが、どうにもbtn関数がうまく動作せず困っています。
よろしくお願い致します。
- 691 :名無しさん@お腹いっぱい。:2015/06/07(日) 14:15:31.79 ID:6n30q6Ii0.net
- >>690
IDが送りたいオブジェクトのIDじゃないんだろ
- 692 :名無しさん@お腹いっぱい。:2015/06/07(日) 14:52:20.91 ID:qteIWs/R0.net
- 画像裏動作はまともに動作しないから仮想化使うのが無難という結論だったと思われる
- 693 :687,689:2015/06/07(日) 15:50:52.67 ID:xD+n8wnog
- >>688
解像度と文字サイズで、タブレット機のウインドウが常に最大化して開くのはこの現象ですね。
http://answers.microsoft.com/ja-jp/windows/forum/windows8_1-files/%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6/d41d51c0-c785-4697-9224-767ff227d931
uwscのショートカットを作成して、プロパティから実行時の大きさを「通常」→「最小化」とすることでメイン画面が表示されることはなくなりました。
- 694 :名無しさん@お腹いっぱい。:2015/06/07(日) 15:41:29.75 ID:O6vjW+bk0.net
- 「まともに動作しないから」ではなく、
苦労に苦労を重ねて、あるひとつの動作をまともに動作させられたとしても、
そもそも裏のウィンドウを操作したい件の最終目標を達成するには、
そのたった一つの動作だけで済むはずもなく、次から次へと困難が待ち受けており、
いちいち2ちゃんで質問するレベルの人には手に負えないだろうという理由。
またそういった手法は、画像認識と同じで、操作対象や操作環境がホンの少し
変わっただけで同様に動作しなくなることも多かろう。
だめになる
- 695 :名無しさん@お腹いっぱい。:2015/06/07(日) 15:45:43.42 ID:JD5ADCZJ0.net
- >>691
子ウィンドウIDまで取得してこないといけないんですね。
初歩的な質問ですみませんでした。
hogeid = getid("hoge")したあと、getallwin(hogeid)で子ウィンドウを確認して、
目的のウィンドウIDを見つけることができました。
ありがとうございます。
すみません、再度質問させてください。
上記手順で子ウィンドウIDを見つけ出し、mouseorg(hoge_childid,2)としましたが、
未だ他ウィンドウに隠れた状態ではクリック動作を受け付けませんでした。
対象ウィンドウを前面に出すとクリック動作が行われます。
>>690のまま実行していたときには前面に出してもクリック動作が行われず、
>>691でご指摘頂いた通り、ウィンドウIDが間違っていたのだとわかりました。
今回は前面に出すことでクリック動作が正常に動くことから、
対象ウィンドウにクリック操作を送れているとは思うのですが、
他ウィンドウに隠れるとうまく動作しません。
やはり>>692で指摘頂いたように裏動作は諦めるしかないのでしょうか。
よろしくお願い致します。
- 696 :名無しさん@お腹いっぱい。:2015/06/07(日) 16:14:20.96 ID:msybnWxP0.net
- SLEEP(RANDOM30)
とかやっても動くのか……
いままでわざわざ
A=RANDOM(30)
SLEEP(A)
とかやってたぜ
- 697 :名無しさん@お腹いっぱい。:2015/06/07(日) 16:59:39.11 ID:D83vkIKe0.net
- VGAの省電力機能なのか背面のウィンドウは随時描画処理がなされていないようだから
背面で動かしたいなら画像が見つかるまでchkimgをループさせるとかする必要がある
- 698 :名無しさん@お腹いっぱい。:2015/06/07(日) 18:31:14.34 ID:iDR01ZVNS
- 一昨日入れたばっかりなんだけど、ヘルプがタブ以外全部真っ白
タブでなんか検索しても右側真っ白
最初ヘルプ無いのかと思ったけどスレ見る限りだと違うみたいだし・・・
使い方おかしいんだろうか
- 699 :名無しさん@お腹いっぱい。:2015/06/07(日) 18:26:57.74 ID:JD5ADCZJ0.net
- >>697
背面にある状態でG_IMG_X,G_IMG_Yに目的の画像の座標が格納されていても、
画像が見つかっていないんでしょうか。
座標がわかる=画像が見つかったという認識でいます。
クリックすべき座標がわかっている状態でも、
背面にあるとクリック動作が送れないので困っています。
- 700 :名無しさん@お腹いっぱい。:2015/06/07(日) 18:36:30.05 ID:AIilwBQo0.net
- アンチマクロなアプリかは別として
非アクティブだと受け取らないアプリなんでしょう
ならどうしたらいいのかって言うとアクティブにする
仮想化ってのも結局はアクティブにするって意味だからね
そして其処までしないとダメな操作対象って基本ゲームなんですよね
- 701 :名無しさん@お腹いっぱい。:2015/06/07(日) 19:21:21.14 ID:uNXZK6faF
- >>698
公式サイト見た?
http://www.uwsc.info/faq.html#n3
- 702 :名無しさん@お腹いっぱい。:2015/06/07(日) 20:41:41.22 ID:JD5ADCZJ0.net
- >>700
なるほど。
アクティブにしてクリック操作をして非アクティブにする
という切り替えをすればもちろんうまく行きますが・・・。
そういったアプリケーションに対してはバックグラウンド動作させることはできないのでしょうか。
何か別のアプローチが必要で、それをご存知であればご教示下さいませんか。
今回対象にしているアプリケーションはUltraVNCでして、
リモートコンピュータを自動操作したいと思っています。
(リモートコンピュータにUWSCを入れることができない環境です。)
- 703 :名無しさん@お腹いっぱい。:2015/06/07(日) 20:45:24.33 ID:AIilwBQo0.net
- なら仮想化を多重化したらいいじゃない
- 704 :618:2015/06/07(日) 21:36:42.77 ID:8tEtrI0CA
- >>622さんのお陰で、フォームのhtmlを
<meta http-equiv="X-UA-Compatible" content="IE=8”>
にして、表示の問題は解決したのですが、今度は上下のカーソルキーが効かなくなってしまいました。
ほかの指定ならキーボードでスクロール出来るのですが、どうしたものか困っています。
- 705 :名無しさん@お腹いっぱい。:2015/06/07(日) 21:58:52.12 ID:iDR01ZVNS
- >>701
あなたが神か
ありがとう!これでようやく自分で調べられるよ!
- 706 :名無しさん@お腹いっぱい。:2015/06/07(日) 23:51:15.21 ID:gOW6AkJ5Y
- >>693
そのページです
ショートカットで改善できたようで良かったです
>>689
関連付けによる実行でメイン画面が表に出るということは非表示にしてしまうと良いかもしれません
>ログウィンドウを表示するタイプのスクリプトを使っているので、一旦裏に回ったログウィンドウを表に出すと、
>メイン画面も一緒に再び表に出てしまいます。
スクリプトファイル先頭にUWSCメインウィンドウを非表示する
CTRLWIN(GETID(GET_THISUWSC_WIN),HIDE)
もしくはUWSCメインウィンドウのサイズを変更する
ACW(GETID(GET_THISUWSC_WIN),0,0,200,150) //サイズは適当
- 707 :名無しさん@お腹いっぱい。:2015/06/08(月) 00:14:33.14 ID:g3jBGxhA7
- UWSC掲示板にネットゲーム関係の質問はご遠慮くださいってあるから、ここもダメなのかしらどうかしら
- 708 :名無しさん@お腹いっぱい。:2015/06/08(月) 08:13:34.15 ID:NyH9JvbJw
- >>707
もちろんダメ
以前にUWSCスレでゲームの話題が出て荒れたけど
対象ゲームをする人以外には何ら応用もできない内容で埋め尽くされた
http://anago.2ch.net/test/read.cgi/software/1405162342/
- 709 :名無しさん@お腹いっぱい。:2015/06/08(月) 19:27:51.76 ID:M0D6EJoR0.net
- あー
VNCは画像をJPGみたいに圧縮して送ってるから
まったくおなじ画像として認識するのは不可能だわ
PeekColorもしかり、同じ色にならない
UWSC本体を送るんじゃなくてexe化したパッケージを送ることも無理なの?
それも無理なら、
VNCでコントロールしてるってことは、ガチガチ社内ネットとかじゃなくて
ネットワークトラフィックは無視していいってことだろうから
(H)PrintScreen→(H)MSPAINT→(H)PNGで保存→(H→C)WEBDABとかFTPとかOneDrive経由で受け取る
→(C)画像を解析→(C)位置を確定→(C)マウスコマンドを送る
(H:スト側のローカルイベント C:クライアントUWSCマクロ側)
これで解決できると思う
画像のやり取りはあぷろだをかませるとそこでつっかえたりするから
OneDrive保存が最良だけどWin7以前でインスト不可ならコマンド用意しておいてFTPかな
クリップボード共有もOKな環境なら画像保存した状態からファイルの切り取りで奪っちゃってもいい
PrintScreenのクリップ状態はVNC側の環境によっては送れたり送れなかったり
- 710 :名無しさん@お腹いっぱい。:2015/06/08(月) 23:03:24.24 ID:WtapXdWk0.net
- 裏の話で仮想化しろみたいな結論出てる所聞きにくいんだが
火狐ではクリックも画像認識も裏で反応するんだがIEとクロームではクリックも画像認識も全く反応しないのって皆同じなのかな?
連打測定サイトとかフラッシュゲーとかやってみたんだがIEとクロームが反応しないもんで何とかならんもんかと困っている
id = GETID(GET_ACTIVE_WIN)
MOUSEORG(ID,2)
while true
btn(left,down,815,395)
btn(left,up,815,395)
wend
これでひと通り試してた(座標とか画像認識の時は変わるけども)
クロームは43.0.2357.81 m (64-bit)
IEはバージョン11.0.9600.17633 更新バージョン11.0.16 (32bit)
狐は38.0.5
狐よりクロームの方で裏が動いたらいいなぁと思ってる、仮想化は最終手段として
前は確か出来たような気がするんだがはっきり覚えてないんで意見下さい
- 711 :名無しさん@お腹いっぱい。:2015/06/08(月) 23:08:01.34 ID:WtapXdWk0.net
- ちょっと書き方悪かったので補足
裏マクロが反応しないっていうのは最前面に出していてもクリックしてくれないって意味で画面が隠れている状態でって意味ではないです
とりあえずマウスが取られなければいいからって事で
- 712 :名無しさん@お腹いっぱい。:2015/06/09(火) 01:42:53.34 ID:ilrPY7660.net
- どうせゲームの話なんだろ?
それなら、マクロ用にもう一台パソコン買うのが一番早い
パソコンは消耗品だが、1ゲームに課金することを思えば長持ちするし、
ゲームを選べば課金額以上の働きをする
- 713 :名無しさん@お腹いっぱい。:2015/06/09(火) 01:52:59.82 ID:6N+Eeckc0.net
- ゲームもあるけど毎日やってる事を自動化したら楽だなーと思ってやってみたんだよね
それでクロームが一番読み込みとかの速さ的にもいいかなーって思ったんだが、まぁ狐使うなり仮想使うなり裏諦めるなりするしかないか
もう1台用意するのが一番良いよね、何するにしてもサブあると便利だし
CPUの大幅な性能向上来たら買ってサブ組むかって考えてるからそれ待ちなんだが一向に進展せんな
- 714 :名無しさん@お腹いっぱい。:2015/06/09(火) 02:07:07.25 ID:SXM4fw8U0.net
- 自分も普段使いのFireFoxで何とかって思い
AACを駆使して指定範囲付近のエレメントを検索する関数とか
巡回をサポートする関数をクラス化してやりくりしてたけれど
IEにしたら直接エレメント操作をCOMで出来るからバカバカしくなったぞ
別に無理に普段使いのブラウザを使う必要って実は無いのよ
仮に起点となるアドレスが可変だとしても
其処だけFirefoxから貰えば良い話だしね
- 715 :名無しさん@お腹いっぱい。:2015/06/09(火) 06:57:30.63 ID:EvVw9qfR5
- うまく画像認識されなくて困ってるんですが、何かパソコンの設定的に原因が生じたりすることってありますか?他に何か考えられる原因があったら是非教えてください。
ブラウザは火狐、クロム、IE、Comodo Dragon、Coowon Browserを試しました結果全滅でした
認識させる画像の取り込み方も調べたとおりやったみたので間違ってはないと思います。
- 716 :名無しさん@お腹いっぱい。:2015/06/09(火) 07:57:11.38 ID:iqRZvXPr0.net
- CheckColorScope関数の事で教えて下さい。
↓にもある通り、UWSCでサポートしてる関数であるはずなのに、エラーが出ます。
ttp://anago.2ch.net/test/read.cgi/software/1425741537/
エラー内容:
関数 CheckColorScopeがありません
xxx行目:if CheckColorScope( 830, 523,"R", 181,5)
オプションも誤字も無いはずなのに。。。
ヘルプ見てみたところヒットする関数がないのでサポートしてないのかな・・・。
UWSCバージョンは5.1.1.0 フリー版です。
原因がお分かりの方、ご教示ください。
おねがいします。
- 717 :名無しさん@お腹いっぱい。:2015/06/09(火) 08:22:27.65 ID:OK+7I8vA8
- >>715
まず問題の切り分けを行って下さい
何を見て調べたか?
(ネット情報?どのページ?その情報が本当に正しいと証明できますか?)
画像認識されない、というのはどうやって判断しているのか?
(認識できていないつもりでも、認識されているのでは?)
Windows標準のペイントで画像を開き、それを認識させられるか?
(ウェブブラウザ固有のものなのか?どんなソフトでも発生するのか?)
あなたのソースコードが見られればもう少し具体的にアドバイスできるかもしれませんが
これだけの情報ではパソコンの設定が原因とは判断できません
- 718 :名無しさん@お腹いっぱい。:2015/06/09(火) 08:43:21.04 ID:c2dyIL9N0.net
- 誰かの自作関数なのでぐぐって拾ってきて下さい。
- 719 :名無しさん@お腹いっぱい。:2015/06/09(火) 10:13:45.35 ID:iqRZvXPr0.net
- >>718
まじかーあのFunctionはそういうことだったんだ。
ありがとうございます。探してきます
- 720 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:17:44.12 ID:QPOSPQ3s0.net
- >>711
そのページのソースのjs見たり
開発者ツール的なものを使って、クリックイベントの動作確認とかしたら?
クリックされたら、現在のマウス座標の場所にある要素に対して何か処理するのがあると
かなり難しいと思う
そもそもマウス移動せずや、アクティブにせずクリックとかするなんて
アプリ側は想定外のはずだから、
手段が用意されてないかもしれないよ
- 721 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:24:12.41 ID:yBfMnKXf0.net
- スキャンした文字をデジタル化するOCR的処理って
UWSCでも頑張れば理論上できるかな?
それとももっと適した言語があれば教えて下さい。
- 722 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:29:10.79 ID:7oF2vMx30.net
- GoogleにOCRあるからそれ使え
それでも満足できないなら頑張ってください
- 723 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:53:55.92 ID:HA8tJfl+0.net
- >>721
完全2色まで減色
↓
文字として機能する規定点のパターンマッチ
↓
文字判別
とすれば理論上可能だろうけど、ぱ(PA)とば(BA)の違いだって目視でも判断できないこともあるし
更に単語処理が必要だろう
文字判別→前後単語の洗い出し→辞書から単語検索→単語確定
それでもパンダとハンダの違いを認識するには文節処理も必要になる
普通にOCRの操作を自動化した方がはやげ
全文字・漢字分の規定点の作成とか絶対やりたくない
- 724 :618:2015/06/09(火) 13:18:40.23 ID:Duqu01jJs
- やはりどうしても、矢印キーでスクロール出来ません。
content="IE=8”を指定した場合だけ、矢印キーが効かなくなってしまいます。
困っています。
- 725 :名無しさん@お腹いっぱい。:2015/06/09(火) 13:53:54.65 ID:vRMQfWig0.net
- 有能な辞書があれば、理論上は、indexを引くだけ
- 726 :名無しさん@お腹いっぱい。:2015/06/09(火) 14:41:56.89 ID:SXM4fw8U0.net
- 少し前に調べた事だから今は違うかもしれないが
COMアクセス出来るフリーのOCRライブラリってのは多分無いからUWSC向きじゃない
後、フリーのOCRライブラリって日本語にはまともに対応していない
って感じだったかな
- 727 :名無しさん@お腹いっぱい。:2015/06/09(火) 16:32:28.45 ID:bTBbx7taC
- >>724
もう少し状況を具体的に書いたほうがレスが付きやすいかもしれません
>ほかの指定ならキーボードでスクロール出来るのですが
ほかの指定とは何なのか
>矢印キーでスクロール出来ません。
textarea内のキャレットなのかフォームのスクロールなのか
変更した時は動作していたのか
UWSCのVerを変えてみるとどうなるか
フォームのHTMLファイルの設定状況
ソースが出せるなら出してみる
などなど
- 728 :名無しさん@お腹いっぱい。:2015/06/09(火) 20:41:59.38 ID:gDDxKsKq0.net
- ifb chkimg("1.bmp")
num = 1
elseif chkimg("2.bmp")
num = 2
elseif chkimg("3.bmp")
num = 3
......
elseif chkimg("9.bmp")
num = 9
else
num = 0
endif
という具合のものを組みたいのですが、こういったことを表現する場合にはdimを使うと簡略できると見ました
しかしこのスレで前述されていることを見たり検索したりしてもどのようにすればいいのかわからなかったので、教えていただけないでしょうか
よろしくお願いします
- 729 :名無しさん@お腹いっぱい。:2015/06/09(火) 20:46:01.35 ID:aNsp9elz0.net
- 繰り返し文の間違えだろう
dimなんて必要ない
- 730 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:01:21.35 ID:/H/r4kw50.net
- num = 0
for inum = 1 to 9
ifb chkimg(inum + ".bmp") then
num = inum
break
endif
next
- 731 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:01:37.67 ID:gDDxKsKq0.net
- 申し訳ありません繰り返しと間違えていました
となりますと、>>728を簡略化するための何か別の方法はありませんでしょうか
- 732 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:03:36.87 ID:gDDxKsKq0.net
- >>730
ありがとうございます
dimやら繰り返しやらでごっちゃになっていました
- 733 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:04:16.20 ID:/H/r4kw50.net
- dim iname[] = "a", "bb", "ccc", "d", "ee", "fff", "g", "hh", "iii"
num = 0
for inum = 1 to 9
ifb chkimg(iname[inum-1] + ".bmp") then
num = inum
break
endif
next
- 734 :618:2015/06/09(火) 21:12:02.15 ID:aC4ZMC4d2
- >>727
ありがとうございます。
矢印キーでスクロール出来ないのはフォーム全体です。
スクロースバーのボックス(ノブ)をマウスで操作すれば動きますが、矢印キーは効きません。
ほかの指定とは、
http-equiv="content-type"
や
content="text/html”
や
content="IE=edge”
または全く記述無し、等です。
これらの場合には、矢印キーでのスクロールが可能です。
しかし
<meta http-equiv="X-UA-Compatible" content="IE=8”>
にしないと、やはりtextarea内の2行目以降が正しく表示されません。
これを指定した場合のみ、矢印キーでのスクロールが出来なくなってしまいます。
UWSCのバージョンは5.1.1、5.0.0、4.9cともに同様でした。
フォームのHTMLは、外部ファイルとしてUWCファイルと同じディレクトリに置いています。
obj = CREATEFORM("entry.html", “申込”, TRUE, FOM_MINIMIZE + FOM_MAXIMIZE)
で呼び出しています。
Windows XP SP3、IE8です。
この環境で正常に動作させる必要があり、試行錯誤しています。
よろしくお願いします。
- 735 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:10:34.26 ID:SXM4fw8U0.net
- 組み合わせと対象数にある程度柔軟性が欲しいならこんな感じかな
IF文をchkimgにしていないのは
DIM testArray[] = "1.bmp<#TAB>1", "2.bmp<#TAB>2", "3.bmp<#TAB>3"
num = getNumber(testArray)
Print num
function getNumber(checkArray[])
result = 0
For checkItem In checkArray
check = Split(checkItem, "<#TAB>")
If chkimg(check[0]) Then
result = Val(check[1])
Exit
EndIf
Next
fend
- 736 :名無しさん@お腹いっぱい。:2015/06/09(火) 22:16:19.70 ID:xBvHKv3T0.net
- そういうのは連想配列でやらね?
- 737 :名無しさん@お腹いっぱい。:2015/06/09(火) 22:38:22.54 ID:OK+7I8vA8
- >>734
○○が効かないとか??が正しく表示できないとか全部抽象的すぎるので
具体的にIE=edgeやらIE=8で作成したうまくいかない各パターンのentry.htmlと
それを動かすUWSCソースコードを提示したほうが早いと思う
他人に見せられないソースコードだとしたら
他人に見せられるレベルにまで整理して単純化しないことには
問題点を洗い出すのは難しいしね
- 738 :名無しさん@お腹いっぱい。:2015/06/09(火) 22:39:27.72 ID:G2ywoPsEr
- for i=0 to Opendir(GET_CUR_DIR, "*.bmp")-1 でいいんじゃないの?
- 739 :名無しさん@お腹いっぱい。:2015/06/09(火) 22:23:06.54 ID:SXM4fw8U0.net
- 完全否定はしないけれどその辺は此処のポリシーだよ
連想配列はメモリ配置的に勝手に助長化するから
連想配列のメインであるインデックス的なアクセスしないケースでなければ
個人的には採用しないなぁ
でも連想配列で実装しているコードを見ても兎や角言う気はない
- 740 :618:2015/06/10(水) 00:06:56.62 ID:YnIB6PNOa
- >>737
ありがとうございます。
ソースコードを整理しました。
// test.UWSここから //
obj = CREATEFORM("entry.html", "申込", TRUE, FOM_MINIMIZE + FOM_MAXIMIZE)
TIME_OUT = 10
tm = Gettime()
repeat
sleep(1)
ifb Gettime() - tm > TIME_OUT
break
endif
until (! obj.busy) and (obj.readyState=4)
Sleep(0.5)
- 741 :618:2015/06/10(水) 00:07:40.27 ID:YnIB6PNOa
- SETFORMDATA("あいうえお","test01")
SETFORMDATA("あいうえお","test02")
SETFORMDATA("あいうえお","test03")
SETFORMDATA("あいうえお","test04")
SETFORMDATA("あいうえお","test05")
SETFORMDATA("あいうえお","test06")
SETFORMDATA("あいうえお","test07")
SETFORMDATA("あいうえお","test08")
SETFORMDATA("あいうえお","test09")
SETFORMDATA("あいうえお","test10")
SETFORMDATA("あいうえお","test11")
SETFORMDATA("あいうえお","test12")
SETFORMDATA("あいうえお","test13")
SETFORMDATA("あいうえお","test14")
SETFORMDATA("あいうえお","test15")
SETFORMDATA("あいうえお","test16")
SETFORMDATA("あいうえお","test17")
SETFORMDATA("あいうえお","test18")
SETFORMDATA("あいうえお","test19")
SETFORMDATA("あいうえお","test20")
SETFORMDATA("あいうえお","test21")
SETFORMDATA("あいうえお","test22")
SETFORMDATA("あいうえお","test23")
SETFORMDATA("あいうえお","test24")
SETFORMDATA("あいうえお","test25")
SETFORMDATA("あいうえお","test26")
SETFORMDATA("あいうえお","test27")
SETFORMDATA("あいうえお","test28")
SETFORMDATA("あいうえお","test29")
SETFORMDATA("あいうえお<#CR>かきくけこ<#CR>さしすせそ","test30")
総レス数 1144
361 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200