■ このスレッドは過去ログ倉庫に格納されています
自動化ツールUWSC使いよ集まれ14 [転載禁止]©2ch.net
- 1 :名無しさん@お腹いっぱい。:2015/03/08(日) 00:18:57.40 ID:itdOhEn30
- 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
- 2 :名無しさん@お腹いっぱい。:2015/03/08(日) 10:57:43.76 ID:itdOhEn30
- Q.シェアウェア版で「L20が存在しません」「L22が存在しません」とエラーが出て一部機能が動作しない
A.割れシリアルを使った時に出る、ささやかな割れ対策
Q.購入したのに上記エラーが出る
A.ライセンスキーが正しいか確認(ベクターで購入した場合、登録するのは 伝票番号の xxxxxxxxx ではありません)
UWSCをアンインストール後、再インストールして正しい17桁のライセンスキーを入力してください。
●Pro版の追加機能
EXE化ツールが付属しています。(EXE化後は単体での実行が可能であり、ライセンスフリーにて配布できます)
IE(Web)用記録ツールが付属しています。(Web上の動作をUWSCのスクリプトとして記録する事ができます)
HTMLを利用した画面関数が使えます。
EXCELシート用関数が使えます。(OpenOffice.org/LibreOfficeの表計算(Calc)に対しても可)
デバッガが付属しています。
●質問したい方へ
「○○作れますか?」→ 可能か不可能かを聞いているのなら答えは「作れる」
「○○が作りたい」→ 自分が作れば?並大抵の事ならググれば似たようなスクリプトや知識が見つかる
「○○作って下さい」→ 依頼スレじゃありません。
過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。
備考:PRI NT文を利用してデバッグする。管理者権限で起動してみる。AEROを切る。fcuc.uwsを走らせてみる。
●スクリプトを晒す上での注意
他人が読みやすいようにインデントを付けるように。解らない人はググレ。
(タブインデントは使えないんだぜ 全角スペース等に 変換しておくべし)
言いたい事に関係無い部分は 〜○○の処理〜 や 処理A 等のようにし、
必要な部分を晒すようにする。
●他人の書いたスクリプトを安易に実行しないように。
ハードディスクをフォーマットされたりしても、自己責任。
- 3 : ◆evw/E7kww2 :2015/03/08(日) 13:36:01.33 ID:EbQAJigF0
- このスレに俺を恨んでる奴がいるっぽいけど
なんとなく理由が分かった。
昔、俺がこの↓スレを立てたからだろう。
ttp://anago.2ch.net/test/read.cgi/software/1126521460/
いや、本当にこんなスレを立てたか覚えてないけど
怪しいのを見つけたら怪しい怪しい言う癖があるから
多分、俺が立てたんじゃね?
- 4 : ◆evw/E7kww2 :2015/03/08(日) 13:40:11.87 ID:EbQAJigF0
- 山下が欲しいのはパクるため同じJane系のviewとxenoのソース
他は案外どうでもいい感じ
------------------------------------------------------------
この書き込みに反応があれば図星。
スルーなら外れ。
ttp://fox.2ch.net/test/read.cgi/poverty/1425736511/89-
ttp://fox.2ch.net/test/read.cgi/poverty/1425736511/234-
ttp://fox.2ch.net/test/read.cgi/poverty/1425736511/387- 👀
- 5 :名無しさん@お腹いっぱい。:2015/03/09(月) 03:18:02.19 ID:eBNM6Qn/0
- UWSCとPowerShellって何が違うの?
- 6 :名無しさん@お腹いっぱい。:2015/03/09(月) 22:21:50.64 ID:2/ojQ+3U0
- FUNCTION 関数名
FEND ← まだ分かる
PROCEDURE 関数名
FEND ← え?
〜ENDとEND〜を混在させたあたり開発当時の経緯とか聞いてみたい
- 7 :名無しさん@お腹いっぱい。:2015/03/10(火) 08:29:30.87 ID:EAdi39LF0
- END系は確かに気持ち悪い
どのブロックの終了かどうかなんて
インデントちゃんと付けてりゃ問題ないよな
forはnextでwhileはwendで〜って考える方が手間かかるわ
- 8 :名無しさん@お腹いっぱい。:2015/03/10(火) 10:26:22.34 ID:zqfIB0Ga0
- Unityアプリに対して
MOUSEORG(Hnd,2)
BTN(LEFT,CLICK,x,y,ms)
ってやるとマウスクリックの座標が指定値(x,y)じゃなくて現在のマウス位置(つまりデフォ値?)
になっちゃうんですけど、解決方法ご存知ありませんか
- 9 :名無しさん@お腹いっぱい。:2015/03/10(火) 10:48:43.93 ID:EAdi39LF0
- >>8
バックグラウンド処理は意図しない挙動することが多い
仮想立ててその中で処理させたらどうか
btn clickだとクリック速度が速過ぎて
クリック先のアプリが認識しない場合がある
downしてから少し間を開けてupした方が確実
- 10 : ◆evw/E7kww2 :2015/03/10(火) 11:24:24.19 ID:Zvi6jbGW0
- >>8
アプリ側でクリックイベントとは別にマウス位置を取得してる場合はそういう動作になる。
その場合はマウスを動かすしかない。
ところで、バックグラウンドではマウスカーソルは動かないけど、どうやってクリック座標を確認したの?
- 11 :名無しさん@お腹いっぱい。:2015/03/11(水) 03:39:14.61 ID:TpOr3Ryj0
- お二人ともレスありがとうございます
>>9
クリック速度について、別件ではありますが利用させて頂こうと思います
>>10
な、なるほどその可能性が非常に高い感じがします
別の方法を検討してみます
ご質問についてですが、テスト対象の画面を完全に覆う形で
別ウィンドウを被せてテストしていた際
たまたまアプリ領域上にマウスがあったために
あるボタンがバックグラウンドでクリックされ画面が推移していた事から気付いたものです
- 12 :名無しさん@お腹いっぱい。:2015/03/11(水) 19:25:11.98 ID:+rYcEFRE0
- 単発質問でごめんなさい
LeftClick(230,150,80,80)
左クリック(X座標,Y座標,待ち時間ms,**)
**は何を表しているんでしょうか?
- 13 :名無しさん@お腹いっぱい。:2015/03/11(水) 19:43:39.38 ID:Kv0GqNyV0
- LeftClick っていうUWSCのスクリプト関数はなかったきがする。
たぶん、CLICKを押している時間じゃないの。
- 14 :名無しさん@お腹いっぱい。:2015/03/11(水) 19:59:43.56 ID:+rYcEFRE0
- >>13
解決しました。ありがとうございます
関数じゃないとの言葉から改めて探したところ見つかりました!
Procedure LeftClick(X1,Y1,X2,Y2)の一文が!
それの内容を見たところ理解できました
- 15 :名無しさん@お腹いっぱい。:2015/03/12(木) 09:01:13.68 ID:cPx9pA420
- 基本的なことで申し訳ないんですが、
formsとelementsが何番目かどうかってどうやって判断すればいいんですか?
htmlソース見ても複雑なのが多くて…
- 16 :名無しさん@お腹いっぱい。:2015/03/12(木) 10:48:59.97 ID:uSEK81CY0
- パスワードを忘れてしまいました0000〜9999の中のどれかが該当するんですが
自分で総当たりするのではなくUWSCにやってもらおうと思いました。
どのようなスクリプトを組めばいいか教えてください。
具体的には下記の作業をやらせたいのです。
0000入力→エンターキー→バックスペースx4入力
↓
0001入力→エンターキー→バックスペースx4入力
↓
0002入力→エンターキー→バックスペースx4入力
・
・
・
9999入力→エンターキー
- 17 :名無しさん@お腹いっぱい。:2015/03/12(木) 11:37:14.37 ID:DyIbiY5i0
- >>16
ループさせてその処理を書くだけ
0詰め編集は必要かな
- 18 :名無しさん@お腹いっぱい。:2015/03/12(木) 11:46:11.90 ID:DyIbiY5i0
- >>15
よく分からんが、
ループで回して欲しい要素のidやnameやvalueの値を見ればいいのでは?
- 19 :名無しさん@お腹いっぱい。:2015/03/12(木) 11:48:38.58 ID:xGHFbvBc0
- よく分からんなら答えるなよカス
- 20 :名無しさん@お腹いっぱい。:2015/03/12(木) 11:51:03.47 ID:DyIbiY5i0
- >>19
煽るだけならレスすんなよクズ
- 21 :名無しさん@お腹いっぱい。:2015/03/12(木) 12:37:16.04 ID:QWbt8LCP0
- >>17
横からで悪いけど連番作るのはFor a = 1 to 100で簡単に思いつくけど
前の空きを0で埋める方法って具体的にどんな方法があるんだろう
現状必要としてないけど、知識として知っておきたい
- 22 :16:2015/03/12(木) 12:46:14.67 ID:uEkExkhE0
- 9999までforで代入するのはわかるけど、それをどうやって文字に変換するの?
sendstrのクリップボードに送りたい
- 23 :名無しさん@お腹いっぱい。:2015/03/12(木) 12:57:12.93 ID:2RVo/dHL0
- UWSCのみでやるなら
ゼロプレスは最大桁数-1の”0”(この場合は”0000”)とVAL()で文字列を数値に変換したのを連結する
POS()と連結後の長さを使えば良い
- 24 :名無しさん@お腹いっぱい。:2015/03/12(木) 13:13:51.32 ID:eDOJrmZ/0
- UWSCの構文網羅した入力補完機能付きエディタありませんかね?
Visual Studioに慣れてしまって、入力補完ないとサクサクコーティングできない
- 25 :名無しさん@お腹いっぱい。:2015/03/12(木) 13:18:35.81 ID:2RVo/dHL0
- 秀丸はヘルプの予約語からコピペして辞書作ったら出来るよ
コーディング向けエディタなら大抵出来ると思うが
- 26 :名無しさん@お腹いっぱい。:2015/03/12(木) 13:39:50.50 ID:uSEK81CY0
- >>16は諦めました
メモ帳に
0001
0002
0003
0004
0005
0006
(省略)
9998
9999
と自動で打ち込むにはどう書けばいいか教えてください。
- 27 :名無しさん@お腹いっぱい。:2015/03/12(木) 13:49:25.76 ID:MRuS/Qcf0
- >>26
Excelでセルの書式設定→表示形式を文字列にする
0000
0001
0002
と入力する
その3つのセルを選択して、9999まで引っ張る
メモ帳にコピペ
- 28 :名無しさん@お腹いっぱい。:2015/03/12(木) 13:58:30.94 ID:J8DmLdi70
- >>23
copy使ったほうが簡単な気も
- 29 :名無しさん@お腹いっぱい。:2015/03/12(木) 13:58:49.90 ID:cPx9pA420
- >>18
まあ製品目的じゃないわけだし、そういった総当り的なやり方でもいいね
- 30 :名無しさん@お腹いっぱい。:2015/03/12(木) 14:25:53.29 ID:Twlw2OwD0
- 数値→文字列変換なんてのはどの言語にもあるし、UWSC 文字列 関数でぐぐればすぐ分かるよ。
- 31 :名無しさん@お腹いっぱい。:2015/03/12(木) 14:48:17.44 ID:uSEK81CY0
- >>27
ありがとう。でも知りたいのはUWSUでやる方法なんです
- 32 :名無しさん@お腹いっぱい。:2015/03/12(木) 14:49:04.15 ID:2RnQOx5x0
- for 0 to 9を4つ重ねてひっつける方法が真っ先に浮かんだけど
ぐぐって出てきたformatとreplace使う方法のほうが良さそうだ
- 33 :名無しさん@お腹いっぱい。:2015/03/12(木) 14:54:24.36 ID:J8DmLdi70
- >>31
execとsendstr使えばいいけど、
遅いから一旦ファイルに書き出した方がいいと思うよ
- 34 :名無しさん@お腹いっぱい。:2015/03/12(木) 14:55:30.92 ID:srIDA4G60
- for i = 0 to 9999
number = replace(format(i, 4), " ", "0")
sendstr(0, number)
クリップボードに文字列が入っているので処理する
next
こんな感じではいかんの?
- 35 :名無しさん@お腹いっぱい。:2015/03/12(木) 15:11:43.96 ID:J8DmLdi70
- formatか
勉強になった
- 36 :名無しさん@お腹いっぱい。:2015/03/12(木) 16:31:15.31 ID:uSEK81CY0
- >>34
をコピペしたけど出来なかった。
- 37 :名無しさん@お腹いっぱい。:2015/03/12(木) 16:40:42.25 ID:srIDA4G60
- コピペだけじゃなくてちっとは自分で考えろや
クリップボードに入れる所まで作ってもらっといてまだできないとかお前はミジンコか?
- 38 :名無しさん@お腹いっぱい。:2015/03/12(木) 16:49:05.39 ID:s3+uw6570
- 仕様書いたら、誰かが完璧なコードに起こすのを待ってるんだろうな
- 39 :名無しさん@お腹いっぱい。:2015/03/12(木) 17:17:25.66 ID:ZJ/7B8lw0
- The クレクレ君
- 40 :名無しさん@お腹いっぱい。:2015/03/12(木) 17:19:12.36 ID:uSEK81CY0
- ミジンコですんません次はプラナリア目指します
ごめんなさい
- 41 :名無しさん@お腹いっぱい。:2015/03/12(木) 17:23:47.76 ID:Twlw2OwD0
- てっとりばやく動くものがほしければ、お金出してつくってもらえばいいんでない。
コードいじったりするつもりないなら
- 42 :名無しさん@お腹いっぱい。:2015/03/13(金) 05:31:41.02 ID:d1ZXmJXS0
- モバゲーのサークル等画像認証がある場合連投ツールはUWSCで作れますかね。1から勉強してみようと思っているのですが
- 43 :名無しさん@お腹いっぱい。:2015/03/13(金) 05:49:48.08 ID:SzHwFuiM0
- >>42
UWSC単独では無理
画像解析の勉強もすることになる、というかそっちの方のウェイトが大きい
- 44 :名無しさん@お腹いっぱい。:2015/03/13(金) 12:19:53.14 ID:bWuS9Pqc0
- 画像認証する理由がマクロ対策のためだからな
それが簡単に出来たら対策じゃないし
- 45 :名無しさん@お腹いっぱい。:2015/03/13(金) 14:03:28.27 ID:kEU/A8NO0
- >>42 >>43さんありがとうございます。毎回画像認証をかいくぐって連投してくる人がいるのですが
仕組みをよく理解されてるみたいです。画像認証についても勉強してみます。
- 46 :名無しさん@お腹いっぱい。:2015/03/13(金) 14:14:36.21 ID:Grt+Wagz0
- >>45
> 毎回画像認証をかいくぐって連投してくる人
何も画像認識をしているとは限らないと思いますが、
画像にしても弾く処理にしても、どっか甘いんじゃないですか?
2ちゃんねるだってAPI実装で
今日から過去の専ブラが使えなくなりましたが
みんなそれをかいくぐってアクセスしてるでしょ?
- 47 :名無しさん@お腹いっぱい。:2015/03/13(金) 14:18:43.29 ID:fXWUGn930
- CAPTCHA突破じゃなく連投制限にひっかかってCAPTCHA出てるだけじゃない?
モバゲーは知らんけども、同一IPからこ連投には荒らし対策としてCAPTCHA入れてくるところがある
それなら自動的に串刺すとかで対処してるんじゃないかな
よっぽど見やすいものでもない限りCAPTCHA突破は無理
- 48 :名無しさん@お腹いっぱい。:2015/03/13(金) 14:54:18.58 ID:iLROOU3y0
- 最近は人力解除サービスもあるけどね
- 49 :名無しさん@お腹いっぱい。:2015/03/13(金) 15:46:21.29 ID:n6HUnrPd0
- ウィンドウ操作のCTRLWINで最前面操作はありますが、最後面にしたい場合はどうしたらいいですか?
別の方法でもかまいません
- 50 :名無しさん@お腹いっぱい。:2015/03/13(金) 16:05:04.46 ID:bWuS9Pqc0
- >>49
getallwinで全てのウインドウ取得して
ループさせて、対象のウインドウ以外を一通り最前面にすれば一応できそう
でも非表示の変なウインドウまで出すとエライことになるはずだから
statusで座標、可視状態、アイコン状態?とかを見て
普通のウインドウであることを判定してからやる必要がありそう
- 51 :49:2015/03/13(金) 16:08:07.04 ID:dhQkIESf0
- うーん、getallwinは使ってみたんだけど使うたびにウィンドウIDの連番が変わるのと言っている通り変なウィンドウまで取得しちゃうし
getallwin(getid("firefox"))としてもfirefoxのウィンドウだけ取得するってのができなかったんだよね…
- 52 :名無しさん@お腹いっぱい。:2015/03/13(金) 16:16:10.16 ID:k9PzO4D60
- >>47さん そうなんですね。全くの素人で分からないのですが、youtubeに画像認証突破している同士がをさっき見つけたので見やすいものなんだとおもいます。
- 53 :名無しさん@お腹いっぱい。:2015/03/13(金) 16:22:01.41 ID:fXWUGn930
- 発展途上国では画像認証入力代行のアルバイトもあるってどっかで見たな
- 54 :名無しさん@お腹いっぱい。:2015/03/13(金) 16:26:41.95 ID:bWuS9Pqc0
- >>51
使うたびにと言うのはループの外で一度だけ呼べばいいと思うけど
何か問題あるん?
家帰ったらコード書いてみようかな
getallwin(id)は小ウインドウ取得みたいだから、親子関係になってないと取れないね
- 55 :名無しさん@お腹いっぱい。:2015/03/13(金) 16:33:35.20 ID:dhQkIESf0
- >>54
申し訳ないです…
使うたびに変わるのは問題ないんですが、取得したものの中からfirefoxのものだけ抽出するのがうまくいかずに…
親ウィンドウ子ウィンドウの関係が理解できなかったけど、タブのようなものかな?
- 56 :名無しさん@お腹いっぱい。:2015/03/13(金) 16:55:43.66 ID:M+E6GPZL0
- >>55
Status()でパスとかタイトルからFirefoxと認識するのでは不十分ってこと?
- 57 :名無しさん@お腹いっぱい。:2015/03/13(金) 17:10:01.60 ID:4oBlUJIb0
- 画像認証で画像が消えるまでその画像を1秒おきにクリックするという
スクリプト作りたいんだけど、どういうの使うかアドバイスくだされ
- 58 :名無しさん@お腹いっぱい。:2015/03/13(金) 17:14:41.38 ID:fXWUGn930
- さすがにそれはuwscの基本でしょ
chkimgのヘルプ見るだけでできると思う
- 59 :名無しさん@お腹いっぱい。:2015/03/13(金) 17:16:53.57 ID:PxmAUj3h0
- これって他の言語から呼び出して戻り値を渡すことってできる?
例えば、C#で作成したフォームアプリにUWSCに画像認識任せて、結果をC#に返す。みたいな。
UWSC単体ではGUIが表示できないので困ってます
- 60 :名無しさん@お腹いっぱい。:2015/03/13(金) 17:41:52.92 ID:bWuS9Pqc0
- >>59
exitexitで終了コードは返せる
- 61 :名無しさん@お腹いっぱい。:2015/03/13(金) 17:44:26.22 ID:IhBN30Jy0
- surface pro 3で、クリックで記録しているのてすが、ズレが生じています。
自分が動かした所の右下で記録した動作が行われてしまいます…
関数書く知識もないので原因が全く分かりません…
分かる方宜しくお願いいたします…!
- 62 :名無しさん@お腹いっぱい。:2015/03/13(金) 17:45:37.39 ID:b9N18eWc0
- どっから迷いこんできたんだこれ
- 63 :名無しさん@お腹いっぱい。:2015/03/13(金) 17:52:47.80 ID:KwP/0EEO0
- >>59
ぶっちゃけc#使えるならOpenCVSとか使った方が良いぞ?
- 64 :名無しさん@お腹いっぱい。:2015/03/13(金) 18:04:46.58 ID:Nd6+FKpZ0
- >>60
ありがとうございます。
>>63
OpenCVSですか、ちょっと調べてみます。
- 65 :名無しさん@お腹いっぱい。:2015/03/13(金) 18:51:22.90 ID:p6+WWHEG0
- >>61
>surface pro 3 での動作について NEW / shadow
>windows8.1です。
>
>uwscで記録は出来るのですが、記録した通りの動きをしてくれません。
>必ず少し右下からの動作になり、ズレが生じてしまいます。
>
>わかる方居りましたらよろしくお願いいたします。
>No.997 2015/03/13(Fri) 17:25:07
>☆ Re: surface pro 3 での動作について NEW / shadow
>すみません。
>ブラウザはクロームです。
これは酷い
エスパーにしか分からんわ
ブラウザの位置を左上に戻せよ
- 66 :54:2015/03/13(金) 20:31:01.18 ID:g+EPUdK80
- >>55
まず、下の処理を実行して全てのウィンドウ情報を出力してみる
for id in getAllWin()
print "■" + status(id, ST_TITLE)
print status(id, ST_CLASS)
print status(id, ST_VISIBLE)
next
出力した中で不要なIDっぽいのを判別できる条件を探す。その条件を一つずつ指定して、除外していく。
俺の環境の場合↓で行けたっぽい
for id in getAllWin()
// 非表示は処理しない
if !status(id, ST_VISIBLE) then continue
// タイトルなしも処理しない
if status(id, ST_TITLE) = "" then continue
// スタートボタン(タスクバー?)も処理しない
if status(id, ST_TITLE) = "スタート" then continue
// 何コレ
if status(id, ST_TITLE) = "Program Manager" then continue
// 対象のウィンドウは処理しない(今回はFireFox)
if status(id, ST_CLASS) = "MozillaWindowClass" then continue
print "■" + status(id, ST_TITLE)
print status(id, ST_CLASS)
print status(id, ST_VISIBLE)
next
対象のウィンドウ以外で、普通のウィンドウだけが残ったなら、最後に、printの行のところをctrlWin(id, ACTIVATE)にすればOK
全角空白でインデントしてるので、半角スペースやtabに置換してね
環境によるから2番目のコードは参考程度にして自分で作ったほうがいい
- 67 :49:2015/03/13(金) 20:34:35.74 ID:JhaWoMs/0
- >>66
ありがとうございます
調べながらやってみます
- 68 :名無しさん@お腹いっぱい。:2015/03/14(土) 02:35:32.08 ID:YAMOqMkr0
- >>49
Alt + Esc
- 69 :名無しさん@お腹いっぱい。:2015/03/14(土) 08:13:04.56 ID:WGKI2Nkm0
- ブラゲマクロのループ内にiniのデータ再読み込みを入れてるのに、ini書き換えても反映されないと思ったら
public宣言と同時に読み込みしてたから二重定義で二回目以降はスルーされてたんだな
エラー吐かないから全然気づかなかったわ
配列の二重定義だとエラー吐くのに
- 70 :名無しさん@お腹いっぱい。:2015/03/14(土) 08:38:53.68 ID:mkTRBuo80
- というかゲーム自動化マクロの話題はNGっていうのが暗黙の了解じゃなかったのか?
久しぶりに来たら、その類いの質問に覆われてるんだけど
- 71 :名無しさん@お腹いっぱい。:2015/03/14(土) 08:53:32.25 ID:5WiP7gL70
- あの4桁は銀行か携帯だろうしな
そろそろやばいと思うわ
- 72 :名無しさん@お腹いっぱい。:2015/03/14(土) 09:10:58.21 ID:oSk0qD2D0
- あんな程度で突破できるセキュリティならとっくに破られてるわw
つーかあーいうのは5回くらいミスると別のロックがかかるのが普通だしな
- 73 :名無しさん@お腹いっぱい。:2015/03/14(土) 09:20:37.66 ID:yF8bwDJf0
- >>70
いつのまにかそうなってるね
答える側が消えない限り以前のようになるのは無理だと思う
- 74 :49:2015/03/14(土) 09:30:10.62 ID:3A8gIjv70
- >>68
すみません助かりました
ありがとうございます
- 75 :名無しさん@お腹いっぱい。:2015/03/14(土) 10:18:14.28 ID:WGKI2Nkm0
- >>70
スレ見始めたのも使い始めたのも最近だから知らんかった
すまんな
ゲーム自動化の話題はNGってテンプレに入れといたほうがいいんじゃない?
- 76 :名無しさん@お腹いっぱい。:2015/03/14(土) 10:57:25.31 ID:BYWwaXUY0
- ここに書き込むのって、ほぼゲーム自動化マクロだから、どうせ禁止にしたって質問する奴は後を絶たない
OKでいいんじゃない?
- 77 :名無しさん@お腹いっぱい。:2015/03/14(土) 11:09:35.85 ID:x4MA2C8f0
- 目的で禁止するんじゃなくて、丸投げを禁止するとかで
- 78 :名無しさん@お腹いっぱい。:2015/03/14(土) 12:44:57.63 ID:EJC2N5U10
- 普通のアプリ操作する分にはコントロールが取得できるから
ぶっちゃけゲーム目的でもない限り画像比較なんて滅多に使わないよ
IE以外のブラウザを意地でも操作したいケースとJavaアプリを操作するケース位じゃないかな
- 79 :名無しさん@お腹いっぱい。:2015/03/14(土) 16:39:06.41 ID:vESWpEGX0
- 同じ症状で解決策があれば教えてください
参考サイト
http://uwsc.wpblog.jp/?page_id=13
IFB CHKIMG("sample1.bmp")
MSGBOX("画像認識に成功しました。)
ELSE
MSGBOX("画像認識に失敗しました。")
ENDIF
//この時点では画像認証成功
COUNT = CHKIMG("sample1.bmp",1,,,,,-1)
MSGBOX(COUNT)
IFB COUNT > 0
MSGBOX("画像認識に成功しました。")
ELSE
MSGBOX("画像認識に失敗しました。")
ENDIF
//COUNT = CHKIMG("sample1.bmp",1,,,,,-1)この行で
//「CHKIMG: Unknown error」が出てしまいます。
//念のため次の行でCOUNTを出力するとやはり0で
//記述が間違っていますでしょうか
- 80 :名無しさん@お腹いっぱい。:2015/03/14(土) 16:48:09.18 ID:vESWpEGX0
- chkimgの引数をかえて解決できそうです失礼いたしました。
- 81 :名無しさん@お腹いっぱい。:2015/03/14(土) 16:58:10.03 ID:WGKI2Nkm0
- ヽ(・ω・)/ズコー
- 82 :名無しさん@お腹いっぱい。:2015/03/15(日) 05:42:44.66 ID:hoogL2Uj0
- 【net】今日も元気にスクリプト水増し
ttp://next2ch・net/test/read.cgi/poverty/1426346131/
UWSCで投稿スクリプトを作って200レスx2,3日やったら規制食らったんだけど
1000件以上書き込みしてる連中は規制されないのかね?
API必須になったから規制しやすいと思うんだけどね。
- 83 :名無しさん@お腹いっぱい。:2015/03/16(月) 00:40:08.18 ID:DlzN5Tfx0
- msvcrt.dllからmemcmpを利用して配列の比較を行いたいと思ってます。
UWSCでの記述方法がわかりません。
以下のように記述すると等しくない配列の場合でも戻り値が0になります。
DEF_DLL memcmp(var int[],var int[],int):int:msvcrt.dll
n = 8
DIM y01[] = 0, 1, 0, 0, 0, 0, 0, 0, 1
DIM x01[] = 0, 1, 0, 0, 0, 0, 0, 0, 1
DIM x02[] = 0, 1, 1, 0, 0, 0, 0, 0, 1
IF memcmp(y01, x02, n) = 0
PRINT "TRUE"
ELSE
PRINT "FALSE"
ENDIF
- 84 :名無しさん@お腹いっぱい。:2015/03/16(月) 00:43:14.47 ID:DlzN5Tfx0
- C言語なら以下サンプルのように記述すれば動作するようです。
#define N 8
int main(void) {
int x1[] = {0, 1, 2, 3, 4, 5, 6, 7};
int x2[] = {0, 1, 2, 3, 4, 5, 6, 7};
/* x1 と x2 を比較 */
if ( memcmp(x1, x2, sizeof(int) * N) == 0 ) {
printf("x1とx2は同じ要素を持つ配列です.\n");
} else {
printf("x1とx2は異なる要素を持つ配列です.\n");
}
return EXIT_SUCCESS;
}
比較したい配列の内容はサンプルと同じ数字1文字になります
- 85 :名無しさん@お腹いっぱい。:2015/03/16(月) 01:21:25.94 ID:WrVIpTH30
- Cだと sizeof(int) * N なんだから n*4 とかにするんじゃないの?
UWSCのintが32bit長かどうかは知らないけど
- 86 :名無しさん@お腹いっぱい。:2015/03/16(月) 01:56:19.65 ID:UdmG8GDz0
- 動かして見たけどn=length(y01)*4が正しそうだね
- 87 :名無しさん@お腹いっぱい。:2015/03/16(月) 05:23:07.52 ID:2C8i7Z6P0
- WEBなどから取り込んだテキストを,等で区切って文字列を配列に格納したいのですが、そういった命令文はありますか?あと、その場合、配列の総数がわからないのですが、あらかじめ多めに用意しておくものなのでしょうか?
- 88 :名無しさん@お腹いっぱい。:2015/03/16(月) 07:32:26.75 ID:UdmG8GDz0
- >>87
カンマ区切りを配列にするのはsplit
- 89 :名無しさん@お腹いっぱい。:2015/03/16(月) 07:41:51.44 ID:NlIIv4/A0
- 配列の総数はsizeofで求めれるでしょ
はい終了
- 90 :名無しさん@お腹いっぱい。:2015/03/16(月) 09:40:46.71 ID:PlEJfnTV0
- >>83
memcmpなんか使っちゃダメ
UWSCでは配列のアドレスが連続であることまで保証していないから
同じサイズ、同じ数字同士の比較であっても一致判定されるとは限らないよ
そもそも型サイズすら保証されてないから意味がない
- 91 :名無しさん@お腹いっぱい。:2015/03/16(月) 10:19:30.77 ID:Wof3gerZ0
- >>90
> UWSCでは配列のアドレスが連続であることまで保証していないから
dll呼び出しで渡した時点で連続になる
> そもそも型サイズすら保証されてないから意味がない
ドキュメントにあるがサイズは決まってる
※int=long= bool(4byte)、dword=uint=hwnd、 char=boolean(1byte)
- 92 :名無しさん@お腹いっぱい。:2015/03/16(月) 14:14:26.06 ID:j9PZCEg20
- >>87
ワイPerl使い
UWSCの配列には不評
これを常に持ち歩く
ttp://heppoko.fam.cx/UWSざんがい/Array.uws.txt
- 93 :名無しさん@お腹いっぱい。:2015/03/16(月) 17:36:09.87 ID:2C8i7Z6P0
- >>92
ありがとうございます。
スマホでぱっとみた感じ、キューとかも実装してるんですかね。
帰ったら詳しくみてみます。
- 94 :名無しさん@お腹いっぱい。:2015/03/16(月) 19:31:01.71 ID:tKWF7XPV0
- >>92
>Function Push(var PAR[], Val)
> DIM Siz = ReSize(PAR) + 1
>
> ReSize(PAR, Siz)
> PAR[Siz] = Val
>
> Result = Val
>FEnd
おいおい
ふざけてんのか?
- 95 :名無しさん@お腹いっぱい。:2015/03/16(月) 21:12:06.58 ID:xJMP86aK0
- 茶化すだけだと見っともないよ
- 96 :名無しさん@お腹いっぱい。:2015/03/16(月) 21:22:23.98 ID:KRGYyVXs0
- ん?
Rubyだと配列を引数で渡しても参照元のオブジェクトが同一だから破壊的に変更すればメソッドの中と外の両方に影響するけど
UWSCはオブジェクト指向じゃないからそんなことできないよな?
- 97 :名無しさん@お腹いっぱい。:2015/03/16(月) 21:42:12.49 ID:xJMP86aK0
- >>96
それは関数の引数にVerつけて参照引数にすればできるよ
- 98 :名無しさん@お腹いっぱい。:2015/03/16(月) 22:06:12.60 ID:KRGYyVXs0
- >>97
まじで?
UWSCの配列使いづらすぎて敬遠してたけど今度自作関数作って使ってみようかな
- 99 :名無しさん@お腹いっぱい。:2015/03/17(火) 00:56:03.25 ID:G6kIl/aB0
- ふざけるも何もPerlの挙動と一緒だろ
何がおかしいのかわからん
- 100 :名無しさん@お腹いっぱい。:2015/03/17(火) 01:09:24.08 ID:V1uFplEC0
- UWSCでは関数名に代入することで戻り値になるのね
だから最終行の Result への代入では戻り値に成らない
でも引数は参照渡しだかえら呼び出し元はソッチを使っている筈
要するに FUNCTION である必要はなくて PROCEDURE で良い挙動なのです
でも個人的には動作しているならとりあえずはそれでイイんじゃない?ってスタンス
おいおい勉強していけば良いのです
- 101 :名無しさん@お腹いっぱい。:2015/03/17(火) 06:49:13.32 ID:trvcbMmd0
- perlはやったことないけどググってみたらpushの戻り値は値追加後の配列の要素数って書いてるけど
rubyでも戻り値はselfだから追加した要素が戻り値なのはどこの仕様なんだ?
>>100もfunctionにresultが必要ないとか言ってるし意味わからん
仕様が変わったのかと思って>>100の言うとおり関数と同じ名前の変数に値を代入してfunctionを抜けたらやっぱり「resultがない」エラー出たし
急に知ったかおじさん増えすぎじゃね?
- 102 :名無しさん@お腹いっぱい。:2015/03/17(火) 08:21:27.03 ID:HJBxL4o70
- pushは押し込むって意味なんだから
それ以外の意味の処理があっても使わないわ
可読性が落ちる
- 103 :名無しさん@お腹いっぱい。:2015/03/17(火) 08:26:46.64 ID:IrmOB+4O0
- 関数名に代入すると戻り値?VB系とUWSCの区別が出来てないだけだろ
「FUNCTION である必要はなくて PROCEDURE で良い挙動」だけは賛成
配列サイズを戻すとかなら理解できるが
引数で渡されたものをそのまま戻り値に設定とかPerlって頭おかしいの?
だいたい配列サイズ取得にresizeを使ってる時点でウンコード
はやく消すべき
- 104 :名無しさん@お腹いっぱい。:2015/03/17(火) 09:24:02.94 ID:bEbY/JTw0
- UWSCのヘルプより
// Function - Fend 関数(戻り値あり)
FUNCTION関数名( 引数, Var 引数, 引数[], Var 引数[][], 引数=定数, .... )
処理
RESULT = 戻り値 // Result に戻り値を入れる
FEND
(例)
// 関数定義
function 階乗計算(値)
ifb 値 = 0 then
Result = 1
Exit
endif
Result =値 *階乗計算(値-1) // このように再帰計算もできるよ
fend
- 105 :名無しさん@お腹いっぱい。:2015/03/17(火) 13:02:08.56 ID:LvEKUW+E0
- 貼った意味がわからん
- 106 :名無しさん@お腹いっぱい。:2015/03/17(火) 16:33:33.21 ID:oYHC9Epn0
- youtubeでリストを倍速で見たい
3〜10分の情報系の動画をまとめて見る際に通常は1.5倍速で見てる
倍速を毎回押すの面倒
ggr→UWSC→UWSCで倍速は出来るが毎回(リストの次動画に変わる事に)押さなくちゃいけん
→ifとかでブラウザ変わったらとか?→ない→積んだ
どうにかできますか?
プログラムには特に興味はありません
全く素人ですがggって目的を達成できるなら素人なりの事はしようと思ってます
レスは夜になると思いますがよろしくおなしゃす
- 107 :名無しさん@お腹いっぱい。:2015/03/18(水) 13:56:12.05 ID:WtkQEVNZ0
- YouTubeAPIを使って再生リストの動画を全部1.5倍速で再生するプレイヤーをJavaScriptとHTMLで書いて、実行すればいいよ。
- 108 :名無しさん@お腹いっぱい。:2015/03/18(水) 15:52:33.19 ID:Dr6MH4qF0
- EXE化したスクリプトって分解できない?
- 109 :名無しさん@お腹いっぱい。:2015/03/18(水) 17:36:57.16 ID:F7+nEtwv0
- >>107
ありがとうございます
少し調べてみましたが、自分の現時点での能力・知識では
時間がかかりそうなので今回は辞めときます
- 110 :名無しさん@お腹いっぱい。:2015/03/18(水) 22:46:05.79 ID:NqSwYxol0
- >>106
リストってことは、最初から見る動画は決まってるんだから、事前にローカルにダウンロードしとけば?
- 111 :名無しさん@お腹いっぱい。:2015/03/24(火) 19:46:39.60 ID:0csxS8hZ0
- プロセスのメモリアドレスを直接指定し、値の変化によって条件分岐させたいんですが
ヘルプを読んでも見当たりません
分かる人いましたら教えてください
- 112 :名無しさん@お腹いっぱい。:2015/03/24(火) 20:00:31.60 ID:0csxS8hZ0
- >>111
自己解決したので取り下げます
- 113 :名無しさん@お腹いっぱい。:2015/03/24(火) 21:33:05.04 ID:ubWEHTBe0
- >>91
> >>90
> > UWSCでは配列のアドレスが連続であることまで保証していないから
> dll呼び出しで渡した時点で連続になる
> > そもそも型サイズすら保証されてないから意味がない
> ドキュメントにあるがサイズは決まってる
> ※int=long= bool(4byte)、dword=uint=hwnd、 char=boolean(1byte)
少なくともHELPには載ってない。
実際のところ作者がC++とかに準拠して作ってるために
結果的にその通りになっているのかもしれないが、
だとしても、作者がHELPに「載せてない」
ということは、作者がその挙動を保証しない、ということ。
- 114 :名無しさん@お腹いっぱい。:2015/03/24(火) 21:43:20.01 ID:VG1i25kl0
- >>113
Helpの「DLL仕様定義」に書いてあるよ
- 115 :名無しさん@お腹いっぱい。:2015/03/24(火) 22:08:48.85 ID:ubWEHTBe0
- くっそまた罠にかかったわ
どうせ「dll呼び出しで渡した時点で連続になる」もソースはあるが
俺みたいのが罠にかかったレスするようにソース示さんのだろ…
<DLL 使用定義>
// DLL(API等)の関数を使用する事ができるようになります (64bitのDLLは呼び出せません)
DEF_DLL 関数名(型, 型, ...): 戻り型: DLL名
型: int、long、bool、uint、hwnd、string、Wstring、float、double、word、dword、byte、char、pchar、Wchar、pWchar、boolean、longlong、Extended、SafeArray
参照引数(値変更あり)の場合は Var 宣言を付ける 関数名( var double, var int )
構造体:型を { } にて展開して書く 関数名( double, {int, int, int} )
配列の場合は型に [] を付ける 関数名( double[], int[] )
※int=long= bool(4byte)、dword=uint=hwnd、 char=boolean(1byte)
ヌルポインタを渡す時は NULL定数を使用してください
- 116 :名無しさん@お腹いっぱい。:2015/03/24(火) 22:25:07.26 ID:SkbizcxB0
- 特に調べずにレスるけれど
そのHELPの説明文でDLLに配列を渡すケースの例示をしている時点で
対応している(少なくとも渡す時点で並べ替えている)と認識すべきでは?
- 117 :名無しさん@お腹いっぱい。:2015/03/24(火) 23:24:02.37 ID:+Gkl469c0
- ポインタのポインタを渡す必要のあるDLLの場合は
どう呼び出したらいいのこれ?
- 118 :名無しさん@お腹いっぱい。:2015/03/25(水) 00:34:52.49 ID:oRqHVS3u0
- 初心者です。
初めて手動で組んだのですが動きません・・
監視対象がアクティブになっている時に、
右クリックを押しているかの判断をして、右クリックが押されている間はメッセージを表示しながら左クリックを押し続ける。右クリックが離されたらメッセージ表示と左クリックをやめる。
といった内容で作ったつもりなのですがどこが悪いのでしょうか?
//ソース
If GETID(GET_ACTIVE_WIN) = GETID("hoge","hogehoge")
if (Light, CLICK)
While True
printf("右クリックを離すまで、左クリックを押し続けます");
BTN(LEFT, CLICK)
ExitExitExit
endif
- 119 :名無しさん@お腹いっぱい。:2015/03/25(水) 02:02:25.74 ID:jIUaDhvR0
- なんて高度な釣りなんだ・・・
- 120 :名無しさん@お腹いっぱい。:2015/03/25(水) 02:31:24.70 ID:XEMtgflI0
- win8でCCleanerがアクティブウィンドウになってるとuwscが動かない
セキュリティ的な何かが働いてるの?
- 121 :名無しさん@お腹いっぱい。:2015/03/25(水) 10:50:01.93 ID:oRqHVS3u0
- >>119
釣りじゃないプログラムとか一切したことないからそう見えるのかもしれないけれど・・
右クリックを離すまで、左クリックを押し続けてほしいのに、離した後もクリックが解除されません
助けてください
//ソース一部間違ってたので直しました
If GETID(GET_ACTIVE_WIN) = GETID("hoge","hogehoge")
if (Light, CLICK)
While True
printf("右クリックを離すまで、左クリックを押し続けます");
BTN(LEFT, DOWN)
Else
BTN(LEFT,UP)
printf("右クリックを離したので、クリックは解除されました");
ExitExitExit
endif
endif
- 122 :名無しさん@お腹いっぱい。:2015/03/25(水) 10:52:48.25 ID:cHsBSJbN0
- 画面の一部分だけ認証したい場合はどうすればいい?
画面全体から指定画像を探すより指定画像がある位置が分かってるなら画面の一部分の範囲だけを
認証させたほうが早いと思うんだけど
- 123 :名無しさん@お腹いっぱい。:2015/03/25(水) 11:27:53.42 ID:NZF9GBii0
- >>122
helpより抜粋
// 指定画像が画面上にあるかチェック、あればその情報を返す
戻値 = CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )
引数
x1, y1, x2, y2: サーチ範囲
戻値
有ればTRUE、無ければFALSE
TRUE の場合は見つかった座標を特殊変数 G_IMG_X、 G_IMG_Y に格納
- 124 :名無しさん@お腹いっぱい。:2015/03/25(水) 11:37:57.45 ID:cHsBSJbN0
- >>123
それは既に見たんだけどx1 y1 x2 y2 番号 色幅の部分がいまいち分からない
x1 y1には指定画像の座標入れるとしてx2 y2にはなにいれればいいんだ
あとは番号 色幅
- 125 :名無しさん@お腹いっぱい。:2015/03/25(水) 11:53:24.81 ID:NZF9GBii0
- CHKIMG( 画像名
の画像をペイントで開いて拡大してピクセルを数える
のが面倒だったら
たとえば、1024x1024→512x512→256x256みたいに小さくして試してみる
のもできないようだったら諦メロン
>あとは番号 色幅
う〜ん、簡単なことすぎて説明が難しい
なにも指定しなくても、つまり
CHKIMG(a.bmp, ,x1, y1, x2, y2, , )
で動くことがあるけど、動かなかったら諦メロン
- 126 :名無しさん@お腹いっぱい。:2015/03/25(水) 16:09:15.57 ID:3cfucZBw0
- >>122
UWSCのヘルプ見て直感的に分からない様だと
センスが無いと思ってあきらめたほうが良いかもしれんな
CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )
| | | | | | | ↓
| | | | 100%同じ画像〜大体そんな感じの色
| | | | と言うように曖昧性を持たせられる
| | | | 画像と対象の色素数が違う場合は重要
| | | | | | ↓
| |検索範囲に同じ画像が複数ある時、左上から数えた番号
| | | | └┬┘
| | | | ↓
| | | | 開始地点からのX Y距離
| | | | 要するに画像サイズ
| | | | 終了地点の座標はX1+X2、Y1+Y2
| | └┬┘
| | ↓
| ↓ 開始地点のX Y座標
| 認識させたい対象が別の映像の上にのっかっているとき
| (例えばデスクトップの壁紙の上にあるアイコンを見つけたいとき)
| 背面が単色の中央に認識対象がある画像を作り、その単色を指定
↓ 白でも黒でも緑でも何でもいいが画像ファイるに合わせる事
画像ファイル名を指定
- 127 :名無しさん@お腹いっぱい。:2015/03/25(水) 16:30:06.28 ID:ClTC/D2u0
- ヘルプが超不親切でも、自分で動かしてみたら分かることなんだから、
聞く前にやれと
- 128 :名無しさん@お腹いっぱい。:2015/03/25(水) 17:32:39.84 ID:3cfucZBw0
- >>121
Fukidasi("何かウインドウを選択")
While Status(GETID(GET_ACTIVE_WIN), ST_Active); WEnd
Dim Flag = 1
Dim Msg = Status(GETID(GET_ACTIVE_WIN), ST_Title)+":を選択中"
Dim WinID = GETID(GET_ACTIVE_WIN)
Fukidasi(Msg)
While Status(WinID, ST_Active)
Select Flag
Case 1; Ifb GetKeyState(2)
Btn(Left, Down)
Fukidasi(Msg+"<#CR>右クリックが押されています")
Flag = 2
EndIf
Case 2; If GetKeyState(2) = False
Btn(Left, Up)
Fukidasi(Msg+"<#CR>右クリックが離されました")
Flag = 1
EndIf
SelEnd
WEnd
Fukidasi(Msg+"<#CR>ウインドウがアクティブでなくなりました");Sleep(1)
- 129 :名無しさん@お腹いっぱい。:2015/03/25(水) 18:09:42.58 ID:FLBnQPHw0
- 今まで勘違いしてたわ
x2/y2って座標じゃなくてデルタ分なのかよ
>SAVEIMG( [画像名, ID, x, y, 幅, 高さ,
ならこういう感じで書いてくれたほうが判りやすいのに・・・
- 130 :名無しさん@お腹いっぱい。:2015/03/25(水) 18:44:09.93 ID:0L3rdstQ0
- まじかよ
それなら普通 x, y, width, height って書くんじゃないのかw
- 131 :名無しさん@お腹いっぱい。:2015/03/25(水) 22:24:24.61 ID:5lotzBbd0
- >>128ありがとうございます
参考にして電卓の7キー監視コード書いたのですがクリック関係の処理が思うように動作しません・・
すみませんがもう一度見てもらえないでしょうか・・
電卓を監視して電卓の7キーが#ffa500(オレンジ色)になった時に、
右クリックを押していたのなら、右クリックを離すまで、左クリックを押しっぱなしにする。
ただし、7キーが#fffafa(白色)に変わったのなら、右クリックを離していなくても左クリックを解除する。
ややこしいですが、まとめるとこんな感じです。
電卓7キーの色がオレンジ→その時、右クリックを押していたのなら、左クリックを押しっぱなしにする。
↑の左クリックが解除されるのは、右クリックを離した時。7キーの色が#fffafaになった時。
//ソース 電卓監視プログラム
Dim Flag = 1
While True //監視ループのため追加。
If GETID(GET_ACTIVE_WIN) = GETID("calc","calc") Then
If PeekColor(392, 79) = #ffa500 then
Select Flag
Case 1; Ifb GetKeyState(2)
Btn(Left, Down)
Fukidasi(Msg+"<#CR>電卓の色を元に戻すか右クリックを離すまで、左クリックが続行されます")
Flag = 2
EndIf
If PeekColor(392, 79) = #fffafa then
Case 2; If GetKeyState(2) = False
Btn(Left, Up)
Fukidasi(Msg+"<#CR>色が元に戻ったので、左クリックを解除しました")
Flag = 1
EndIf
Case 3; If GetKeyState(2) = False
Btn(Left, Up)
Fukidasi(Msg+"<#CR>右クリックが離されたので、左クリックを解除しました)
Flag = 3
EndIf
WEnd //アクティブでなくなっても終了させない。
- 132 :名無しさん@お腹いっぱい。:2015/03/26(木) 06:31:07.23 ID:3d3GQGmu0
- >>129
いや、座標じゃないの
7x8の画像でテストして59,220,10,10で画面に散らばってる画像に3ヒットしてきたし
- 133 :名無しさん@お腹いっぱい。:2015/03/26(木) 10:55:39.64 ID:WxPb2UPl0
- >>131
ttp://imgur.com/Fx2QWIf
- 134 :名無しさん@お腹いっぱい。:2015/03/26(木) 19:00:35.51 ID:3vXgCBKo0
- >>133
すみません。画像見れない環境なので内容が分かりません・・・
- 135 :名無しさん@お腹いっぱい。:2015/03/26(木) 19:13:29.61 ID:gtlCQqye0
- >>131
http://i.imgur.com/1iUqKm0.jpg
- 136 :名無しさん@お腹いっぱい。:2015/03/26(木) 19:20:46.41 ID:qEmTKwNj0
- 質問丸投げ系に一度答えてしまうと
こうして何度も似たようなコードを貼られてしまう
もし今の質問が解決しても今度は「電卓では動くけど○○では動かない」
と言い始めてまた質問を繰り返すだろう
簡単に答えてしまうことは誰の得にもならない
- 137 :名無しさん@お腹いっぱい。:2015/03/26(木) 19:28:17.80 ID:XjewbGLC0
- 考える気がない質問については同意
後は非アクティブでマウス(ユニークな資源)を使いたい系の質問は仮想環境組めとしか答え様がない
- 138 :名無しさん@お腹いっぱい。:2015/03/26(木) 19:40:58.28 ID:GF0ghmk90
- ○○はどうやればいいんでしょうか?(訳:スクリプト組んでください)
- 139 :名無しさん@お腹いっぱい。:2015/03/26(木) 20:00:15.14 ID:yo+FEPo60
- UWSCが動くけど画像が見れない環境ってどんなのだ
- 140 :名無しさん@お腹いっぱい。:2015/03/26(木) 20:58:44.15 ID:3vXgCBKo0
- >>136
丸投げじゃないです。自分なりに考えて書きました・・
今回は ifbに PeekColorを使ってますが ここは何でもいいんです
要は>>128のコードで、右クリックが押されている時をトリガーにしていましたが、
ここに更に分岐を組み込み、二つの条件を同時に満たした時に左クリックを実行させ、
同様に>>128では左クリックの解除条件が一つでしたが、解除条件を二つに増やし
そのどちらかの条件が満たされていた場合に、クリックを解除する
というコードのつもりで書いたのが>>131です
これ以上はもう追加のコードを書いて聞いたりしないので、助けてください。
お願いします。
>>137
非アクティブ時にマウス使う必要はありません
非アクティブ時にも自身を終了させずに、アクティブになったら監視を再開するように書き直しただけです
- 141 :名無しさん@お腹いっぱい。:2015/03/26(木) 21:25:01.58 ID:XjewbGLC0
- やりたいことを整理できているならコード化できる筈
最初はどんな泥臭いコードでもイイんですよ
やりたいことが動けば
だから貴方は考える気がない人か釣り人です
- 142 :名無しさん@お腹いっぱい。:2015/03/26(木) 22:19:31.90 ID:3vXgCBKo0
- >>141
はい。コード化は>>131でしました
だけどやりたい事が動かないから聞いてるんです・・
最初にも言ったけど釣りじゃないです
プログラムはもちろんスクリプトも書いたことなかったので、
なんで目的の動作しないのか分からないんです
- 143 :名無しさん@お腹いっぱい。:2015/03/26(木) 22:26:42.64 ID:XjewbGLC0
- これだけ時間がたっても画像が見れない環境に居続けているってのが先ず信用出来ないから釣り確定です
明日ID変わってから別のネタでどうぞ
- 144 :名無しさん@お腹いっぱい。:2015/03/26(木) 22:54:38.20 ID:3vXgCBKo0
- >>143
すみません。ウィルス感染したことがあって画像は見れないです
そもそも画像にする意味が分かりません
ここに書いてくれればいいと思います
- 145 :名無しさん@お腹いっぱい。:2015/03/26(木) 22:59:42.32 ID:gtlCQqye0
- (´・ω・`)・ω・`) キャー
/ つ⊂ \ ウイルス怖いー
- 146 :名無しさん@お腹いっぱい。:2015/03/26(木) 23:18:53.51 ID:BAoGSiVG0
- (´・ω・`)・ω・`) キャー
/ つ⊂ \ ウイルス怖いー
- 147 :名無しさん@お腹いっぱい。:2015/03/26(木) 23:25:10.91 ID:WxPb2UPl0
- (´・ω・`)
もうID:3vXgCBKo0は助けない
- 148 :名無しさん@お腹いっぱい。:2015/03/26(木) 23:29:40.49 ID:XjewbGLC0
- >>145-147
(´・ω・`)出荷よー
- 149 :名無しさん@お腹いっぱい。:2015/03/26(木) 23:32:34.76 ID:WxPb2UPl0
- _,..-――-:..、 ⌒⌒
/.:;;;;;;;;;;;;;;;;;;;;;::.\ ^^
/ .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ ドナドナドーナードーナー
__AーA
_,ィ´▼⊂(´・ω・`)⊃
.... .. .. ' {●.▲ヽ(_⌒) .. ... ........ ... .. .... ..
:::: :: .,' i――――――i ':, :: :::: :::: :::::::: ::::
;; ;; :," |______| `:, :;;; ;;;;;; ;;; ;;;;
w ,.' i,,i ;;;;;;;;;;;;;;;;;;;; i,,i;;:.. ゙v w゙゙w゙w゙゙w
",i ,;'' :::::::::::::::::::::::';,::::::... ヾ、 w vw w
./ ,;;:´ :::::::::::::::::::::':;;,::::::::.. i,'、 ww w
- 150 :名無しさん@お腹いっぱい。:2015/03/27(金) 00:26:08.98 ID:PrwW+KZP0
- >>147
すみません・・画像見ました。コードに解説つけて説明してくれたんですね
画像で感染するウィルス踏んでOSインストールし直す目にあってから
画像踏めなくなったんです許してください
しかし専門用語が多すぎて説明の意味がほとんど分かりませんでした
自分で調べながら試行錯誤してみますが無理だったらまた力になってください
あなただけが頼りです
- 151 :名無しさん@お腹いっぱい。:2015/03/27(金) 00:27:33.17 ID:qyMRpl9y0
- あなただけが頼りですってwww
まずはその前に単語の意味調べてこいよwwwww
- 152 :名無しさん@お腹いっぱい。:2015/03/27(金) 00:33:22.48 ID:hEw2Ht7w0
- 例えばここで間違ったコードを提供するとするやん?
すると意味がほとんど分からなかったはずなのに、鬼の首を取ったかのように指摘してくるぜ、きっとw
- 153 :名無しさん@お腹いっぱい。:2015/03/27(金) 01:49:31.00 ID:pxfAJWsn0
- って思うじゃろ?
さりげなく間違えとるんじゃが多分どこかすらわからんだろうなあ
- 154 :131:2015/03/27(金) 02:40:41.29 ID:PrwW+KZP0
- 指摘された問題箇所を修正したのですが、右クリックを押してさえいれば、PeekColor関係なしにクリックされ続けてしまいます。
指定座標の色が#00a5ffかつ、その時に右クリックを押している時のみクリックという条件が機能していない?
間違えてるところははif→ifb とifbの後にendif入れ忘れですよね?、
あとアドバイス通りthenの後にCONTINUEを追加し真の時のみ実行させるようにしたんですがCONTINUE あると起動しないのでCONTINUEは削除しました。。。後はコード短くするため PeekColor の取得値を X に入れました。
//問題の処理部分のみ。前半は省略します
X = PeekColor(392, 79)
ifb X = #00a5ff then CONTINUE //式がおかしいor型があっていないと出ます・・
EndIf //endifを入れ忘れてたので追加
Select Flag
Case 1; Ifb GetKeyState(2)
Btn(Left, Down)
Fukidasi(Msg+"<#CR>電卓の色を元に戻すか右クリックを離すまで、左クリックが続行されます"
Flag = 2
EndIf
ifb X = #ffafa then CONTINUE //式がおかしいor型があっていないと出ます・・
EndIf
Case 2; Ifb GetKeyState(2) = False
Btn(Left, Up)
Fukidasi(Msg+"<#CR>色が元に戻ったので、左クリックを解除しました"
Flag = 1
EndIf //endifを入れ忘れてたので追加
Case 3; Ifb GetKeyState(2) = False
Btn(Left, Up)
Fukidasi(Msg+"<#CR>右クリックが離されたので、左クリックを解除しました)
Flag = 1
EndIf
SelEnd
WEnd
見捨てないで、どうか助けてください。今日はもう寝ます・・
- 155 :sage:2015/03/27(金) 03:05:57.82 ID:5MNpCEnQ0
- いつまでこの茶番続けるん
マジなら絶望的に向いてないな
- 156 :名無しさん@お腹いっぱい。:2015/03/27(金) 03:15:48.42 ID:qyMRpl9y0
- >間違えてるところははif→ifb とifbの後にendif入れ忘れですよね?、
何だこれ
ヘルプぐらい読んでくれよwww
- 157 :名無しさん@お腹いっぱい。:2015/03/27(金) 06:12:09.40 ID:C2HioZf90
- こういうのこそあっちに誘導してクソコテに相手させればいいんじゃね
- 158 : ◆evw/E7kww2 :2015/03/27(金) 06:32:15.17 ID:qYu4G05r0
- >>154
ttp://www.google.co.jp/search?q=uwsc%20ifb%20endif%20then
ググるのもいいけど
2ちゃん専用ブラウザ入れてUWSC過去スレまとめて検索するのを覚えるべき。
2ちゃんねるの仕様が変わってちょっと不便になったけど。
- 159 :名無しさん@お腹いっぱい。:2015/03/27(金) 09:09:15.99 ID:TzycqFpk0
- 歌パニエでめっちゃお世話になったなぁ
- 160 :名無しさん@お腹いっぱい。:2015/03/27(金) 09:14:13.45 ID:pxfAJWsn0
- わしの間違いは = じゃなく <> だったのだが
多分言っても分からんのじゃろうなあ・・・
変なのにかまってしまって申し訳ない
- 161 :名無しさん@お腹いっぱい。:2015/03/27(金) 19:37:46.66 ID:PrwW+KZP0
- >>158
そんなのもの最初に検索してるに決まってるじゃないですか。
それでも目当てのものが見つからないからこうして聞いてるんです
>>131で具体的な解らない場所まで掲示してるのにいまだにちゃんと動作しません
嘘とか教えてないでせめて質問したコードが動くようになるまでは力をかしてほしいです
- 162 :名無しさん@お腹いっぱい。:2015/03/27(金) 20:11:18.34 ID:WEip1DaD0
- これが構った結果
罪は重い
- 163 :名無しさん@お腹いっぱい。:2015/03/27(金) 20:29:02.03 ID:igAiJuqF0
- 要求仕様を書いたんだから、動くコードを提供するのは当たり前!
って金を払ってから言えよw
- 164 :名無しさん@お腹いっぱい。:2015/03/27(金) 20:40:56.12 ID:PrwW+KZP0
- >>163
そう見えたのならすみません。でも言葉だけじゃなくコードも書いてます
テンプレ守って具体的に分からない所も掲示してコードも出して質問してますし
それなのにわざと間違えたコードを入れたり煽ったりするのは酷いと思います
>>128みたいに優しく教えてくれる人お願いします・・
- 165 :名無しさん@お腹いっぱい。:2015/03/27(金) 20:45:40.80 ID:qyMRpl9y0
- わざと間違えたコードを入れているわけじゃないだろwwww
- 166 :名無しさん@お腹いっぱい。:2015/03/27(金) 20:47:27.70 ID:xpUecemo0
- >>128
っていうかcaseの条件にifbっておかしくね?
- 167 : ◆evw/E7kww2 :2015/03/27(金) 21:05:47.25 ID:qYu4G05r0
- >>166
; で区切ってるからエラーではないけど
理解を妨げるような書き方ではある。
- 168 :名無しさん@お腹いっぱい。:2015/03/27(金) 21:54:03.58 ID:pxfAJWsn0
- そもそもわし128なのに
やさしい人呼ばわりから、間違えてコード入れて煽ったりする人よばわりで困惑
そもそも間違えたわけではなく指摘し忘れただけで、注訳付けただけやのに・・・
情けは人のためにならない世の中ですね(´・ω・`)
- 169 :名無しさん@お腹いっぱい。:2015/03/27(金) 22:51:36.70 ID:qyMRpl9y0
- >>168
貴方は何も悪くないから安心すると良い
何か悪い事があるとすれば、コードを全く理解しようとしない質問者の幼稚な頭かな
- 170 :名無しさん@お腹いっぱい。:2015/03/27(金) 23:02:39.71 ID:PrwW+KZP0
- >>168
貴方の発言に >さりげなく間違えとる とあったので
わざとやったのかと思ったんですが
煽る人ってゆうのは貴方のことじゃなくて釣りとか言ってくる人です
ちなみに注訳に従って
X = PeekColor(392, 79)
ifb X = #00a5ff then CONTINUE
としたら、構文エラーで起動しませんでした・・
乗りかかった船は最後まで手伝ってください・・
>>169
初めてなりに理解しようとはしてます。その証拠にコードをアレンジとかしてますし
もう読んでるのに過去ログ読めという人ばかりなんですよ
コードを深く理解できてるのならすぱっと教えてください・・
- 171 :名無しさん@お腹いっぱい。:2015/03/27(金) 23:18:11.59 ID:qyMRpl9y0
- >>170
理解しようと思うなら該当の構文のヘルプぐらい読んでから質問しろよ
ifとifbが〜なんてふざけた事言うな
そんで乗りかかった船は手伝えとか何様だよ
- 172 :名無しさん@お腹いっぱい。:2015/03/27(金) 23:21:44.69 ID:hEw2Ht7w0
- 俺らはお前よりも知識があって偉いから、気分を損ねる不快な奴には教えてやんないもんね!
- 173 :名無しさん@お腹いっぱい。:2015/03/27(金) 23:22:53.76 ID:xpUecemo0
- そもそもその船には誰も乗ってないよね。沈没船を話題にしただけだ。
- 174 :名無しさん@お腹いっぱい。:2015/03/27(金) 23:31:58.34 ID:igAiJuqF0
- まじ、これよ>>171
これができないなら、他のどんなプログラミングもできないから
スパッと諦めた方がいいよ
諦めて今までどおり手動で操作しているべきだよ…
これだけ皆に言われているんだから、まずは自分の人間性を疑ってかかった方が良い
- 175 :名無しさん@お腹いっぱい。:2015/03/28(土) 00:00:02.80 ID:5DGPcVxp0
- 質問丸投げ系に一度答えてしまうと
こうして何度も似たようなコードを貼られてしまう
もし今の質問が解決しても今度は「電卓では動くけど○○では動かない」
と言い始めてまた質問を繰り返すだろう
簡単に答えてしまうことは誰の得にもならない
- 176 : ◆evw/E7kww2 :2015/03/28(土) 00:24:04.65 ID:k9OYpbEw0
- >>170
> その証拠にコードをアレンジとかしてますし
1.アレンジすんなコピペしろ
2.文法がわからないなら1文ずつエラーチェックしろ
Wikipediaより
> アレンジ(arrange)とは、英語で「整頓する」「配列する」「用意」「手配」といった意味を持つ。日本では外来語として定着しており、主に以下の意味で用いられる。
>
> 音楽における編曲のこと。
> 上記に転じて、物事の一部を変化させるなどの手を加え、その物事を構成し直すこと。この場合、厳密には異なるがリメイクと同じような意味を持つ事が多い。
- 177 :名無しさん@お腹いっぱい。:2015/03/28(土) 01:13:42.18 ID:bZyZO34x0
- つかさ
もともとの質問は>118で
それは>128で解決してるじゃんよ
それをアレンジ()でぶっ壊して動けなくしたのに
責任とって直せとか斜め上杉内?
ここってキチママスレだっけ?
- 178 :名無しさん@お腹いっぱい。:2015/03/28(土) 01:20:26.12 ID:sU6n2E0R0
- とりあえず放置してほっとけ。
お疲れ様。解散。
- 179 :名無しさん@お腹いっぱい。:2015/03/28(土) 08:29:11.61 ID:zH5Vl2tA0
- MOUSEORG関数でMORG_DIRECTを指定した時のBTN関数の挙動って
ウィンドウ領域にカーソルを静止させないと記述どおりに動いてくれないじゃん
なんだかなあ
- 180 :名無しさん@お腹いっぱい。:2015/03/28(土) 11:50:05.54 ID:Zx06Is4V0
- 具体的なコードは知らんがユニークな資源なんだから常に動かしているなら
一瞬だけ記述どおりの動作になるのは当然じゃね?
暫く固定する必要があるならユニークな資源を保有し続けて座標を維持しないとな
- 181 :179:2015/03/28(土) 16:34:16.39 ID:zH5Vl2tA0
- 真面目な話、裏マクロってどうやって組むんだろう
- 182 :名無しさん@お腹いっぱい。:2015/03/28(土) 18:25:52.66 ID:EdzQ42EL0
- >>181
対象アプリによる。マウスの現在位置を取得して動いているようなアプリだと実際にマウスを持っていかないと動かない
マウスメッセージを受け取って処理しているアプリなら、適切なウィンドウにメッセージを送れば動く
お前が動かしたいアプリが何だか知らないからアドバイスのしようがない
- 183 :名無しさん@お腹いっぱい。:2015/03/28(土) 19:23:34.23 ID:SaFLfEi30
- DInput使ってるゲームとかだと実移動距離
GDIならウインドウ領域で実位置
APIなら直接座標可能
って所か?
- 184 :名無しさん@お腹いっぱい。:2015/03/28(土) 23:16:55.19 ID:Zx06Is4V0
- 対象が標準コントロール使っているならマウス操作は本来回避可能な筈なんだよね
マウス操作が不可避の段階で最前面操作か仮想化を視野に入れた方がシンプルだよ
- 185 :名無しさん@お腹いっぱい。:2015/03/29(日) 18:02:03.89 ID:QvfMdREk0
- メモ帳に保存した複数URLを重複することなくfirefoxで開きたいんですがどうすりゃいいですか?
- 186 :名無しさん@お腹いっぱい。:2015/03/29(日) 18:21:56.64 ID:ZqD1Y3z90
- >>185
期待してるのと違うかもしれないけど
それぞれの環境で違うかもしれないけど、たとえば
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.2ch.net/
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.3ch.net/
〜
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.65535ch.net/
というふうに編集して
拡張子 .batで保存して実行する
編集はメモ帳の編集機能でも、UWSCのファイル読み書きと文字列編集でも、なんでもいいです
【重要な注意】いきなり全部やらないで、まず二つで試すこと。次に三つ。
【重要な注意2】下手するとPCが壊れます
【重要な注意3】最悪の場合ネットワーク機器が壊れます
【重要な注意4】もっと最悪だと、天文学的な通信料の請求が来ます
- 187 :名無しさん@お腹いっぱい。:2015/03/29(日) 18:44:16.98 ID:QvfMdREk0
- >>186
ありがとう
やってみます
- 188 :名無しさん@お腹いっぱい。:2015/03/29(日) 18:53:17.43 ID:GjltWzOo0
- もし自分で作るなら大雑把だけどこんな感じにするかな
クリップボードにコピーしてからスクリプトを起動
スクリプトはクリップボードの内容を改行でSPLITして配列に変換
配列をソート
比較用を初期化
配列の内容でループ開始
配列の内容が比較用と一致すればコンティニュー(重複回避)
配列の内容を比較用に保存
配列の内容でブラウザを起動
ループ
- 189 :名無しさん@お腹いっぱい。:2015/03/29(日) 19:08:27.25 ID:2AWtXop20
- 重複のチェックなら連想配列のkeyに入ればいい
- 190 : ◆evw/E7kww2 :2015/03/29(日) 19:25:17.23 ID:/CjiQE470
- デフォルトブラウザで開ければいいんならコマンドプロンプトから
start http://www.google.com
ってするだけでいいよ
他のデータが混じってないならこのコマンド1行で済む
for /f %a in (aa.txt) do start %a
バッチファイルに書くときはこうなる
for /f %%a in (aa.txt) do start %%a
試しに aa.bat から aa.txt の aa ってデータを処理したらパソコンがぶっ壊れた。
start を echo に置き換えて正しく表示されるか先に確認すべき。
あと、データを間違いなく入力できないと結局壊れるから、やっぱり START コマンドはやめた方がいいかも。
start の部分を >>186 のようにプログラムのファイルパスにすれば問題ない。
- 191 :名無しさん@お腹いっぱい。:2015/03/29(日) 22:08:19.47 ID:pGsTj0MP0
- >>190
それだとURLに&とか%が来ると誤動作になるからやめたほうが良い
CGIパラメータとして記号が入ったり文字コード外の文字が入ってきて最悪ぶっ壊れる
自分なら >189の意見に賛成
だけど連想配列のキーに禁止文字があったら・・・と考えるとやっぱり怖い
数十行程度のURLなら普通の配列に入れて一回一回判別すればいいんじゃないかな
FOR 行数
フラグクリア
For In 配列
有ればフラグ、無ければ配列サイズを増やしていれる
Next
フラグあれば無視、無ければ起動
NEXT
シンプルだけどまずはこれで十分じゃないかな
- 192 : ◆evw/E7kww2 :2015/03/29(日) 22:28:20.95 ID:/CjiQE470
- >>191
ダメ文字は考えてなかったけど、やってみたら問題なかったよ。
文字コード外とか、ちゃんとURLが入ってればありえないし。
C:\temp>for /F %a in (aa.txt) do start %a
C:\temp>start http://www1.axfc.net/uploader/search.pl?search_str=%E3%82%B0%E3%83%A9%E3%83%96%E3%83%AB&date_start=20150101&key=1
- 193 :名無しさん@お腹いっぱい。:2015/03/30(月) 00:25:39.85 ID:pRk3imSd0
- 重複に関しては予めエクセルで重複チェックしてるので、ミスクリックさえなければ大丈夫と思ってましたがありがとうございます
- 194 :名無しさん@お腹いっぱい。:2015/03/30(月) 03:04:16.86 ID:3uzMxD8+0
- firefoxなら開くのアドオン使ったほうが楽なのでは?
Launch Clipboardとか
- 195 :名無しさん@お腹いっぱい。:2015/03/30(月) 03:48:26.62 ID:pRk3imSd0
- >>194
うわー、すげぇw
一気に解決しました
ありがとうございます!
- 196 :名無しさん@お腹いっぱい。:2015/03/30(月) 10:38:41.30 ID:FnC9Trqr0
- やりたい事が明確なら、ネットで探せば結構いろいろあるもんだね。
- 197 :名無しさん@お腹いっぱい。:2015/03/30(月) 12:15:19.22 ID:x6BlnIvI0
- >>192
start http://test.url/cgi.pl?aaa=1&test=2&%path%=test
これでやってみてください
こんなURLはまずないと思うけど世の中分からないし
- 198 : ◆evw/E7kww2 :2015/03/30(月) 16:07:49.45 ID:U941UJP80
- 普通に実行したら%path% が展開されますね。
でも、(aa.txtに記述して>>190のバッチで実行したら)ちゃんとそのURLを開きに行きましたよ
結果:
> http://test.url/cgi.pl?aaa=1&test=2&%path%=test
> このウェブページにアクセスできません
> DNS ルックアップでエラーが発生したため、test.url にあるサーバーを見つけることができません。
変数の展開は1度だけなんで、for で変数を使って展開してればそれ以上は展開されないんですよ。
へたにアレンジ(笑)を加えると動かなくなるんで、コピペできない人はやらない方がいいね。
- 199 :名無しさん@お腹いっぱい。:2015/04/03(金) 06:41:51.18 ID:YENBPbxb0
- Win95,98時代に、WindowsAPIとかCOMの本とかいっぱい出てて、それ読んではじめてWindowsのアプリ作れたもんですね。。
uwsc は1999からあるからその辺りの知識つかってやるもんじゃないのかな
- 200 :名無しさん@お腹いっぱい。:2015/04/03(金) 08:18:53.47 ID:f5IV+dZR0
- 予備知識無くても作れるのがuwscのいいところだろ
- 201 :名無しさん@お腹いっぱい。:2015/04/03(金) 09:07:19.19 ID:2ELB0M0A0
- 記録機能があるからそう考えちゃう気持も分かるけれど
それに頼ると必然的にマウスやキーボードに依存するスクリプトになってしまう
それでも単純に動作させるだけなら問題ないんだけれど
裏で安定させて動作させたいとか拘りだすとやっぱり色々と知識は必要だよ
今はVisual Studio Proが只になったから
Microsoft SPY++が入手しやすくなって楽になったよ
- 202 :名無しさん@お腹いっぱい。:2015/04/03(金) 09:15:55.81 ID:Z43Pu++g0
- >マウスやキーボードに依存するスクリプトになってしまう
別に構わないというか、だからこそUWSCというか
予備知識が必要というのはデメリットでもある
たとえ話をするならば、自動車のオートマやパワステの機構に関する予備知識が必須だったら普及しなかったはず
>裏で安定させて動作させたいとか拘りだすとやっぱり色々と知識は必要だよ
これはその通り。そういう用途にUWSCは向かない。適材適所
- 203 :名無しさん@お腹いっぱい。:2015/04/04(土) 17:10:38.95 ID:pcFxPFQB0
- age
- 204 :名無しさん@お腹いっぱい。:2015/04/06(月) 00:19:10.51 ID:oamxklXl0
- 規制かな
- 205 :名無しさん@お腹いっぱい。:2015/04/06(月) 18:00:45.83 ID:mrpdHuCF0
- COMを利用したIE操作は出来るけど、Chromeを操作って出来る?
同じようにCOMで
- 206 :名無しさん@お腹いっぱい。:2015/04/06(月) 18:06:08.93 ID:cwPLWyBL0
- できない
- 207 :名無しさん@お腹いっぱい。:2015/04/06(月) 19:45:11.61 ID:MO9DQvtT0
- Seleniumで検索してみ
マルチブラウザ対応の自動テスト用のソシューションだけど
VBでテストする方法とかがそのままUWSCに応用できるよ
- 208 :名無しさん@お腹いっぱい。:2015/04/06(月) 22:18:08.55 ID:JCeG5kCZ0
- UWSC忘れててサブ機もwin7 64bitにしてしまった。
似てるので64bitで使えるのないかい?
- 209 :名無しさん@お腹いっぱい。:2015/04/06(月) 22:23:50.60 ID:ppx6J7eD0
- Seleniumができるなら拡張もアリだな
- 210 :名無しさん@お腹いっぱい。:2015/04/06(月) 22:24:26.72 ID:ppx6J7eD0
- >>208
え?64bitだけどuwsc使えてるよ
- 211 :名無しさん@お腹いっぱい。:2015/04/06(月) 22:26:54.04 ID:MO9DQvtT0
- 質問が曖昧過ぎる
Win64でも32bitアプリは動作するが
64bitアプリと32bitアプリが同じかと言われたら当然違う
調べる気がないならWin7でも32bitアプリを操作するなら大丈夫って考えておけば良い
- 212 :名無しさん@お腹いっぱい。:2015/04/06(月) 23:01:54.60 ID:JCeG5kCZ0
- >>210,211
シェアウェアで動かなくてフリー版で動いた。
原因なんてしらないけど動かないって概念で諦めてたけど動きました。
街で偶然あったら酒でも奢りたい気分です。
ありがとうございました。
- 213 :名無しさん@お腹いっぱい。:2015/04/06(月) 23:18:10.03 ID:U00NqrYV0
- シェアでも動くだろ
- 214 :名無しさん@お腹いっぱい。:2015/04/06(月) 23:35:34.16 ID:JCeG5kCZ0
- シェアだとCOMエラーでまったくダメだったよ。
後で入れ直ししてみる。
- 215 :名無しさん@お腹いっぱい。:2015/04/07(火) 00:24:52.63 ID:o0YFB1Jw0
- >>214
UWSCが64bitで動くか動かないかと言われたら動くだろ
UWSCは32bitアプリ
で、64bitのDLLは読み込めないと公式に謳ってるから
64bitのCOMに触れたマクロは当然動かない
32bitDLLを別途用意するか、必要部分をPoweShellに置き換えるかしろ
- 216 : ◆evw/E7kww2 :2015/04/07(火) 07:52:24.67 ID:L95dVvZa0
- 例のポーカーマクロが最新版ではCOMエラーになるから
バージョンが違ってるのが原因だったりして。
- 217 :名無しさん@お腹いっぱい。:2015/04/07(火) 12:03:07.27 ID:tuVm10qf0
- バージョン5らへんの更新でIE操作関連でCOMエラー出るようになったよね
差異調べて書き換えるの面倒だから戻して使ってるけど
- 218 :名無しさん@お腹いっぱい。:2015/04/07(火) 17:07:20.29 ID:6ICclBNz0
- すみません。
起動後に自動実行されるスクリプトを実行させないようにするにはどうすればいいでしょうか。
起動だけさせておき、任意のキーを押すまでスクリプトを開始しないようにしたいのですが。
- 219 :名無しさん@お腹いっぱい。:2015/04/07(火) 17:22:20.17 ID:YbTdz0sr0
- UWSCのホットキー設定しろよ
- 220 :名無しさん@お腹いっぱい。:2015/04/07(火) 17:26:43.55 ID:YHWaTMUI0
- ・GETKEYSTATEで目的のキーが押されるまでループさせる
・メイン処理を関数化してSETHOTKEYで呼び出す
俺がぱっと思いつくのはそのくらい
後者は無限ループさせてメイン処理関数内でループ終了させるフラグを立てるとかしないと
メイン呼びだす前にスクリプト終わっちゃうはず
- 221 :名無しさん@お腹いっぱい。:2015/04/07(火) 18:52:52.96 ID:PZxBQlqf0
- >>218
まず自動実行を止める
.uwsファイルをデスクトップにおいてダブルクリック
それかランチャに登録して好きなタイミングで起動
あるいは、自動実行をさせるけど
SLCTBOXで[実行]みたいなボタンを表示して、タイムアウト秒を0にしておく
- 222 :名無しさん@お腹いっぱい。:2015/04/07(火) 18:59:53.09 ID:kDYP+rsK0
- あああ0かかか
メモ帳に記入する度に真ん中の数字を100まで1づつ(+1)上げたいのですが教えてください。
- 223 :名無しさん@お腹いっぱい。:2015/04/07(火) 19:45:59.92 ID:JsnHcRaP0
- MsgBox(0)
初心者はこれでいいじゃん
- 224 :名無しさん@お腹いっぱい。:2015/04/07(火) 20:01:59.17 ID:nO4zP1Ln0
- >>222
getkeystateとforと文字列結合
- 225 :名無しさん@お腹いっぱい。:2015/04/07(火) 20:23:55.04 ID:Tccai+aC0
- UWSC Ver5.1.1 / umiumi
POWERSHELL関数にて 文字化けするパターンがあるのを修正
COMの関数に 空文字を使用した時に エラーが出るパターンがあるのを修正
低レベル記録にて 画面のDPIスケーリングが100%以外の時にマウス位置がずれるのを修正
BALLOON関数にて 透明化が指定された時に正しいサイズで表示されないパターンがあるのを修正
MOUSEORG関数にて MORG_FOREが指定された時にアプリがマイナス側にあるとズレが出るのを修正
64bitアプリの リストビュー操作に対応できていなかったパターンを修正
SENSOR関数に 位置取得する SNSR_LOCATION_* を付けた
MONITOR関数に モニター名を返す MON_NAME を付けた
QSORT関数に 自然順ソートをするモードを付けた
OPTION指定に STOPボタンウィンドウを最前面固定するオプション TOPSTOPFORM を付けた
Pro版:
CREATEFORM関数にて タスクバーにアイコンを出さない FOM_NOTASKBAR を付けた
- 226 :名無しさん@お腹いっぱい。:2015/04/07(火) 22:51:56.13 ID:kDYP+rsK0
- >>224
解決しました。有難うございました。
また、相談なのですが
AAA = INPUT("記入して下さい。", "")
IE.document.forms[0].elements[0].value = "AAAl"
反映されないのですが何処が間違ってますか?
宜しくお願いします。
- 227 :名無しさん@お腹いっぱい。:2015/04/07(火) 22:55:05.96 ID:kDYP+rsK0
- 自己解決しました。 お騒がせいたしました。
集中力が途切れたので休む事にします。
- 228 :名無しさん@お腹いっぱい。:2015/04/08(水) 18:21:11.28 ID:I9max7TN0
- @あるグローバルな配列に入れる値を条件によって変えたい
IF jouken = jouken1
PUBLIC hairetu[] = a1,a2,a3
ElseIF jouken = jouken2
PUBLIC hairetu[] = b1,b2,b3
ElseIF jouken = jouken3
PUBLIC hairetu[] = c1,c2,c3
EndIF
こうしてもPublicで同じ配列を複数宣言できないみたいので何か方法ありませんでしょうか
Aカンマとダブルクォーテーションを含む文字列の入った変数を配列に入れたい
例えば
hensuu = ""x0,y0" , "x1,y1" , "x2,y2" ,・・・, "x100,y100""
hairetu[] = hensuu
このような感じで
hairetu[0] = "x0,y0"
hairetu[1] = "x1,y1"
hairetu[2] = "x2,y2"
hairetu[3] = "x3,y3"
・
・
・
hairetu[100] = "x100,y100"
こうなるようにしたいんですが、どのようにすればいいでしょうか
よろしくお願いします
- 229 :名無しさん@お腹いっぱい。:2015/04/08(水) 18:33:17.95 ID:cFyNfocS0
- >>228
UWSCでは確認してないが、一般的なプログラム言語なら
@複数宣言しない
PUBLIC hairetu[]
IF jouken = jouken1
hairetu[] = a1,a2,a3
ElseIF jouken = jouken2
〜〜
Aシングルクォーテーションを使う
hensuu = '"x0,y0" , "x1,y1" , "x2,y2" ,・・・, "x100,y100"'
- 230 :名無しさん@お腹いっぱい。:2015/04/08(水) 18:33:44.64 ID:bqNI4UgW0
- 1.宣言部と代入を分けろAの例えが提示できて何故其処を悩む
2.案の一つとして以下のイメージの関数を作る
引数の変数の文字列の「","」を先ず「";"」等に置換して「x0,y0」のカンマ部分との衝突を避ける
「;」を区切り文字に指定してSPLITで引数の変数の文字列を分割した結果を戻り値にする
- 231 :名無しさん@お腹いっぱい。:2015/04/08(水) 18:34:23.03 ID:cFyNfocS0
- A修正
hensuu = '"x0,y0"' , '"x1,y1"' , '"x2,y2"' ,・・・, '"x100,y100"'
- 232 :名無しさん@お腹いっぱい。:2015/04/08(水) 18:37:58.97 ID:bqNI4UgW0
- UWSCでは文字列の囲いはダブルコーテンショーン固定で
文字列中にダブルコーテンショーンを表現したい時は<#DBL>とする
勿論、外部ブロプラムやクリップボードから得た文字列ならその必要ないけれどね
- 233 :名無しさん@お腹いっぱい。:2015/04/08(水) 19:38:02.10 ID:I9max7TN0
- @の複数宣言についてですが
宣言と代入を分けてやってみましたができませんでした
例えば
B
PUBLIC hairetu[] = 1,2
print hairetu[0]
print hairetu[1]
C
PUBLIC hairetu[]
hairetu[] = 1,2
print hairetu[0]
print hairetu[1]
Bは実行できるんですが、Cは
hairetu[] = 1,2の部分が
式がおかしい or 型が合っていない
となってエラーになります
どこが間違っているんでしょうか
- 234 :名無しさん@お腹いっぱい。:2015/04/08(水) 20:24:15.97 ID:cFyNfocS0
- >>233
その結果とヘルプをあわせれば、配列数の省略が可能なのは初期値を代入する時のみだと分かる
- 235 :名無しさん@お腹いっぱい。:2015/04/08(水) 20:28:57.59 ID:+jqxyJFv0
- >>228
@配列を代入するとエラーになるから、一個ずつ転記してみるのはどうか
PUBLIC a1=1,a2=2,a3=3
PUBLIC b1=4,b2=5,b3=6
PUBLIC c1=7,c2=8,c3=9
PUBLIC jouken = 1;
PUBLIC jouken1 = 1,jouken2 = 2,jouken3 = 3
PUBLIC MAX_LEN = 3 - 1
PUBLIC joukenHairetu1[MAX_LEN] = a1,a2,a3
PUBLIC joukenHairetu2[MAX_LEN] = b1,b2,b3
PUBLIC joukenHairetu3[MAX_LEN] = c1,c2,c3
PUBLIC hairetu[MAX_LEN]
for i = 0 to MAX_LEN
IF jouken = jouken1
hairetu[i] = joukenHairetu1[i]
ElseIF jouken = jouken2
hairetu[i] = joukenHairetu2[i]
ElseIF jouken = jouken3
hairetu[i] = joukenHairetu3[i]
EndIF
next
for i = 0 to MAX_LEN
print hairetu[i]
next
- 236 :名無しさん@お腹いっぱい。:2015/04/08(水) 20:34:27.84 ID:bqNI4UgW0
- しかもPUBLIC変数だと無条件に最初に動作するのね
微妙に面倒くさいですね
なるべくPUBLIC変数は使わないほうが良い
動作順序が記述順と異なるため予期しないバグの原因になる
- 237 :名無しさん@お腹いっぱい。:2015/04/08(水) 20:41:45.12 ID:7JUeZ3gv0
- publicなんて普通最初に宣言するもんだろ
というかこいつのやりたいことはヘルプのsplitの項目読めば解決すんじゃね
- 238 :名無しさん@お腹いっぱい。:2015/04/08(水) 20:45:32.93 ID:azzKySR/0
- 仮組みしてとりあえずで走らせたスクリプトが一発で想定通りの動作をすると気持ちいいな
- 239 :名無しさん@お腹いっぱい。:2015/04/08(水) 21:05:23.74 ID:+jqxyJFv0
- >>228
A一個ずつ取り出して、連想配列にぶち込むだけ。とりあえず例題の値そのままを想定してみた
関数化しようとしたけど・・・配列も連想配列も戻り値にできなくてイライラした
//hensuu = ""x0,y0" , "x1,y1" , "x2,y2""
hensuu = "<#DBL>x0,y0<#DBL> , <#DBL>x1,y1<#DBL> , <#DBL>x2,y2<#DBL>"
hashtbl hairetu = HASH_SORT
i = 0
tmp = hensuu
while LENGTH(tmp) > 0
// 一要素の文字列抽出
val = betweenStr(tmp, "<#DBL>","<#DBL>")
hairetu[i] = val
i = i + 1
// チェック済み文字列削除
tmp = replace(tmp, "<#DBL>" + val + "<#DBL>", "")
tmp = replace(tmp, " , ", "")
wend
for i = 0 to length(hairetu) - 1
print hairetu[i]
next
- 240 :名無しさん@お腹いっぱい。:2015/04/08(水) 21:15:08.83 ID:+jqxyJFv0
- ああ>>239だと、同値があると2個目以降が潰れるな
splitでreplaceの方がいいかもね
- 241 :名無しさん@お腹いっぱい。:2015/04/08(水) 21:17:46.75 ID:7JUeZ3gv0
- そもそも値の代入の仕方も分かってない段階の奴にそんなコードを見せて何がしたいの
- 242 :名無しさん@お腹いっぱい。:2015/04/08(水) 21:21:30.26 ID:bqNI4UgW0
- >>239
UWSCで配列を戻り値にする時はSAFEARRAYを使おう
- 243 :名無しさん@お腹いっぱい。:2015/04/08(水) 22:11:02.23 ID:BH+LStqK0
- @Publicはそのプログラムで唯一の変数に対する宣言なので
例え絶対に重複しなくても同じ値を宣言するのはNG
また、UWSCの制約として配列に一度に代入できるのは
宣言時のみなので後から [] を使うことは不可能
A配列を平文にしていいならTEXTBLOCKの活用という手もある
外部から読み込む場合はF_ALLTEXTを利用
- 244 :名無しさん@お腹いっぱい。:2015/04/08(水) 22:11:46.50 ID:BH+LStqK0
- //以下さんぷる、まず配列を一個作る
Public Dim Arry[]
// 条件分岐とかはまあ何でもいいとして
Public Flag = SlctBox(SLCT_CMB, 0, "", 1, 2, 3)
If Flag = -1 Then Exit
If Flag = 1 Then JoinData = Array1 // 配列にしたい平分を代入
If Flag = 2 Then JoinData = Array2
Dim OldArray[] = "a","b","c" // 既にある配列をぶち込む場合はjoinとか使えばよろし
If Flag = 4 Then JoinData = Join(OldArray, "<#CR>")
// 入れるべき配列の要素数を確認
Dim SplitCount = 0; While Pos("<#CR>", JoinData, SplitCount) > 0; SplitCount = SplitCount + 1; WEnd
// 入れるべき配列に合わせてサイズ調整
Resize(Arry, SplitCount)
// 配列を流し込む 速度とか知るかって感じ
SplitCount = 0
For Paria In Split(JoinData, "<#CR>", False, False)
Arry[SplitCount] = Paria; SplitCount = SplitCount + 1
Next
// 結果表示
PopUpMenu(Arry)
//ブロックで配列要素を書く
TextBlock Array1
sdfewe,wer"""",,,,,,
"a", """,b""",""c
""<<<>>>>""fdf
EndTextBlock
TextBlock Array2
別に<#CR>一行で<#CR>書いてしまっても<#CR>良い訳だが
EndTextBlock
- 245 :名無しさん@お腹いっぱい。:2015/04/08(水) 23:48:40.35 ID:dAen2zgN0
- id = GETID("無題 - メモ帳", "Notepad", -1)
n = val(readini("No", "n"), 0) + 1
writeini("No", "n" , n)
SENDSTR(id, "あああ-" + replace(format(n, 1), " ", "0") +"@yahoo.co.jp"+"<#cr>")
KBD(VK_CTRL,DOWN,click)
KBD(VK_F4,CLICK,click)
KBD(VK_CTRL,UP,click)
記入するのをメモ帳ではなくフォームにしたいのですが教えて下さい。
- 246 :名無しさん@お腹いっぱい。:2015/04/09(木) 00:15:12.04 ID:qx2FgMTv0
- 一行目をフォームのタイトル名に変えるだけじゃん次の方
- 247 :名無しさん@お腹いっぱい。:2015/04/09(木) 00:23:25.63 ID:0ptFgXET0
- プロ版のフォームのことならSETFORMDATA関数を使え
ヘルプはCREATEFORM関数の例をみよう
- 248 :名無しさん@お腹いっぱい。:2015/04/09(木) 00:28:13.79 ID:qijekSFU0
- 質問内容的にどう考えても>>246だろう
- 249 :名無しさん@お腹いっぱい。:2015/04/09(木) 01:30:25.28 ID:urZFwn/d0
- bmpを読み込んでほかの場所描き写すことはできますか
- 250 :名無しさん@お腹いっぱい。:2015/04/09(木) 01:33:42.73 ID:qijekSFU0
- 日本語でおk
- 251 :名無しさん@お腹いっぱい。:2015/04/09(木) 01:41:45.60 ID:urZFwn/d0
- に が抜けてた
白黒の画像から黒の部分だけをほかの場所に書き写したくて
- 252 :名無しさん@お腹いっぱい。:2015/04/09(木) 01:52:39.13 ID:qx2FgMTv0
- 出来るけど相当面倒な
- 253 :名無しさん@お腹いっぱい。:2015/04/09(木) 01:54:02.50 ID:OGeyDkmJ0
- 普通にGIMPとか使ったほうが早いな…
あれにもScript-Fuとかあったし、あれつかうとか。
- 254 :名無しさん@お腹いっぱい。:2015/04/09(木) 02:03:48.03 ID:qijekSFU0
- >>251
簡単にやるなら、その目的にあった画像ソフトをみつけて
その操作を自動化させればいいんちゃう
UWSCだけでも出来る、というか似たような事をやっている人はいたから
ぐぐれば出てくるかもしれない
出てきたコードを黒だけ出力するよう改造すればOK
- 255 :名無しさん@お腹いっぱい。:2015/04/09(木) 02:04:56.76 ID:urZFwn/d0
- ありがとうございます
探してみます
- 256 :245:2015/04/09(木) 02:07:07.02 ID:r4O9VCN/0
- id = GETID("InternetExplorer.Application","○○○")
1行目に変更してもダメでした。
どう変えたら良いのでしょうか?
- 257 :名無しさん@お腹いっぱい。:2015/04/09(木) 02:37:26.33 ID:PbP82eZg0
- http://blogs.yahoo.co.jp/nullpage_vwxyz/52146470.html
↑このサンプルコードと同様にFukidasiを5秒後に閉じるBallonを作りたいのですが
今の仕様ではメインスレッドとサブスレッドのFukidasiが別物として扱われるためうまくいきません。
別の方法がありましたらご教授お願いします。
- 258 :228:2015/04/09(木) 04:19:10.95 ID:RlObrH1f0
- >>239
これでやったらご指摘の通り同値が消えてしまったので、splitを調べて使ってみたらようやくできました
遅れましたがありがとうございました
- 259 :名無しさん@お腹いっぱい。:2015/04/09(木) 05:22:16.85 ID:0ptFgXET0
- どううまく行かないのか情報が足りない
非同期でフキダシを表示→待機→消去だけなら
それ全体を同一の別スレッドにする手もある
- 260 :名無しさん@お腹いっぱい。:2015/04/10(金) 19:40:53.53 ID:2DyyGIp70
- UWSをJOYTOKEYで呼び出すうまい方法無い?
- 261 :名無しさん@お腹いっぱい。:2015/04/10(金) 20:14:05.83 ID:QgvSdIsq0
- お互いに物理入力を読み取って仮想キーを吐くソフトだからなあ
- 262 : ◆evw/E7kww2 :2015/04/10(金) 23:22:22.27 ID:9fDyMMqT0
- JTKでショートカットキーを発行してUWSCで受け取るだけ
UWSC同士でも受け取れるよ。
SETHOTKEYね。
- 263 :名無しさん@お腹いっぱい。:2015/04/10(金) 23:44:15.72 ID:0KmPTRDp0
- 左クリックの連打スクリプトのトリガーを左クリックに・・・とか無茶言わない限りね
- 264 :名無しさん@お腹いっぱい。:2015/04/11(土) 01:17:24.71 ID:jPpNhgyb0
- あざっす!
- 265 :名無しさん@お腹いっぱい。:2015/04/11(土) 12:23:13.92 ID:94a1K+Pk0
- エラーが発生したので再読み込みします OK キャンセル
これが出た時にclkitemでキャンセル押すようにしてるんだけど、マクロ対策なのかキャンセル押してもOK押してもOKの処理がされるようになってるみたいなんだけど
どうやったらキャンセルボタンの名前探し出せるのかな
手動でキャンセル押した場合は普通にキャンセルされる
- 266 :名無しさん@お腹いっぱい。:2015/04/11(土) 12:34:09.96 ID:b6Tw4i4k0
- ACWで一瞬アクティブに
ACCでクリック位置を感知
MMVでマウスを移動
BTNで直にクリック
アプリ側でマウス位置認識してるソフトなんかね
ボタンの上に載ってないと認識しないとかそういう
バックでやりたいならDEFDLLでAPI側から条件を送るとか
でもQT製かDelphiで識別タグ消されてる場合は対応できない云々
- 267 :名無しさん@お腹いっぱい。:2015/04/11(土) 17:36:40.48 ID:ma7OFZAk0
- 今ならアイテム名調べるのはSPY++使うのが楽だけど
当時は入手が面倒臭かったから
クリックした場所の情報をGETID STATUS POSACCで取得して
クリップボードに入れたりするスクリプトを作ったなぁ
- 268 :名無しさん@お腹いっぱい。:2015/04/11(土) 17:54:01.40 ID:94a1K+Pk0
- すまん、いい忘れたけどブラゲ
ポップアップ自体はブラウザから出てる
使ってるブラウザはchrome
- 269 :名無しさん@お腹いっぱい。:2015/04/11(土) 18:00:19.58 ID:H1Krk7vE0
- ゲームの話題はNG
- 270 :名無しさん@お腹いっぱい。:2015/04/11(土) 18:20:32.99 ID:VZK5XMgj0
- >>269
は?上見れば分かるけどこのスレゲームの話しかないよ
- 271 :名無しさん@お腹いっぱい。:2015/04/11(土) 18:55:22.01 ID:/FPUVyA20
- >>270
上みればわかるけどこのスレゲームの話はNG
それでも応えるアホちんやゲームと言わないことで回答を得ているものもあるけど
- 272 :名無しさん@お腹いっぱい。:2015/04/11(土) 18:57:32.55 ID:VZK5XMgj0
- いつからゲームNGになったんだ
前スレ、前々スレからほとんどゲームの話題だろ
ゲームと言わないで回答得ているものも含めるとほとんどゲームの話だろ
- 273 :名無しさん@お腹いっぱい。:2015/04/11(土) 19:00:20.90 ID:+Eiy+x920
- 前々スレからいるならゲームの話がNGなのは分かってるだろ
ゲームだと分からないように質問しろ
- 274 :名無しさん@お腹いっぱい。:2015/04/11(土) 19:05:21.76 ID:ist4VhMC0
- テンプレにないローカルルールを主張されても困るよな
まぁゲームのマクロはほぼ利用規約違反だし、次スレから追加しとけば?
- 275 :名無しさん@お腹いっぱい。:2015/04/11(土) 19:07:17.28 ID:VZK5XMgj0
- >>268
chromeじゃなくてfirefoxかieじゃダメなのか
俺もブラゲのマクロ作ってるけどchromeのポップアップだけ特殊だから対応できてない
- 276 :名無しさん@お腹いっぱい。:2015/04/11(土) 19:10:13.67 ID:/FPUVyA20
- 結局お前がゲームマクロの話したかっただけか
ちなみにchromeでもできる
どうせDMMのブラゲあたりだろ
- 277 :名無しさん@お腹いっぱい。:2015/04/11(土) 19:19:08.17 ID:VZK5XMgj0
- そういうお前は何のためにchromeを自動化するんだ?
- 278 :名無しさん@お腹いっぱい。:2015/04/11(土) 19:25:49.74 ID:kL9hrv0d0
- 荒れるからゲームとブラウザコントロールはスルーで
あとパス解析とファイルダイヤログも放置
- 279 :名無しさん@お腹いっぱい。:2015/04/11(土) 19:45:39.73 ID:S5CSdMTN0
- スルーするやつは勝手にしてる。わざわざ宣言すんな
- 280 :名無しさん@お腹いっぱい。:2015/04/11(土) 20:28:23.31 ID:5Sv0eCRw0
- >>270
確かゲームは隔離スレを作ってディープな技を磨いているはず
スレを検索してそっちに行ったほうが有益
- 281 :名無しさん@お腹いっぱい。:2015/04/11(土) 20:40:33.21 ID:VZK5XMgj0
- それどこ?
- 282 :名無しさん@お腹いっぱい。:2015/04/11(土) 22:00:15.72 ID:5Sv0eCRw0
- 1000 :名無しさん@お腹いっぱい。:2014/10/18(土) 12:59:39.68 ID:5212DlOF0
次スレ
自動化ツールUWSC使いよ集まれ13
ttp://anago.2ch.net/test/read.cgi/software/1413600379/
グラブル厨はこちら
裏技・改造 グラブル
http://kanae.2ch.net/test/read.cgi/gameurawaza/1413584805/
- 283 :名無しさん@お腹いっぱい。:2015/04/12(日) 04:34:56.69 ID:LPt7uSdE0
- >>282
誘導ありがとう
隔離スレが有るってことはここで聞くのはスレチなのね
- 284 :名無しさん@お腹いっぱい。:2015/04/12(日) 13:06:07.22 ID:LvFvYAJy0
- リアルタイムにCSVとかにログ出力したいんですけど、出来ますか?
- 285 :名無しさん@お腹いっぱい。:2015/04/12(日) 13:27:10.08 ID:dyNsz1xq0
- 出来るよ
FOPEN FPUT FCLOSE 辺りのヘルプを読めば良い
- 286 :名無しさん@お腹いっぱい。:2015/04/13(月) 17:33:22.56 ID:xpsAs50H0
- 誰か画面真っ暗の状態で自動で動かす方法知りませんか?
うちのパソコンは自動で動かすと画面がついてしまいます
- 287 :名無しさん@お腹いっぱい。:2015/04/13(月) 17:52:31.30 ID:r0LxJJ5m0
- >>286
ディスプレイの電源切るだけなら画面offとかでググれ
- 288 :名無しさん@お腹いっぱい。:2015/04/14(火) 16:34:26.28 ID:5vq9VGrR0
- だめぇーん
- 289 :名無しさん@お腹いっぱい。:2015/04/17(金) 06:57:02.70 ID:ehO6aSnV0
- http://windowslognote.seesaa.net/article/385214282.html
この設定ってモニタoffは関係ないんだっけ?
- 290 :名無しさん@お腹いっぱい。:2015/04/17(金) 07:04:53.73 ID:ehO6aSnV0
- 電源オプション→ディスプレイの電源を切る時間の指定
→詳細な電源設定の変更→USB設定
→USBのセレクティブサスペンドの設定→無効に
環境によってもいろいろ違うから、あとは本人に試してもらうしかない
- 291 :名無しさん@お腹いっぱい。:2015/04/22(水) 18:19:23.00 ID:IpJVD7NT0
- Genymotionを裏で動かそうと思ったんですけど
id = GETID("Genymotion for personal use - Google Galaxy Nexus - 4.3 - API 18 - 720x1280 (720x1280, 320dpi) - 192.168.56.101","QWidget")
hwnd = GETCTLHND(id,"QWidget" )
MOUSEORG( hwnd, MORG_DIRECT, MORG_BACK )
//画面が出るまでアイコンをclick
WHILE (CHKIMG("画面.bmp", 1, 0, 0, 350, 550)=FALSE)
IFB CHKIMG( "アイコン.bmp")
x=G_IMG_X //
y=G_IMG_Y //
BTN(LEFT, CLICK, x+2, y+2, 80)
sleep(1)
endif
フキダシで確認したら画像は認識出来てますがclickできないです
- 292 :名無しさん@お腹いっぱい。:2015/04/22(水) 19:26:15.30 ID:CoQmrUtQ0
- そうですか
- 293 :名無しさん@お腹いっぱい。:2015/04/23(木) 12:11:02.63 ID:k/7VjDSL0
- 質問失礼します
windows8,1 UWSCfree 5.1.1.0
起動するとis not a valid integer valueというメッセージが出てしまいます
原因をおしえてください
- 294 :名無しさん@お腹いっぱい。:2015/04/23(木) 12:17:15.04 ID:p5/DkHGz0
- 変数に変な値ぶちこんでんじゃないの
- 295 :名無しさん@お腹いっぱい。:2015/04/23(木) 12:19:51.60 ID:3+tLwcpJ0
- >>293
起動するだけでそれなら作者に問い合わせたら?
- 296 :名無しさん@お腹いっぱい。:2015/04/23(木) 12:34:24.93 ID:BPriKFrV0
- それは削除して古いverのやつとか落としてくればいいじゃん
- 297 :名無しさん@お腹いっぱい。:2015/04/23(木) 14:12:01.00 ID:k/7VjDSL0
- >>294-296
ありがとうございました
- 298 :名無しさん@お腹いっぱい。:2015/04/24(金) 00:22:00.03 ID:Po/BsSEq0
- uwscのみでwindowsプログラムのインストールやアンインストールはできますか?
もしできるならやりかたを教えていただけないでしょうか
- 299 :名無しさん@お腹いっぱい。:2015/04/24(金) 00:44:03.74 ID:FfVQYfi00
- >>298
ウィンドウズのプログラムはどうやってアンインストールされてるのか仕組みを勉強すれば、
UWSCのみでウィンドウズの機能を使わずにファイル操作で出来なくも無いんじゃない?
そんなことするくらいならウィンドウズの機能を使う方が楽だけど。
- 300 :名無しさん@お腹いっぱい。:2015/04/24(金) 06:53:10.64 ID:nhQFMlYx0
- かなーり初歩的な質問だと思うんですがいま
座標1をクリック
座標aクリック座標bクリック3秒待って座標cクリック
座標2をクリック
座標aクリック座標bクリック3秒待って座標cクリック
座標3をクリック
座標aクリック座標bクリック3秒待って座標cクリック.....
って感じで手作業感満載で書いてたんだけど処理が数千行くらいになってきたからさすがに
「座標aクリック座標bクリック3秒待って座標cクリック」を「処理A」として1行で記述してスッキリしたいんだけど
これってどうすればいいのかな?
- 301 :名無しさん@お腹いっぱい。:2015/04/24(金) 06:57:45.80 ID:st45lYFy0
- メソッドにして呼び出せよ
- 302 :名無しさん@お腹いっぱい。:2015/04/24(金) 07:21:48.49 ID:L46HQ43N0
- >>300
procedure 処理a()
座標aクリック…
fend
- 303 :名無しさん@お腹いっぱい。:2015/04/24(金) 07:40:49.51 ID:nhQFMlYx0
- >>302
サンクス!
ただそのprocedureっての入れたらそもそもスクリプトが動かなくなっちまった・・・
動かなくなったっていうか再生しても即終了して処理が進まない
- 304 :名無しさん@お腹いっぱい。:2015/04/24(金) 07:41:25.25 ID:7uBFnSqp0
- 座標1,2,3…も引数で渡しちゃえよ
- 305 :名無しさん@お腹いっぱい。:2015/04/24(金) 07:44:22.85 ID:r6dakio/0
- めんどくさくなったらPCを窓から投げ捨てる
これだね
- 306 :名無しさん@お腹いっぱい。:2015/04/24(金) 07:58:26.20 ID:cIuVyyuJ0
- >>303
そりゃそうなるように記述しているのでしょう
procedureとFUNCTIONの例を参照して下さい
- 307 :名無しさん@お腹いっぱい。:2015/04/24(金) 08:12:54.93 ID:nhQFMlYx0
- >>306
よっくよく見たら関数は最後に書かないとダメなんだね
どこにも最後に記述しろって書いてなくてシレっと最後に書いてるから気づかなかったわ・・・
>>305
- 308 :名無しさん@お腹いっぱい。:2015/04/24(金) 08:20:44.25 ID:C6kI+0QW0
- >>307
> どこにも最後に記述しろって書いてなくて
ヘルプも読まずによくそんな事言うな。
> <関数の定義>
> ※ 関数はメインルーチンの後に書いてください。
> (メインルーチンは関数前までであり、関数後にメインルーチンを書いても実行されません)
> ※ 関数名に次の文字は使えません , + * = < > ( ) ! ?
- 309 :名無しさん@お腹いっぱい。:2015/04/24(金) 14:13:30.99 ID:nhQFMlYx0
- ヘルプ読まずに質問して悪かったが
ヘルプ読んでたらここで質問しないしな・・・
そう言われても困る
- 310 :名無しさん@お腹いっぱい。:2015/04/24(金) 14:40:46.77 ID:r6dakio/0
- じゃあヘルプ読めよwwwwwwwww
- 311 :名無しさん@お腹いっぱい。:2015/04/24(金) 14:43:16.27 ID:cIuVyyuJ0
- まぁドンマイ
逆ギレの部分は改めて
後は糧にしていけばいいさ
- 312 :名無しさん@お腹いっぱい。:2015/04/24(金) 14:47:30.33 ID:jNaJLC370
- >>309
いい子だからごめんなさいしよ?
- 313 :名無しさん@お腹いっぱい。:2015/04/24(金) 14:48:06.88 ID:ebCJ5FgT0
- >>309
回答者にdisられても
「べ、別にスルーできたけど可愛そうだから答えてあげただけなんだからね!」
ってツンデレみたいなもんだからありがとうって言っときゃいいんだよ
- 314 :名無しさん@お腹いっぱい。:2015/04/24(金) 17:15:55.44 ID:AM/zEzYT0
- っていうか関数の後にメインのコードかいて動く言語ってある?
- 315 :名無しさん@お腹いっぱい。:2015/04/24(金) 17:19:54.71 ID:L46HQ43N0
- そもそもメイン処理がブロックの中になくてもいいのが気持ち悪い
俺はとりあえずmainメソッド書いてそこに全体の処理書いてるわ
- 316 :名無しさん@お腹いっぱい。:2015/04/24(金) 17:27:27.75 ID:Z0cGZWV40
- phpは確か動くはず
- 317 :名無しさん@お腹いっぱい。:2015/04/24(金) 19:31:22.00 ID:FfVQYfi00
- てか初心者の癖にヘルプも読まずに質問とかwww
- 318 :名無しさん@お腹いっぱい。:2015/04/24(金) 19:57:35.81 ID:cIuVyyuJ0
- でもね
今のWindowsだとあのヘルプファイルは標準じゃ読めないのよね
その時点で既に罠なのです
- 319 :名無しさん@お腹いっぱい。:2015/04/24(金) 20:11:13.47 ID:FfVQYfi00
- ならそういえば良いわけで。
そしたらちゃんと見られるアドバイスとか、
それこそチョチョイと教えてくれる面倒見の良い人だって居るだろう。
まぁ、終わったことをだらだら言うのもよく無いか。
- 320 :名無しさん@お腹いっぱい。:2015/04/24(金) 21:00:55.22 ID:AM/zEzYT0
- CHMってXP以来ずっとノーマルで読めるんだけど
セキュリティ強くして読めないとかIE抜いたから見れないとか
そういう上級者なら当然見る方法わかるやろ
- 321 :名無しさん@お腹いっぱい。:2015/04/24(金) 21:10:18.22 ID:vK5EbgCK0
- >>320
読めないから
http://freesoft.tvbok.com/windows7/general/help_file_open.html
- 322 :名無しさん@お腹いっぱい。:2015/04/24(金) 21:17:34.49 ID:r6dakio/0
- アホちゃうのwwwwww
セキュリティ下げろよwwwwwwwwwwwwww
- 323 :名無しさん@お腹いっぱい。:2015/04/24(金) 21:25:23.45 ID:vK5EbgCK0
- このスレ変なやつらが湧いてるな
- 324 :名無しさん@お腹いっぱい。:2015/04/24(金) 21:29:41.11 ID:r6dakio/0
- 自分の無知を棚に置いて、反論出来なくなったら変な奴扱いってのはどうなんですかね?
- 325 :名無しさん@お腹いっぱい。:2015/04/24(金) 21:38:02.85 ID:vK5EbgCK0
- >>324
お前、自分が頓珍漢なこと言ってるの分からないの?
Vista以降ヘルプファイルは標準じゃ読めないのに、>>320が「ノーマルで読める」とか書いてるから
その間違いを指摘してるのに、「セキュリティ下げろよ」って意味不明
最初に開くときに必要なものをインストールしろって出てくるから普通は見れるようにするのに苦労しない
- 326 :名無しさん@お腹いっぱい。:2015/04/25(土) 07:26:39.04 ID:AKabdKOb0
- Windows8から?flashがIE内蔵になって、
GETCTLHND(IE.HWnd,"MacromediaFlashPlayerActiveX")
から
GETCTLHND(IE.Hwnd, "Internet Explorer_Server")
にしないといけなくなったようなんですが、BTNで押す座標位置は"Internet Explorer_Server"が始まる
座標位置からのオフセットでいいんでしょうか?
Windows7では前者でIDとってオフセットでよかったんですが、Windows8ではクリックしてくれません。
- 327 :名無しさん@お腹いっぱい。:2015/04/25(土) 21:24:11.16 ID:pm/QtL+t0
- ブラウザで動画を見ながら手前にゲームを起動してマクロを使うと1周ループしてからゲームの方の画面が拡大化されるんだけどこれって直す方法ない?
設定にはそれらしきものがなかった
- 328 :名無しさん@お腹いっぱい。:2015/04/25(土) 21:27:10.68 ID:ZMtLVm5C0
- とりあえず何かと並行しようとしてうまくいかない時は仮想化しろ
- 329 :名無しさん@お腹いっぱい。:2015/04/26(日) 01:49:28.81 ID:c17zbmUD0
- abababという文字列を
Ababab
ABabab
ABAbab
:
:
と順番に一つずつ大文字にしてクリップボードに送りたいんですがどういう風にすればいいでしょうか?
- 330 :名無しさん@お腹いっぱい。:2015/04/26(日) 11:09:56.44 ID:xgNFBZ7b0
- copyで大文字にする部分と小文字のままの部分を切り分ける
大文字部分はconvstrで変換する
再度くっつける
- 331 :名無しさん@お腹いっぱい。:2015/04/26(日) 11:11:21.49 ID:xgNFBZ7b0
- strconvだった
- 332 :名無しさん@お腹いっぱい。:2015/04/26(日) 12:53:03.85 ID:alJ4U3rP0
- >>329
str = "ababab"
str2=""
for i = 1 to LENGTH(str)
str2 = str2 + STRCONV(COPY(str,1,i),SC_UPPERCASE) + COPY(str,i+1) + "<#CR>"
next
SENDSTR(0,TRIM(str2))
- 333 :名無しさん@お腹いっぱい。:2015/04/26(日) 14:19:52.46 ID:OxOcaGGx0
- IE.NavigateでIEの表示をした後、IE.document.body.innertextでソースを拾っているのですが
その間に手動でIEが閉じられているとCOM_Errorになってしまいます。
IE.Navigateで表示されたIEが手動で閉じられていた場合、IE.document.body.innertextを実行せずに
スクリプトを終了するようにするにはどうすれば良いでしょうか?
- 334 :名無しさん@お腹いっぱい。:2015/04/26(日) 14:30:17.13 ID:2iiYgtzL0
- COM_ERR_IGN COM_ERR_RET COM_ERR_FLG をヘルプで調べてみよう
- 335 :名無しさん@お腹いっぱい。:2015/04/26(日) 14:36:08.20 ID:OxOcaGGx0
- >>334
解決しました!
ありがとうございます
- 336 :名無しさん@お腹いっぱい。:2015/04/27(月) 09:24:06.71 ID:4FCKudIE0
- UWSCでファイルのサイズ比較というのは出来ないでしょうか。
画面(Webページ)を監視するマクロを組もうと思っており、
一定期間ごとにWebページを更新して、指定範囲のスクリーンショットを撮って、
撮ったスクリーンショットと前回とったスクリーンショットを比較してサイズが違っていれば画面に変化あり、としたいです。
探したところ、サイズ比較のコマンドは用意されていない感じがしましたが、
そういったコマンドは用意されてたりするでしょうか。
また、もし画像サイズ以外で画面の変化を感知させる方法をUWSCで実現する方法を分かる方がいましたら教えて頂けるとうれしいです。
よろしくお願いします。
ver:UWSC Ver5.1.1 Pro版
- 337 :名無しさん@お腹いっぱい。:2015/04/27(月) 09:37:08.29 ID:0wqgAay40
- >>336
API叩けばできるだろ
てかそういう場合はハッシュ取れよ
- 338 :名無しさん@お腹いっぱい。:2015/04/27(月) 09:51:57.04 ID:RNEIX/K50
- そう言った場合
画面比較より変化している筈の内部要素にアクセスして比較した方が良いと思うけれどなぁ
- 339 :名無しさん@お腹いっぱい。:2015/04/27(月) 10:33:12.44 ID:KOWxqShr0
- >>336
chkimgじゃダメなん?
- 340 :名無しさん@お腹いっぱい。:2015/04/27(月) 10:52:58.29 ID:ONdrkes30
- >>338
ソース取得って出来るん?
- 341 :名無しさん@お腹いっぱい。:2015/04/27(月) 10:53:23.93 ID:YPPU9HGD0
- そもそもサイズが違ってくるとは思えないのだけど
- 342 :名無しさん@お腹いっぱい。:2015/04/27(月) 11:05:28.84 ID:YPPU9HGD0
- >>341事故レス
bmp以外のpngやjpgで保存すれば違ってくるかもしれないんだね
- 343 :名無しさん@お腹いっぱい。:2015/04/27(月) 11:20:05.80 ID:4FCKudIE0
- レスありがとうございます。
想定するケースとしては、Yahooのニューストピックの更新チェックのようなイメージでした。
ですのでAPIや内部要素、chkimgなどでは難しい?のかなと思い、実現するにはサイズ比較が比較的簡単なのかなと思い
そのような内容で質問をさせて頂いておりました。もし、それらの方法でも実現できるようでしたらすみません。
http://minus-k.com/nejitsu/loader/up14285.png
ハッシュとのレスを頂いたので探したところ、バイナリ比較するソフトがありましたので、
UWSCのchkimgでソフトウェア画面の「異なるファイルです」の表示をフラグとして、画面の監視を実現しようと思いました。
http://minus-k.com/nejitsu/loader/up14286.png
仰っていたハッシュの取り方とはなんだか違う感じもして、また、スマートなやり方ではないかもしれませんが・・・。
もっとスマートなやり方はあったりするでしょうか?
- 344 :名無しさん@お腹いっぱい。:2015/04/27(月) 12:25:06.40 ID:UJWo+DEc0
- >>343
htmlのTEXTが変化してると思うけど?
- 345 :名無しさん@お腹いっぱい。:2015/04/27(月) 12:25:58.66 ID:c7Lv5adA0
- やっぱり要素取得して前回と今回の文字列比較のほうが簡単だと思うけど
- 346 :名無しさん@お腹いっぱい。:2015/04/27(月) 12:37:25.54 ID:KOWxqShr0
- >>343
一番手軽にやるならsaveimgでクリップボードにコピって
chkimgでクリップボードと比較するかな
- 347 :名無しさん@お腹いっぱい。:2015/04/27(月) 13:17:58.51 ID:4FCKudIE0
- レスありがとうございます。
なるほど、saveimgでクリップボードコピーや画像保存したデータをchkimgに渡せば画像を比較することができるのですね。
saveimgしたものをchkimgに渡すのを思いつきませんでした。。
また、
htmlのソースファイルから変化した部分を探すのは難しいのでは、とそればっかり考えていましたが、
ソースではなくWebページの指定した部分の文字列比較でも実現できそうですね。
どちらも考えが及びませんでした。。
頂いたご意見を参考にしてもっと良いやり方でスクリプトが作れそうです。
これらで作ってみようと思います、アドバイス頂いてどうもありがとうございます。
- 348 :名無しさん@お腹いっぱい。:2015/04/27(月) 20:15:37.04 ID:Eo+zqvFe0
- genymotionというandroidエミュレーターをuwscを用いバックグラウンドで操作させたいのですが、free版ではできませんでした
uwscShare版でexe化しbatファイル等でキックすることにより解決するのでしょうか
それともやはりshare版にしたところでfree版でバックグラウンド動作させられないものはさせられませんか?
- 349 :名無しさん@お腹いっぱい。:2015/04/27(月) 21:12:59.49 ID:LEmMXEzJ0
- トライアルで試してみれば?
- 350 :名無しさん@お腹いっぱい。:2015/04/27(月) 21:16:53.47 ID:RNEIX/K50
- テンプレレベルの話として裏に拘るなら仮想化
- 351 :名無しさん@お腹いっぱい。:2015/04/27(月) 21:21:13.48 ID:4SSUH+1G0
- 何も解決にならんと思うけど
>uwsc.exe スクリプト.uws
をバッチで投げるだけ
UWSC自体はもともとバックグラウンド可能だけど
genymotionとかいうのがバックグラウンド起動に対応してなければコンソールなりウインドウが上がってくるでしょ
起動しっぱなしで特に設定が不要 or CUIなりWEBなり他のアタッチができる状態なら
システムアカウントから立ち上げればウインドウ自体出てこないよ
厳密にはシステムアカウントのデスクトップに上がってくるけど
それもサービスとしてあげればAPI経由しなくて済むから完全にサイレントになる
- 352 :名無しさん@お腹いっぱい。:2015/04/27(月) 21:32:51.42 ID:RNEIX/K50
- Androidエミュって時点でゲームなんだろうけれどね
- 353 :名無しさん@お腹いっぱい。:2015/04/28(火) 10:42:28.50 ID:BUmkg9z00
- バックグラウンドで画像認識込みはあきらめる
仮想化環境でgenymotionはあきらめる
以前に雑魚の俺が2時間無駄にしてこれに辿り着いた
- 354 :名無しさん@お腹いっぱい。:2015/04/29(水) 07:36:12.75 ID:D7BNJyP40
- >>309
>>312
そうですね
>>306>>308さんありがとう
- 355 :名無しさん@お腹いっぱい。:2015/04/29(水) 07:45:04.54 ID:D7BNJyP40
- それと俺の場合はwin7ですけどヘルプは特に何もしてないんですが読めました
- 356 :名無しさん@お腹いっぱい。:2015/04/29(水) 08:32:37.80 ID:xDAJ7stc0
- 俺の場合も何も変更せず読めたけど、あれってPCのどのセキュリティ設定を参照されるんだろうな
- 357 :名無しさん@お腹いっぱい。:2015/04/29(水) 10:16:43.17 ID:LQJ9309Q0
- >>356
IEのセキュリティ設定をわざわざ インターネット:高 に変える
これやるとほとんどのアクティブコンテンツが見れなくなるからふつうはしない
その状態でもヘルプが見たいという人のためのWinHlp32というアップデートモジュールがあるんだが
これもデフォルトなら勝手に入ってくるし
わざわざがちがちに固めなければ見れなくなることなんてないはずなんだが
- 358 :名無しさん@お腹いっぱい。:2015/04/29(水) 19:41:50.55 ID:O66CU1E70
- 最近使い始めて画像認識とか便利だけど
サイトの読み込みまちの調整が難しいな…
十分に時間とると効率悪くなっちゃうし
- 359 :名無しさん@お腹いっぱい。:2015/04/29(水) 19:45:54.78 ID:jCE5jBuY0
- IE制限は痛いしなぁ
- 360 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:00:57.03 ID:LQJ9309Q0
- >>358
htmlにOnLoad()投げいれて読み込み完了をフックしたら?
- 361 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:07:37.97 ID:glG4jNOE0
- BusyIE()でずっと待ちになって進まない時があるんだが、どうやって対処してる?
- 362 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:12:36.16 ID:TX9JzT/s0
- タイムアウト処理付ければいいだけだろ
- 363 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:15:36.94 ID:glG4jNOE0
- >>362
これがアスペか
- 364 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:23:35.35 ID:NCIxQn750
- 普通は
DownloadComplete
NavigateComplete2
DocumentComplete
の順でイベントが発生するんだけど
ナビ先がキャッシュ済みとして扱われると
DownloadComplete
しか発生しないっぽいのでそれを検知してるなぁ
- 365 :名無しさん@お腹いっぱい。:2015/04/29(水) 22:26:16.00 ID:LQJ9309Q0
- >358
あとはIEコンポーネントを利用したスキンブラウザなら
IEと同じコントロール方法で行ける上に、タスクバーに読み込み中や完了表示が出るものがあるから
いろいろ試してみたら?
自分の環境ではDonutRAPTがタスクバーにプログレスバーと完了メッセージが出るけど
残念ながらレイアウトがIE9だから最新のブラウザに合わせたサイトだと動かないこともあったり
LunaやFoxとかはどうなんだろうね
- 366 :名無しさん@お腹いっぱい。:2015/04/29(水) 23:15:08.83 ID:hwf+gCEd0
- 手詰まりだからちょっと聞きたい
OS再インスコしてからuwscを再インストールしたんだけど画像認識の部分がうまく動いてくれねえ
uwscとかのバージョンは前と変えてないしスクリプトも変えてないから動くはずなんだけどuwscって導入に前提あるんだっけ?
管理者権限と互換性は試した ググってもわからないしお願いします・・・
- 367 :名無しさん@お腹いっぱい。:2015/04/29(水) 23:19:02.36 ID:mbxknYry0
- >>366
ディスプレイの設定が少し違うだけで、同じ画像ではなくなる可能性がある
設定をあわせるか、画像を作り直す
- 368 :名無しさん@お腹いっぱい。:2015/04/29(水) 23:20:13.70 ID:NCIxQn750
- 厳密にはディスプレイドライバのバージョンが違うだけでも駄目になる可能性がある
- 369 :名無しさん@お腹いっぱい。:2015/04/30(木) 00:24:31.66 ID:Yl6whR7h0
- 色々ありがと
一応画像作りなおしたんだけどねえ・・・
前までだとuwscの本体が一瞬消えて画像を認識してたっぽいけど消えることなくループしてるから画像認識自体が行われてない感じもする・・・?
- 370 :名無しさん@お腹いっぱい。:2015/04/30(木) 06:22:42.96 ID:z9KaCBhe0
- dekita = faulse
while !dekita
dekita = CHKIMG( a.bmp )
print "chkimg: " + dekita
wend
- 371 :名無しさん@お腹いっぱい。:2015/04/30(木) 06:52:56.67 ID:pDR2lo4N0
- >>369
uwscの操作ウインドウはchkimgの時消えなくても
問題ないように仕様変更されたはず
print chkimg("xxx")
のみ書いて動作確認くらいしたら?
- 372 :名無しさん@お腹いっぱい。:2015/05/01(金) 15:45:24.69 ID:Sbcjmgv80
- 前スレに似てる画像を判定してくれるってやつ上げてくれた人いたからそれ使えばいいかと
- 373 :名無しさん@お腹いっぱい。:2015/05/02(土) 02:17:10.41 ID:4zU0do9h0
- 昨日今日手を出したような本当の初心者のような質問ですみません。
ifb CHKIMG("ファイル名.拡張子")
x=G_IMG_X
y=G_IMG_Y
BTN(LEFT, CLICK, x , y , 100)
endif
これで対象のファイルをクリックどころかカーソルが対象のファイルへ移動もしません。
何が間違っているかご教授願えませんか?
もう一つ
画像からの作業を断念して手動で記録して再生させようとしたのですがそれもうまくいきませんでした。
カーソルは移動するのですが最初のクリックの時点で止まってしまいます。
その最初のクリックすら機能していません。
一応ググってから来たのですが自分では解決できませんでした。
どうかよろしくお願いします。
- 374 :名無しさん@お腹いっぱい。:2015/05/02(土) 02:26:29.55 ID:N14lG4qZ0
- >>373
まず、ペイントを全画面にして、クリックしたら点を描けるようにして
BTN(LEFT, CLICK, x , y , 100)
が動作しているか確認
次に、
ifb CHKIMG("ファイル名.拡張子")
print "見つけた"
endif
で、CHKIMG("ファイル名.拡張子")が動作しているか確認
- 375 :名無しさん@お腹いっぱい。:2015/05/02(土) 05:18:48.08 ID:sb1MdTom0
- >>373
エスパー的指摘なので間違ってたらすまん
画像はBmp形式しか認識しません
その点は大丈夫ですか?
- 376 :名無しさん@お腹いっぱい。:2015/05/02(土) 06:53:30.42 ID:4FNBTSJm0
- >>374
今出先で試せませんが帰ったら試してみます。
2つめも原因がわかるならお願いします。
>>375
そこは問題無いです。
- 377 :名無しさん@お腹いっぱい。:2015/05/02(土) 08:06:44.24 ID:ZnxdJHaC0
- 画像認識が正しく動作しているか確認するなら
ELSE つかってどっちに流れているか確認した方がいい
後、クリックは相手次第な所があるから
相手の反応が悪い場合はDOWNして一定時間ウェイトを入れてからUPする必要があるケースもあるし
更に相手に対自動操作が施されている場合は
その座標までマウスを連続的に移動させないといけないケースもある
2つめは高レベルでは記録できないケースなんでしょう
低レベルで記録してみる
標準コントロールを使用していない対自動操作されている可能性・・・ゲームかな
- 378 :名無しさん@お腹いっぱい。:2015/05/02(土) 09:05:43.01 ID:onf4uhRI0
- >>376
後半
記録したスクリプトをセーブして、中身のテキストをうp
- 379 :名無しさん@お腹いっぱい。:2015/05/02(土) 10:30:01.10 ID:s0fv0qrW0
- どうせ対策されてるゲームとかでしょ
- 380 :名無しさん@お腹いっぱい。:2015/05/03(日) 16:41:08.84 ID:zcejMfJO0
- 質問
GetKeyState( VK_0〜VK_9 )がテンキーに反応しない。
テンキーを認識させる方法を教えてください。
- 381 :名無しさん@お腹いっぱい。:2015/05/03(日) 16:45:44.46 ID:JFWRxiYM0
- 予約語一覧にある
- 382 :名無しさん@お腹いっぱい。:2015/05/03(日) 17:11:23.49 ID:zcejMfJO0
- >>381
テンキュー!VK_NUMPADか。見落としてた。
- 383 :名無しさん@お腹いっぱい。:2015/05/03(日) 23:09:05.89 ID:iNx5MiAD0
- ソートと配列について教えて下さい。ヘルプで配列を検索しても理解できませんでした。
testフォルダには
「赤-青-20150503_195501.txt」 「薄紅-白桃-20150503_200144.txt」
のようなテキストファイルが大量にあり、
それらのファイル名をいくつかの方法で
list.txtに列挙したいと考えております。
まず試行錯誤して以下のように書いてみました。
- 384 :名無しさん@お腹いっぱい。:2015/05/03(日) 23:09:37.93 ID:iNx5MiAD0
- DIR =".\test"
URL ="http://localhost/"
file = "list.txt"
ID = FOPEN(file,F_WRITE8)
NUM = GETDIR(DIR)
for A = 0 to (NUM-1)
ファイル名 = GETDIR_FILES[A]
年 = COPY(ファイル名,POS("-",ファイル名,2)+1,4)//2015の部分
月 = COPY(ファイル名,POS("-",ファイル名,2)+5,2)//05の部分
日 = COPY(ファイル名,POS("-",ファイル名,2)+7,2)//03の部分 同様に時分秒も可
先攻 = COPY(ファイル名,1,POS("-",ファイル名,1)-1)//赤や薄紅の取得
後攻 = COPY(ファイル名,POS("-",ファイル名,1)+1,POS("-",ファイル名,2)-POS("-",ファイル名,1)-1)//青や白桃の取得
年月日 = 年+"/"+月+"/"+日
開始日 = "開始日は"+年月日
ファイル名=URL+GETDIR_FILES[A]
print 開始日
print ファイル名
print 先攻+後攻
//リストへの書き込み
FPUT(ID,開始日 )//
FPUT(ID,ファイル名 )//
NEXT
FCLOSE(ID)
sleep(19)
このスクリプトでとりあえずファイル名のあいうえお順(文字コード順??)で
列挙ができたのですが、列挙する際並び替えしたいのです。
ソート?の方法が理解できないので、教えてください。
色々な条件で並び替えする予定では有りますが、(”後攻”の文字コード順とか、或いはファイルの中身のX行目を参照したり)
まず基本的と思われる、年月日でのソートを教えていただけますでしょうか。
- 385 :名無しさん@お腹いっぱい。:2015/05/04(月) 00:20:23.35 ID:WM9pP7Em0
- そこまでいくとUWSCでやる処理じゃないと思うけど
宣言時にHASH_SORTを指定した連想配列に、年月日をキーにしてファイル名を代入すればいいかと
年月日かぶりの時の処理は考えてね
- 386 :名無しさん@お腹いっぱい。:2015/05/04(月) 01:21:07.50 ID:POSm0sDu0
- よくわからんけどこんでいいの?
Dim DIR = "D:\MyDoc\Desktop\新しいフォルダー"
Dim File = "list.txt"
Dim 年[0]; Dim 月[0]; Dim 日[0]; Dim 時[0]
Dim 分[0]; Dim 秒[0]; Dim 先[0]; Dim 後[0]
NUM = GETDIR(DIR)
ReSize(年, NUM); ReSize(月, NUM); ReSize(日, NUM); ReSize(時, NUM)
ReSize(分, NUM); ReSize(秒, NUM); ReSize(先, NUM); ReSize(後, NUM)
For A = 0 to NUM -1
Dim ファイル = GETDIR_FILES[A]
年[A] = COPY(ファイル, POS("-",ファイル,2)+1, 4)
月[A] = COPY(ファイル, POS("-",ファイル,2)+5, 2)
日[A] = COPY(ファイル, POS("-",ファイル,2)+7, 2)
時[A] = COPY(ファイル, POS("_",ファイル,1)+1, 2)
分[A] = COPY(ファイル, POS("_",ファイル,1)+3, 2)
秒[A] = COPY(ファイル, POS("_",ファイル,1)+5, 2)
先[A] = COPY(ファイル, 1, POS("-",ファイル,1) -1)
後[A] = COPY(ファイル, POS("-",ファイル,1)+1, POS("-",ファイル,2)-POS("-",ファイル,1)-1)
Next
//続く
- 387 :名無しさん@お腹いっぱい。:2015/05/04(月) 01:21:38.10 ID:POSm0sDu0
- //続いた
Fukidasi("ソート順 [N]年 [G]月 [H]日 [J]時 [F]分 [B]秒 [P]先 [S]後 [ESC]終了")
Repeat
Ifb GetKeyState(VK_N)
QSORT(年, QSRT_A, 月,日,時,分,秒,先,後); Break
ElseIf GetKeyState(VK_G)
QSORT(月, QSRT_A, 年,日,時,分,秒,先,後); Break
ElseIf GetKeyState(VK_H)
QSORT(日, QSRT_A, 年,月,時,分,秒,先,後); Break
ElseIf GetKeyState(VK_J)
QSORT(時, QSRT_A, 年,月,日,分,秒,先,後); Break
ElseIf GetKeyState(VK_F)
QSORT(分, QSRT_A, 年,月,日,時,秒,先,後); Break
ElseIf GetKeyState(VK_B)
QSORT(秒, QSRT_A, 年,月,日,時,分,先,後); Break
ElseIf GetKeyState(VK_P)
QSORT(先, QSRT_A, 年,月,日,時,分,秒,後); Break
ElseIf GetKeyState(VK_S)
QSORT(後, QSRT_A, 年,月,日,時,分,秒,先); Break
EndIf
Sleep(0.1)
Until GetKeyState(VK_ESC)
FID = FOpen(File, F_WRITE8)
For A = 0 to NUM -1
FPut(FID, 先[A]+"-"+後[A]+"-"+年[A]+月[A]+日[A]+"_"+時[A]+分[A]+秒[A]+".txt")
Next
FClose(FID)
- 388 :名無しさん@お腹いっぱい。:2015/05/04(月) 16:59:29.42 ID:1tvpD3kK0
- バッチファイルでファイル名一覧をテキストで取得して、Excelで並び替えた方が汎用的なような…
- 389 :名無しさん@お腹いっぱい。:2015/05/04(月) 17:09:45.24 ID:NHByfOcj0
- 次の処理に使う為にテキストファイルの方が都合がいいケースも有るだろうし
その辺は本人次第による
- 390 :名無しさん@お腹いっぱい。:2015/05/04(月) 19:04:39.82 ID:f8nhMwc80
- あたしならバッチのFor文のヘルプをじっくり読むね
- 391 :名無しさん@お腹いっぱい。:2015/05/04(月) 23:20:33.72 ID:nY4sIpEz0
- 質問です。
001.bmpか002.bmpが一致した場合クリックとしたいのですが、以下の処理にした場合、
002.bmpが一致した場合は正常にクリックされる(正常に座標が取得できる)のですが、
001.bmpが一致した場合は座標が
X座標:-999999
Y座標:-999999(print出力のログファイルより)
となってしまいます。
また、001.bmpと002.bmpを逆で書いた場合は、002.bmpの座標がそれぞれ-999999となってしまいます。
*****
IF CHKIMG("001.bmp") OR CHKIMG("002.bmp") THEN //画像一致で実行
print G_IMG_X
print G_IMG_Y
BTN(LEFT)
ELSE
print "no"
ENDIF
*****
- 392 :名無しさん@お腹いっぱい。:2015/05/04(月) 23:21:12.27 ID:nY4sIpEz0
- (続き)
or条件の前半に書いたCHKIMGの座標が取得できないようですが、
うまく座標を取得する方法はあるでしょうか。
↓のようにELSEIFで処理を分ければ動くのですが、出来れば1行で書きたいと思った次第です。
使用バージョンは Ver5.1.1 Pro です。
*****
IFB (CHKIMG("choose_001.bmp")=TRUE) THEN //画像一致で実行
BTN(LEFT)
ELSEIF (CHKIMG("choose_002.bmp")=TRUE) THEN //画像一致で実行
BTN(LEFT)
ELSE
print "no"
ENDIF
*****
- 393 :名無しさん@お腹いっぱい。:2015/05/04(月) 23:50:40.80 ID:NHByfOcj0
- 特殊変数を共有しているので無理
素直に分けなさい
- 394 :名無しさん@お腹いっぱい。:2015/05/05(火) 00:22:59.32 ID:VvVhJAr50
- option shortcircuit
これいれてないだけじゃないの?
- 395 :名無しさん@お腹いっぱい。:2015/05/05(火) 00:49:12.39 ID:4fpjdasx0
- >>393-394
レスありがとうございます。
短縮評価というのがあるのですね、勉強になりました。
おかげさまで実現することができました、どうもありがとうございます!
- 396 :名無しさん@お腹いっぱい。:2015/05/05(火) 09:48:03.69 ID:t379n4Zi0
- >>394
いいこと教えてもらった
言語仕様かと思って諦めてたわ
むしろ短縮評価をデフォにして欲しいくらいだな
- 397 :名無しさん@お腹いっぱい。:2015/05/05(火) 12:15:50.95 ID:qn/kIA8j0
- そんな紛らわしいコードは書かないほうがいいと思うのだが・・・
- 398 :名無しさん@お腹いっぱい。:2015/05/05(火) 16:56:57.37 ID:d+/e+6EX0
- じゃぁどんなのが紛らわしくないってんだYO(・3・)
その辺優しく教えろYO
- 399 :名無しさん@お腹いっぱい。:2015/05/05(火) 19:40:24.06 ID:iRlC9s5c0
- resObj = chkimg("a.bmp")
if resObj.exists()
x = resObj.getX()
y = resObj.getY()
こんな感じで使えれば余計なこと考えなくて自然なんだけどな
- 400 :383:2015/05/05(火) 22:54:10.53 ID:TCyoWXwj0
- 383と384で質問したものです。皆様レスありがとうございます。
>>385
UWSCでなければPHPとかRUBYとか?
あとの方もレスくれましたが、バッチ処理を途中かますのがスマートなのでしょうか。
どちらにせよ配列の概念をしっかり理解できないとだめですね。
>>386
ありがとうございます。
後ほど試してみて、弄くりまわしてみます!ForNext文でファイル名の構成をすべて配列に代入し…
>>387
RepeatUntil文のところでキー待ち処理でソートしてるのですね…
しかし配列の概念が理解できないからか、なぜこのスクリプトですべての配列(キー配列以外の配列)が同時にソートされるのかわかりません(配列が判る人からすると 何言ってんだこいつ状態…?)
これをヒントに色々やってみます。
>>388
CSVにして、excelのテーブル機能とか使えばいろんなことができますね…。
ファイルのX行目を参照して、なんてのも別途>>386の方法で配列として取得しておけばいいことですし(ファイル名には入れないとしても)。
>>389
おっしゃるとおりテキストファイルでやりたいことがありました。
>>390
バッチ処理も配列も自分にとってはなかなか難しいですね。
今後勉強していきたいと思います。
- 401 :名無しさん@お腹いっぱい。:2015/05/05(火) 23:10:23.24 ID:STTevHR60
- 内部的にEXCELな感じでしょうかね
配列A、配列B、配列C、配列D があって、データ部はそれぞれ縦列で
A B C D
11 aa あ rte
12 vb え u5f
13 hd え 4ds
15 ke ん g5d
16 og う ew3
となってて
こんな感じのEXCELでソートをBで行うとまとめてACDも追従しますよね
この場合の関数が QSORT(配列B, QSRT_A, 配列A, 配列C, 配列D) となる訳です
- 402 :名無しさん@お腹いっぱい。:2015/05/06(水) 06:03:33.06 ID:A1LDEOba0
- str_n = 2500
gettime()
str = "" + G_TIME_HH + G_TIME_NN
if str >= str_n
print str_n
endif
○○時まで動作させるというものを組みましたが、うまく動作しなかったので上記のようにしてテストをしていました
strは0000~2359の範囲までにしかならないはずなのになぜか上記のまま動作させるとprintされてしまいました
次にstr = "" + G_TIME_HH2 + G_TIME_NN2とすると思ったように動作しました
例えば6時10分を表す場合には610と0610の表し方の違いになりますが、前者だと2500より大きいと判定され後者だと小さいと判定されたようです
これはどういうことなのでしょうか
- 403 :名無しさん@お腹いっぱい。:2015/05/06(水) 08:14:04.52 ID:zFCy2m+P0
- >>402
文字列の比較になって先頭から比べて2より6のが大きいから
- 404 :名無しさん@お腹いっぱい。:2015/05/06(水) 08:19:22.33 ID:kulMuT5p0
- 変数が文字列型になのか数値型なのか
- 405 :名無しさん@お腹いっぱい。:2015/05/06(水) 08:35:39.31 ID:A1LDEOba0
- >>403
なるほどありがとうございます
下一桁から読まれるんじゃないんですね
- 406 :名無しさん@お腹いっぱい。:2015/05/06(水) 08:55:49.69 ID:jQbs1+K90
- 数値として大小比較をしたいのならval関数な
if val("2500") > val("610") then
msgbox("2500が大きい") //こっち通る
else
msgbox("610が大きい")
endif
if "2500" > "610" then
msgbox("2500が大きい")
else
msgbox("610が大きい") //こっち通る
endif
- 407 :名無しさん@お腹いっぱい。:2015/05/06(水) 12:25:21.85 ID:I/ZvQy1N0
- ファイル名を自在に変更したいなら Flexible Renamer
これ「こんなソフトありませんか」の常連。
正規表現と合わせて使うと真の最強だから困る。
- 408 :名無しさん@お腹いっぱい。:2015/05/06(水) 12:32:43.76 ID:I/ZvQy1N0
- >393
特殊変数に触るときは目的に応じた関数名の自作関数でラッピングして使うといいよ
PROCEDURE getImgXY(imgBmpName, VAR X, VAR Y)
画像をクリックしたいなら clickImg を自作するのが定番
関数化すれば、TRYでエラー処理して自動操作中断しないようにしたり、
フォルダ名を関数側に持たせて記述を短くしたり、
便利で読みやすいことが沢山出てくるし
- 409 :名無しさん@お腹いっぱい。:2015/05/06(水) 16:09:53.31 ID:72Vanucp0
- chkimgの色幅の指定について質問させてください。
24ビットカラーのbmpで保存した文字の画像を、あらゆる文字色において探索させたいのですが(#000000〜#FFFFFF)、持たせる色幅は「RGB各色に対して8bit」で正しいのでしょうか?
また、その時1pxの透過色を指定していた場合、どうなるんでしょうか?
- 410 :名無しさん@お腹いっぱい。:2015/05/07(木) 02:08:08.49 ID:ybua1Qzf0
- >>406
今更だけどありがとう
- 411 :名無しさん@お腹いっぱい。:2015/05/07(木) 18:14:43.24 ID:36ngVs2G0
- 前スレで配列サイズ取得にRESIZEとLENGTHどちらを使うべきかという話が出ていた。
俺はLENGTHで配列が取得できるようになる前からUWSC使っていたのでRESIZEでも
いいじゃないかと考えていたが、可読性などとは全く異なる理由で、RESIZEによる
配列サイズ取得を今後辞めることにした。
ついでに関数の戻り値にSAFEARRAYを使うことも辞めた。
その考えに至ったテストコードを載せておく。
- 412 :名無しさん@お腹いっぱい。:2015/05/07(木) 18:17:18.48 ID:36ngVs2G0
- testCsv1="100,101,102,104,108"
testCsv2=123; testCsv3=EMPTY; testCsv4=NULL; testCsv4=NOTHING
testCsv5=CreateOLEObj("InternetExplorer.Application")
DIM testCsv6
testCsv7=SAFEARRAY(0, 2)
FOR vidx=1 TO 7; PRINT; PRINT "TEST No."+vidx; testSplit(EVAL("testCsv"+vidx)); NEXT
PROCEDURE testSplit(testCsv)
TRY
PRINT "test data : " + testCSV
EXCEPT
PRINT "test data is not printable."
ENDTRY
TRY
testArray =SPLIT(testCsv, ",")
EXCEPT
PRINT "SPLIT NG"; testArray =SPLIT(testCsv, ","); EXIT
ENDTRY
PRINT "SPLIT o.k. Array length result="+LENGTH(testArray)+" ( RESIZE result="+RESIZE(testArray)+" )"
IFB LENGTH(testArray) < 1 THEN
PRINT "SPLIT result is not array."; EXIT
ELSE
FOR idx=0 TO RESIZE(testArray)
PRINT " array["+idx+"]="+testArray[idx]
NEXT
ENDIF
PRINT "test end."
FEND
- 413 :名無しさん@お腹いっぱい。:2015/05/07(木) 18:40:45.43 ID:0B5tP8ol0
- で、何が問題なの?
SAFEARRAYは構造体みたいに使ってポリモーフィズムを実現できる型として重宝してるよ
- 414 :名無しさん@お腹いっぱい。:2015/05/07(木) 19:05:53.09 ID:kOFrsE6M0
- SPLITは文字列を配列にする関数だからJOINしろと思う
色々な値が入る可能性のある関数なら最初に引数チェックしろと思う
配列じゃないなら-1なんでそれで判断してJOINしてやれば全て動くしなぁ
- 415 :名無しさん@お腹いっぱい。:2015/05/07(木) 19:06:54.36 ID:kOFrsE6M0
- あ、-1なのはRESIZEの戻り値ね
そういう意味ではこういった用途の場合はLENGTHだと文字数になるので使えない
- 416 :名無しさん@お腹いっぱい。:2015/05/07(木) 19:19:19.12 ID:kOFrsE6M0
- あー、でも途中のデフォルト参照するケースが駄目になるね
ちゃんとVARTYPEした対処した方がいい
これもコーディング論になってしまうけれど
例外はエラーからの復帰処理で正常系の判断処理には使わない方が良いかなと
- 417 :名無しさん@お腹いっぱい。:2015/05/07(木) 19:44:34.12 ID:oIqnKeh+0
- Resizeの何がダメなのかわからん
SafeArray押しなのもまるで分らん
使い勝手というかデータ渡し合いするならSafeArrayだけど
処理速度ならResizeや単純な宣言配列のがうんと早い
Resize > Length だし
Dim Array[] >>>>>>> SafeSrray(0,0) だわ
上にあるようなファイル名取り込んでソートしなおすとかは絶対宣言した方が早い
- 418 :sage:2015/05/07(木) 21:17:42.38 ID:j+BelTnl0
- すいません初心者です
While True
KBDA()
KBDB()
Wend
Procedure KBDA()
KBD(VK_A,CLICK)
SLEEP(5)
Fend
Procedure KBDB()
KBD(VK_B,CLICK)
SLEEP(10)
Fend
KBDA()が実行されたあとKBDB()が開始されるのですが
これを、KBDA()とKBDB()を同時にスタートさせるにはどうすればよいのでしょうか?
for-nextを使ってやっていたんですが、ボタンの数が多くなってくると出来ません
- 419 :名無しさん@お腹いっぱい。:2015/05/07(木) 21:30:45.17 ID:kOFrsE6M0
- 本当の意味で同時に処理するのはイベント駆動のWindowsでは無理
CLICKでやろうとするから無理が出る
DOWNとUPに分けてABが同時にDOWNになるタイミングを作った後でUPしたら良い
- 420 :名無しさん@お腹いっぱい。:2015/05/07(木) 22:13:39.16 ID:j+BelTnl0
- >>419
それでやってみます
アドバイスありがとうございました
- 421 :名無しさん@お腹いっぱい。:2015/05/07(木) 23:59:53.31 ID:gEl3Corv0
- >testCsv4=NULL; testCsv4=NOTHING
まぎらわしい書き方をするから、こんな事やっちゃうんだろ
無意味な;は糞
- 422 :名無しさん@お腹いっぱい。:2015/05/08(金) 00:07:33.89 ID:jcQWG3E10
- >>417
safearray押しではないけど、uwscに速度を求めるのは間違っていると思う
- 423 :名無しさん@お腹いっぱい。:2015/05/08(金) 05:46:16.80 ID:UKJMttxu0
- 求めてなくても、同じ効果で速度の差がはっきりしてるなら早い方選ぶのが普通じゃないの?
- 424 :名無しさん@お腹いっぱい。:2015/05/08(金) 06:09:34.64 ID:Vy8D3J360
- 求めてないのなら、安全性とかソースの可読性とかそういうのを優先するよ。
- 425 :名無しさん@お腹いっぱい。:2015/05/08(金) 06:36:18.86 ID:UKJMttxu0
- resizeって危険なの?
- 426 :名無しさん@お腹いっぱい。:2015/05/08(金) 07:55:07.35 ID:ZRJ8LIgC0
- 質問です
call test.uws
Dim A,B
pic("D:\images\","test.jpg",A,B)//画像の縦横を取得
sfh(100,200,A,B)
<test.uws>
Procedure pic(a_path,a_name,Var a_Width,Var a_Height)
Dim Path_Dir = a_path
Dim FileName = a_name
Dim Width, Height
Dim Shell = CreateOleObj("Shell.Application")
Dim NS = Shell.NameSpace(Path_Dir)
Dim NS_Items = NS.Items
Dim NS_Item = NS_Items.Item(FileName)
Dim a_Str = NS.GetDetailsOf(NS_Item, 31)
a_Width = Trim(Token("x", a_Str))
a_Height = Trim(Token("x", a_Str))
Fend
procedure sfh(x,y,i,j)
x = x + random(i)
y = y + random(j)
print x
print y
fend
これを実行すると
定義が間違っています
test.uws 19行目: X = X + RANDOM(I)
となってしまいます。どうしたらいいですか?
やりたいことは、「画像の縦横のピクセル数」以下の乱数をある値に足すことです。アドレスお願い致します。
- 427 :名無しさん@お腹いっぱい。:2015/05/08(金) 08:14:35.71 ID:9f3Vt5H+0
- Varが付いてないから変更出来ないだけじゃないの?
- 428 :名無しさん@お腹いっぱい。:2015/05/08(金) 10:12:19.88 ID:kMHlHwI60
- msgbox(A)とか入れて見りゃすぐわかる気がするんだが
多分A・Bには文字列が入ってる
- 429 :名無しさん@お腹いっぱい。:2015/05/08(金) 12:28:16.24 ID:uACYXt1H0
- >>426
2ch.s cのほうに答え書いてある
制御文字が原因
- 430 :名無しさん@お腹いっぱい。:2015/05/08(金) 12:31:32.67 ID:pk4bmMyb0
- >>428
ありがとうございます!!
VAL(A),VAL(B)にしたらできました!!
- 431 :名無しさん@お腹いっぱい。:2015/05/08(金) 12:35:00.28 ID:pk4bmMyb0
- >>429
ごめんなさい!!気づきませんでした…
- 432 :名無しさん@お腹いっぱい。:2015/05/08(金) 12:54:57.17 ID:s8RLZ3fW0
- 472 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/05/08(金) 08:46:00.34 ID:vrTT6NwFM
>>463;圧縮のためだろ;あれから;なくしたら改行が多すぎて投稿できないぞこのスレだと
473 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/05/08(金) 08:48:38.84 ID:vrTT6NwFM
それより>>454はどうなのかな?;>>461が言う実行結果と異なってるようだがバージョンや環境の違いか?;TRYが利くエラーと効かないエラーの違いも気になる。
474 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/05/08(金) 08:54:53.52 ID:vrTT6NwFM
>>470
19行目の直前でプリントして変数の中身確認してみ?
Iの中身が空っぽだぞ多分>>451の2行目みたいな変な値になってる 👀
Rock54: Caution(BBR-MD5:405b7f1af0f5a85b432d79fa769e9aeb)
- 433 :名無しさん@お腹いっぱい。:2015/05/08(金) 18:51:27.05 ID:CsG9StKG0
- 465 :名無しさん@お腹いっぱい。:2015/05/08(金) 00:50:15.30 ID:B65QIiuAJ[1/2]
>>462
iやjは普通の文字列じゃなくUNICODE文字列なのが原因
バグか仕様かは知らないがrandom関数は数値かANSI文字列しか受け付けない
val関数はUNICODEでも数値に変換できるので
x = x + random(val(i))
とでもすればいけるだろう
466 :名無しさん@お腹いっぱい。:2015/05/08(金) 01:18:30.50 ID:B65QIiuAJ[2/2]
あ、ごめん嘘ついた
iの先頭とjの末尾に見えない制御文字的なものがついてる
Dim a_Str = NS.GetDetailsOf(NS_Item, 31)
msgbox(vartype(a_Str, var_astr))
この制御文字はANSIに変換できないので?になって見えるようになる
msgbox(length(a_Str))
length関数でも文字数が合わないので分かるはず
どちらにしろval関数で削られるのでval関数を使えばいい
- 434 :名無しさん@お腹いっぱい。:2015/05/08(金) 19:05:39.45 ID:f8iSJDTU0
- わざわざコッチに貼るな
- 435 :名無しさん@お腹いっぱい。:2015/05/09(土) 02:09:13.25 ID:Wj4o5nTl0
- dim normalStr="10"
msgbox(normalStr) // 10
msgbox(random(normalStr)) // 10未満の乱数
dim charArray[]=$202a, $31, $30, $202c
dim errorStr=""
for char in charArray
errorStr = errorStr + chr(char)
next
msgbox(errorStr) // 10のように見える
msgbox(random(errorStr)) // エラーになる
知らない人は悩むだろうな
- 436 :名無しさん@お腹いっぱい。:2015/05/09(土) 06:51:53.03 ID:lOeahwwg0
- 最近uwscいじり始めました
CHKIMGでALL_IMG_X[]、ALL_IMG_Y[]に格納されるのは最大6個まで?
増やせないのかな?
- 437 :名無しさん@お腹いっぱい。:2015/05/09(土) 09:50:39.26 ID:VKqe5NAJ0
- >>436
最大4096個まで
6個しかないってことは6個しか画像が見つからなかったってことだ
- 438 :名無しさん@お腹いっぱい。:2015/05/10(日) 12:17:33.84 ID:V3eUIZ5/0
- SCに書くアホなんているんだな…
- 439 :名無しさん@お腹いっぱい。:2015/05/10(日) 15:04:14.23 ID:6YUb43Cc0
- 住み分けている人は問題ないさ
- 440 :名無しさん@お腹いっぱい。:2015/05/10(日) 23:28:25.09 ID:KG0xar9h0
- これもscか
461 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/05/07(木) 23:09:44.89 ID:iddjenAQ0
>>451
これ実行してみた?
要素数1の時、LENGTHは1,RESIZEの戻り値は0
非配列の時、LENGTHは0になるのに、RESIZEの戻り値は0
要素数1なのか非配列なのかRESIZEの戻り値では判断できないってことでしょ。
あと予期せず文字列を想定した処理にSAFEARRAYが混ざってくると、
TRYでトラップ不可能なSyntaxErrorが出てキモい。
俺も同じだった。
- 441 :名無しさん@お腹いっぱい。:2015/05/11(月) 00:33:31.53 ID:jVchxD0Z0
- こっちに書かないでお前もあっちに書けよ
- 442 :名無しさん@お腹いっぱい。:2015/05/13(水) 21:24:08.38 ID:9cIxCj9O0
- UWSCの範疇じゃないかもしれんがプログラムに疎いんで聞いてくれ。
複数の変数名ごとの処理を順繰りに変えながら使ってるんだが
ifb tabemono = "mikan"
tabemono = "ringo"
elseif tabemono = "ringo"
tabemono = "momo"
elseif tabemono = "ringo"
tabemono = "momo"
//実際にはelseifがまだまだある
else
tabemono = "mikan" //←走り終わったら最初に戻してる
endif
もっとスマートな方法教えてくれ
(1個減らすとその前の行も修正が必要なんで)
- 443 :名無しさん@お腹いっぱい。:2015/05/13(水) 21:26:08.01 ID:7VzdG4CX0
- for文と配列使いなさい
- 444 :名無しさん@お腹いっぱい。:2015/05/13(水) 21:42:08.47 ID:+c1y9vIl0
- 変数のスライド以外は共通ならコレで1ループ
繰り返すなら FOR IN NEXT を WHILE 等でループさせる
DIM list[] = "mikan","ringo","momo"
FOR item IN list
print item
NEXT
- 445 :名無しさん@お腹いっぱい。:2015/05/13(水) 22:39:45.77 ID:JmtHJeH10
- >>442
DIM list[max][2]
list[0][0] = "mikan"
list[0][1] = "ringo"
list[1][0] = "ringo"
list[1][1] = "momo"
.
.
for i=0 to max
ifb tabemono=list[i][0] then
tabemono=list[i][1]
next
配列はcsvファイルにして最初に読み込めば追加修正も楽だと思うよ。
- 446 :名無しさん@お腹いっぱい。:2015/05/14(木) 08:31:27.96 ID:UlftZKXm0
- それbreakでも入れないと結果が違ってくるんじゃないか?
質問者が何をやりたいかは分からないけど
- 447 :名無しさん@お腹いっぱい。:2015/05/14(木) 09:24:07.79 ID:yaIK/1e80
- ループ回すより連想配列使った方がスマート
- 448 :名無しさん@お腹いっぱい。:2015/05/14(木) 09:43:31.94 ID:4vjcebLp0
- 配列は使い道がわからんわ
- 449 :名無しさん@お腹いっぱい。:2015/05/14(木) 09:46:28.32 ID:BoW7Ss/B0
- 基礎を学んでないと配列は使わない人が多そう
uwscなんて知識無しの人でも作るもんだから
- 450 :名無しさん@お腹いっぱい。:2015/05/15(金) 15:09:06.18 ID:uEjjwe7w0
- ワイも全然分からんから
WHILE TRUE
WEND
でグルグル回してるわ
- 451 :名無しさん@お腹いっぱい。:2015/05/15(金) 18:45:08.69 ID:cO+XlT030
- ようは、動けばいいんだよね。
理解しないで適当にコピペでも、動かせてるならそれでいい訳で
- 452 :名無しさん@お腹いっぱい。:2015/05/15(金) 20:48:28.13 ID:BFc4oXXZ0
- だめだろ。冗長なコード書いてる奴は
- 453 :名無しさん@お腹いっぱい。:2015/05/15(金) 20:53:49.34 ID:LD79vb4o0
- 仕事なら兎も角当人の責任で私的に使っている間はどうでも良い話
- 454 :名無しさん@お腹いっぱい。:2015/05/15(金) 21:04:53.18 ID:/AZ0XoPh0
- 冗長なコードが駄目なのはわかるが、冗長なコード書いてる奴が駄目かと言われると一概には言えんわな
コードを書いて走らせるのはあくまで手段だ、目的を見失ってまで磨きをかけるものじゃない
- 455 :名無しさん@お腹いっぱい。:2015/05/15(金) 22:09:35.95 ID:kJkWORh/0
- 連想配列もいいけどハードコーディングになりやすい
配列から要素を検索しインデックスを返すsearchArray関数を自作し、
CSV配列から生成した配列から現在の要素を検索して取得した
インデックスをインクリメントすることで希望の動きが実装できる。
が、配列に同じ要素が複数あると希望通りに動かない。(IF連鎖でも同じだが)
要件としてそこをクリアしたい場合、そもそもの実装として、
現在のインデックスを保持する仕様に変更した方がいいだろう。
- 456 :名無しさん@お腹いっぱい。:2015/05/15(金) 23:33:00.52 ID:M6mRhlAE0
- もう英文だな
- 457 :名無しさん@お腹いっぱい。:2015/05/15(金) 23:47:19.19 ID:i6wiJ6QU0
- 自分よがりなコードやトリッキーなコードよりは冗長なコードのほうがいいわ
- 458 :名無しさん@お腹いっぱい。:2015/05/15(金) 23:58:28.57 ID:cwpOruK/0
- キーが一意となる事が確定している状況であれば
通常の配列を使うなんて意味ない
わざわざ配列を検索するためのループをコーディングする必要が出てくる
行数も検索時間も全部無駄
できる大人は積極的に連想配列を使いますね
- 459 :名無しさん@お腹いっぱい。:2015/05/16(土) 01:21:50.65 ID:kYQf2te90
- 冗長なコードはバグの原因だしメンテナンス性に欠ける
- 460 :名無しさん@お腹いっぱい。:2015/05/16(土) 01:58:20.22 ID:hI7/eQi30
- 自分よがりでトリッキーなコードでも速かったらそっち使うじゃん?
最速のコードってトリッキーなんだよな
- 461 :名無しさん@お腹いっぱい。:2015/05/16(土) 03:35:37.82 ID:5YLxrpDQ0
- だからなぜuwscに速度を求めるのか・・・
- 462 :名無しさん@お腹いっぱい。:2015/05/16(土) 04:00:13.96 ID:kYQf2te90
- UWSCはプログラミング始めるとっかかりとして悪くないと思うわ
- 463 :名無しさん@お腹いっぱい。:2015/05/16(土) 06:59:43.23 ID:jzBJrgnq0
- プログラムで固定長の配列は実際使いにくいよな
連想配列か可変長配列が圧倒的に便利
- 464 :名無しさん@お腹いっぱい。:2015/05/16(土) 08:45:44.45 ID:RgS0dIJ+0
- 可読性を重視するか速度を重視するかなんて書く人によるだろ
自分と意見が違うからって無闇に叩く奴はハゲ
- 465 :名無しさん@お腹いっぱい。:2015/05/16(土) 09:55:58.16 ID:PHxUHjwY0
- public key[1000]
public value[1000]
key[0]="apple"; value[0]="りんご";
//・・・
key[999]="banana"; value[999]="バナナ";
print searchArray("apple")
print searchArray("banana")
function searchArray(name)
for i=0 to length(key)-1
if name=key[i] then
result = value[i]
exit
endif
next
fend
- 466 :名無しさん@お腹いっぱい。:2015/05/16(土) 09:57:59.40 ID:PHxUHjwY0
- hashtbl hash
hash["apple"]="りんご"
//・・・
hash["banana"]="バナナ"
print hash["apple"]
print hash["banana"]
- 467 :名無しさん@お腹いっぱい。:2015/05/16(土) 10:01:39.61 ID:PHxUHjwY0
- searchArray?
しねばいいのに^^
- 468 :名無しさん@お腹いっぱい。:2015/05/16(土) 10:05:22.46 ID:QDThgf1Z0
- グローバル変数の初期化がうまくいかず悩んでいます。
hogeの値を 1→2→3→1→2・・・としたいのですが、1→2→3→4→5・・・となってしまいます。
DO1関数内で、hogeの値を使ってIF文を動かしたりしています。
考えているような動作にするには、どういった記述をすれば良いでしょうか、
教えて頂けるとうれしいです。よろしくお願いします。
WHILE TRUE
public hoge = 0 //関数で使う変数
loop = 0
WHILE (loop = 3) = FALSE
loop = loop + 1
hoge = hoge + 1
print "hoge" + hoge
print "loop" + loop
DO1()
WEND
WEND
- 469 :名無しさん@お腹いっぱい。:2015/05/16(土) 10:05:59.46 ID:QDThgf1Z0
- (続き)こちらがログになります。
** 出力ログ ******
hoge1
loop1
hoge2
loop2
hoge3
loop3
hoge4
loop1
(・・・以下続く)
** 理想のログ ******
hoge1
loop1
hoge2
loop2
hoge3
loop3
hoge1
loop1
(・・・以下続く)
- 470 :名無しさん@お腹いっぱい。:2015/05/16(土) 10:26:28.90 ID:pznJG80O0
- public hogeは変数宣言として最初に1度しか通らないので宣言と代入を別に記述する
- 471 :名無しさん@お腹いっぱい。:2015/05/16(土) 10:39:03.28 ID:QDThgf1Z0
- >>470
なるほどです、下で無事動作するようになりました。
public hoge = 0 //関数で使う変数
hoge = 0
loop = 0
初歩的な質問になってしまい失礼しました、どうもありがとうございます。
- 472 :名無しさん@お腹いっぱい。:2015/05/16(土) 11:12:12.76 ID:GwNDKgWN0
- ハードコーディングくらいググれよ
連想配列でもハードコーディングを避けて
CSVからのデータを格納できるけどな
0から999までハードコーディグしかも1行づつ
などというサンプルコードはもはやギャグだぞ
- 473 :名無しさん@お腹いっぱい。:2015/05/16(土) 12:13:08.13 ID:sM7ax+dX0
- リサイズ使えば配列要素なんて無限に変更できるのにそこまでして拒む理由を知りたい
DIM Array[0]
Array[Resize(Array)] = 0
Array[Resize(Array, Resize(Array)+1)] = 1
Array[Resize(Array, Resize(Array)+1)] = 2
これでええやん
[1000]とか馬鹿なの
- 474 :名無しさん@お腹いっぱい。:2015/05/16(土) 20:57:04.02 ID:ADPmpcCJ0
- きたねえコードだ
- 475 :名無しさん@お腹いっぱい。:2015/05/16(土) 21:07:10.23 ID:kYQf2te90
- ずいぶんとダサいコードを書いてるのね
- 476 :名無しさん@お腹いっぱい。:2015/05/16(土) 22:31:29.69 ID:ADPmpcCJ0
- IQ145
- 477 :名無しさん@お腹いっぱい。:2015/05/17(日) 07:17:01.08 ID:v1v0KtpL0
- こんなゴミコードを自信満々に晒せる神経を疑う
- 478 :名無しさん@お腹いっぱい。:2015/05/17(日) 09:57:22.76 ID:18wKMXDJ0
- もう分かったからご自慢のきれいなこーどでずっとオナニーしてろよ
文句だけなら誰でも言えるっつーの
- 479 :名無しさん@お腹いっぱい。:2015/05/17(日) 09:59:44.04 ID:L/VppOnQ0
- プログラムの授業で明日の天気予報を明後日に出しても仕方ないって例えでよく言われたな
昔は知らないけど今の時代数行長いだけで速さなんてそんな変わらないんだよな
- 480 :名無しさん@お腹いっぱい。:2015/05/17(日) 13:49:55.80 ID:8iRscPda0
- ちょっとした動作上の設定なんかを配列にハードコーディングして
横着する場合なんかに>>473のような書き方をしてしまう場合がある
俺の場合はC言語の++と同じ作用をする自作関数で…w
エディタ上で順番を入れ替えるのも楽
連想配列派の人は、スピード推しなのに1000要素ハードコーディングという
人間を尊重しない本末転倒なサンプルコードが敗因だな
CSVから連想配列に格納し同要素存在時の例外処理まで入れてたら勝っていたw
- 481 :名無しさん@お腹いっぱい。:2015/05/17(日) 18:14:54.91 ID:vSIeL8RL0
- コーディング論とか流用性とか気にせずに目の前の問題をアドホックに解決するってのが
UWSCのようなツールの使い道だと思うんだけどなぁ
- 482 :名無しさん@お腹いっぱい。:2015/05/17(日) 19:43:20.73 ID:oWHdgvyz0
- >>473はねぇよ。配列の初期化は普通↓こうだろ
DIM Array[] = _
0, _
1, _
2
CSVにする意味も分からねぇ。実行中に変更する必要ないんだったら↓これでいいだろ
DIM list[][2] = _
_ // key,value
"mikan","ringo", _
"ringo","mono"
- 483 :名無しさん@お腹いっぱい。:2015/05/17(日) 19:44:59.84 ID:oWHdgvyz0
- 後半コピペしたらミスった。訂正↓
DIM list[][1] = _
_ // key,value
"mikan","ringo", _
"ringo","mono"
- 484 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:05:01.57 ID:kcSkOwMN0
- ヒント:
初期化は自明な話なので、誰も初期化方法の議論はしていません
- 485 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:09:51.55 ID:oWHdgvyz0
- じゃあ何の議論してんだよ?
- 486 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:39:41.30 ID:kcSkOwMN0
- if-elseifが増えてきて効率性が落ちてきた、と思ったら配列を使えばいい
思わなければ使う必要なんてない
配列はC言語なんかにも標準で持っている極めて基礎的な仕組みで
for文なんかととても相性が良い
ただ配列は限界があって、先頭から順に1つずつ処理していくような
単純な処理しかできない
配列から特定の要素を探すsearchArrayみたいな処理を考えれば分かるけど
効率が悪いので要素数が増えれくるとどうしても遅くなる
それにUWSCの場合は要素数の追加や、不要な要素の削除などが面倒
(これは言語によって違って)
この問題はキーと値が1対1となるデータ形式では単純に回避できる
それが連想配列
そもそもの用途が異なるから配列と連想配列は比べてもあまり意味がない
って単純な話しかしてないんだけど
逆に何が分からないんだ?
- 487 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:44:13.30 ID:v1v0KtpL0
- >>483見て思い出したが、
配列の宣言の時、要素数指定の仕様がいらつくよな
何でn個必要な時にn-1を書かないといけねーんだよと毎回思うわ
- 488 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:49:21.29 ID:gmmmlVwD0
- >>486
ちと長いがまぁ同意
自分もユニークキーと値がペアの要素じゃなければ無理に連想配列使おうとは思わない
最近のバージョンで自然数ソートも追加されたから
普通の配列の利用頻度は少し上がっている位だ
- 489 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:50:31.81 ID:A/2qR/J80
- 質問者不在 乙
- 490 :名無しさん@お腹いっぱい。:2015/05/17(日) 20:55:30.33 ID:oWHdgvyz0
- >>486
それも自明だと思うけどな
俺は上でCSVを推してるやつとか変な初期化してるやつに言ったんだよ
- 491 :名無しさん@お腹いっぱい。:2015/05/17(日) 21:04:40.72 ID:vSIeL8RL0
- 連想配列だってsearchArrayみたいな処理をなるべく効率のいい方法でやってるだけで
普通の配列に比べればずっと遅い。というか、遅いからこそ普通の配列と別になってる。
- 492 :名無しさん@お腹いっぱい。:2015/05/17(日) 21:08:59.70 ID:dFk4RCMk0
- rubyの配列が使いやすすぎてuwscの配列がうんこにしか見えない
- 493 :名無しさん@お腹いっぱい。:2015/05/17(日) 21:19:17.19 ID:gmmmlVwD0
- アレはもう配列というより一般的な言語でいうリストの範疇になる
UWSCには勿論リストは無い
LINQ for UWSC とか実装したらいいのにね
- 494 :名無しさん@お腹いっぱい。:2015/05/17(日) 23:13:32.56 ID:kngJrV4f0
- >>482
配列要素が固定ならそうだよ
>473は配列がいくつあるかわからない、処理中に増える可能性がある場合
かつ、同じ要素が重複してしまう場合はこれしかないよね
もともと>465の[1000]とか宣言してるのは無駄だろうっていう話なんだろうけど
- 495 :名無しさん@お腹いっぱい。:2015/05/18(月) 00:36:12.92 ID:qDhsU4Za0
- たぶんリサイズのたびに別にメモリ確保して全コピーとかやってるだろうから
[1000]の方がずっとマシな気がしないでもない
- 496 :名無しさん@お腹いっぱい。:2015/05/18(月) 00:41:17.78 ID:AZmCHRLz0
- 必要に応じて適宜でいいでしょ
ハードコーディングしておしまいでもいいし
変更に簡単に対応するために「ほげ.UWS」と一緒に「ほげ.xlsx」を置いてもいいし
.INIでもいいし.datでもいいし
ところで変数宣言時に要素数を指定した配列をReDimで増減できたっけ?
型だけ指定して要素数は未指定じゃないと出来ないか、
または面倒な事をしなきゃいけなかったような。おやすみ
- 497 :名無しさん@お腹いっぱい。:2015/05/18(月) 01:05:40.84 ID:HjlaxIuh0
- >>496
RESIZEはSAFEARRAYも含めてなんでも出来る
>>495
そしてSAFEARRAY以外はメモリ的に連続配置されている保証はないという仕様なので
毎回全コピしているかは不明
でも1件毎に配列を広げ続けるのは流石に勿体無いと思うので
最終件数が予め分かるロジックがあるならそれを優先
無理なら追加処理の最初に+100とか+1000とか案件に応じた一定値で配列を広げる
足りなくなったらまた一定値広げるのを繰り返して最終的な件数で確定させる方が好き
- 498 :名無しさん@お腹いっぱい。:2015/05/18(月) 12:32:13.11 ID:WuOwBSqY0
- 今テストプログラム書いて再確認したが、
今でこそ>>497の通り何でもできるようだな。
昔はSafeArrayが絡むと何かとまともに動かなかった。
例えばver.4.7では、関数の引数が配列のときSafeArrayを配列として渡すことが
出来なかった。ほぼSAFEARRAY≠UWSC配列との扱いだったからな。
もちろんRESIZEにSAFEARRAY渡したら Syntax Error
当時のSAFEARRAYは、UWSCにとっては UNSAFE ARRAY だった訳。
その名残りもあって、俺の場合なんかは、
わざわざSAFEARRAYをUWSC配列に転写してから使っていた。
昔からUWSC使い倒してる人は、SAFEARRAY触りたがらない人が多いはず。
- 499 :名無しさん@お腹いっぱい。:2015/05/18(月) 12:38:34.40 ID:WuOwBSqY0
- 昔と言っても Ver4.7 は 2011/06/04 にリリースか。
たった4年前。結構驚きだわ。
- 500 :名無しさん@お腹いっぱい。:2015/05/18(月) 12:43:02.20 ID:WuOwBSqY0
- 蛇足だけどμItronみたいな組み込みOSだと、
安定性を重視して領域やオブジェクトの動的生成・変更は行わない。
(動的だと、その時に必要なスタック領域が足りるかどうか保証がないから)
上のSafeArray絡みで散々苦労した経験のせいで、
俺の場合は配列は常に想定最大要素数確保して
データ要素値にEOFの役割を持つ定数を使って管理してるな。
今はもう不要なんだろうが、
そのコードで何年も24時間回しっぱなしのコードがあるんで触ってない。
- 501 :名無しさん@お腹いっぱい。:2015/05/18(月) 13:15:44.27 ID:MH6w5v1q0
- uwscであまり複雑なことはするなってことだな
そういう用途には作られていないから
- 502 :名無しさん@お腹いっぱい。:2015/05/20(水) 11:12:35.54 ID:FuKGsM4H0
- 正直スレ全部読まずに質問して
大変申し訳ないのですが
uwscのホームページからdlできない
バージョンはとこかで入手できますか?
具体的には
uwsc pro48e を探しています。(ライセンスは購入済)
- 503 :名無しさん@お腹いっぱい。:2015/05/20(水) 12:01:57.93 ID:8Gzw0qU50
- 古いバージョンをわざわざ使う理由が判らないけど
公式で旧バージョンじゃなきゃダメな理由を伝えたら
対応してくれるんじゃないの?
- 504 :名無しさん@お腹いっぱい。:2015/05/20(水) 13:32:36.09 ID:3AVFyxf40
- >502
Wayback Machine で探したり、URL直打ちで探れば、
上に出てた4.7まではまだネット上にある模様。
- 505 :名無しさん@お腹いっぱい。:2015/05/20(水) 13:42:07.05 ID:j6BzMEKe0
- そのバージョンではexe化した時に、inputbox selectboxの上に自作アイコンが残ったんだけど、それ以降のは仕様で残らなくなった。
以前作者に無理言ってダウンロード
させてもらったんだけど、勘違いから消去してしまい復活も不能。
流石に二度は気が引けて他の手段は
無いものかと尋ねてみた次第です。
- 506 :502:2015/05/20(水) 13:47:01.56 ID:j6BzMEKe0
- >>503
>>504
ありがとうございます
url直打ちで探ってみます
- 507 :名無しさん@お腹いっぱい。:2015/05/20(水) 13:47:45.69 ID:cUcq/gGg0
- APIからinputboxの表示エリアに画像上掛けばええやん?
DEF_DLL と BilBlt でググれ
- 508 :名無しさん@お腹いっぱい。:2015/05/20(水) 13:48:43.41 ID:cUcq/gGg0
- Bitやったすまんな
- 509 :502:2015/05/20(水) 13:59:09.52 ID:j6BzMEKe0
- 連投失礼します
>>508
ありがとうございます
その方法でしのいでたんですが
やり方が悪いのか表示直後アイコンと
タイトル文字が重なってしまいあまり
うまくできませんでした。
アドバイスをもとにもう少し調べてみます。
- 510 :502:2015/05/20(水) 14:34:51.43 ID:j6BzMEKe0
- >>504
wayback machineでdl出来ました
貴重な情報に感謝します
皆様のお知恵で解決できました
以上、
お騒がせしました
- 511 :名無しさん@お腹いっぱい。:2015/05/22(金) 06:17:53.29 ID:CcUQ5B9h0
- web記録とか、これからはIEではなくEdgeになるのかな?
Edge.NAVIGATEとか?
ED.NAVIGATE?
EG.NAVIGATE?
- 512 :名無しさん@お腹いっぱい。:2015/05/22(金) 06:19:38.95 ID:CcUQ5B9h0
- どんな表記の仕方が主流になるのかな…
- 513 :名無しさん@お腹いっぱい。:2015/05/22(金) 07:14:42.17 ID:7TsRGg6k0
- オブジェクト名はてめーで決めるんだから関係ないだろ
- 514 :名無しさん@お腹いっぱい。:2015/05/22(金) 07:29:20.44 ID:hhZ70BHz0
- プレビュー使ってる人居たらもうわかるんじゃないのかな
- 515 :名無しさん@お腹いっぱい。:2015/05/22(金) 10:47:02.36 ID:6X7mVzHE0
- そもそもEdgeはCOM提供しないかもしれないな
今まで通りIE使えばいいんじゃないか
- 516 :名無しさん@お腹いっぱい。:2015/05/22(金) 12:40:49.40 ID:3w9sE7WQ0
- 現時点の情報でEdgeはVBSやActiveX対応しないって話だから
COMオブジェクトも作れないだろう
FirfoxやChromeと同じようなもんと考えていい
でもSeleniumがサポートするだろうから影響はあまりないはず
ブラウザ制御はこちらが主流になると思う
- 517 :名無しさん@お腹いっぱい。:2015/05/22(金) 14:24:05.12 ID:hu/G2q6J0
- 最新からセレクトボックスが画面右寄
せができなくなったので、調べてた
らuwsc掲示版に全く同じ症状の人みつけた。
詳しい環境書いてなかったので
原因は特定出来てないんだけ
みなさんはどう?
ぴたっと右寄せできます?
- 518 :名無しさん@お腹いっぱい。:2015/05/22(金) 16:08:45.19 ID:pgGOi+af0
- あんまり関係ない話題だけど、
プログラムの些細な変更を逐一クラウドサービスに保存できて、変更が追えるようにできないかな?
今はいちいちファイル名を別にして保存してるだけなんだけど
そういう手間って無くせないのかな
- 519 :名無しさん@お腹いっぱい。:2015/05/22(金) 16:31:51.19 ID:hhZ70BHz0
- プログラマブルなエディタなら保存先がクラウドかは兎も角
履歴バックアップを何世代まで保存するとかは標準で装備しているもんですよ
要するにエディタの仕事です
Git使う手もあるかもしれないけれど
なんだかなぁと思う
- 520 :名無しさん@お腹いっぱい。:2015/05/22(金) 17:10:57.23 ID:ewFNmIuf0
- git使いづらい
- 521 :名無しさん@お腹いっぱい。:2015/05/22(金) 17:29:26.72 ID:kOLBNfMN0
- 以下のスクリプトで関数が見つからないとエラーが出るんですか
sethotkeyからは引数つけた関数は呼べなかったりするんでしょうか
windowid=GETID(GET_ACTIVE_WIN)
while true
flag=0
flag=sethotkey(vk_f1,,"ファンクション入力(windowid)")
if flag then continue
sleep(600)
wend
procedure ファンクション入力(id)
mouseorg(id,2)
KBD(VK_F1,click,500)
fend
- 522 :名無しさん@お腹いっぱい。:2015/05/22(金) 17:49:54.90 ID:hhZ70BHz0
- 出来ません
グローバル変数使うとかで回避するのが定石かな
- 523 :名無しさん@お腹いっぱい。:2015/05/22(金) 18:09:32.15 ID:kOLBNfMN0
- ありがとうございます
- 524 :名無しさん@お腹いっぱい。:2015/05/22(金) 18:12:37.28 ID:E4xWRY5b0
- >>521
この例なら初期値扱いにしちゃえば?
試してないけど
procedure ファンクション入力(id=GETID(GET_ACTIVE_WIN))
- 525 :名無しさん@お腹いっぱい。:2015/05/22(金) 18:45:42.76 ID:YmuGzYfC0
- そもそもUWSC仕様だとスレッドも
引数・戻り値共にまともに遣り取りできず
グローバル変数しか手段がない
そのことがHELPの<スレッド生成>に書いてない
sethotkeyも動きを考えると同等の仕様だろうな
重大な仕様制限についてHELPにまともに書いてない点も含めて
- 526 :名無しさん@お腹いっぱい。:2015/05/22(金) 20:43:05.88 ID:pgGOi+af0
- >>519
そういう機能があるエディタを探せばいいのか
スレ違いな質問に答えてくれてありがとう
- 527 :名無しさん@お腹いっぱい。:2015/05/23(土) 08:59:55.17 ID:DAB6C+q+0
- サクラエディタでいいんでない?
- 528 :名無しさん@お腹いっぱい。:2015/05/23(土) 09:51:07.52 ID:fdz9T9Ew0
- eclipseみたいなコード補完やフォーマッターあったら便利だよね
- 529 :名無しさん@お腹いっぱい。:2015/05/23(土) 12:56:19.50 ID:xiFykTZl0
- ソースコード管理はDropboxとTortoiseGitを組み合わせて使えば楽なんじゃね?
使ったことないけど
「いま追加途中の処理は消したくないけど、いったんうまく動いてた頃のコードに戻したい」
とかよくあるじゃん
エディタの自動バックアップ機能だけでこれをやろうとすると大変
ファイルを手作業で退避してからタイムスタンプを頼りに欲しいバージョンを探す羽目になる
そこからバグを修正して退避させたコードをマージしたい、となるともう絶望的
Gitだとブランチ切り替えるだけ、マージもほぼ自動でやってくれる
一度試してみるといい
- 530 :名無しさん@お腹いっぱい。:2015/05/24(日) 14:27:37.29 ID:fK/MeGnH0
- public id1=GETID(GET_ACTIVE_WIN)
print status(id1,ST_PROCESS)
sleep(0.3)
KBD(VK_ALT,DOWN,30)
KBD(VK_TAB,CLICK,300)
KBD(VK_ALT,UP,300)
sleep(0.3)
public id2=GETID(GET_ACTIVE_WIN)
print status(id2,ST_PROCESS)
sleep(0.3)
このスクリプトでid1とid2に同じウィンドウIDが入る理由がわからない
ちなみにpublicを外すとそれぞれ別のウィンドウIDが入る
- 531 :名無しさん@お腹いっぱい。:2015/05/24(日) 14:34:10.18 ID:3fBbOc8N0
- それはグローバル変数は無条件に最初に実行されるからだよ
グローバル変数は宣言と初期化は別にした方が感覚的な動作順と一致するよ
- 532 :名無しさん@お腹いっぱい。:2015/05/24(日) 14:45:24.11 ID:fK/MeGnH0
- なるほどわかりましたありがとうございます
特にヘルプにはのってないように思うのですが
そういうのってプログラム界隈の常識だったりするんでしょうか・・・
- 533 :名無しさん@お腹いっぱい。:2015/05/24(日) 15:14:23.38 ID:3fBbOc8N0
- ヘルプのキーワードで PUBLIC で検索すると・・・
※ PUBLIC変数の初期化はスクリプト実行前に行われます
って書いてあるんだなぁ
因みにグローバル変数って何時でも何処でもアクセス可能な変数という意味だから
そういう意味では常識
余談だけどCALL命令も実行前に予め展開してから動作を開始するのでこれにも注意が必要
CALL先のグローバル変数や動作順が曖昧になるのでバグの温床に成るのだけれど初心者程ハマりやすい
CALL先のスクリプトは関数のみにして最初に1回だけCALLした方が良いってレスがよく付くのはこの為
でもこっちは好き好きかな
- 534 :名無しさん@お腹いっぱい。:2015/05/24(日) 15:26:28.97 ID:3fBbOc8N0
- ちょっと補足しておくと
最初の例で話をすると id1 と id2 は何時でも何処からでもアクセスされる可能性を考えて
public id1 = -1
public id2 = -1
と宣言と初期化したら GETID(GET_ACTIVE_WIN) する迄は
他の参照箇所からでも未取得だと判断できるよ
- 535 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:21:21.07 ID:qvDPXZzz0
- 初歩的な事で申し訳ないんだが
IFB CHKIMG("test.bmp,-1,x1,y1,x50,y30,,IMG_MSK_BGR4")
MSGBOX("画像認識に成功しました。")
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
endif
こんな感じで画像認識のテストをしてるんだが、画像が映ってる画面をスクロールしたりして位置がずれるだけで認識してくれなくなるんだがどうしたらいいかな
同じ画像が画面に4〜5個あるんだが画像を撮った位置の奴しか認識しないし、位置がずれればそれも駄目になってしまう
Help見て画像の大きさの範囲とか色無視とか色幅に余裕をもたせる?とかいれてやってみたんだが何か間違ってるのかな
背景も単色でどれも同じだし大きさや形も一緒に見えるんだが何で認識してくれないんだろうか
- 536 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:36:41.33 ID:CgfbemLh0
- ぶっちゃけCHKIMGの曖昧検索は使えないと思うよ
曖昧じゃなくても見つけられる検索用の画像を用意した方が良い
どうしても曖昧な検索に頼らないと駄目なら
過去スレに類似画像検索用もDLL貼ってた人居たでしょ
アレ使ったら?
- 537 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:45:38.42 ID:BPsSvuAk0
- >>535
x1,y1,x50,y30
これサーチ範囲だろ?
サーチ範囲外に画像の位置がずれたら認識しないと思うが
そういうレベルの話ではないのだろうか
- 538 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:46:51.43 ID:tqKcIqpY0
- > x1,y1,x50,y30
間違って小さな値が入っててサーチエリア外になってるとかない?
- 539 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:47:47.90 ID:yz8xoD7N0
- >>535
サーチ範囲指定がおかしい
「"」での囲い先もおかしい
4~5個の画像が厳密に一致していない
いっきに全部行おうとせずにひとつずつ確認しな
画像は全て一致しているのか、サーチ範囲は機能しているのかetc
- 540 :名無しさん@お腹いっぱい。:2015/05/25(月) 11:45:52.25 ID:zYIN4Xno0
- 画像サイズとサーチ範囲を誤解してるだろうな
- 541 :名無しさん@お腹いっぱい。:2015/05/25(月) 11:51:55.44 ID:qvDPXZzz0
- おおう、こんな早くレスつくとは思ってなかった、みんなありがとう
IFB CHKIMG("test.bmp")
MSGBOX("画像認識に成功しました。")
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
endif
最初はこれでやってて色々試してあんな感じになったんだけど色々間違っているのか
その間違いは一旦置いておいて、上記ので撮った時の座標と現在の座標がほんの少しでもずれると認識してくれない事がなんでか分からないんだよね
色無視だけ追加してやってみても駄目だしさっぱり分からん、背景無視で画像の文字に反応するように出来ないかな?背景は水色っぽくて文字は白なんだけども
やりたい事は上から下にスクロールしていって画像が出てきたらクリックってのをしたいんだけど、中々難しいねぇ
- 542 :名無しさん@お腹いっぱい。:2015/05/25(月) 12:34:01.34 ID:zYIN4Xno0
- >>541
とりあえずx1,y1,x50,y30を
0,0,2000,2000くらいにして動かしてみたら?
- 543 :名無しさん@お腹いっぱい。:2015/05/25(月) 12:49:50.53 ID:SvpDjoG90
- 間違いのせいでそうなってる可能性が高いのに、間違いを一旦置いといてどうするよ
- 544 :名無しさん@お腹いっぱい。:2015/05/25(月) 13:59:14.70 ID:qvDPXZzz0
- いや>>541ので基本チェックしてるのよ
座標とか色無視とか何にも付けない状態で画像とり直して何度もやってるんだが駄目で困ってる
位置によって微妙に色変わってんのかなぁ、画像大量に用意してやるくらいしかないかね?
- 545 :名無しさん@お腹いっぱい。:2015/05/25(月) 14:38:33.43 ID:yz8xoD7N0
- >>544
やっていることと言っていることがちんぷんかんぷん
お前さんが整理しきれてないからこちらもちんぷんかんぷん
どこまでが成功してどこから失敗したのか、何をどうしたいのか簡潔にかいたらやさしいお兄さんが教えてくれるかもね
- 546 :名無しさん@お腹いっぱい。:2015/05/25(月) 14:44:38.98 ID:abs8tZNk0
- >>544
実際に位置によって色が変わってるか確認してみた?
アウトラインはアンチエイリアスがかかることが多いから、3dotくらい削ると安定することがある
- 547 :名無しさん@お腹いっぱい。:2015/05/25(月) 14:46:48.26 ID:99MSNuhI0
- しらんがな
- 548 :名無しさん@お腹いっぱい。:2015/05/25(月) 16:02:39.09 ID:zYIN4Xno0
- testが見えるように表示
testの画像を取って保存
print chkimg("test")を実行すると結果がtrue
僅かに画面をスクロールさせる
print chkimg("test")を実行すると結果がfalse
でいいの?
これなら、>>546のように見た目分からないレベルの画像加工処理が入ってるか
サーチ対象の画像が透過してるとかだな
曖昧検索のDDL使うか、
画像を小さくしたり、peekcolorで頑張るという手もなくはない
実際のサイトや類似サイトを示せばもっとイメージできるんだが
- 549 :名無しさん@お腹いっぱい。:2015/05/25(月) 17:18:28.59 ID:wJZicumD0
- 背景色の影響が文字だか画像に影響してるんでしょ
画像を加工して透過指定すればいい
画像加工の方法は
ペイントを起動4隅を同じ色にして、透過させたい部分を同じ色で塗るだけ
勘違いしてるであろう座標指定はとりあえずなしで以下で実行
IFB CHKIMG("test.bmp,1,,,,,,IMG_MSK_BGR4")
- 550 :名無しさん@お腹いっぱい。:2015/05/25(月) 18:46:48.48 ID:j/NgR3bi0
- 間違いなく画像が異なってるよ。
色幅はあくまで色しか幅を持たせてくれない。
色が全く同じでも、1ピクセルだけ違う場所があればFALSEだからね。
FLASHなんかで画像を表示してると、その処理方法によっては、
1ドット動いただけで、ドットレベルでは異なる形状になる。
特に、画像を原寸大で表示していない場合は確実にそうなる。
CHKIMGは、どの画像のどこを見れば、そういった影響から
逃れられるかを見つけ出せるかが勝負どころ。
少なくとも、不一致判定となった2つの画像を数百倍に拡大して
完全一致していないのかどうか自らの目で確かめることぐらいは必須。
調査の結果、無理という結論に至ることも少なくないぞ。
どうしてもダメなら、ChkImgXを使わせてもらえばいかが。
ところでダブルクォーテーションで囲む範囲や変数の使い方が
初心者レベルで間違えてるのは判ってるのかな?
- 551 :名無しさん@お腹いっぱい。:2015/05/25(月) 21:28:12.99 ID:SvpDjoG90
- 「test.bmp,-1,x1,y1,x50,y30,,IMG_MSK_BGR4」 というファイル名なのかも?
- 552 :名無しさん@お腹いっぱい。:2015/05/25(月) 21:55:47.39 ID:NyMNGZNA0
- その発想はなかったw
慣れてると2chに貼られたコードでも違和感ですぐ気付くけど
慣れないうちは文法ごとに色分けできるテキストエディタとか使えば
こういう単純ミスはかなり防げるんだけどな
初期設定のままUWSCが色分けできるMeryいいよ
- 553 :名無しさん@お腹いっぱい。:2015/05/25(月) 22:06:21.56 ID:99MSNuhI0
- ID:qvDPXZzz0みたいなのは、延々とアホみたいな質問するだろうから無視が一番
- 554 :名無しさん@お腹いっぱい。:2015/05/26(火) 19:24:32.38 ID:Dm8v7lsf0
- chkimgの色幅なんだけど
指定なし→true
IMG_MSK_BGR1〜4→false
ってなっちゃうんだけど、おんなじ状況の人いる?
wind() //座標をウインドウ基準に
public wid
wid = status(id, ST_WIDTH)
public hit
hit = status(id, ST_HEIGHT)
path =(画像フォルダ)
num =getdir(path)
for A = 0 to LENGTH(GETDIR_FILES)-1
ifb chkimg(path +"\"+ GETDIR_FILES[A],,1,1,wid,hit)//ここのオプションを変える
print GETDIR_FILES[A] +"…OK"
else
print GETDIR_FILES[A] +"…NG"
endif
next
- 555 :名無しさん@お腹いっぱい。:2015/05/26(火) 19:32:37.27 ID:U67im66g0
- あ、自己解決しました
y2の後に番号があるの忘れていました。
- 556 :名無しさん@お腹いっぱい。:2015/05/28(木) 10:26:46.72 ID:8Pc/2x0R0
- アンダーバー入れると行の途中で改行できるようになるのか
アンダーバーの後に//入れればコメントもできる
行の途中にコメント入れたいときに便利だなこれ
- 557 :名無しさん@お腹いっぱい。:2015/05/30(土) 09:45:55.85 ID:NtbxeqpP0
- MOUSEが押下され続けてる状態ってのを取得したいんだけど、
GETKEYSTATEでVK_LBUTTONを時間区切って何回か見る以外に方法ある?
- 558 :名無しさん@お腹いっぱい。:2015/05/30(土) 10:14:18.87 ID:/5qWzqR+0
- それが一番手っ取り早いと思うよ
何回か見る必要があるって理解しているから大丈夫だと思うけれど
判定前に一度空読みしてバッファをクリアしないと瞬間値にならないからね
(厳密にはそれすらも瞬間値ではないが)
- 559 :名無しさん@お腹いっぱい。:2015/05/30(土) 10:20:17.69 ID:NtbxeqpP0
- >>558
そういう関数なり引数なりがあるかと期待したけど無いんだね
thx
- 560 :名無しさん@お腹いっぱい。:2015/05/30(土) 16:30:17.70 ID:TZwPvYTO0
- 初歩的な質問で申し訳ないんですが
一つのウィンドウ上で作ったスクリプトを
もう一個同じ環境の別ウィンドウで並列処理させたいのですが
THRED SENDTOTEST
ID = EXEC("KASOU1")
call test.uws
PROCEDURE SENDTOTEST()
ID = EXEC("KASOU2")
call test2.uws
FEND
としています。
一応、全く同じスクリプトにはせずに
各スクリプトの頭に
test.uwsの場合
id = GETID("KASOU1")
MOUSEORG(id)
test2.uwsの場合
id = GETID("KASOU2")
MOUSEORG(id)
を追記していますがマウスの取り合いになってしまい、上手く並列処理してくれません。
まだ、UWSC自体触り始めたばかりで間違っている所は多々あるのでしょうが、完全に並列化するのはやはり難しいのでしょうか?
- 561 :名無しさん@お腹いっぱい。:2015/05/30(土) 16:50:58.30 ID:3KFoCyzZ0
- >>560
スレッドでだめそうなら
uwsc自体を二つ起動しちゃうかな
execとかで
- 562 :名無しさん@お腹いっぱい。:2015/05/30(土) 16:59:39.17 ID:BGEAI9SQ0
- 「マウスの取り合い」が具体的に何を指しているか明確にしないと
そもそも2つのウィンドウを両方アクティブにして
何か処理させるのは原理的に出来ない
だから答えは
「何をやりたいかによって並列化できるかどうかは決まる」
かな
- 563 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:09:12.74 ID:TZwPvYTO0
- CHKIMGを使った画像認識してクリック
ウィンドウ相対座標のクリック等です
>>561
UWSC自体を二つ起動して
それぞれにtest.uwsとtest2.uwsを再生させるという認識で合ってますか?
- 564 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:36:01.89 ID:3KFoCyzZ0
- >>563
そう思ったけど
>>562の言うように、クリックして話す前にマウスが移動されたりするとかで挙動がおかしくなるから危険
コントローラ用の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と同じ感じで
- 565 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:36:08.62 ID:xMVR/Xi20
- 片方の処理をしてる時はもう片方は待つって処理を入れて
排他処理をさせれば良いだけではなくって?
- 566 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:44:25.07 ID:3KFoCyzZ0
- >>565
callで出来るならそっちの方がスマートか…
- 567 :名無しさん@お腹いっぱい。:2015/05/30(土) 18:06:06.45 ID:TZwPvYTO0
- >>566
丁寧な回答有難うございます
内容は完璧には理解出来てないのですが要勉強ですね…
>>565
例えば
aを処理してる間にbを待機させる処理を入れて
中断を挟める所にcallでbを処理させて、bが中断挟める所にaの処理をcall
以下ループという感じでスクリプトを組めば大丈夫という事でしょうか?
何か質問ばかりですいません…
- 568 :名無しさん@お腹いっぱい。:2015/05/30(土) 18:47:53.27 ID:3KFoCyzZ0
- >>567
>>566のcallで出来るならの部分は忘れて、変なこと言った
>>564をそのままの感じでやるか、
スレッドを使って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"
- 569 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:00.81 ID:TZwPvYTO0
- >>568
ここまで丁寧でしかもテンプレ的な物まで作ってくれるなんて…
感謝の念でいっぱいです!
教えてもらった方法で色々試行錯誤してみます
本当に有難うございました!
- 570 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:09.37 ID:3KFoCyzZ0
- あとcallは処理実行するわけじゃなく、
その場所にソースをコピーしただけだと思った方がいい
- 571 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:11.95 ID:/5qWzqR+0
- 同じ事をするソースを2重に管理するのはバージョン管理が一致しないで後々バグの温床になるよ
スレッドを使った似たようなケースでこんなの作って
それぞれのスレッドから呼び出してどっちか区別可能しながら制御したことあるわ
//プロセス番号とスレッド識別子でIDを作成
DEF_DLL GetCurrentProcess(): hwnd: kernel32
DEF_DLL GetCurrentThreadId(): hwnd: kernel32
Function GetCurrentID()
result = GetCurrentProcess() + "." + GetCurrentThreadId()
FEnd
- 572 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:45:45.98 ID:k0Af3UX50
- 実際に並列処理ができるわけじゃないんだし、一つにまとめて順番にやった方がいいのでは
- 573 :名無しさん@お腹いっぱい。:2015/05/30(土) 20:09:31.86 ID:FaUG3gh00
- マウス操作などのユニークなリソースを
複数のスレッドから奪い合って制御するなんて
悪手の典型じゃんかデッドロックの温床だよ
UWSCはあくまで人間が手動で操作する所を自動化するもの
2人の人間が一つのPCを操作する様を自動化する状況なのか?
1人が対象を頻繁に切り替えて擬似並列する操作を自動化するはずだ
対象を切り替えて処理するのを実現するのは手間の問題で必ず実現可能だが、
手動では再現したことのないデバッグ不能な複数スレッドからの並行自動操作
を実現するのは、そもそもプログラムレベルで正しく書いたとしても、
その成果は、その構想がOSの仕様上そもそも不可能な動作だったことを証明
する結果となるリスクがあるぞ。
料理が盛りつけられたお皿が2つ。これを両手で同時に食べようとしても、
お箸が一膳しかなかったり、お口も一つしか無かったというオチにならんようにな。
- 574 :名無しさん@お腹いっぱい。:2015/05/31(日) 06:56:08.93 ID:hSYLC6Mx0
- https://service.gmx.com/registration.html
このページのフォームを埋めて行きたいのですが、
フォームのID?が動的に変わっているようで、指定の仕方がわかりません。
IESetData(IE,FirstName,"id57")
こんな感じだと思うのですが、id57の部分が変わってしまうのか入力されません
わかる方お願いします。
- 575 :名無しさん@お腹いっぱい。:2015/05/31(日) 07:42:54.65 ID:spRZd9M70
- >>574
ガチの犯罪報告ワロタwwww
通報しますた
- 576 :名無しさん@お腹いっぱい。:2015/05/31(日) 08:31:18.27 ID:+234HVzm0
- >>574
そんなの手でやればいい
大量にアカウント取得したいと思ってる悪人以外はそう考えるだろう
- 577 :名無しさん@お腹いっぱい。:2015/05/31(日) 15:46:00.29 ID:SDSS//Sp0
- 全部画像検索で操作したらいい
- 578 :名無しさん@お腹いっぱい。:2015/06/01(月) 07:23:47.81 ID:7eb6mTTQ0
- IELINKってフレーム分けされてるページだと文字列を読み込めないんですかね?
menu_fってフレームと、main_fってフレームがあって、menu_f内の「スケジュールの入力」って文字列をクリックさせたいんだけど、うんともすんとも言わん>.<
- 579 :名無しさん@お腹いっぱい。:2015/06/01(月) 14:29:47.45 ID:Axa8otif0
- 現在値のIEオブジェクトはフレーム定義のみのパターンかな
であればアクセスしたいフレームのIEオブジェクトを取得しよう
公式 FAQ #n37 に習って
同じドメインで同じプロトコルであればDOM操作するのも手
- 580 :名無しさん@お腹いっぱい。:2015/06/01(月) 20:00:58.86 ID:B4sEGaAv0
- 気になってframesetとiframeの両方を試してみたけど
IELinkは正常に動作する
操作を受け付けないframeとかあんのかな?
- 581 :名無しさん@お腹いっぱい。:2015/06/01(月) 20:04:32.22 ID:B4sEGaAv0
- 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
- 582 :名無しさん@お腹いっぱい。:2015/06/02(火) 01:33:31.66 ID:kONnq2Nk0
- 変るか?
- 583 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:19:29.49 ID:SCl6mZXT0
- 皆さんありがとう
試行錯誤しながら、教えてもらったことを試してみます。
お前ら優しいのな
惚れてまうわ
- 584 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:45:41.51 ID:SCl6mZXT0
- 今試してみてページの作りの違いなのかソース表示すると
>>581さんのサンプルページの場合
どこでソース表示しても、メニューとコンテンツの二つのフレームがあると分かるけど、
自分がUWSCを使用したいページの場合
・各フレームのソースのみが表示される
→メニュー部分でソース表示するのと、メイン部分でソース表示するのと内容が違う
mainフレームにもmenuフレームにも、headとbodyがあって
さらに言えば、ページ内にヘッダーがあるんだけど、そのヘッダーにもheadとbodyがある…。
何かすげーややこしい構造の管理ページ。
ちなみに、ヘッド部分・メニュー部分・メイン部分のそれぞれのリンク先を指定してみたけど、どれも読み込めなかった
- 585 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:50:40.17 ID:SCl6mZXT0
- あれ、ファイアーフォックスだとちゃんとソース表示される
- 586 :名無しさん@お腹いっぱい。:2015/06/03(水) 14:49:13.90 ID:jzVkSga+0
- chkimg用の透過画像を簡単に作れる方法はないかな?
具体的には一番濃い色だけを残して他は透過色として塗りつぶしたいんだけど
色で選択して選択範囲反転、塗りつぶし、とやるのがいいのかな?
使ってるソフトがあったら教えて下さい
ペイントで1ドットずつやってるから目が疲れた
- 587 :名無しさん@お腹いっぱい。:2015/06/03(水) 15:11:46.10 ID:Gp34xgkt0
- 自分はフリーのgimpとか使ってたな
- 588 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:28:14.77 ID:jzVkSga+0
- gimpか
ありがとう
- 589 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:48:09.69 ID:W59efDtX0
- paint.netもおすすめ
- 590 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:57:08.35 ID:UeOvBRd10
- 特徴的なごく狭い範囲を加工するだけだからMSPaintで十分だったわ。
てか、あまりでかい画像を持たせるのはなんかやだった。
- 591 :名無しさん@お腹いっぱい。:2015/06/05(金) 01:38:45.35 ID:Y75hI0BD0
- photoshopで「イメージ」→「色調補正」→「二階調化」閾値255
これは真っ白のみ切り抜く方法だが
他の色でやりたいなら「自動選択ツール」許容値1とかでも
それ以外のやり方聞いてるんですよねスミマセン…
- 592 :名無しさん@お腹いっぱい。:2015/06/05(金) 03:28:03.59 ID:ACIe9+Kh0
- このスレ的にはスクリプトでイメージを処理すれば良いんだけど
UWSCでイメージ処理は正直面倒くさい
- 593 :名無しさん@お腹いっぱい。:2015/06/05(金) 07:06:50.75 ID:lq3LJr2I0
- IrfanView
とかは?
- 594 :名無しさん@お腹いっぱい。:2015/06/05(金) 11:14:16.47 ID:55WfbWby0
- chkimgは処理速度が遅いから場所によっては数箇所peekcolorで判定する事もあるわ
- 595 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:33:41.73 ID:10/gL9fe0
- ブラウザ操作の質問です
IEがビジー状態の間待つ
というコードをchromeではどう書けばよいですか?
- 596 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:57:29.93 ID:UlD2Vx9U0
- 基本的には書けない
セレニウム使うか素直にIEで
- 597 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:58:52.47 ID:2jwoan/j0
- 俺なら、読み込み完了が分かる画像が表示されるまでスリープ
表示されたらさらに数秒スリープ
って感じのコードをゴリゴリ書くかな
アバウトだから、異常チェックは念入りに必要だけど
- 598 :名無しさん@お腹いっぱい。:2015/06/06(土) 10:45:55.76 ID:10/gL9fe0
- >>596
ありがとうございます
>>597
ありがとうございます。それに挑戦してみます
- 599 :名無しさん@お腹いっぱい。:2015/06/07(日) 13:14:51.89 ID:JD5ADCZJ0
- 非アクティブウィンドウの操作についての質問です。
対象ウィンドウは最小化しておらず、他ウィンドウに隠れた状態です。
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関数がうまく動作せず困っています。
よろしくお願い致します。
- 600 :名無しさん@お腹いっぱい。:2015/06/07(日) 14:15:31.79 ID:6n30q6Ii0
- >>599
IDが送りたいオブジェクトのIDじゃないんだろ
- 601 :名無しさん@お腹いっぱい。:2015/06/07(日) 14:52:20.91 ID:qteIWs/R0
- 画像裏動作はまともに動作しないから仮想化使うのが無難という結論だったと思われる
- 602 :名無しさん@お腹いっぱい。:2015/06/07(日) 15:41:29.75 ID:O6vjW+bk0
- 「まともに動作しないから」ではなく、
苦労に苦労を重ねて、あるひとつの動作をまともに動作させられたとしても、
そもそも裏のウィンドウを操作したい件の最終目標を達成するには、
そのたった一つの動作だけで済むはずもなく、次から次へと困難が待ち受けており、
いちいち2ちゃんで質問するレベルの人には手に負えないだろうという理由。
またそういった手法は、画像認識と同じで、操作対象や操作環境がホンの少し
変わっただけで同様に動作しなくなることも多かろう。
だめになる
- 603 :名無しさん@お腹いっぱい。:2015/06/07(日) 15:45:43.42 ID:JD5ADCZJ0
- >>600
子ウィンドウIDまで取得してこないといけないんですね。
初歩的な質問ですみませんでした。
hogeid = getid("hoge")したあと、getallwin(hogeid)で子ウィンドウを確認して、
目的のウィンドウIDを見つけることができました。
ありがとうございます。
すみません、再度質問させてください。
上記手順で子ウィンドウIDを見つけ出し、mouseorg(hoge_childid,2)としましたが、
未だ他ウィンドウに隠れた状態ではクリック動作を受け付けませんでした。
対象ウィンドウを前面に出すとクリック動作が行われます。
>>599のまま実行していたときには前面に出してもクリック動作が行われず、
>>600でご指摘頂いた通り、ウィンドウIDが間違っていたのだとわかりました。
今回は前面に出すことでクリック動作が正常に動くことから、
対象ウィンドウにクリック操作を送れているとは思うのですが、
他ウィンドウに隠れるとうまく動作しません。
やはり>>601で指摘頂いたように裏動作は諦めるしかないのでしょうか。
よろしくお願い致します。
- 604 :名無しさん@お腹いっぱい。:2015/06/07(日) 16:14:20.96 ID:msybnWxP0
- SLEEP(RANDOM30)
とかやっても動くのか……
いままでわざわざ
A=RANDOM(30)
SLEEP(A)
とかやってたぜ
- 605 :名無しさん@お腹いっぱい。:2015/06/07(日) 16:59:39.11 ID:D83vkIKe0
- VGAの省電力機能なのか背面のウィンドウは随時描画処理がなされていないようだから
背面で動かしたいなら画像が見つかるまでchkimgをループさせるとかする必要がある
- 606 :名無しさん@お腹いっぱい。:2015/06/07(日) 18:26:57.74 ID:JD5ADCZJ0
- >>605
背面にある状態でG_IMG_X,G_IMG_Yに目的の画像の座標が格納されていても、
画像が見つかっていないんでしょうか。
座標がわかる=画像が見つかったという認識でいます。
クリックすべき座標がわかっている状態でも、
背面にあるとクリック動作が送れないので困っています。
- 607 :名無しさん@お腹いっぱい。:2015/06/07(日) 18:36:30.05 ID:AIilwBQo0
- アンチマクロなアプリかは別として
非アクティブだと受け取らないアプリなんでしょう
ならどうしたらいいのかって言うとアクティブにする
仮想化ってのも結局はアクティブにするって意味だからね
そして其処までしないとダメな操作対象って基本ゲームなんですよね
- 608 :名無しさん@お腹いっぱい。:2015/06/07(日) 20:41:41.22 ID:JD5ADCZJ0
- >>607
なるほど。
アクティブにしてクリック操作をして非アクティブにする
という切り替えをすればもちろんうまく行きますが・・・。
そういったアプリケーションに対してはバックグラウンド動作させることはできないのでしょうか。
何か別のアプローチが必要で、それをご存知であればご教示下さいませんか。
今回対象にしているアプリケーションはUltraVNCでして、
リモートコンピュータを自動操作したいと思っています。
(リモートコンピュータにUWSCを入れることができない環境です。)
- 609 :名無しさん@お腹いっぱい。:2015/06/07(日) 20:45:24.33 ID:AIilwBQo0
- なら仮想化を多重化したらいいじゃない
- 610 :名無しさん@お腹いっぱい。:2015/06/08(月) 19:27:51.76 ID:M0D6EJoR0
- あー
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側の環境によっては送れたり送れなかったり
- 611 :名無しさん@お腹いっぱい。:2015/06/08(月) 23:03:24.24 ID:WtapXdWk0
- 裏の話で仮想化しろみたいな結論出てる所聞きにくいんだが
火狐ではクリックも画像認識も裏で反応するんだが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
狐よりクロームの方で裏が動いたらいいなぁと思ってる、仮想化は最終手段として
前は確か出来たような気がするんだがはっきり覚えてないんで意見下さい
- 612 :名無しさん@お腹いっぱい。:2015/06/08(月) 23:08:01.34 ID:WtapXdWk0
- ちょっと書き方悪かったので補足
裏マクロが反応しないっていうのは最前面に出していてもクリックしてくれないって意味で画面が隠れている状態でって意味ではないです
とりあえずマウスが取られなければいいからって事で
- 613 :名無しさん@お腹いっぱい。:2015/06/09(火) 01:42:53.34 ID:ilrPY7660
- どうせゲームの話なんだろ?
それなら、マクロ用にもう一台パソコン買うのが一番早い
パソコンは消耗品だが、1ゲームに課金することを思えば長持ちするし、
ゲームを選べば課金額以上の働きをする
- 614 :名無しさん@お腹いっぱい。:2015/06/09(火) 01:52:59.82 ID:6N+Eeckc0
- ゲームもあるけど毎日やってる事を自動化したら楽だなーと思ってやってみたんだよね
それでクロームが一番読み込みとかの速さ的にもいいかなーって思ったんだが、まぁ狐使うなり仮想使うなり裏諦めるなりするしかないか
もう1台用意するのが一番良いよね、何するにしてもサブあると便利だし
CPUの大幅な性能向上来たら買ってサブ組むかって考えてるからそれ待ちなんだが一向に進展せんな
- 615 :名無しさん@お腹いっぱい。:2015/06/09(火) 02:07:07.25 ID:SXM4fw8U0
- 自分も普段使いのFireFoxで何とかって思い
AACを駆使して指定範囲付近のエレメントを検索する関数とか
巡回をサポートする関数をクラス化してやりくりしてたけれど
IEにしたら直接エレメント操作をCOMで出来るからバカバカしくなったぞ
別に無理に普段使いのブラウザを使う必要って実は無いのよ
仮に起点となるアドレスが可変だとしても
其処だけFirefoxから貰えば良い話だしね
- 616 :名無しさん@お腹いっぱい。:2015/06/09(火) 07:57:11.38 ID:iqRZvXPr0
- 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 フリー版です。
原因がお分かりの方、ご教示ください。
おねがいします。
- 617 :名無しさん@お腹いっぱい。:2015/06/09(火) 08:43:21.04 ID:c2dyIL9N0
- 誰かの自作関数なのでぐぐって拾ってきて下さい。
- 618 :名無しさん@お腹いっぱい。:2015/06/09(火) 10:13:45.35 ID:iqRZvXPr0
- >>617
まじかーあのFunctionはそういうことだったんだ。
ありがとうございます。探してきます
- 619 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:17:44.12 ID:QPOSPQ3s0
- >>612
そのページのソースのjs見たり
開発者ツール的なものを使って、クリックイベントの動作確認とかしたら?
クリックされたら、現在のマウス座標の場所にある要素に対して何か処理するのがあると
かなり難しいと思う
そもそもマウス移動せずや、アクティブにせずクリックとかするなんて
アプリ側は想定外のはずだから、
手段が用意されてないかもしれないよ
- 620 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:24:12.41 ID:yBfMnKXf0
- スキャンした文字をデジタル化するOCR的処理って
UWSCでも頑張れば理論上できるかな?
それとももっと適した言語があれば教えて下さい。
- 621 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:29:10.79 ID:7oF2vMx30
- GoogleにOCRあるからそれ使え
それでも満足できないなら頑張ってください
- 622 :名無しさん@お腹いっぱい。:2015/06/09(火) 12:53:55.92 ID:HA8tJfl+0
- >>620
完全2色まで減色
↓
文字として機能する規定点のパターンマッチ
↓
文字判別
とすれば理論上可能だろうけど、ぱ(PA)とば(BA)の違いだって目視でも判断できないこともあるし
更に単語処理が必要だろう
文字判別→前後単語の洗い出し→辞書から単語検索→単語確定
それでもパンダとハンダの違いを認識するには文節処理も必要になる
普通にOCRの操作を自動化した方がはやげ
全文字・漢字分の規定点の作成とか絶対やりたくない
- 623 :名無しさん@お腹いっぱい。:2015/06/09(火) 13:53:54.65 ID:vRMQfWig0
- 有能な辞書があれば、理論上は、indexを引くだけ
- 624 :名無しさん@お腹いっぱい。:2015/06/09(火) 14:41:56.89 ID:SXM4fw8U0
- 少し前に調べた事だから今は違うかもしれないが
COMアクセス出来るフリーのOCRライブラリってのは多分無いからUWSC向きじゃない
後、フリーのOCRライブラリって日本語にはまともに対応していない
って感じだったかな
- 625 :名無しさん@お腹いっぱい。:2015/06/09(火) 20:41:59.38 ID:gDDxKsKq0
- 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を使うと簡略できると見ました
しかしこのスレで前述されていることを見たり検索したりしてもどのようにすればいいのかわからなかったので、教えていただけないでしょうか
よろしくお願いします
- 626 :名無しさん@お腹いっぱい。:2015/06/09(火) 20:46:01.35 ID:aNsp9elz0
- 繰り返し文の間違えだろう
dimなんて必要ない
- 627 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:01:21.35 ID:/H/r4kw50
- num = 0
for inum = 1 to 9
ifb chkimg(inum + ".bmp") then
num = inum
break
endif
next
- 628 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:01:37.67 ID:gDDxKsKq0
- 申し訳ありません繰り返しと間違えていました
となりますと、>>625を簡略化するための何か別の方法はありませんでしょうか
- 629 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:03:36.87 ID:gDDxKsKq0
- >>627
ありがとうございます
dimやら繰り返しやらでごっちゃになっていました
- 630 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:04:16.20 ID:/H/r4kw50
- 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
- 631 :名無しさん@お腹いっぱい。:2015/06/09(火) 21:10:34.26 ID:SXM4fw8U0
- 組み合わせと対象数にある程度柔軟性が欲しいならこんな感じかな
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
- 632 :名無しさん@お腹いっぱい。:2015/06/09(火) 22:16:19.70 ID:xBvHKv3T0
- そういうのは連想配列でやらね?
- 633 :名無しさん@お腹いっぱい。:2015/06/09(火) 22:23:06.54 ID:SXM4fw8U0
- 完全否定はしないけれどその辺は此処のポリシーだよ
連想配列はメモリ配置的に勝手に助長化するから
連想配列のメインであるインデックス的なアクセスしないケースでなければ
個人的には採用しないなぁ
でも連想配列で実装しているコードを見ても兎や角言う気はない
- 634 :名無しさん@お腹いっぱい。:2015/06/10(水) 01:04:13.00 ID:U1uWjUCL0
- 普通に多次元配列か連想配列でやる
- 635 :名無しさん@お腹いっぱい。:2015/06/10(水) 01:51:25.09 ID:7fQ2CVcl0
- 配列とか言われてもわかんねーから
- 636 :名無しさん@お腹いっぱい。:2015/06/10(水) 16:43:00.12 ID:+oPKIUUi0
- 久しぶりにアップデートしたらfukidasiのフォントがやたらと汚くなっていた
5.0.2のBALLOON関数にて アンチエイリアスを無効にした
これのせいだと思うんですけど無効にするのを無効に出来たりします?
- 637 :名無しさん@お腹いっぱい。:2015/06/10(水) 22:51:56.47 ID:/MzX+sCy0
- 連想配列だとノーマル配列みたいにサクッと初期値を設定できないので手軽じゃない
>>630みたいにコードに埋め込んじゃえる規模なら一番手間がかからない
CSVとかから読み込むならどちらでもいいけど、その規模になると今度は、
キーが人間に判り易いというメリットは薄くなる
多次元配列はC言語みたいに初期値与えられんし可読性が著しく下がるので、
1次元配列の名前を判りやすくして並べたほうが見やすい
典型的なのがXY座標テーブルでposition[1][10]とやって0がXの1がYとやるより
// 1 2 …
posX[10] = n1, n2, …
posY[10] = n1, n2, …
とやったほうが手軽に書ける
と
- 638 :名無しさん@お腹いっぱい。:2015/06/10(水) 23:20:49.21 ID:OeKm7REC0
- >>637
>>483は可読性が著しく低いのか。十分だと思うが
- 639 :名無しさん@お腹いっぱい。:2015/06/11(木) 23:06:09.22 ID:Q9K0BUu70
- 画像認識やらで騙し騙し使ってたけど本格的にIEを自動化したい
まず学ぶべきはHTML?
最低限これはやっとけってのある?
- 640 :名無しさん@お腹いっぱい。:2015/06/11(木) 23:18:50.32 ID:sjoLEexy0
- >>639
IEは道具であって目的ではない
IEで何をしたいのかを書かなければ何も答えようがない
- 641 :名無しさん@お腹いっぱい。:2015/06/11(木) 23:25:06.04 ID:Naihmo/b0
- それこそいじりたいサイトによって、もっと言えば
同じサイトでも仕様が変わればやること変わるしな
- 642 :名無しさん@お腹いっぱい。:2015/06/11(木) 23:27:04.74 ID:C9VpTbp70
- ウェブスクレイピング的な操作が目的なら
HTMLはマークアップ言語なのか程度の認識でも良い
で、そのマークアップされた構造に対して
アクセス・操作する為のDOM(Document Object Model)の方が重要
構造化されたドキメント全体からあるノードを取得し
その配下このノードは○○、このノードは××と言った感じにデータ化
それらを整理して一括操作とかできたりする
- 643 :名無しさん@お腹いっぱい。:2015/06/12(金) 15:38:07.91 ID:nK+jRR0p0
- DOM理解を試みる
ノードやらタグ、要素の理解で躓く
HTMLに手をを付けるか迷う←今ここ
とりあえず目下の目標はweb記事のスクラップ
- 644 :名無しさん@お腹いっぱい。:2015/06/12(金) 16:16:39.16 ID:44TZAm890
- スクラップ目的の場合は対象記事の構造を把握する事が重要で
それぞれのタグの意味はそれほど重要じゃないよ
記事のヘッダ、本文、日時、URL等スクラップしたい情報の位置を把握して
それらをピックアップしてXML等で保存する感じかな
いきなり表示可能なHTMLで保存しようとすると果てしなく面倒臭い
慣れてきたらDOM構造を処理する内部言語っぽいのを作ってそれで処理するとかすると楽しい
- 645 :名無しさん@お腹いっぱい。:2015/06/13(土) 23:47:47.34 ID:lLPEpWaJ0
- >>1の使い方・基礎解説学習サイトみてもチンプンなんだけど、もっとプログラミング初心者向けのサイトない?
- 646 :名無しさん@お腹いっぱい。:2015/06/13(土) 23:58:32.51 ID:7DVsBavJ0
- >>645
自分で調べればいいんだよ
何をしたいか考えて、「uwsc ○○」でググって出たページを見ればいい
プログラミングってもはやグーグル検索をどれだけ使いこなせるかで習熟度が違うからな
- 647 :名無しさん@お腹いっぱい。:2015/06/14(日) 01:18:23.28 ID:xcIcJdqM0
- 昔は調べるには分厚い本を何冊も高い金払ってようやくって感じだったが
今はネット環境あって検索使いこなせば殆ど不自由ないからなぁ
- 648 :名無しさん@お腹いっぱい。:2015/06/14(日) 01:30:54.13 ID:KxkYlpRA0
- >>645
>>1の使い方・基礎解説学習サイトみたがこれ以上分かりやすく書くのってどうやるんだっていうくらい難しい
これくらいなら誰でも知ってて当然っていうレベルなのでまわりの誰かに教えてもらうほうがはやい
- 649 :名無しさん@お腹いっぱい。:2015/06/14(日) 01:44:31.26 ID:nvamwSVV0
- 記録機能があるので一見初心者さん歓迎っぽいがデバッグが厳しい
無償版はデバッガが無いのでPrint命令頼りの原始人レベル
有償版のデバッガでやっと一昔レベル
(ただしスレッドを使ったデバッグは結局Print命令だったりする)
ぶっちゃけガチ初心者ならUWSCはお勧めできない
- 650 :名無しさん@お腹いっぱい。:2015/06/14(日) 02:00:27.99 ID:HVOSbBWM0
- プログラミングの流儀が分かってないとなあ
C言語の教科書一冊やり通した経験あるとないとでぜんぜん違うと思う
- 651 :名無しさん@お腹いっぱい。:2015/06/14(日) 07:43:37.88 ID:DcdHt8gu0
- >>645
多分変数って何?式ってなに?くらいのレベルなんだろう
さすがにそこまでは書いてないと思うから
わからないことを一つずつググればいいよ
「プログラミング 変数とは」みたいに
- 652 :名無しさん@お腹いっぱい。:2015/06/15(月) 03:21:05.65 ID:Lx1Th6M00
- 今マクロツールって全然なくない?使いやすくてそこそこ色々出来るの何かあれば教えて欲しいわ
- 653 :名無しさん@お腹いっぱい。:2015/06/15(月) 22:48:55.05 ID:aNpw03CF0
- フォルダの内容をテキストファイルに。要点のみだと5行。
フリーソフトで好みなのが見つからなかったんだけど、探す時間より
作る時間の方が早かったorz
DOSCMD("dir <#DBL>H:\cap\<#DBL> /s | clip",False,False) //コマンドからdirの出力をクリップボードに
str = GETSTR(0) //クリップボードから取得
fid=FOPEN("d:\cap_list.txt",F_WRITE) //テキストファイルを新規or上書きで開く
FPUT(fid, str) //テキストファイル書き込み
FCLOSE(fid) //テキストファイル閉じる
- 654 :名無しさん@お腹いっぱい。:2015/06/15(月) 23:03:06.77 ID:5eo6IMhx0
- DOSCMD("dir <#DBL>H:\cap\<#DBL> /s > d:\cap_list.txt")
じゃダメなの?
- 655 :名無しさん@お腹いっぱい。:2015/06/15(月) 23:36:46.33 ID:HCkXIYKv0
- それ、UWSC要るか?
- 656 :名無しさん@お腹いっぱい。:2015/06/15(月) 23:46:16.54 ID:aNpw03CF0
- 「要点のみだと」って書いておいたのに。
テキスト整形したりは自由にやってくれ。
- 657 :名無しさん@お腹いっぱい。:2015/06/16(火) 00:18:56.03 ID:JbJJrV+b0
- テキストの整形なんてテキストエディタでやるよね普通
- 658 :名無しさん@お腹いっぱい。:2015/06/16(火) 00:38:01.56 ID:fmeiedqk0
- 何が「要点」なのか分からないな
フォルダの内容をテキストファイルに保存したいだけのように見えるが
それならDOSコマンド直接叩くか、UWSC経由でやりたいなら>>654みたいに1行で充分だろうし
テキスト整形が目的なら肝心の処理だけを消した>>653には意味がないし
- 659 :名無しさん@お腹いっぱい。:2015/06/16(火) 01:01:11.77 ID:2XF1H6rG0
- バッチファイルやWSHで出来るようにしておくと仕事でも役立つよ。
バッチファイルやWSHで普通行うようなことまでUWSCみたいな
マイナーでアンチウィルスにもお許しを乞う必要があるような
ツールでしか出来ないと色々と認めてもらえないw
- 660 :名無しさん@お腹いっぱい。:2015/06/16(火) 01:07:03.52 ID:Aq79miHj0
- 「UWSCからの操作」でエクセルの表追加ってどうやったらいいんでしょう?
excel.range("A1")=10
みたいに簡単な操作はマクロ記録を見れば応用できるけれど、グラフ追加だと
VBAマクロ記録で出てきたコードにEXCELを追加しただけだとエラーになります。
わかる人いたら教えて下さい。
※VBAでやれば、という突込みはご尤もだけど状況により、UWSCからの方法が
都合が良いです。
excel=createoleobj("excel.application")
excel.visible=true
excel.workbooks.add()
excel.ActiveSheet.Shapes.AddChart2(240, xlXYScatterLines).Select
//エラー。xlXYScatterLinesが定義されていない
- 661 :名無しさん@お腹いっぱい。:2015/06/16(火) 01:35:13.98 ID:2XF1H6rG0
- VBEのイミディエイトウィンドウで
PRINT xlXYScatterLines
とやると定数の74であることがわかるので、
UWSC上で
CONST xlXYScatterLines = 74
- 662 :名無しさん@お腹いっぱい。:2015/06/16(火) 19:12:22.00 ID:fmeiedqk0
- >>660
Excelの定数なら調べる必要すらなくて
http://www.uwsc.info/faq.html#n48
>Excelの使用にて定数がわからない、定数名を使用したい #n48
>Excelの定数名を記述したファイル(ExcelConst.uws) をダウンロードして
>スクリプトの先頭で CALL ExcelConst.uws を入れるとExcelの定数名が使用できます
に書いてあるとおり用意されてる
- 663 :名無しさん@お腹いっぱい。:2015/06/17(水) 08:53:07.37 ID:bOpYdHH80
- VBAやらなくて済むようにUWSCに逃げても
xlXYScatterLinesが定数だというようなVBA知識は要るなど
UWSCはVBAより初心者に厳しいのです
VBEでマクロかけばxlXYScatterLinesはインテリ何とかで自動的に候補が出てくる
- 664 :名無しさん@お腹いっぱい。:2015/06/17(水) 09:32:42.95 ID:RcdlcA/F0
- Bluestacks内でテキストを開いて
abcdefghiをabcjklghiみたいに書き換えることってできますか?
まず文字列取得の時点でつまづいてます
- 665 :名無しさん@お腹いっぱい。:2015/06/17(水) 16:34:40.45 ID:z6hXDPOM0
- 画像認識で画面全部ではなく指定した範囲の中で認識を行うにはどうすればいいですか?
x1 y1 x2 y2と透過の所がよく分かりません
- 666 :名無しさん@お腹いっぱい。:2015/06/17(水) 16:56:54.03 ID:YAI6QHUw0
- ヘルプコピペしたいところだが。
日本語読めないと無理だな。
- 667 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:13:10.93 ID:X+76V8o30
- そこまでわかってんなら10分説明読めば分かるやろ
- 668 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:19:37.20 ID:z6hXDPOM0
- x1 y1 x2 y2がサーチ範囲だってのは分かってるんですけど
x1 y1にx座標とy座標入れたとしたらx2 y2には何を入れればいいんですか?
- 669 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:24:30.17 ID:XQ7s6Cqi0
- 絶対座標か相対座標の2種類しか考えられないだろ
以前に紛らわしいなって話が出てたから確か相対座標(幅、高さ)だったと思うけれど
普段使わないので自分で確かめろ
- 670 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:25:11.10 ID:Z95Qk9550
- >>668
x1 y1 左上の座標
x2 y2 右下の座標
サーチ範囲指定すると言う事は2点の座標を指定しないとダメ
- 671 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:38:34.88 ID:soxPIV+S0
- 今日のお前らは優しいな
- 672 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:46:58.83 ID:VRFtRWlX0
- 相対じゃなくて絶対
自分でもどっちだかわからなかったからサンプルコード作って確認した
間違いなく絶対座標
アプリのウインドウ領域指定するなら
Status(ウインドウID, ST_X) + Status(ウインドウID, ST_Width)
と
Status(ウインドウID, ST_Y) + Status(ウインドウID, ST_Height)
を指定する
- 673 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:48:41.05 ID:RcdlcA/F0
- ワイの質問にも優しい人教えて(`;ω;´)
- 674 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:50:11.39 ID:Ph078XLs0
- >>672
マジで?
- 675 :名無しさん@お腹いっぱい。:2015/06/17(水) 17:58:52.63 ID:cT7OPLwz0
- 最近始めた者です。
KBD(VK_T,CLICK,1034)
1061が待機秒数(ms)になると思うのですが
毎回異なる秒数にするにはどうすればよいでしょうか?
イメージ的には
1回目 1034
2回目 1093
3回目 1052
4回目 2013
・
・
です。
- 676 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:04:07.61 ID:RcdlcA/F0
- RANDOM(1000)で0から999がランダム
KBD(VK_T,CLICK,1000+RANDOM(1000))
で1000から1999までランダム
- 677 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:05:11.59 ID:VRFtRWlX0
- >>674
ソース汚いが
ttp://www.dotup.org/uploda/www.dotup.org372734.zip.html
- 678 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:07:23.94 ID:cT7OPLwz0
- >>676
なるほど!ありがとうございます。
- 679 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:07:37.10 ID:l/wOZoEE0
- 相対座標か絶対座標かはmouseorgで変更できるだろ
- 680 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:09:29.29 ID:peL4cobc0
- とっても不親切なHELPで有名なUWSCでございます。
素人・初心者お断りでございます。
だれでも簡単にWindowsを自動操作できます。
- 681 :名無しさん@お腹いっぱい。:2015/06/17(水) 18:13:49.66 ID:VRFtRWlX0
- >>679
あーうん。そういうことじゃなくてね
幅、高さ ではないというはなすぃ
- 682 :名無しさん@お腹いっぱい。:2015/06/17(水) 20:46:27.66 ID:Ph078XLs0
- >>677
サンクス、絶対座標だった
なぜか元画像だとペイントのカラーボックスにヒットしてうまく動かなかったから
画像変えて使わせてもらった
- 683 :名無しさん@お腹いっぱい。:2015/06/17(水) 21:54:52.53 ID:RcdlcA/F0
- >>664をだれかよろ
こうなったらクリップボードにコピーして
そこでいじるしかないか・・・
- 684 :名無しさん@お腹いっぱい。:2015/06/17(水) 22:20:59.21 ID:XQ7s6Cqi0
- よろじゃねぇ
リモートデスクトップ系なんだからAndroidのコントロールに直接アクセスは出来ないのは確定
であればPC側から期待する動作を行う手順を
そのまま自動化するしか無いだろ
- 685 :名無しさん@お腹いっぱい。:2015/06/17(水) 23:41:49.69 ID:RcdlcA/F0
- なるほどそういう感じなのね
サンクス
画像認識で文字を長押ししてコピペとかやってたけど精度が低かったので…
でもそんな感じでやるしかないのね
- 686 :名無しさん@お腹いっぱい。:2015/06/17(水) 23:47:13.29 ID:l/wOZoEE0
- Bluestacksなら普通にadbでやりゃいいだろ
なんでuwscなんだ
- 687 :名無しさん@お腹いっぱい。:2015/06/18(木) 04:50:41.66 ID:uQlwCkkT0
- IEでCTRLWIN(ID,MIN)の最小化した状態からIEをF11を押したような全画面表示をさせたいです。
CTRLWIN(ID,MAX)だと最大化ですからウインドウが見えてますし、全画面表示の設定は無いようです。
アクティブにした後、KBD(VK_F11)を使う以外にもっとスマートな方法はありませんか?
- 688 :名無しさん@お腹いっぱい。:2015/06/18(木) 05:04:06.21 ID:1UcnZ19Y0
- 無いと思う
ーk とURLを付けて起動させたら全画面になるが
これは元に戻せないマジのキオスク向けのモードだからなぁ
- 689 :名無しさん@お腹いっぱい。:2015/06/18(木) 06:58:43.23 ID:uQlwCkkT0
- >>688
成る程
F11は既に手動で全画面にしちゃってると全画面が解除という逆の動作になるので余り使いたくなかったのですが仕方ないですね
-Kのキオスクオプションは知りませんでした
使える場合はありそうなので記憶に留めておきます
ありがとうございました!
- 690 :名無しさん@お腹いっぱい。:2015/06/18(木) 23:31:35.83 ID:7jhVt5eP0
- 画像処理について質問です
画像が少し変わったくらいでは反応させずに大幅に変わったときに反応させるやり方はありますか?
例えば指定画像にマウスポインタが重なったくらいではなく指定画像の一部分が消えるという感じです
- 691 :名無しさん@お腹いっぱい。:2015/06/19(金) 00:03:00.80 ID:Zt2MQ/yZ0
- >>690
ポインタが重なってる時と重なってない時の両方の画像がない場合に反応させる
- 692 :名無しさん@お腹いっぱい。:2015/06/19(金) 00:30:40.14 ID:rV3INbCi0
- >>691
その手がありましたか
この場合はIFB ELSEIF を使えばいいんでしょうか?
2つの画像がない場合に反応させるにはどのようなスクリプトになりますか?
IFb CHKIMG("A.bmp""B.bmp"だとおかしいですよね?
- 693 :名無しさん@お腹いっぱい。:2015/06/19(金) 01:20:58.80 ID:Zt2MQ/yZ0
- >>692
IFb !CHKIMG("A.bmp") AND !CHKIMG("B.bmp")
完全に構文だけの問題だから、自分でヘルプ見て解決できるほうが良い
- 694 :名無しさん@お腹いっぱい。:2015/06/19(金) 01:50:13.60 ID:rV3INbCi0
- 以前から気になってたのですが !CHKIMG CHKIMG の2パターンがありますが「!」はどんな違いなのですか?
- 695 :名無しさん@お腹いっぱい。:2015/06/19(金) 01:51:13.87 ID:QJOVJbEc0
- じゃないほう
- 696 :名無しさん@お腹いっぱい。:2015/06/19(金) 05:51:58.87 ID:/beYdrrW0
- >>694
自分も今その!の表記見てなにこれって思った
「!」ありでも動作するの?
- 697 :名無しさん@お腹いっぱい。:2015/06/19(金) 06:42:28.40 ID:zXB4M29n0
- 否定演算子
- 698 :名無しさん@お腹いっぱい。:2015/06/19(金) 07:43:22.53 ID:/beYdrrW0
- !CHKIMG("A.bmp")
(CHKIMG("A.bmp")=FALSE)
つまり上記2つは同じ動作をするって認識であってます?
- 699 :名無しさん@お腹いっぱい。:2015/06/19(金) 07:55:49.87 ID:fw3hNLlq0
- はい
- 700 :名無しさん@お腹いっぱい。:2015/06/19(金) 10:00:01.32 ID:9MxUM04p0
- >>692 698
Ifb文中の !CHKIMG() は関数の戻り値 TRUE か FALSE を ! で反転してるという事で
OR とか AND とか !(NOT) の論理演算子の使い方は
条件文書く時に必要なんでしっかりおさえましょうね。
- 701 :名無しさん@お腹いっぱい。:2015/06/19(金) 16:19:49.43 ID:2U3B+b8c0
- IF文について教えて下さい
IFとIFBは結局同じと考えて良いのでしょうか?
IFBはIFと違って複数行の処理が書ける・入れ子構造も可
と書かれてるサイトもありますが
別にIFでも出来ますよね?
ヘルプもIFB-ENDIFはIF-ENDIF同じ説明文にリンクされてますし。
- 702 :名無しさん@お腹いっぱい。:2015/06/19(金) 16:33:58.31 ID:/beYdrrW0
- >>701
実装時期の違い
当初はIF文は一行でしか使えなかった
複数行にするにはIFBにする必要があった
いつかのアプデからIFでもIFBでも複数行で使える仕様に変更された
結論は同じって事ですね
- 703 :名無しさん@お腹いっぱい。:2015/06/19(金) 16:53:03.92 ID:nYYnOjUy0
- >>702
> いつかのアプデからIFでもIFBでも複数行で使える仕様に変更された
し、知らなかった…
いったいいつからだw
ifで複数行なんてやったことなかったから…
- 704 :名無しさん@お腹いっぱい。:2015/06/19(金) 16:59:34.66 ID:QJOVJbEc0
- なんも考えずにIFB使えばいいよ
- 705 :名無しさん@お腹いっぱい。:2015/06/19(金) 20:14:39.34 ID:hKqu5SPe0
- IFBなんて勧めんなよ
おまえ性格悪すぎw
- 706 :名無しさん@お腹いっぱい。:2015/06/19(金) 21:16:59.56 ID:hITZPnpq0
- >>703
4.7cから
- 707 :名無しさん@お腹いっぱい。:2015/06/19(金) 21:25:44.48 ID:qFWhSFir0
- 複数行の時はIFでThenは絶対に使わない
一行の時はIFB ; xxx ; EndIFってするひねくれ者です
- 708 :名無しさん@お腹いっぱい。:2015/06/19(金) 23:51:46.41 ID:fw3hNLlq0
- ifとifbを使い分けてると
thenの入れ忘れとかでわかりにくいバグを生むことがある
ifbオンリーにするのも割とあり
javaでもifの{}を省略しないよう統一するコーディング規約もあったりするし
- 709 :名無しさん@お腹いっぱい。:2015/06/20(土) 00:05:56.81 ID:1lHsuodt0
- for A = 0 to 10
hoge = random(10)
print hoge
next
これを後からも参照できるように変数に入れたい
hoge0〜hoge10にループ毎の結果を代入することはできる?
- 710 :名無しさん@お腹いっぱい。:2015/06/20(土) 00:17:07.80 ID:UvvdAStd0
- EVAL関数使えば出来るが普通は配列使うぞ
EVAL("hoge" + A + " := RANDOM(10)")
hoge[A] = RANDOM(10)
- 711 :名無しさん@お腹いっぱい。:2015/06/20(土) 00:19:18.87 ID:ITsosRO70
- まあ普通に配列だろうな
dim hoge[10]
for A=0 to 10
hoge[A] = random(10)
next
print hoge[0]
print hoge[10]
- 712 :名無しさん@お腹いっぱい。:2015/06/20(土) 01:29:24.47 ID:ufTlMsJo0
- >>708
thenを省けば良いだけじゃないの?
- 713 :名無しさん@お腹いっぱい。:2015/06/20(土) 01:30:49.04 ID:1lHsuodt0
- >>710
これだわありがとう
例が端折り過ぎであれだったけど実際は配列が使えない感じで困ってたのよね
- 714 :名無しさん@お腹いっぱい。:2015/06/20(土) 02:43:34.36 ID:eI4beo1D0
- >>709
hogeとかつかってんじゃあねーぞ!
今時、hogeなんて知らねー奴が多いからな
- 715 :名無しさん@お腹いっぱい。:2015/06/20(土) 03:21:26.67 ID:51sOvEFg0
- 知ってる知らないよりもuwsc使いふぜいがhogeとか使ってたら笑いもんだよな
- 716 :名無しさん@お腹いっぱい。:2015/06/20(土) 03:24:30.46 ID:HwBxArjA0
- _____
||// 彡 ⌒ミ|彡⌒ ミ
||/ (n´・ω・)n ) hagehage聞こえる・・・
|| (ソ 丿|ヽ )
 ̄ ̄ ̄ ̄ ̄ u―u'
- 717 :名無しさん@お腹いっぱい。:2015/06/20(土) 06:19:41.76 ID:m+PpqLZV0
- UWSCでは普通hageを使うからな
- 718 :名無しさん@お腹いっぱい。:2015/06/20(土) 13:15:00.03 ID:5559LWCM0
- 今あるカーソルの場所を取得してマクロ操作が終わったあとに元の場所に戻す、というのは作れるでしょうか?
- 719 :名無しさん@お腹いっぱい。:2015/06/20(土) 13:26:20.43 ID:ZXJbc2NX0
- 作れます。
- 720 :名無しさん@お腹いっぱい。:2015/06/20(土) 13:26:40.82 ID:qFVUre4p0
- それもミジンコレベルの自分でも簡単に
- 721 :名無しさん@お腹いっぱい。:2015/06/20(土) 13:28:18.83 ID:3x+xv6Kw0
- 簡単だよ
@今あるカーソルの場所を取得
Aマクロ操作
Bカーソルを元の場所に戻す
- 722 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:00:53.30 ID:5559LWCM0
- >>721
@を作る場合、どんな方法がありますか?
画像で検出する以外の方法が思いつきません
しかし、マウスカーソルはウィンドウによって形が変わってくるので難しいです
他の方法はありませんか?
- 723 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:04:47.21 ID:qFVUre4p0
- > // 特殊変数
>
> G_MOUSE_X // マウス位置Xを返す特殊変数
> G_MOUSE_Y // マウス位置Yを返す特殊変数
ヘルプより引用
- 724 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:12:14.34 ID:5559LWCM0
- >>723
ありがとうございました
- 725 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:25:59.94 ID:aElcOAwi0
- 初質問です。
よろしくお願いします。
あるサイトの更新ボタンを連続で押し続けて、
購入ボタンが出てきたら、購入ボタンを押す動作をしたいです。
こんなIF文みたいな作業は出来ますか?
このサイトは、ある時間ジャストから購入申し込み出来るという仕様で、私は帰宅していない事が多く、競争も激しいのでソフトにさせたいのです。
ボタンを連打することになりますが、一分くらいの時間なので、それほどサイトにも負担がかからないと思います。
よろしくお願いします。
- 726 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:37:40.01 ID:8nbgbwZ80
- >>725
出来ます
- 727 :名無しさん@お腹いっぱい。:2015/06/20(土) 14:54:51.00 ID:L4a8KGrv0
- IFB CHKIMG
購入ボタンあった時の処理
ELSE
購入ボタンなかった時の処理
ENDIF
これだけでいけるんじゃね
- 728 :名無しさん@お腹いっぱい。:2015/06/20(土) 15:44:52.04 ID:aElcOAwi0
- >>726
>>727
ありがとうございます。
出来るみたいなので、ググって勉強して作成してみます。
こういう需要(例えば小売サイトのタイムセールとか)はありますよね。
- 729 :名無しさん@お腹いっぱい。:2015/06/20(土) 16:16:08.85 ID:99v8LLFE0
- 更新して購入可能なら購入するってスクリプト自体は簡単だけどページの読み込み処理上手くやらんと目的に合うように機能しなさげ
軽けりゃ何の問題もないが競争激しいってことはその数分に大量のアクセスがあるだろうし
律儀にページ表示完了待ちしてたら時間かかるし適当な時間で更新してたら購入ボタン見つける前にまた更新押すことにもなりかねないしな
その前に重過ぎてまともにページが開けないとかもある
- 730 :名無しさん@お腹いっぱい。:2015/06/20(土) 16:36:20.31 ID:aElcOAwi0
- >>729
ありがとうございます。
何度も手動クリック連打で参加していますが、今のところ読み込みは早いです。(一秒くらい)
別のサイトの早取りセールに参加したことがありますが、そのサイトは途中で画面が固まりました。笑
- 731 :名無しさん@お腹いっぱい。:2015/06/20(土) 16:42:34.28 ID:UvvdAStd0
- 商用サイトへの自動化ツールの需要を気にしてたけれど公開するつもり?
だとしたらそれはやめといたほうがいいよ
面倒事に成るかねないから個人的にひっそりとやっとけ
- 732 :名無しさん@お腹いっぱい。:2015/06/20(土) 17:17:09.95 ID:aElcOAwi0
- >>731
ごめんごめん。
そういうつもりで書いたんじゃないんだよ。
このスレで作ってる人(ヒントを教えてくれる人)がたくさんいないかな〜という意味です。
わたし的にはむしろ隠して独り占めしたいです。笑
- 733 :名無しさん@お腹いっぱい。:2015/06/20(土) 17:29:16.81 ID:qPkI5+Ta0
- おいらには怖すぎる
やみくもにクリックして、めくらで購入ボタンを押すなんて
なにかを疑ってしまったら出来ない
- 734 :名無しさん@お腹いっぱい。:2015/06/20(土) 18:36:34.47 ID:3x+xv6Kw0
- 事前に何度も調査できるんだったら
別プロトコルでサーバーからデータ取得して
在庫あると判断時にリクエストをサーバーへ直投げするのが最速
ブラウザ不要だから競争に絶対勝てるんだがこの手法が出回るとヤバイ
- 735 :名無しさん@お腹いっぱい。:2015/06/20(土) 18:41:11.49 ID:3x+xv6Kw0
- >>733
想定外の挙動への対策はいくらでもやりようあるよ
想定以外の返り値だったら終了してもう一度新しく試すとか
商品タイトルに目的物の文字列がなければやめさせるとか
- 736 :名無しさん@お腹いっぱい。:2015/06/20(土) 18:47:23.22 ID:qFVUre4p0
- まあ色々とやりようはあるんだろうけど、そういう具体的な金額の利害を伴う上に大っぴらに出来ない手口を
ネット上の不特定多数と共有する、それどころか一方的に教えてもらおうってのは流石に虫が良すぎるな
あんまりしつこくクレクレすると、善意を装って悪意に満ちたツールを掴まされかねんぞ・・・
- 737 :名無しさん@お腹いっぱい。:2015/06/20(土) 19:03:10.00 ID:LYvdRJKd0
- >>736
よく読め。
「ググって自分で勉強して作る」って言ってるやろ。
クレクレしてないやん。
- 738 :名無しさん@お腹いっぱい。:2015/06/20(土) 19:08:22.46 ID:qFVUre4p0
- そうだな、「(ヒントを教えてくれる人)がたくさんいないかな〜」という一文をもって
クレクレと断ずるのは飛躍しすぎだったのかもな、忘れてくれ
- 739 :名無しさん@お腹いっぱい。:2015/06/20(土) 19:24:58.06 ID:SRlIAXLx0
- >>737
どこにでも批判だけして悦に入る勘違い野郎はいるんだから無視無視。
- 740 :名無しさん@お腹いっぱい。:2015/06/20(土) 19:53:32.66 ID:HlENJY9S0
- UWSC風情がそんな高クオリティなもの作れねーだろが
- 741 :名無しさん@お腹いっぱい。:2015/06/20(土) 22:28:19.22 ID:m+PpqLZV0
- >>735
こういうの、デバッグの機会が少なすぎるのが一番問題
- 742 :名無しさん@お腹いっぱい。:2015/06/20(土) 22:28:59.31 ID:MZD0bYkA0
- UWSCで作ったexe解体できませんか?飛んでしまった
- 743 :名無しさん@お腹いっぱい。:2015/06/20(土) 22:43:59.78 ID:44wtvm5L0
- 家に帰ってみたら同じものを500個ほど買ってしまっていました。
請求金額が1000万程来て途方に暮れています。
こうなるw
- 744 :名無しさん@お腹いっぱい。:2015/06/20(土) 22:48:14.26 ID:UvvdAStd0
- >>741
無理
もっとメジャーなら誰かが逆ツール造るかもしれんけれどね
- 745 :名無しさん@お腹いっぱい。:2015/06/20(土) 22:57:35.78 ID:g6dchMV60
- >>743
怖いよな
俺も購入系で自動化組んでるけど、あくまでも通知するのみで実際の購入はクリックが必要な感じにしてるわ
いくら対策しても万一想定外の微妙な変更があった場合、全てに対処するのに限界があると思うし
- 746 :名無しさん@お腹いっぱい。:2015/06/20(土) 23:39:15.44 ID:oWCPOmlB0
- >>742
吹っ飛んだんならHDDからファイル復元するソフト使うのが一番早い
- 747 :名無しさん@お腹いっぱい。:2015/06/21(日) 00:17:39.78 ID:wQr+K1BP0
- バックアップ取らない人っているんだなぁって思う
- 748 :名無しさん@お腹いっぱい。:2015/06/21(日) 01:15:04.71 ID:ma8OCHbo0
- UWSCってtry〜catchみたいな例外処理ある?
- 749 :名無しさん@お腹いっぱい。:2015/06/21(日) 01:33:34.69 ID:+lSi8wlB0
- try
except
endtry
そこまで具体的な疑問がなぜ調べられないのか
- 750 :名無しさん@お腹いっぱい。:2015/06/21(日) 01:52:38.64 ID:MJrWw5p10
- ifb else文について質問です
A.bmpが見つかればbreakで抜けて次のifb文にいくようにしたいのですが
A.bmpが見つからない場合、else以下動作でA.bmpを見つけるまでループして
見つけ次第breakで抜けて次のifb文に行くようにするにはどうすればよいのでしょうか?
- 751 :名無しさん@お腹いっぱい。:2015/06/21(日) 02:05:14.09 ID:JABvX0Qf0
- それはifbじゃなきゃダメなの?
repeat
スリープでも入れとく
until chkimg("A.bmp")
見つかった後の処理
とか
- 752 :名無しさん@お腹いっぱい。:2015/06/21(日) 02:06:55.94 ID:MJrWw5p10
- もう1つ質問なのですがwhile true wend文1つでifb文を複数詰め込むのと
ifb文1つに付きwhile true wend文を1つ使うのではどちらが処理は早くなりますか?
- 753 :名無しさん@お腹いっぱい。:2015/06/21(日) 02:22:23.36 ID:JABvX0Qf0
- repeatよりも while !chkimg("A.bmp") の方がいいか。
どっちが速いかなんて中身次第だと思うけど
whileやrepeat自体に条件で抜けるって機能があるんだから
ifbなんて使わなければその分は速くなるんじゃない?
- 754 :名無しさん@お腹いっぱい。:2015/06/21(日) 02:26:30.52 ID:MJrWw5p10
- ありがとうございます!
1度試しにやってみます
- 755 :名無しさん@お腹いっぱい。:2015/06/21(日) 02:29:03.36 ID:QhUDhWzG0
- 気になるなら試せば良い
1000回繰り返して時間差を見るとかやり方は沢山ある
- 756 :名無しさん@お腹いっぱい。:2015/06/21(日) 03:21:25.31 ID:MJrWw5p10
- A.bmp
B.bmp
C.bmp
の順に認識させようとしててA.bmpが見つかっていないのにB.bmpが見つかると動いてしまうのですが
改善法はありますか?
A.bmpが見つかるまでは動作させたくないです
- 757 :名無しさん@お腹いっぱい。:2015/06/21(日) 03:31:38.86 ID:QhUDhWzG0
- A.bmpが見つけるまでループさせて
B.bmpが見つけるまでループと順番に探す
B.bmpを見つけた時に追加条件としてA.bmpが探す方がシンプルになる事もある
特に正解は無いので前後にやりたい事次第じゃないかな
- 758 :名無しさん@お腹いっぱい。:2015/06/21(日) 04:16:33.57 ID:ZzQRKg6e0
- >>756
while !chkimg("a")
wend
//aが見つかった
while !chkimg("b")
wend
//bが見つかった
- 759 :名無しさん@お腹いっぱい。:2015/06/21(日) 15:49:11.10 ID:S+hxlfX40
- 例えばyahooのトップページの検索ボタンを押す場合、
毎回ボタンを押す位置をランダムに変えるにはどうすれば良いでしょうか?
- 760 :名無しさん@お腹いっぱい。:2015/06/21(日) 17:27:25.69 ID:Vr+4AoeE0
- なんでこんなにぐぐったりヘルプみたらすぐにわかる質問ばかりされるようになったの?
質問が全てゲームのマクロに使うようなものだし一人が頑張ってるのか
- 761 :名無しさん@お腹いっぱい。:2015/06/21(日) 17:32:47.29 ID:Vr+4AoeE0
- 愚痴るだけもあれなんでぐぐった結果の一番上をリンク先としてはっておく
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13120203578
知恵袋だけど
- 762 :名無しさん@お腹いっぱい。:2015/06/21(日) 17:39:19.13 ID:bdWj3ZUa0
- >>746
そか
- 763 :名無しさん@お腹いっぱい。:2015/06/21(日) 19:24:10.57 ID:ilRQGwwo0
- UWSC1ヶ月目ぐらいの雑魚だけどさすがにここまでの質問は俺はできない
気になるといえばGETTIMEの分がMMじゃなくてNNなのはなんでだろうってぐらい
- 764 :名無しさん@お腹いっぱい。:2015/06/21(日) 19:53:33.71 ID:QhUDhWzG0
- 質問者の一部はネタだよ
多分暇なんじゃないかな
- 765 :名無しさん@お腹いっぱい。:2015/06/21(日) 19:58:01.76 ID:lpX24SXC0
- >>763
UWSCはVB系の文法を真似てるからNNが分になった
VBは大した理由はない(Mは「月」で使用済みだからMの次、miNuteのN)
文法なんて人間の決めたものだから結構適当なものが多い
- 766 :名無しさん@お腹いっぱい。:2015/06/21(日) 21:06:46.87 ID:vIV+P+Mj0
- MMVとかもちょっとしっくりこない気がするw
普通にMOVEで良かったんじゃ、とか
- 767 :名無しさん@お腹いっぱい。:2015/06/22(月) 18:53:15.27 ID:Xo6NmJ950
- UWSC初心者なのですが、質問させて下さい
1つのスクリプトで処理中に待機時間が出来た場合、別のウィンドウで似たような動作をさせたい場合はどのような記述をすれば良いのでしょうか?
例えば、A処理→待機時間→別ウィンドウでA処理→待機時間→元のウィンドウでB処理→待機時間→別ウィンドウでB処理
という感じです
ググっても今一ピンと来るものが無くて途方に暮れてる雑魚ですが解答宜しくお願いします!
- 768 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:02:40.03 ID:cKoyihzE0
- >>767
そのまま書けばいいだけだと思うけどその処理のどの部分が判らない?
- 769 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:18:54.40 ID:qBo/qH0y0
- BTN(xxxx,click,0)
SLEEP(1)
とした場合、実際に実行するとキー入力があるので1秒で終わらないですよね
実行完了までの大体の時間が知りたい場合どうしたらいいでしょうか?
- 770 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:23:57.83 ID:Xo6NmJ950
- >>768
上の方にある>>568がイメージ的には近いんですけど、試しに試行してみた所、実行権限が上手く移行出来ていないのかずっとSLEEPで止まったままになってしまうのです
- 771 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:50:57.68 ID:nnr3IjCE0
- 並列処理っていうのは基本的に上級者向けだから
ピンと来ないなら諦めたほうがいいよ
>>568絡みでレスついてるけど
それ読んでもヒントにならないなら無理(あなたには)
- 772 :名無しさん@お腹いっぱい。:2015/06/22(月) 19:55:06.99 ID:nnr3IjCE0
- 並列処理しなくても>>768の言うとおり「そのまま書けばいい」が正解。
その代わり、元のウィンドウが待機時間に入ったとみなして
別のウィンドウの処理に入っている最中、元のウィンドウの待機時間が
終わって処理Bが可能となったとしても、別のウィンドウの処理Aが終わ
るまで元のウィンドウの処理Bは保留状態となる。
しかしそれでも全く問題ないだろ?
自分で手動操作する場合は結局そうするのだから。
- 773 :名無しさん@お腹いっぱい。:2015/06/22(月) 20:47:58.06 ID:DelgEmlV0
- UWSCって非同期できる?
- 774 :名無しさん@お腹いっぱい。:2015/06/22(月) 20:52:07.07 ID:SgLm1iVs0
- 非同期って一言で言われても色々あるぞ?
スレッド使えば基本的な非同期はできるぞとしか
- 775 :名無しさん@お腹いっぱい。:2015/06/22(月) 21:43:56.78 ID:A846/Vfm0
- >>769
実際に試して時間測れよ
- 776 :名無しさん@お腹いっぱい。:2015/06/22(月) 22:23:15.33 ID:My8ZQvWB0
- >>767
ウインドウの待機状態を感知して
ウインドウIDを保存、新たに同じ処理スレッドを作成
処理スレッド中にウインドウの待機状態と待機終了を感知して
さらに処理を開始、もしくは処理したいスレッドに戻ってくる
という方針で考えてみた
コンセプトはこんな感じでいいんじゃないかな
以下コード、分割する
Public HASHTBL BackupWindowID //ウインドウIDを格納する配列
Public CurrentWinID //操作したいIDを入れる器
MainThread(0) //メインの関数、引数はスレッド識別用
Procedure MainThread(ThreadNum)
CurrentWinID = GetID("なんか処理したいウインドウ")
// (なんか処理)
//処理中所々に以下に行を咬ませる
If (なんかあったら) Buzy = 1 Then Lock(ThreadNum) //忙しいなら現在のウインドウを冷凍
UnLock(ThreadNum) //取り敢えず全ウインドウの解凍を試みる
// (なんか処理続き)
FEnd
- 777 :名無しさん@お腹いっぱい。:2015/06/22(月) 22:23:43.27 ID:My8ZQvWB0
- (続き)
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
- 778 :名無しさん@お腹いっぱい。:2015/06/23(火) 02:48:15.57 ID:5lMefh0T0
- checking関数ってどんな技術使って実装されてるの?
- 779 :名無しさん@お腹いっぱい。:2015/06/23(火) 10:49:10.66 ID:XeeDdpBx0
- >>769
処理の開始と終了にgettimeを入れて
その差を見ればいい
- 780 :名無しさん@お腹いっぱい。:2015/06/23(火) 10:51:32.50 ID:y2P1rAvh0
- >>776-777
そういうやり方もあるかも知れないが、
実用化するには結構膨大な例外処理が必要そうだな。
第1にスレッドが子スレッドを無限に生成しかねない。
UWSCとしてスレッド数を制限する隠し上限値があってエラーで止まるが、
処理内容によってはメモリリーク様症状を起こしたり大量のスレッドで
CPU時間を占有しかねないので、その辺の統制が必要だろう。
第2に、UWSCが自動操作対象とする資源は非常にデッドロックが起きやすい。
> RE:cpuの高いときは休む umiumi
> UWSCの場合、他アプリとの関係が発生したりするので
> 他アプリのハンドルをつかんで何かする瞬間にサスペンドされ
> その後に画面構成が変わった後に再開したら、どうなるのかとか。
> また、一部の関数は内部的に排他制御しているので、排他制御中にサスペンド
> されるとデッドロックの可能性があります。
> それらを考えると、使用は全く勧められません。
> DATE:2007/3/17(Sat) 20:56
デッドロックを避けるために、スリーパーになるタイミングは慎重でなくてはならず、
複数のスレッドが同じ資源を掴まないように管理する処理を自力で実装したり、
デッドロックが発生して止まったスレッドを識別したり、そのゾンビスレッドが
いつの間にか勝手にロックから抜けだした時に勝手なことをしないように自殺させたり、
色々と必要なことは多い。
それらスレッドとの通信はすべてUWSCではグローバル変数を介さないと行うことが出来ない。
- 781 :名無しさん@お腹いっぱい。:2015/06/23(火) 10:52:39.30 ID:XeeDdpBx0
- >>770
スレッド使わないと無限ループになるよ
あと机上で適当に考えたやつだから
もともと動かない欠陥があったらスマン
- 782 :名無しさん@お腹いっぱい。:2015/06/23(火) 11:07:41.67 ID:7mhVk4To0
- 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
こんなんでいいんじゃないの?
- 783 :名無しさん@お腹いっぱい。:2015/06/23(火) 16:57:05.34 ID:l7BNyIR/0
- chkimgで検索する画像って
小さければ小さいほど処理は軽くて済むと思いますが、
例えば16x1pxと8x2pxと4x4pxと1x16pxだとどれが一番速いとか
構造上あり得るんでしょうか?
画面や画像にもよるとは思いますが。
検索方式によっては極力複数行にしないで
縦1dotの画像にした方が良いのでしょうか。
www.alg.cei.uec.ac.jp/itohiro/e-science/files/e-sci110904-5.pdf
ここのp.16の計算式とか見るとそんな感じぽいですが。
- 784 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:11:51.58 ID:OTChzhaD0
- 自分でマウスを動かしてるときに自動マクロが実行された場合競合してしまうのですが、
独立してマクロを動かすにはどうすればよいでしょうか?
- 785 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:20:34.89 ID:enpumEg80
- >>784
仮想環境入れるかもう一台PCを用意してそこで動かす
- 786 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:23:22.53 ID:1zVYU7i40
- デュアルマウスtoolとかあるけど、あれ入れた状態でマウスマクロはどんな反応するんだろ?
- 787 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:25:50.35 ID:/m2trk+h0
- LOCKHARDでロックする手もあるぞ
- 788 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:31:43.18 ID:wPOi6Obb0
- ロックハードでループ入ってデータ吹っ飛んだことある
- 789 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:37:28.27 ID:enpumEg80
- ロックハードだとキー押してる間やドラッグ中にされると
挙動おかしくならね?
ロックハード後に、キーアップしてみたがうまくいかなかったからやめたわ
- 790 :名無しさん@お腹いっぱい。:2015/06/23(火) 18:48:15.34 ID:/m2trk+h0
- >>789
あーなるかも
俺は吹き出しで3秒前に予告させるという何の解決にもならない方法を取ってるけども
- 791 :名無しさん@お腹いっぱい。:2015/06/23(火) 19:18:42.72 ID:OTChzhaD0
- 仮想デスクトップというソフトですかね?
いろんな種類があるみたいですけどオススメありますか?
- 792 :名無しさん@お腹いっぱい。:2015/06/23(火) 20:37:20.75 ID:yQA0bOaw0
- >>791
有名どころを上から順に試してみろや
- 793 :名無しさん@お腹いっぱい。:2015/06/23(火) 20:52:57.90 ID:uh0kyjqX0
- 仮想デスクトップじゃなくて仮想PCだよ
- 794 :名無しさん@お腹いっぱい。:2015/06/23(火) 22:27:38.05 ID:wPOi6Obb0
- EXECで起動できますが、終了はどうしたらいいですか?
- 795 :名無しさん@お腹いっぱい。:2015/06/23(火) 22:45:30.24 ID:ZIbaErIb0
- ソフトの終了操作を自動化したら良いんじゃないのけ
- 796 :名無しさん@お腹いっぱい。:2015/06/23(火) 23:34:57.57 ID:i+Ijn81p0
- EXCEL.quit
- 797 :名無しさん@お腹いっぱい。:2015/06/23(火) 23:38:40.94 ID:dLQWe0cz0
- 仮想PCってどの仮想PCソフト使えばいいの?
- 798 :名無しさん@お腹いっぱい。:2015/06/23(火) 23:49:27.96 ID:YFUQBjtZ0
- vmwareが主流と思われ
- 799 :名無しさん@お腹いっぱい。:2015/06/24(水) 07:05:50.59 ID:0UW+sVlw0
- >>794
doscmd("taskkill /f /im xxx.exe")
- 800 :名無しさん@お腹いっぱい。:2015/06/24(水) 11:25:34.62 ID:0UW+sVlw0
- >>783
実際に試して見るのが早いけどほぼ変わらないと思うよ
処理速度を上げるためだったら、他の視点を持った方がいい
サーチ範囲を狭めるとか、
画像サイズをギリギリまで小さくするとか、
peekcolorで頑張るとか、
ファイルじゃなくメモリアクセスにするとか…
- 801 :名無しさん@お腹いっぱい。:2015/06/24(水) 12:04:40.42 ID:Hspgd6GT0
- IDがわかってるならCtrlWin(ID,Close)で殺せるんでないの?
- 802 :名無しさん@お腹いっぱい。:2015/06/24(水) 15:06:11.96 ID:l1R57tJH0
- //A
BTN(LEFT,CLICK,955,163,10000)
//B
SLEEP(10)
BTN(LEFT,CLICK,955,163,0)
すいません、AとBは全く同じでしょうか?
違いやメリットデメリットがあれば教えて欲しいです?
- 803 :名無しさん@お腹いっぱい。:2015/06/24(水) 15:13:07.26 ID:hWL3irCZ0
- なんも考えずにSLEEP使うといいよ
- 804 :名無しさん@お腹いっぱい。:2015/06/24(水) 15:22:51.00 ID:u1SFGEEE0
- 多分違う
時間計測を挟んでみるとわかるけれど引数の値の近似値にはならないのよね
なんとなくのイメージ論になっちゃうけれど
引数の方は最大待機時間っぽい感じがする
- 805 :名無しさん@お腹いっぱい。:2015/06/25(木) 18:22:16.80 ID:oPZ+haqw0
- ひょっとして自動クリックが誤動作で連射になるときある・・?
プログラム動作中に他の作業でマウス使ってたら競合して連射とか予期せぬ動作とかしない?
- 806 :名無しさん@お腹いっぱい。:2015/06/25(木) 18:29:50.15 ID:wqp1X+za0
- >>805
そりゃ、ちょうどマウスのボタンを押そうと思ったときに、マクロ側も押そうとしたら2連射になるよね
- 807 :名無しさん@お腹いっぱい。:2015/06/25(木) 20:13:48.47 ID:cDTqbBy20
- マウス無効化すればいいw
- 808 :名無しさん@お腹いっぱい。:2015/06/25(木) 20:20:52.39 ID:FY/KLTGZ0
- 仮想がさいつよ
はっきりわかんだね
- 809 :名無しさん@お腹いっぱい。:2015/06/26(金) 01:49:25.66 ID:gz7aLMMI0
- 仮想か別PCで動かさないとやばいな
クレイジーな挙動になるときがある
- 810 :名無しさん@お腹いっぱい。:2015/06/26(金) 01:54:37.32 ID:sdP5f9pC0
- それはフォーカスに過度に依存しているスクリプトなんだよ
色々と事前チェックが足りない
- 811 :名無しさん@お腹いっぱい。:2015/06/26(金) 04:48:07.06 ID:hH8a5ejS0
- IEで、ひとつのウィンドウで開いている2つのタブを、
二つのウィンドウに分けたい場合はどのように処理したら良いでしょうか?
二つ起動するのではなく、既に開いているタブ二つを分割したいのです
マウス操作以外で方法があったら教えて下さい。
- 812 :名無しさん@お腹いっぱい。:2015/06/26(金) 06:27:30.46 ID:5tv/9hgA0
- ブラゲーマクロなんかはマウスに依存せざるをえないんじゃないかなあ
flash解体して操作なんてできないでしょ
- 813 :名無しさん@お腹いっぱい。:2015/06/26(金) 08:56:03.95 ID:uOfWxV270
- 仮想化以外で現実的なのは
マウスクリックのひとつ前の処理に座標取得とマウス無効化入れて、
処理が終わったら無効化解除してもとあった座標に戻す、ぐらいかな
- 814 :名無しさん@お腹いっぱい。:2015/06/26(金) 10:15:39.35 ID:/WN731vj0
- もしくはmouseorgで
- 815 :名無しさん@お腹いっぱい。:2015/06/26(金) 13:49:41.53 ID:gz7aLMMI0
- 時刻を参照して
・・:00
・・:10
・・:20
・・:30
のときだけ動作(一回のみ)させるにはどう記述すればよいでしょうか?
- 816 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:17:51.76 ID:9QDhhXNK0
- スケジュールで式による設定
NN=(00 or 10 or 20 or 30)
- 817 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:32:32.73 ID:OscSNhMp0
- >>815
スクリプト上なら
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
- 818 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:44:52.03 ID:NVjv4qWL0
- >>811
IEオプションのタブ項目弄った方が楽
- 819 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:51:40.89 ID:8b6cWaM60
- >>815 >>817
自分なら
While !GetKeyState(VK_ESC)
GetTime()
If !(G_TIME_SS MOD 10) Then やりたい処理()
Sleep(1)
WEnd
- 820 :名無しさん@お腹いっぱい。:2015/06/26(金) 14:52:32.82 ID:8b6cWaM60
- あ、分か
SSじゃなくNNだったな
- 821 :名無しさん@お腹いっぱい。:2015/06/26(金) 16:04:42.66 ID:OscSNhMp0
- >>819
sleep(60)にして一分ごとにチェックすると思うけど、それだと飛びが発生する可能性があるよ
例えば、9分59秒99のタイミングでチェックした後、
sleep(60)したら11分0秒00で次のチェックが走った場合
- 822 :名無しさん@お腹いっぱい。:2015/06/26(金) 17:27:14.95 ID:9RWcGcCt0
- そんな誤差を許容するなら、NN mod 10 の結果が減った時を検出するのがいいかな
- 823 :名無しさん@お腹いっぱい。:2015/06/26(金) 19:35:38.53 ID:tMFd7SQN0
- 60にする必要まったくなくね
っとおもったらsleep(1)じゃん
別にこれでいいと思うよ
- 824 :名無しさん@お腹いっぱい。:2015/06/26(金) 19:36:09.55 ID:7mDgY6gd0
- 等号(=)での比較がきらいなので
GetTimeして
次の予定は(00秒、10秒、20、30)のどれになるかを計算して
----ループ開始
GetTimeして、次の予定を過ぎていたら(>=)
まず、その次の予定を計算して代入してから「やりたい処理」をする
----ループの先頭へ
もしも「やりたい処理」が10秒以内で終わらないかもしれないなら
そのためのエラー処理ルーチンを入れるか
「やりたい処理」を別スレッドにして並列で幾つも幾つも実行させる
- 825 :名無しさん@お腹いっぱい。:2015/06/26(金) 19:51:18.78 ID:YwwzOsxf0
- タスクスケジューラを利用
- 826 :名無しさん@お腹いっぱい。:2015/06/27(土) 00:43:47.94 ID:4DjkU5u70
- CHKBTNやCLKITEMでラジオボタンを対象にする場合で質問
キャプションの文字列が存在しない場合はどう指定すればいい?
- 827 :名無しさん@お腹いっぱい。:2015/06/27(土) 00:47:56.11 ID:kmOp9RrE0
- SPY++でコントロールIDを直接調べる
- 828 :名無しさん@お腹いっぱい。:2015/06/27(土) 07:26:49.45 ID:AXu8qFQR0
- >>823
それだと10分に何十回も実行してしまう
- 829 :名無しさん@お腹いっぱい。:2015/06/27(土) 09:24:31.94 ID:i0mwW7lv0
- >>828
やりたい処理の最後にSleep(60)でええやん
- 830 :名無しさん@お腹いっぱい。:2015/06/27(土) 15:37:47.24 ID:wCNQu5qC0
- 最後に実行した時のNNを変数に保存して比較すればいいよ
自動操作という性質上そういう重複操作を統制する手法は常識
- 831 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:23:30.15 ID:YBWE773w0
- 初回だけ検出したらその後は sleep(600) だけでいいのでは
- 832 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:38:09.35 ID:kmOp9RrE0
- 求める精度は用途によって様々
人それぞれなんで答えは一つじゃないさ
- 833 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:51:46.71 ID:Cp3CV12G0
- >>831
処理にかかった時間の分だけずれていく
- 834 :名無しさん@お腹いっぱい。:2015/06/27(土) 17:56:41.75 ID:92XqVBFW0
- ダブルマウスダブルキーボードの人いる?チャレンジしてみようかな
- 835 :名無しさん@お腹いっぱい。:2015/06/27(土) 19:42:01.53 ID:yUPbOYud0
- >>833
じゃあ時間で判断したらええやん
- 836 :名無しさん@お腹いっぱい。:2015/06/27(土) 21:11:52.43 ID:YPLPZoo+0
- それがsleep(1)だろ…
- 837 :名無しさん@お腹いっぱい。:2015/06/28(日) 00:23:09.01 ID:yZ8ohOQ90
- >>834
翻訳頼む
- 838 :名無しさん@お腹いっぱい。:2015/06/29(月) 01:19:56.72 ID:0u/Dye8K0
- 時間で判断というのはGETTIMEを元にリアルタイムを判定するってことだね
判定サイクルに挟み込むwaitがSLEEP(1)なら誤差は何回ループしても
1秒+処理時間までに収まる
- 839 :名無しさん@お腹いっぱい。:2015/06/29(月) 04:29:46.10 ID:9eIZINV/0
- >>838
現在の時刻と実行したい時刻までの時間の差を図って、それだけ待ってから実行したらどうか
- 840 :名無しさん@お腹いっぱい。:2015/06/29(月) 09:35:36.32 ID:r9CE5fkI0
- peekcolorで明らかに座標位置とは違う色が取れる時があるんだけど何故だ?
赤いエリアでやってるのに時々黒に近いデータが返ってきたり。
- 841 :名無しさん@お腹いっぱい。:2015/06/29(月) 10:11:16.49 ID:ka0ucbGy0
- >>840
プログラムは思ったとおりには動かない
書いたとおりに動くからだよ
- 842 :名無しさん@お腹いっぱい。:2015/06/29(月) 10:43:14.50 ID:0I5Issh10
- Mouseorg()でID指定してるのに
G_MOUSE_X/YでPeekcolor()してるとか?
- 843 :名無しさん@お腹いっぱい。:2015/06/30(火) 00:10:13.02 ID:BJA2Xrw00
- 連想配列の中身をcsvに書き込むのってどうやればいい?
- 844 :名無しさん@お腹いっぱい。:2015/06/30(火) 00:17:49.37 ID:eWBCRJq80
- 初心者なのですがここで質問していいのか分かりませんが、お答えしてもらえると嬉しいです
同じ画面でウィンドウの名前が「ひとつめ」「ふたつめ」というものがあるとして
ID1 = GETID("ひとつめ")
ID2 = GETID("ふたつめ")
dim id[] = ID1,ID2
for d = 0 to 1
CTRLWIN(id[d],ACTIVATE)
MOUSEORG(id[d],1)
next
という文だと
ひとつめのウィンドウをアクティブ化
↓
ひとつめのウィンドウを相対座標にする
↓
ふたつめのウィンドウをアクティブ化
↓
ふたつめのウィンドウを相対座標にする
ということになるのでしょうか?
手元にパソコンがないので試すこともできないので教えていただけると嬉しいです
- 845 :名無しさん@お腹いっぱい。:2015/06/30(火) 01:28:47.06 ID:Ond76hrU0
- ※ 有効範囲はスレッド単位
- 846 :名無しさん@お腹いっぱい。:2015/06/30(火) 01:38:14.53 ID:/I1DQEUO0
- テキストボックスの数字を変える場合は、
「ダブルクリック→数字キー」が良いですかね?
オススメありますか?
念のためバックスペースかましたり、あるいはコントロールA使ったりいろいろありそうですけど。
- 847 :名無しさん@お腹いっぱい。:2015/06/30(火) 12:52:55.95 ID:3s3VXGwt0
- 画面ロックして外出して帰ってきたんだけど、プログラム動いてなかった。なにこれ?どういうこと?
- 848 :名無しさん@お腹いっぱい。:2015/06/30(火) 12:56:27.49 ID:fj872/AM0
- そーゆうこと
- 849 :名無しさん@お腹いっぱい。:2015/06/30(火) 13:07:51.12 ID:3s3VXGwt0
- まじっすか
ロック中でも動かす方法ある?
どうすればいいの?
- 850 :名無しさん@お腹いっぱい。:2015/06/30(火) 13:39:09.23 ID:XitTC9f90
- FUKIDASIなんですが、一度表示してずっと表示されてる時と
表示した直後にすぐ消えてしまう時があります
どこで変わるのでしょうか?
表示時間みたいなパラメータ指定は無いですよね?
- 851 :名無しさん@お腹いっぱい。:2015/06/30(火) 13:48:52.36 ID:Ond76hrU0
- スクリプトが終了したら消えるのでそれじゃないかな?
結果を視認しないとダメなケースはSleep入れるのも手
- 852 :名無しさん@お腹いっぱい。:2015/06/30(火) 14:30:27.22 ID:3s3VXGwt0
- ロック中でも他のアプリは動くけど、UWSCだけ動かないぞダメじゃん。
- 853 :名無しさん@お腹いっぱい。:2015/06/30(火) 15:22:56.20 ID:HJpJ9xnX0
- スクリーンセイバーは?
- 854 :名無しさん@お腹いっぱい。:2015/06/30(火) 19:38:25.50 ID:Ond76hrU0
- 端的にいうとマウス、キーボードに依存していないスクリプトならロック中でも動く
だって内部的には切断されるからね
- 855 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:13:13.58 ID:MQiSjpZ/0
- CHIKING関数で画像認識のスクリプトを練習してるのですが手詰まってましてヒントだけでもいいので教えてほしいです
例えばある二つのフォトビューワーを起動していてどちらもクリックするごとにA,B,C,Dの画像をランダムに表示するとします。
「両方にB画像が出るまでクリックを両方に繰り返す」
というものを作成したいのですが
While (CHIKING("B画像.bmp")=FALSE)
クリック作業
WEND
となると片方にBが表示されると止まってしまいますよね?
「両方にBが表示された時に」という条件はどう書けばいいのでしょうか?><
- 856 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:28:10.65 ID:RZWrQIbZ0
- 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
- 857 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:48:21.50 ID:eWBCRJq80
- >>856
ありがとうございます!!
- 858 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:51:56.38 ID:3s3VXGwt0
- スクリーンセーバーもダメだったw
しかしこれは盲点だったorz
パソコンから離れられないんだけど
皆さんはなんか工夫してんの?
- 859 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:56:36.38 ID:GbIhkVsn0
- chkimgの対象ウィンドウをmouseorgで切り換えたほうがいいと思う
mouseorgはchkimg以外でも使用するのが常套手段だが、使用すればchkimgにも作用してしまう。
そのため複数ウインドウ処理時は、現在の対象ウィンドウが不確かになるのを防ぐため、
常にchkimgの直前にmouseorgすると良く、記述の煩雑化を避けるためにchkimgをラッピングする
自作関数を定義し、引数にウィンドウIDを指定できるようにすると良い。
- 860 :名無しさん@お腹いっぱい。:2015/06/30(火) 21:57:39.55 ID:RZWrQIbZ0
- >>858
馬鹿かお前は
UWSCはバックグランドアプリでもサービスアプリでもないアクティブアプリだ
最小化しかり、ウインドウが作成されない環境で操作できると思ってる方がおかしいわ
どうしてもやりたきゃ仮想化一択 結論出てんだろ
- 861 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:02:08.33 ID:bE8J7fSf0
- マウスやキーボードや画面表示に依存しないスクリプトなら動くかも?
- 862 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:03:20.74 ID:FoC7tnPp0
- ファイル操作くらいか。
- 863 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:04:25.60 ID:b0cRK8490
- >>859
STATESの勉強しに行くつもりでしたが、そちらの方が後の事を考えると手間がすくないんでしょうか?
ありがとうございます!
- 864 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:13:22.54 ID:RZWrQIbZ0
- >>863
Mousorgが上級者向き
やらかすと混迷するから注意しとき
STATUSで理解した方が内部的に何やってるか理解が進むよ
- 865 :名無しさん@お腹いっぱい。:2015/06/30(火) 22:19:06.98 ID:b0cRK8490
- >>864
なるほど....
ご丁寧にありがとうございます!
ひとまずはSTATESから勉強してみようと思います!
ていうかなんでIDがコロコロかわってるんだろう...
- 866 :名無しさん@お腹いっぱい。:2015/07/01(水) 00:01:16.25 ID:We4qjDRi0
- >>858
仮想化すればロックしてても関係ない
親相手ならhardlock(true)くらい入れときゃいじられんだろ
- 867 :名無しさん@お腹いっぱい。:2015/07/01(水) 01:09:57.39 ID:j4P+NWwq0
- ディスプレイの電源切るじゃダメなんですかね。
- 868 :名無しさん@お腹いっぱい。:2015/07/01(水) 09:00:13.61 ID:ZnimBi9e0
- CHECKINGとかSTATESとかわざとやってんのか?
- 869 :名無しさん@お腹いっぱい。:2015/07/01(水) 09:57:37.69 ID:SnVS9ErY0
- >>868
関数は基本的にコピペで書いてたからスペルミスだ!
自分で書けるようにしといたほうがやっぱりいいよね
- 870 :名無しさん@お腹いっぱい。:2015/07/01(水) 22:27:47.77 ID:Go3e87CM0
- Fnキーって押せないん?
- 871 :名無しさん@お腹いっぱい。:2015/07/01(水) 23:20:00.93 ID:riwfsP/T0
- >>870
記録でFnキーと何かのキーを一緒に押した時のキーを見れば良い
- 872 :名無しさん@お腹いっぱい。:2015/07/02(木) 00:39:57.16 ID:ksL2h/C30
- Fn+win+PrtSc
とかだと綺麗にFnだけ抜けちゃうんだよね
- 873 :名無しさん@お腹いっぱい。:2015/07/02(木) 00:47:57.80 ID:qBOipjVt0
- Fnキーって物理的なキーが少ない場合の補完用だから
元々押したいキーを直接押せばいいじゃないか
- 874 :名無しさん@お腹いっぱい。:2015/07/02(木) 01:31:19.61 ID:4U6lFIXy0
- そもそもFnキーってWindows上で物理認識しないよね
- 875 :名無しさん@お腹いっぱい。:2015/07/02(木) 02:41:51.97 ID:Sqf75Xur0
- FnはノートPCとかフルキーボードでないキーボードで不足分のキーを押せるようにしてるだけだしな
普通にPrtScを押すように指定すればいい
- 876 :名無しさん@お腹いっぱい。:2015/07/02(木) 03:15:08.70 ID:ksL2h/C30
- なんと盛大に勘違いしてた
無知晒し恥ずかしい…
教えてくれた人ありがとう
- 877 :名無しさん@お腹いっぱい。:2015/07/02(木) 10:51:10.91 ID:JLKFit2r0
- いいってことよ
- 878 :名無しさん@お腹いっぱい。:2015/07/02(木) 15:09:42.42 ID:q3WzHL190
- <INPUT type="checkbox" value="1" name="cancelCorrectKbn" id="cancelCorrectKbn_1"><LABEL for="cancelCorrectKbn_1">取消</LABEL>
このcheckboxにチェックを入れる方法を教えて。
IESetData(oIE1,True,"cancelCorrectKbn","1")
で良いのかな?
- 879 :名無しさん@お腹いっぱい。:2015/07/02(木) 16:50:13.35 ID:ypikNNL20
- つい、今しがた知ったんだけど前スレにchkimgxとかいう便利なものを作ってくれた人がいるんじゃん
これ次のテンプレ入れてもいいんじゃないの?
まぁ画像認識なんてゲームでチョメチョメするような人用だとは思うが・・・
- 880 :名無しさん@お腹いっぱい。:2015/07/02(木) 17:39:40.15 ID:H6W3xfcg0
- >>879
そうやって優しくするとそれ目的の奴らがどんどん湧くからいらんいらん
- 881 :名無しさん@お腹いっぱい。:2015/07/02(木) 18:19:35.92 ID:rxbY/3wi0
- スレタイ読もう
- 882 :名無しさん@お腹いっぱい。:2015/07/02(木) 18:45:15.60 ID:m+yQFFM10
- ?
- 883 :名無しさん@お腹いっぱい。:2015/07/02(木) 18:52:27.01 ID:9y1f9FD60
- 「集まれ」→オフ会しようってこと?
- 884 :名無しさん@お腹いっぱい。:2015/07/02(木) 18:56:10.78 ID:lWS9wrlo0
- >>8
Unityアプリは知らんけど
CTRLWINでアクティブにすればいかがだろうか?
- 885 :名無しさん@お腹いっぱい。:2015/07/02(木) 21:30:37.16 ID:4U6lFIXy0
- アプリのソースがあればなんでマウスクリックが実位置になってるかわかると思うよ
ゲームのマクロなら死ね
- 886 :名無しさん@お腹いっぱい。:2015/07/02(木) 22:42:53.89 ID:0Ew3lqg50
- 十中八九ゲームだろ
DLLインジェクションでマウス位置取得関数を偽装するか仮想化するしか方法ないね
- 887 :名無しさん@お腹いっぱい。:2015/07/03(金) 02:59:40.89 ID:nWUz25pS0
- >>879
テンプレ入れて欲しい。
これのおかげで、RocketMouse使わなくなったし、便利。
私はゲームじゃなくて、フラッシュによる画像をクリックさせてる。
- 888 :名無しさん@お腹いっぱい。:2015/07/03(金) 11:59:30.04 ID:EstE0F/p0
- 一定時間おきに動かしてたんだけど、ちとPC1台だとやりにくくなってきたから
UWSC専用のサブPCを用意しようかなと思ったんだけど、あまり場所をとられるのは困る
こういうのでUWSC動かしている人居る?
http://www.amazon.co.jp/dp/B00U7CKDXU/
- 889 :名無しさん@お腹いっぱい。:2015/07/03(金) 12:03:50.09 ID:vxiFtFvD0
- 仮想化も動かせないほどショボイPC使ってるのか
- 890 :名無しさん@お腹いっぱい。:2015/07/03(金) 12:32:45.25 ID:EstE0F/p0
- >>889
別にショボくはないけどスケジュールタスクで動かしているからメインPCがUWSCの影響を受けないようにしたい
- 891 :名無しさん@お腹いっぱい。:2015/07/03(金) 12:38:24.18 ID:a3Chrt190
- 持っていないから
有効なアドバイスは出来ないが煽りに反応してもつまらんよ
スルーしとけ
- 892 :名無しさん@お腹いっぱい。:2015/07/03(金) 13:01:22.60 ID:UXmwghDW0
- >889
VMPlayer無料だしXPなら転がってるし
CPU負荷もバックグラウンドなら大してかからんし
スリムにインストールして運用したほうが
メモリ足すくらいでコストはかからんよ
同じマウスモニタモニタキーボードで操作できるほうが効率もいい
ゲーム?知らん
- 893 :名無しさん@お腹いっぱい。:2015/07/03(金) 15:03:04.98 ID:N5TzzQmH0
- 新しくPC自作してマクロを並列で動かしてたんだけどchkimgかかってる場面がすごく重い
これはデスクトップコンポジションをオフにできないから?
win7のパソコンだとヌルヌル動いてくれるんだけど
- 894 :名無しさん@お腹いっぱい。:2015/07/03(金) 15:48:25.86 ID:+iExLTGh0
- VRAMたりない
- 895 :名無しさん@お腹いっぱい。:2015/07/03(金) 17:13:27.09 ID:7RoLMcdV0
- >>880
どんどん湧くってのならそれなりに歓迎したいところだけど
使い方わからん奴がバンバン湧いて質問の嵐とかなる懸念がなくはないな
画像のパターン認識なんてやっぱゲーム、それも3Dの奴に使うのが大半だろうしね
流行りのスマホゲーならビット認識のchkimgだけでも充分だし
うだうだ言ったが便利なら別に別にテンプレ入れてもいいんじゃね
- 896 :名無しさん@お腹いっぱい。:2015/07/03(金) 17:35:55.33 ID:gZLuGeEo0
- >>895
ソーシャルゲーとかの板見ればわかるけど、変数が何かすら知らずに質問してる奴らと、スクリプトクレクレくんで溢れてる
便利なものをテンプレにってのは同意
けど推奨は控えるべきかと思われ
- 897 :名無しさん@お腹いっぱい。:2015/07/03(金) 23:42:58.95 ID:N5TzzQmH0
- >>894
gpu-z入れて画像をチェックしたら終了するマクロを15個ぐらい並列起動させてもVRAMにはかなり余裕があった
CPU、メモリの使用率にも余裕があるのになぜかすごく重い
他に考えられる原因ってありますか?
今の環境は
win8 pro 64bit
5960x
32gb
gtx970
- 898 :名無しさん@お腹いっぱい。:2015/07/04(土) 00:55:35.79 ID:HgftupiM0
- >>897
画面の解像度
リフレッシュレートがあってない
グラボによるオーバースキャン
エアロ・デスクトップコンポジション
二画面、マルチモニタ
モニタをまたがるウインドウの配置
マルチVGAでどっちかがフルスクリーン
DirectXアプリ
ActivX・Flash起動中
- 899 :名無しさん@お腹いっぱい。:2015/07/04(土) 06:54:46.64 ID:Oft+aTik0
- >>898
解像度、リフレッシュレート、DirectX,、ActiveXはwin7機と同じ環境、設定
二画面解除しても同じ結果になった
エアロ・デスクトップコンポジション、グラボによるオーバースキャン
このあたりが怪しいと思うんですがオーバースキャンを抑制するような設定ありますか?
- 900 :名無しさん@お腹いっぱい。:2015/07/04(土) 10:59:56.29 ID:kljfyEkx0
- オーバースキャンはドライバーの設定
モニタにあわない解像度で出力してもドライバ側で
引き伸ばしたり縮小してくれる機能だから
コンパネに無ければドライバインストールフォルダにある設定ソフトがあるはず
特に恩恵を受けていないのならエアロは切ろう
コンポジションはUWSC本体右クリックでプロパティの中に
起動中のコンポジションを無効にするとかの設定がある
- 901 :名無しさん@お腹いっぱい。:2015/07/04(土) 11:09:32.60 ID:45RPHOrf0
- 後、何を自動化しているかしらないけれど
環境変えたら素材イメージも更新しないとね
BMPで保存するイメージはドライバの影響を受けているので
厳密には同じ絵じゃなくなっている可能性がある
その結果ヒット率が変わっているのかもよ
- 902 :名無しさん@お腹いっぱい。:2015/07/04(土) 14:05:09.45 ID:km5dbSUi0
- ワイもメモリ増量しようかな
ブルスタとこれで作業してるときつい
- 903 :名無しさん@お腹いっぱい。:2015/07/04(土) 14:33:42.72 ID:xlKNHZD+0
- 空きスロットあるならメモリ増設してデメリット無いからな。
俺はノートパソコンだけどBTOで買ったから良いグラボ乗っけてる。
メモリは32GBだからAndroidエミュ10個立ち上げてもサクサク。
- 904 :名無しさん@お腹いっぱい。:2015/07/04(土) 18:48:35.18 ID:Oft+aTik0
- >>900
>>901
genymotionでアプリのリセマラ自動化してます
例えば
REPEAT
UNTIL CHKIMG("サンプル.bmp",0)
このテストマクロをサンプルを画面に表示させない状態で15個並列起動させた場合
windows8.1の新しいパソコンだと画面全体の挙動がwindows7機に比べてすごくもっさりするんです
windows8.1だとAERO、デスクトップコンポジション切れないからこのせいかなと
windows8.1 windows7
5960x. 860
32gb 8gb
gtx960 gtx970
- 905 :名無しさん@お腹いっぱい。:2015/07/04(土) 20:01:04.91 ID:epgCJDqf0
- そ、だから8.1なんか使わんよ。7であと何年もやる。
つか俺の場合は仮想マシン内はXPだがw
軽い軽い
- 906 :名無しさん@お腹いっぱい。:2015/07/04(土) 20:49:13.06 ID:HgftupiM0
- >>904
いや、切れよw
何もOSで殺す必要はないんよ
UWSC起動中だけ着るように設定しろよ
- 907 :名無しさん@お腹いっぱい。:2015/07/04(土) 21:30:01.65 ID:Oft+aTik0
- windows8からはデスクトップコンポジション切れない仕様になったはずだが切れんの?
- 908 :名無しさん@お腹いっぱい。:2015/07/04(土) 23:07:20.42 ID:HgftupiM0
- 切れるけど大変なんだな
知らんかったWin7の感覚だった
切り方
ttp://blog.livedoor.jp/lynnfield750/archives/27088631.html
ここの記事と、さらにコメント藍
- 909 :名無しさん@お腹いっぱい。:2015/07/05(日) 01:07:16.51 ID:JgDg//8F0
- 自作関数で引数を複数渡す場合途中を省略ってできない?
A(a, ,c)
procedure A(a,b = 0,c = 0)
処理
fend
ってやるとsyntaxerror吐いてしまう
- 910 :名無しさん@お腹いっぱい。:2015/07/05(日) 01:13:27.74 ID:rs9gq+GO0
- firefoxで表示しているページのhtmlを取得したいのですが、
下記よりももっとシンプルな方法は無いでしょうか?
できればCTRL+Uで新しい窓を開かずに取得したいです
id = GETID("Mozilla Firefox", "MozillaWindowClass")
SCKEY(id,VK_CTRL,U)
id_html = GETID(GET_ACTIVE_WIN)
SCKEY(id_html,VK_CTRL,A,C)
SCKEY(id_html,VK_ALT,VK_F4)
- 911 :名無しさん@お腹いっぱい。:2015/07/05(日) 01:36:10.77 ID:zwXzQ8GA0
- >>909
省略した後の引数を非省略にできない仕様だったと思う
(a, b, )→OK
(a, , )→OK
( , , )→OK
(a, , c)→NG
( , b, c)→NG
一部の引数を用意できない状況なら
一旦配列にして配列渡しをしたほうが良いんじゃないかな
引数が無い個所が出るパターンが固定なら並び方を考えるのも大事
- 912 :名無しさん@お腹いっぱい。:2015/07/05(日) 02:04:05.01 ID:erQt0OMk0
- UWSCは名前付き引数渡しが出来ないからなぁ
どうしてもそれっぽくしたいならEMPTY使う手もある
こうするとスマートさは減るけれど syntaxerror にはならない
test(0)
test(1, 2)
test(2, 3, 4)
test(3, EMPTY, 5)
Procedure test(a, b=2, c=3)
if b = EMPTY then b=2
print "a=" + a + " b=" + b + " c=" + c
Fend
- 913 :名無しさん@お腹いっぱい。:2015/07/05(日) 06:12:25.24 ID:g3mbyt+90
- >>908
わざわざ調べてくれてありがとう
これ試してみる
だめだったらおとなしくwin7入れなおすわ
- 914 :名無しさん@お腹いっぱい。:2015/07/05(日) 10:24:51.27 ID:JgDg//8F0
- >>911-912
なるほどありがとう
引数必要な場所が割と頻繁に変わるから配列にしようかな
- 915 :名無しさん@お腹いっぱい。:2015/07/05(日) 17:36:04.87 ID:Ks2rVhpn0
- >>879
こんなのあったんだな
ちょっと勉強しよう
- 916 :名無しさん@お腹いっぱい。:2015/07/05(日) 21:38:55.42 ID:aXkkWswb0
- callをやっと使い始めた 便利すぎて今までの苦労がなんだったんだろうって気分
- 917 :名無しさん@お腹いっぱい。:2015/07/05(日) 22:35:49.98 ID:Ks2rVhpn0
- 画像A,B,Cのいずれか一つが出て、それが出るまで待機し出たらクリックというのは
REPEAT
SLEEP(0.01)
UNTIL CHKIMG("A")=TRUE or CHKIMG("B")=TRUE or CHKIMG("C")=TRUE
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
でいいんですか?
- 918 :名無しさん@お腹いっぱい。:2015/07/05(日) 22:55:15.19 ID:HZRtTKNa0
- それがあってるかどうかぐらい自分でいくらでも試せるでしょ
>>915の勉強しようとうい言葉は何だったんだよ
ゲーム乙
- 919 :名無しさん@お腹いっぱい。:2015/07/05(日) 23:08:29.14 ID:zwXzQ8GA0
- 何だゲームか
もう回答せん
- 920 :名無しさん@お腹いっぱい。:2015/07/05(日) 23:51:22.52 ID:/3QT2bJA0
- >>917
短縮評価のオプション付けてるなら動きそう
- 921 :名無しさん@お腹いっぱい。:2015/07/06(月) 00:14:30.10 ID:1kyROCmy0
- このソフトをゲーム以外の何に使うんだよ?
アフィまとめとかか?
- 922 :名無しさん@お腹いっぱい。:2015/07/06(月) 09:04:30.50 ID:zB1ir7s90
- OSの再起動に使うよw
- 923 :名無しさん@お腹いっぱい。:2015/07/06(月) 12:55:06.63 ID:4H3WEyTx0
- PCをゲーム機としてしか使ってない人がそういう発想になってしまうのは仕方がない
- 924 :名無しさん@お腹いっぱい。:2015/07/06(月) 16:04:28.18 ID:1kyROCmy0
- MSXは完全なゲーム機だったなぁ…
- 925 :名無しさん@お腹いっぱい。:2015/07/06(月) 16:09:42.23 ID:t6BjxtuQ0
- 使う人次第だよ
(別にMSXでも色々出来る)
- 926 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:16:38.45 ID:1kyROCmy0
- そんなの当たり前だろ
- 927 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:30:13.12 ID:7OhpLyu70
- 証拠もなくゲーム乙と決め付け
証拠もなくもう回答せんと宣言するとかどんなもんよ・・・
まぁ今回は実際そうだったみたいだけど
- 928 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:35:18.96 ID:YTCflh3t0
- 8〜9割はゲームだろうな
- 929 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:36:17.52 ID:YOsw2UAz0
- おれはほぼアプリ操作補助だな
- 930 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:40:57.79 ID:+gL5gVPD0
- おれはデバッグの仕事で使うな
ゲームのデバッグだけど
- 931 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:54:01.18 ID:LxmhFbD40
- 金が儲かることってない?
やっぱ今あるかしらんけどげん玉とかだよね?
1日1万ぐらい入るやつないかな〜結構UWSC使いこなせるようになってきた
- 932 :名無しさん@お腹いっぱい。:2015/07/06(月) 18:57:47.34 ID:9J0wHipU0
- >>931
初心者向けUWSC解説サイトでも作れば?
既存のものは本当に何の知識もない人からするとちょっと難しいと思うの
- 933 :名無しさん@お腹いっぱい。:2015/07/06(月) 23:07:27.99 ID:7OhpLyu70
- >>932
変数とはなにか?
関数とはなにか?
ってレベルからかな?
本当に金稼ごうと思うならやっぱゲームの自動化について
具体的にタイトル毎に解説とかするのがいいのかもね
艦これとかスマホゲーなら小銭稼ぎは出来そうだけど
1日1万なんてRMT業者でもやらんとどうやっても無理やろね
- 934 :名無しさん@お腹いっぱい。:2015/07/06(月) 23:09:45.23 ID:zlB2CDHd0
- 有名どころはやっぱここか
PC自動化して稼いでいるアラサー(独女)ですが何か?
http://unmeino-rashinban.com/
地味にノウハウやロジックのテクニックも載ってる
- 935 :名無しさん@お腹いっぱい。:2015/07/06(月) 23:26:13.08 ID:1kyROCmy0
- 俺もがんばって稼ぐわ
- 936 :名無しさん@お腹いっぱい。:2015/07/06(月) 23:31:11.22 ID:iOXs3cIF0
- 獲得金額を盛りすぎだろw
現実は100分の1ってところだろうからぶっちゃけ電気代のほうが上だろう
アクセス数稼いでアフィリエイト収入が目的なんだろうけど
- 937 :名無しさん@お腹いっぱい。:2015/07/07(火) 01:20:56.45 ID:qIahE/xQ0
- >>933
変数とは何か を説明してるサイトはいくらでもあるけど
それをどのように使うのか、どう組み合わせるのか
ってのをわかりやすく解説してるサイトは少ないと思うよ
- 938 :名無しさん@お腹いっぱい。:2015/07/07(火) 01:31:37.13 ID:flROpUbP0
- プログラミング出来る人なんで日本だけで何百万人もいるわけだからね
それだけで遊んで暮らせるわけはない
アフィとかRMTでよっぽど必死にならないといけない
趣味程度と考えれば、よいお小遣い稼ぎにはなるかもしれないね
俺がRMTで必死だった4〜5年前は年間600万くらい稼げた
- 939 :名無しさん@お腹いっぱい。:2015/07/07(火) 03:53:06.03 ID:MfZoFTtg0
- RMTなんてROのイメージしかない
- 940 :名無しさん@お腹いっぱい。:2015/07/07(火) 07:05:40.24 ID:CMCGAugX0
- 最終的に株の自動売買にいきつくんだろ
- 941 :名無しさん@お腹いっぱい。:2015/07/07(火) 08:27:04.99 ID:pfL/ypDU0
- >>932
他言語でプログラミング経験があれば簡単だけど全くの初心者にはちょっと難しいよな。
- 942 :名無しさん@お腹いっぱい。:2015/07/07(火) 08:29:32.90 ID:UsiNOAsQ0
- Cの基本書一冊読んどくだけでぜんぜん違うよね
- 943 :名無しさん@お腹いっぱい。:2015/07/07(火) 09:04:15.30 ID:a3bauCvE0
- マンガで覚えるvisualbasicとかそんな感じのでもいいと思う
- 944 :名無しさん@お腹いっぱい。:2015/07/07(火) 13:57:56.56 ID:qIahE/xQ0
- >>941
俺も他人が作ったどういう風に動くか分かってるスクリプトと照らし合わせながら解説サイト読んでようやく変数と関数の使い方がなんとなく分かった程度だし
予備知識や参考資料がないと入門のハードルが高いよね
- 945 :名無しさん@お腹いっぱい。:2015/07/07(火) 16:14:31.17 ID:N6mTh2E10
- お知恵をお貸し下さい m(_ _)m
for u=0 to 5
sleep(0.5)
doscmd(command[u],true,true)
next
上で開いたDos窓のウインドIDをひとつずつ取得して、その後
Dos窓を制御したいんですが、何か良いアイデアはありませんか。
今 doscmd(command[u],true,true) のあとに、
ID_dos[u]=getid("system32") としているんですが、上で開いた
Dos窓のタイトルは全て同じになるので、必ず直近で開いた
Dos窓のIDを取得するとは限らないんではと思いまして・・・・
EXECのように実行時の戻り値がIDなら便利なんですが。
ちなみにgetid(get_active_win)は、uwsc自身のIDを取得してしまい
失敗でした。
- 946 :名無しさん@お腹いっぱい。:2015/07/07(火) 16:36:03.63 ID:s0vlvKCy0
- >>945
getallwinした後、system32でマッチングして
増えたものだけを抽出したらどう?
増えたものかは、取得済みID配列に格納&比較する感じで。
あんまスマートじゃないけどね
- 947 :名無しさん@お腹いっぱい。:2015/07/07(火) 16:48:22.01 ID:s0vlvKCy0
- >>945
後はstartコマンドで起動すればプロンプトのタイトルをつけられたはず
- 948 :945:2015/07/07(火) 16:56:52.84 ID:N6mTh2E10
- >946
なるほど、それは確実な方法ですね。
根がなまけものなので、面倒な方法は避けてましたが、
目が覚めました。
すばやい回答ありがとうございます。
>947
その方法は、初めて知りました。ちょっと調べて
試してみます。
ありがとうございます。
- 949 :名無しさん@お腹いっぱい。:2015/07/07(火) 19:51:12.80 ID:kFsPt09w0
- >>945
command[u]の内容を一旦テキストに吐き出して
execでcmd.exeを起動して /k オプションでテキストに保存したコマンドラインを実行させれば
起動時からID付きで制御できるんじゃね
- 950 :名無しさん@お腹いっぱい。:2015/07/07(火) 21:17:20.28 ID:LX6S9ePm0
- 初心者ですみません
KBD(VK_I,CLICK,40)
をF〜Zランダムに打つようにしたいのですがどのようにすればいいですか?
- 951 :名無しさん@お腹いっぱい。:2015/07/07(火) 21:23:53.76 ID:NBLUHzwR0
- VK_F + RANDOM(20)
- 952 :945:2015/07/07(火) 21:30:54.93 ID:N6mTh2E10
- >>949
ありがとうございました。お蔭様で解決できました。
プロセス終了後自動的にウインドウを閉じたかったので
/c オプションを使用しました。
ID_dos[u]=exec("C:\WINDOWS\system32\cmd.exe /c" + command[u])
- 953 :名無しさん@お腹いっぱい。:2015/07/07(火) 21:33:10.16 ID:LX6S9ePm0
- >>951
+でしたか…
ありがとうございます
- 954 :名無しさん@お腹いっぱい。:2015/07/09(木) 06:08:30.70 ID:Kmhzy94D0
- AとBを交互にアクティブにしようとしてるんだけど
50回ぐらいやってるとたまーにアクティブにならない
何故かAとB両方非アクティブ状態になってるし
最終手段でelseにウィンドウ内クリックで強制的に元のウィンドウをアクティブにしてから
アクティブにしたいウィンドウに再チャレンジでなんとかうまくいってる
しかもウィンドウがタスクバーより前に出てきちゃってる
最前面指定してないのに!
似たような感じのやつはそうならないのに
違うところといえばCallしてるぐらいだ
そのうち確認しよう
- 955 :名無しさん@お腹いっぱい。:2015/07/09(木) 06:46:59.63 ID:L0L56ZgF0
- IEで複数開いているタブを、新しいウィンドウに分離させたいんですが
マウス操作以外のショートカット等で指示する方法はありませんか?
- 956 :名無しさん@お腹いっぱい。:2015/07/09(木) 08:17:31.83 ID:c4JN4w2N0
- >>954
高速にウィンドウを切り替えると描画処理が正常に行われず
非アクティブの見た目だけど
内部的にはアクティブ状態ってのはある
その状態なら見た目だけの問題だから
気にせず操作させてるけどな
- 957 :名無しさん@お腹いっぱい。:2015/07/09(木) 09:34:44.71 ID:Q6WelLG70
- win8.1でCCleanerがアクティブだとマクロが一切動作しないんだけどどうしたらいい?
uwsc以外のクリックマクロも動作しない
- 958 :名無しさん@お腹いっぱい。:2015/07/09(木) 10:59:19.82 ID:c4JN4w2N0
- >>957
使わなきゃえーやん
メモリクリーナーなんてあってもなくても大差ない
- 959 :名無しさん@お腹いっぱい。:2015/07/09(木) 11:03:05.73 ID:Q6WelLG70
- >>958
うーんまあそうなんだけど、ワンクリで各種ブラウザのキャッシュやらクッキー消せて便利だからね…
- 960 :名無しさん@お腹いっぱい。:2015/07/09(木) 17:14:19.87 ID:Kmhzy94D0
- >>954 の件で
Fukidasiを出したままアクティブチェンジしてたら
ウィンドウがタスクバーより前に来てた
これが原因と勝手に決め付ける!
プロでもないし使い始めてから2ヶ月ぐらいだから今はこれが限界
>>956
画面サイズが小さくほぼ同じ位置にちょっとだけずれてる感じで表示させてるから
確実にアクティブまたは作業ウィンドウを前面表示状態にしないと操作できない
- 961 :名無しさん@お腹いっぱい。:2015/07/09(木) 17:40:52.92 ID:TXzWgyFa0
- >>21
num=FORM("1",3)
num=VAL(REPLACE(num," ","0"))
とかでいいんじゃないの?
- 962 :名無しさん@お腹いっぱい。:2015/07/09(木) 20:55:34.91 ID:XYQ7rl7i0
- for i=10000 to 19999
num=copy(i,2)
next
- 963 :名無しさん@お腹いっぱい。:2015/07/09(木) 20:59:13.85 ID:xv5ijWJp0
- >>959
消すべきものだけ消せばいいんじゃ?
不要なものまで毎回再取得するのは無駄どころか
余計な処理かかるから非効率。
- 964 :名無しさん@お腹いっぱい。:2015/07/09(木) 21:41:06.35 ID:SQcv0mPJ0
- ここだけバック・トゥ・ザ・フューチャーかよ
- 965 :名無しさん@お腹いっぱい。:2015/07/09(木) 22:47:27.44 ID:h60ZaVkw0
- CHKIMGXで動作しなくてイラついて禿げてきてたが
G_IMG_XじゃなくてG_IMGX_Xだったのね
- 966 :名無しさん@お腹いっぱい。:2015/07/09(木) 22:57:24.42 ID:h60ZaVkw0
- わ、CHKIMGと感度全然違うし調節しなおさないと…
禿げそう
- 967 :名無しさん@お腹いっぱい。:2015/07/09(木) 23:51:03.80 ID:h60ZaVkw0
- IMG_MSK_BGR5やIMG_MSK_BGR6で引っかかるかどうかのものを
CHKIMGXでどうにかしたかったけど、これだと逆に1%でも誤作動するしちょっと無理やな…
- 968 :名無しさん@お腹いっぱい。:2015/07/09(木) 23:53:18.16 ID:W9h/Y0CK0
- すまん日記帳に頼むすまんな
- 969 :名無しさん@お腹いっぱい。:2015/07/10(金) 01:04:10.38 ID:hFPvm6wF0
- ガキのようにはしゃいで、嬉しくて自慢したかったんだろうな
- 970 :名無しさん@お腹いっぱい。:2015/07/10(金) 01:10:30.19 ID:wgi7pTXx0
- スレ民的にはUWSCで金稼ぐならどれが一番楽だと思う?
リスクがあるやつ(広告自演クリックとか株FXとかは抜きで)
- 971 :名無しさん@お腹いっぱい。:2015/07/10(金) 01:13:53.86 ID:Thxsyrku0
- 日雇いバイト
- 972 :名無しさん@お腹いっぱい。:2015/07/10(金) 01:50:42.68 ID:nZmHZwzA0
- RMT
- 973 :名無しさん@お腹いっぱい。:2015/07/10(金) 10:04:03.65 ID:jNqBxdWp0
- >>969
自慢に見えるとかガイジかな?
- 974 :名無しさん@お腹いっぱい。:2015/07/10(金) 22:23:08.28 ID:xKcC/FQa0
- 普段firefox使ってます。
HTML情報の取得ってfirefoxでもできますか?
やはりIEのほうがUWSCは動作させやすいですかね?
- 975 :名無しさん@お腹いっぱい。:2015/07/10(金) 22:52:03.79 ID:kUt+M/TA0
- 直接GETしちゃダメなの?
- 976 :名無しさん@お腹いっぱい。:2015/07/10(金) 22:56:09.61 ID:xKcC/FQa0
- 手動で右クリックすればHTML情報をGETできるんですけど、
UWSCを使用して自動でGETしたいです。
そしてGETした情報を元に次の動作を指示させたいと考えてます。
- 977 :名無しさん@お腹いっぱい。:2015/07/10(金) 23:04:51.87 ID:lfN5c1rL0
- UWSCがIEでどうやってHTML情報の取得してるか分かってれば自明
- 978 :名無しさん@お腹いっぱい。:2015/07/10(金) 23:30:45.57 ID:kUt+M/TA0
- >>976
そうじゃなくてブラウザ起動せずに直接通信してGETコマンド送れよって話だ
- 979 :名無しさん@お腹いっぱい。:2015/07/10(金) 23:53:00.01 ID:kUt+M/TA0
- ちょっと考えればわかることをいちいち聞くな
URL = "http://anago.2ch.net/test/read.cgi/software/1425741537/";
xGet(URL);
Procedure xGet(URI)
Dim xHTTP = CreateOleObj("MSXML2.ServerXMLHTTP");
Dim RespStat;
Dim RespText;
Fukidasi("Connect:サーバーと通信しています");
Try
xHTTP.open("GET", URI, False);
xHTTP.send;
RespStat = xHTTP.status;
RespText = xHTTP.responseText;
Fukidasi();
Except
MsgBox("Error:サーバーに接続できません");
EndTry
If RespStat = 200 Then SendStr(exec("notepad"), RespText, True);
FEnd
- 980 :名無しさん@お腹いっぱい。:2015/07/10(金) 23:54:01.17 ID:q/PHpgXH0
- HTML情報ってなに?
URLのこと?
ページのソースのこと?
- 981 :名無しさん@お腹いっぱい。:2015/07/10(金) 23:59:48.79 ID:IHmXmD9b0
- chkimgxは結構判定甘いんだよなあ
- 982 :名無しさん@お腹いっぱい。:2015/07/11(土) 00:00:10.01 ID:wQ18/eOa0
- MSXML2初めて知ったときは目から鱗だったわ。
速いうえに余計なもの読み込まないから便利。
そっからAPIの便利さを知ったんだっけか。
- 983 :名無しさん@お腹いっぱい。:2015/07/11(土) 00:39:36.51 ID:INXBCsNt0
- >>981
あまいってか、曖昧な画像を検出するためのものじゃないの?
- 984 :名無しさん@お腹いっぱい。:2015/07/11(土) 03:05:41.03 ID:GJq4cqnJ0
- 1%でダメなら0.5%とか0.1%とかあるじゃん
- 985 :名無しさん@お腹いっぱい。:2015/07/11(土) 03:18:50.46 ID:iIqz5zZM0
- chkimgxのSCOREの閾値って自分で設定できたよな?
だとしたら甘いもクソもないんじゃないの?
- 986 :名無しさん@お腹いっぱい。:2015/07/11(土) 10:22:12.37 ID:tudBFrUH0
- >>979
これヘルプのどこ見りゃ理解できるの?
- 987 :名無しさん@お腹いっぱい。:2015/07/11(土) 10:26:45.40 ID:bD9uI26F0
- uwscってオープンオフィス カルクと互換性?みたいなものってあるのでしょうか?
A1〜C1みたいに抜いて他の所に貼り付けていく様にしたいのですがオープンオフィスの操作方法を調べてもなかなかわからず・・・
Excelならありましたがオープンオフィスを使用しているもので
ご存知の方教えて頂けると助かります
- 988 :名無しさん@お腹いっぱい。:2015/07/11(土) 12:02:50.96 ID:PJq2M2iu0
- >>984
小数点以下も行けるんか
試すわ
- 989 :名無しさん@お腹いっぱい。:2015/07/11(土) 12:11:37.19 ID:sMw5nx/M0
- >>986
UWSCはDLLとOLEObjectに対応してるってヘルプにある
DLLとOLEはWindowsの基本機能だからUWSCのヘルプに乗せる代物ではない
MSDNの所定のページで情報はいっぱいあるから気になる機能を取り込むだけ
とりあえず、OS標準の機能でできること=UWSCでできること をまず理解しろ
- 990 :名無しさん@お腹いっぱい。:2015/07/11(土) 12:15:00.14 ID:sMw5nx/M0
- >>987
OpenOfficeで公開してるDLLから操作するしかないんじゃない?
アプリ自体に外部パイプを持っていなければそれも無理だけど
そもそもEXCELだって直接介入できるわけじゃなく
EXCELファイルをOfficeを介入せず操作する機能だし
ファイルから抜き出すだけならCALCの保存形式をxcel互換で保存するだけよ
- 991 :名無しさん@お腹いっぱい。:2015/07/11(土) 13:49:34.89 ID:I3HoroOL0
- テキスト文字を認識させたいのですが、
CHKIMGというのを使えばできるのでしょうか?
- 992 :名無しさん@お腹いっぱい。:2015/07/11(土) 13:58:11.52 ID:I3HoroOL0
- 例えばこのスレの私のID I3HoroOL0 をuwscで認識させる場合どのようにすれば
できますか?
- 993 :名無しさん@お腹いっぱい。:2015/07/11(土) 14:19:31.81 ID:ymiI5i4t0
- str="hoge"
- 994 :名無しさん@お腹いっぱい。:2015/07/11(土) 21:23:06.14 ID:cMx1MoW70
- >>992
OCRソフトがやっていることをそのままやれば出来る。
具体的には全文字のハネや交叉点等の文字の特徴をデータベース化してそれを参照する。
言えば簡単だけど作業量が洒落にならないので
OCRソフトを買った方が速い。
- 995 :名無しさん@お腹いっぱい。:2015/07/11(土) 21:42:59.79 ID:dd6a9D7n0
- >>990
なるほど
参考になりましたありがとうございます!
- 996 :名無しさん@お腹いっぱい。:2015/07/11(土) 22:22:42.39 ID:INXBCsNt0
- datをfiddlerとかと連携すればHTML変換とかできるだろうし文字列検索できなくもないような。
- 997 :名無しさん@お腹いっぱい。:2015/07/12(日) 09:37:20.59 ID:u0O7FDyR0
- 次スレ建てるよ
- 998 :名無しさん@お腹いっぱい。:2015/07/12(日) 09:48:14.03 ID:u0O7FDyR0
- 自動化ツールUWSC使いよ集まれ15 [転載禁止](c)2ch.net
http://hayabusa3.2ch.net/test/read.cgi/appli/1436661562/
- 999 :名無しさん@お腹いっぱい。:2015/07/12(日) 11:05:24.14 ID:C9xk3NvU0
- 乙梅
- 1000 :名無しさん@お腹いっぱい。:2015/07/12(日) 11:15:19.32 ID:jJntFMeo0
- 梅梅
- 1001 :1001:Over 1000 Thread
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
290 KB
★スマホ版★
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.05 2022/08/31 Walang Kapalit ★
FOX ★