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

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