自動化ツールUWSC使いよ集まれ13

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
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名無しさん@お腹いっぱい。:2014/10/18(土) 11:47:07.58 ID:yC04f7EM0
Q.シェアウェア版で「L20が存在しません」「L22が存在しません」とエラーが出て一部機能が動作しない
A.割れシリアルを使った時に出る、ささやかな割れ対策

Q.購入したのに上記エラーが出る
A.ライセンスキーが正しいか確認(ベクターで購入した場合、登録するのは 伝票番号の xxxxxxxxx ではありません)
UWSCをアンインストール後、再インストールして正しい17桁のライセンスキーを入力してください。

●Pro版の追加機能
EXE化ツールが付属しています。(EXE化後は単体での実行が可能であり、ライセンスフリーにて配布できます)
IE(Web)用記録ツールが付属しています。(Web上の動作をUWSCのスクリプトとして記録する事ができます)
HTMLを利用した画面関数が使えます。
EXCELシート用関数が使えます。(OpenOffice.org/LibreOfficeの表計算(Calc)に対しても可)
デバッガが付属しています。

●質問したい方へ
「○○作れますか?」→ 可能か不可能かを聞いているのなら答えは「作れる」
「○○が作りたい」→ 自分が作れば?並大抵の事ならググれば似たようなスクリプトや知識が見つかる
「○○作って下さい」→ 依頼スレじゃありません。
過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。

●スクリプトを晒す上での注意
他人が読みやすいようにインデントを付けるように。解らない人はググレ。
(タブインデントは使えないんだぜ 全角スペース等に 変換しておくべし)
言いたい事に関係無い部分は 〜○○の処理〜 や 処理A 等のようにし、
必要な部分を晒すようにする。

●他人の書いたスクリプトを安易に実行しないように。
ハードディスクをフォーマットされたりしても、自己責任。
3名無しさん@お腹いっぱい。:2014/10/18(土) 11:49:48.08 ID:yC04f7EM0
4名無しさん@お腹いっぱい。:2014/10/18(土) 13:17:02.13 ID:/LXPRIa40
前スレ997、998さん
ありがとうございます
今日始めたばかりでよく分からないので原点の設定しらべてきます
5名無しさん@お腹いっぱい。:2014/10/18(土) 13:33:29.51 ID:5212DlOF0
グラブル厨はこちら
裏技・改造 グラブル
http://kanae.2ch.net/test/read.cgi/gameurawaza/1413584805/
6名無しさん@お腹いっぱい。:2014/10/18(土) 17:01:56.43 ID:80PaHnbz0
>>1
7名無しさん@お腹いっぱい。:2014/10/18(土) 17:05:22.46 ID:o7oxdfyx0
>>1
グラブルポーカー勢は>>5に移動な
8名無しさん@お腹いっぱい。:2014/10/18(土) 22:18:52.21 ID:ZoHkbSrw0
           ,,,
          o"  < やあ

        / /
       ○     < 流れ星だよー

     ",,
    /       /
   /       ,,"
 彡⌒ ミ"  /
 (´・ω・`)/
  ヽ_ノ"     < 髪が生えるように直接お願いしにきたの

    / /
   ○      < やめろ太陽に近寄るな髪が燃える

    ,,,
   o"      < くそがあああああああああああ
  ,,
  ゚ キラッ
9名無しさん@お腹いっぱい。:2014/10/18(土) 23:40:25.43 ID:RaJf8G5E0
EVALの変数に値を代入することは可能でしょうか?
以下のプログラムでは不可能でした

///////////////////////////////////////////
DIM 配列1[] = "い","ろ","は"
DIM 配列2[] = "に","ほ","へ"

//どちらかの配列のどれかの要素を変更
EVAL(EVAL("配列" + (RANDOM(2) + 1) + "[" + RANDOM(3) + "]") := "ん")

FOR i = 1 TO 2
PRINT "<#CR>配列" + i
FOR j = 0 TO 2
PRINT EVAL("配列" + i + "[" + j + "]")
NEXT
NEXT
///////////////////////////////////////////
10名無しさん@お腹いっぱい。:2014/10/18(土) 23:55:08.20 ID:gQJjlQ1H0
>>9
EVAL("配列" + (RANDOM(2) + 1) + "[" + RANDOM(3) + "] := <#DBL>ん<#DBL>")
じゃだめな理由でもあるん?
11名無しさん@お腹いっぱい。:2014/10/19(日) 00:15:27.48 ID:9ANkJeZi0
>>10
ありがとうございます!
EVALで代入する時の方法を理解していませんでした...
12名無しさん@お腹いっぱい。:2014/10/19(日) 11:28:19.74 ID:b9FXukEq0
時々画像のリソースがどうのって言って止まるんだよね
PC側の問題だと思うけどさ
13名無しさん@お腹いっぱい。:2014/10/19(日) 11:59:34.82 ID:Ak4pzG7I0
前スレ見てきたけどここってゲーム自動化スレなんか?
14名無しさん@お腹いっぱい。:2014/10/19(日) 12:38:33.17 ID:TKn8QRlb0
別に何を自動化したっていいだろ。
ただ、ゲームの話題は禁止と言われてる。

ゲームの自動化ってハッキングツールと組み合わせることが多いし、
ゲームの利用規約でマクロ行為そのものが禁止されてたりするから
犯罪に加担する事になりやすい。

パスクラの話題も犯罪だから
組み合わせを作っていくスクリプトの話題も禁止って話だ。

けど、トランプのカードは
ランク(A〜K)とスート(Club, Diamond, Heart, Spade)
を組み合わせたもので
プログラムの基本である 配列そのものなんだけど
まあ、いきなり組み合わせの話題をする奴はパスクラ目的が多かったりするんだろうな。

それ以上に、前スレの勢いでスレを消化するからってのもあるかも。
・・・FireFoxは勢い10倍だな
15名無しさん@お腹いっぱい。:2014/10/19(日) 14:36:26.87 ID:kYQaj/Bb0
>>14
そういった検証や考察も別のスレでやってください
uwscと一切関係ないんで
頭いいんだからわかりますよね

裏技・改造 グラブル
http://kanae.2ch.net/test/read.cgi/gameurawaza/1413584805/
16名無しさん@お腹いっぱい。:2014/10/19(日) 15:06:34.56 ID:Ak4pzG7I0
def_dllによるDLL関数呼び出しで、引数を構造体渡し(例えば {int,int} )にするとポインタで渡されることまでは分かったが、

「ポインタで渡される」=「呼び出した関数から書き込まれた値を受け取れる」

という理解でいいの?
17名無しさん@お腹いっぱい。:2014/10/19(日) 15:08:37.65 ID:TKn8QRlb0
>>16
受け取れますよ
18名無しさん@お腹いっぱい。:2014/10/19(日) 15:19:35.33 ID:Ak4pzG7I0
>>17
サンクス
19名無しさん@お腹いっぱい。:2014/10/19(日) 16:58:07.29 ID:w8uVKYLU0
皆さん画像認識で制度が出ないときはどうやっているのですか?

ちょっとグレー掛かったビットムラ?のある背景に書かれた
白い文字に対して画像認識を使いたいのですが、
ちゃんと認識してくれません。ムラを無視するような方法か白い文字だけを認識させる方法はないでしょうか?
20名無しさん@お腹いっぱい。:2014/10/19(日) 17:00:25.27 ID:w8uVKYLU0
精度でした
21名無しさん@お腹いっぱい。:2014/10/19(日) 17:14:03.89 ID:Ak4pzG7I0
テンプレートマッチングを使ったライブラリを使うしかないよね
UWSCはゲーム向けに使われたくないのか、もう新機能は実装しないからなのか、しょぼい画像一致アルゴリズムしか実装されていないから
背景がちょっと変わったり、画像圧縮の仕方ちょっと変えただけで判定できなくなる
22名無しさん@お腹いっぱい。:2014/10/19(日) 17:20:08.02 ID:Ak4pzG7I0
私のとこで作ったUWSC向けのテンプレートマッチングライブラリがあるんだけど結構需要ありそうだから公開しようかな
でもゲームの自動化に使われそうで恐い。ゲームの自動化をするときはこのプラグインを入れましょうみたいに扱われそう。
みなさん、どう思います?
23名無しさん@お腹いっぱい。:2014/10/19(日) 17:57:11.15 ID:TZL/dV1v0
>>22
本当に欲しい奴が探してたどり着くって程度で良いから、
少なくとも今のここじゃないほうが良いし、ここじゃなくても良いかな。

もちろん、折角なら発表の場があるほうが作り甲斐もあるし良いとは思うけど。
24名無しさん@お腹いっぱい。:2014/10/19(日) 19:35:19.64 ID:a2PhyJbP0
個人的には非常に見たいw
OpenCVを使ってるのかな?
25名無しさん@お腹いっぱい。:2014/10/20(月) 09:50:33.91 ID:s+OpnMKY0
適当なOCRエンジンつかえばいいじゃん
26名無しさん@お腹いっぱい。:2014/10/20(月) 12:20:53.16 ID:1LMUJBnO0
>>22
個人的には興味はあるが
27名無しさん@お腹いっぱい。:2014/10/20(月) 18:19:41.07 ID:ULDDYFv90
SAVEIMG関数で、最初の画像名を省略するとクリップボードに乗っかると認識してます。
WinXP環境では問題なくクリップボードに画像が乗ってpeekcolorでも参照出来るのですが
Win7環境では同じスクリプト走らせても、クリップボードに何も乗っかりません。
画像名省略によるクリップボードの経由はリファレンス外の仕様なんでしょうか?
28名無しさん@お腹いっぱい。:2014/10/20(月) 18:31:39.26 ID:bPtKAR4d0
Win7でもできるよ
管理者権限ないとか?わからんけど
29名無しさん@お腹いっぱい。:2014/10/20(月) 18:42:42.32 ID:7iaABrZp0
>>27
UWSCのバージョンが古いとかじゃね?
30名無しさん@お腹いっぱい。:2014/10/20(月) 18:50:47.30 ID:ULDDYFv90
あ、Win7の方のUWSC本体が4.8で、まだクリップボード未対応の奴ですた。
お馬鹿なミスで御騒がせしました・・・と思ったら、5.03にしても依然動かず。
管理者権限はあります。

SAVEIMG("", ID, 100, 100, 200, 200, TRUE, 0, 0)
31名無しさん@お腹いっぱい。:2014/10/20(月) 19:08:22.42 ID:ULDDYFv90
自己解決しました。試行錯誤してる間に他で必要な部分を削ってしまっていただけらしく
本体VerUPでSAVEIMGでのクリップボード処理は正常動作してました。
度々お騒がせ申し訳ありませんでした。
32名無しさん@お腹いっぱい。:2014/10/20(月) 19:13:20.56 ID:I+jS9UBU0
最低限最新版で動作確認してから書こうぜ
33名無しさん@お腹いっぱい。:2014/10/20(月) 20:22:18.55 ID:KiwFIVFN0
次に質問者はこういう…
『○○が動きません!最新版です!!』
34名無しさん@お腹いっぱい。:2014/10/20(月) 21:28:45.09 ID:PAC+5p820
ver4.8e
MOUSEORG(id,MORG_DIRECT)にて Shift,Ctrl,Altが働かない事があるのを修正
とありますが5.02、5.03でVK_SHIFTが動きません!最新版です!!

Win8.1でFirefox上のFlashに対してですVK_Aなどは動きます
35名無しさん@お腹いっぱい。:2014/10/21(火) 09:30:26.46 ID:il8121CV0
前スレから一気に雰囲気が変わったな
36名無しさん@お腹いっぱい。:2014/10/21(火) 11:35:22.34 ID:wLHKvnt90
非常識なゲームスレ住民のせいだ
わざわざ餌を与える馬鹿もいたしな
37名無しさん@お腹いっぱい。:2014/10/21(火) 17:17:40.41 ID:7z8aB9yx0
でも真っ当な議論がしたいなら公式掲示板があるし、ここの存在価値あんまないんだよね
38名無しさん@お腹いっぱい。:2014/10/21(火) 17:43:26.61 ID:r49e8Znu0
餌もらったら沈静化した
あいつら餌もらうまでずっと鳴き続けてたからな
39名無しさん@お腹いっぱい。:2014/10/22(水) 12:01:43.30 ID:PPfjjMpY0
いなくなったのに喚いてるお前らもアレだけどな
40名無しさん@お腹いっぱい。:2014/10/22(水) 12:40:37.55 ID:dMRrZATk0
見るアホウ発見
41名無しさん@お腹いっぱい。:2014/10/22(水) 21:42:47.07 ID:3b4IR6gZ0
ttp://hayabusa3.2ch.net/test/read.cgi/appli/1413966767/324
> 324 名前:非通知さん@アプリ起動中[sage] 投稿日:2014/10/22(水) 20:22:54.88 ID:yjtT3YB20
>  投下されてたマクロやばい
>  ソフト使い方が難解過ぎて覚えるまで半日掛かったが
>  マクロを貰えれば実行するだけですぐ動くんだな
>  あれ、俺っていつの間にかプログラマーになってた

ほのぼのするね
42名無しさん@お腹いっぱい。:2014/10/22(水) 22:15:25.99 ID:BEntnwgB0
そのスレでやれ
くっさい空気をもってくんなよ
43名無しさん@お腹いっぱい。:2014/10/23(木) 01:28:37.14 ID:HVdhZLKn0
猫や鳩だって迂闊に餌を与えたら駄目だろ?
人間(乞食)だってそうなんだよ
44名無しさん@お腹いっぱい。:2014/10/23(木) 01:54:19.02 ID:1ela/KSX0
神気取りが浮浪者に餌配るからどんどん集まって悪臭がひでぇ
45名無しさん@お腹いっぱい。:2014/10/23(木) 04:04:47.02 ID:iAU/Hi4L0
MMV(196,190,10)

こういうマウスの動きは数が少ない方がパソコンの負荷は軽くなりますか?
それとも、三番目の数字を削除すればいい?
初心者なのでマウスの動きがあった方がスクリプト作りやすいレベルです
46名無しさん@お腹いっぱい。:2014/10/23(木) 04:08:17.45 ID:HVdhZLKn0
関数の細かい処理負荷の仕様は製作者の掲示板に書き込むのがいいと思うよ
三番目の数字はただの待機時間だから負荷に影響するなんてことはないと思う
47名無しさん@お腹いっぱい。:2014/10/23(木) 04:41:02.86 ID:zn3kj2Bl0
BTN(),MMV()などの待ち時間はCPUを食うので
なるべくSleep()を使った方がいいと公式掲示板で読んだ気がする
48名無しさん@お腹いっぱい。:2014/10/23(木) 07:42:36.95 ID:Aca0Dxm50
数値を指定しなければUWSCがCPU不可に応じて適当に待機時間を決定するだけなのです
49名無しさん@お腹いっぱい。:2014/10/23(木) 08:03:00.83 ID:K8FKzcap0
臭い臭い言うがここはたかが2ちゃんねるだぞ…

公式掲示板があれば臭くない質問スレなど要らん。
ここは浮浪者が集まる洞窟だ。一般人が住むところではない。

快適さを求めるなら公式掲示板へどうぞ。
50名無しさん@お腹いっぱい。:2014/10/23(木) 08:18:29.81 ID:vBGDJm/E0
世の中には肥溜めに顔を突っ込んでくさいくさい言いたがる趣味の人がいるんだよ
51名無しさん@お腹いっぱい。:2014/10/23(木) 12:07:57.69 ID:HVdhZLKn0
>>49
こいつ餌やってたやつだろ
わざわざゲーム名出して対応するからゲームスレからプログラムに興味ない奴まで大量に押しかけるんだよ
ゲーム名出して個別対応したいなら相応のスレでやれ
52名無しさん@お腹いっぱい。:2014/10/23(木) 12:29:16.53 ID:dOzHbvhj0
だがここはソフトウェア板。いっそのことプログラム板に引っ越す?
53名無しさん@お腹いっぱい。:2014/10/23(木) 12:51:19.07 ID:VLQO/VVZ0
プログラム板はHSPが肩身の狭い思いしながらやっと入れてもらってる感じだぞ
他は有名なプログラミング言語ばかり
自動操作ソフトに付いてるおまけスクリプトじゃ場違いだろ
54名無しさん@お腹いっぱい。:2014/10/23(木) 17:13:54.86 ID:JlBPnhz10
メモ:クリップボードの画像を扱う
ttp://d.hatena.ne.jp/junjun777/20131002/uwsc_clipboard_image


Tesseract-OCR を呼び出して直接読み取ったテキストを受け取れるバッチを書いた。

クリップボードから自動でファイルに保存してくれれば
バッチファイル以外のファイルパスを気にしなくてもいいなと思ったけど
そのコマンドが見当たらなかった。
JavaScriptでエンコードして無理やり経由してるサンプルを見つけたがこれじゃない。
VBScriptでWin32APIで受け取ってるのを見つけてUWSCのソースはないかなと思ったら発見。

クリップボード関連はコマンドラインとブラウザはテキストのみの機能が普通なので無駄に探してしまった・・・

そして結局、SaveImage()を再度呼び出してファイルに保存するのが手っ取り早いと分かった。

.netの場合   : Clipboard.GetImage()
IE+VBSのやつ : window.clipboardData.getData()
ちなみに、VBSのやつはペイント+ショートカットキーが多かった。

ocrad.js ってOCRがあるんでクリップボード経由で渡せないかとググってみたけど
認識精度が悪いから実用にならなかった。
55名無しさん@お腹いっぱい。:2014/10/23(木) 17:20:18.39 ID:JlBPnhz10
ところで、せっかく画像キャプチャが裏画面+クリップボードで出来るようになったのに
ChkImg() がデスクトップのみ対象なせいで
座標は違うし、ウィンドウが移動したら追っかけないといけない。
これは残念。

あと、色が変わりすぎるからか範囲が狭すぎるからか分からないけど、
色を無視してもトランプの境界線を拾ってくれなかった。残念。
56名無しさん@お腹いっぱい。:2014/10/23(木) 17:33:50.68 ID:iAU/Hi4L0
画面に「ここをクリック」の画像が複数ある。
4箇所だけ見つけてそれぞれをクリックして下さい。
のスクリプトはどのように書けばいいですか?

また、その指定した画像はUWSCのフォルダに入れれば良いですか
よろしくお願いします
57名無しさん@お腹いっぱい。:2014/10/23(木) 17:44:18.28 ID:JlBPnhz10
>>56
> 戻値 = CHKIMG( [画像名, 透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )
>  番号: 複数ある場合に順番を指定 (左上から)
>      -1: -1が指定された場合はヒットした数を戻値として返し、座標情報は ALL_IMG_X[], ALL_IMG_Y[] に格納

それを FOR ループで回す

画像ファイルはディレクトリを指定しない場合、起動するUWSファイルの場所に置けばいい。
58名無しさん@お腹いっぱい。:2014/10/23(木) 19:25:22.15 ID:JlBPnhz10
デスクトップ?

画面(スクリーン)
ああ、ボケがひどい。
59名無しさん@お腹いっぱい。:2014/10/23(木) 19:25:32.83 ID:PSQzSpTS0
>>55
chkimgもクリップボードでできるだろ
60名無しさん@お腹いっぱい。:2014/10/23(木) 19:55:30.36 ID:JlBPnhz10
>>59
いや、この部分

// 指定画像が画面上にあるかチェック
戻値 = CHKIMG( [画像名, 

クリップボードと何を比較するんだと言われればまあファイルしかないけど
画像データを変数で持てるようになれば
でも、UWSCは画像をオブジェクトで扱えないし
メモリあんまり持てないっぽいし無理だね。

>>54 のリンク先でエンコードしてテキストで画像を保持してるから
比較対象が小さければその都度エンコしてテキスト比較すればいいのか
ちょっとやってみたくなってきたぞおら

色は255,255,255(8bit x 3 = 24bit)
バイナリの文字化は64文字いけたかな。Base64がそれか。
2 x 3 = 6bit
ちょうど4文字か。切りがいい。
(4 x 15 + 1) x (4 x 13 + 1) x 5 = 16,165
微妙か。
でも、これをやれば裏マクロできる。
でも、PeekColor() で数か所比較するのとどっちが早いかと言うと、PeekColor() だなあ。融通も効くし。
61名無しさん@お腹いっぱい。:2014/10/23(木) 23:25:46.20 ID:JlBPnhz10
Posで検索するのとChkImgで検索するのを比較してみた。
1秒当たりの検索回数は

3016回 Pos   4x15+1文字 を 9,840バイトの数字列 から検索
  56回 ChkImg 画像ファイル  1 x 15 ドットの画像を (4 x 13 + 1) の横幅で検索
  60回 ChkImg クリップボードで上記と同じ

クリップボードとの微妙な差は、最初にファイルを読むのに時間がかかっているんで
毎度毎度ファイルアクセスしてたら結構な時間がかかってる事になるかな。

 157回 × 15dot PeekColor ClipBord
   4回 × 15dot PeekColor Screen

   6回        SaveImg ClipBord

Screenへのアクセスはリフレッシュレートに近い数字か。
クリップボードならその制限がなくて40倍ほどか。

SaveImg → PeekColor → Base64 → Pos と
SaveImg → ChkImg とは性能はほぼ同じ(ドット数による)だけど
5枚のカードを検索するときに SaveImg 5回よりは
SaveImg 1回 +(PeekColor 15回+Base64+Pos)x5 の方が快適って事だな

あれちょっと待てよ
特徴的な15か所を文字列化したら一発で検索できるんじゃね?
あ、
62名無しさん@お腹いっぱい。:2014/10/24(金) 02:41:47.40 ID:PdExt1ue0
初心者です。指定した画像をクリックスクリプトを作ったけど
まったく作動しませんでした。

クリックしたい画像とBmp画像の1ドットでも違ったら駄目です。
bmpは24bitの方ですよ
↑これが原因の可能性がありますが、これってどういう意味か
わかりやすく解説して頂けないでしょうか

書いたスクリプトは
IFB CHKIMG("btn_gounit.bmp")
BTN(LEFT,CLICK,G_IMG_X, G_IMG_Y)
ENDIF
63名無しさん@お腹いっぱい。:2014/10/24(金) 03:31:35.06 ID:etrp4Db70
24bitというのはフルカラーの事
詳細はぐぐったほうが速いと思う
64名無しさん@お腹いっぱい。:2014/10/25(土) 02:36:41.59 ID:jjKFBvVu0
>>63さん
知恵袋のhttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10100019725
を参照してヤフートップページにある「真ん中の赤いヤフーマーク」を
24bitで保存したつもりですが、自動クリックは失敗でした。
背景が黒だし文字の周辺に白い部分がある状態の画像だった。
お助け下さいませ
65名無しさん@お腹いっぱい。:2014/10/25(土) 02:50:08.60 ID:dhXYuLsF0
プリントスクリーンで保存してペイントでBMPにすりゃいけるでしょ
無理なら諦めろ
66名無しさん@お腹いっぱい。:2014/10/25(土) 03:01:22.46 ID:60O7EChn0
>>64
画像ダウンロードはだめ
>>65さんのいうとおりPrintScreenしてペイントで切り出さないといけない
67名無しさん@お腹いっぱい。:2014/10/25(土) 10:59:01.91 ID:kkeBtRLQ0
ブラウザで表示されてる画像イメージは普通、容量削減の為に圧縮した画像形式だからダウンロード゙したらその形式になるよ。
UWSCで扱うのはBMPで頭悪いくらい容量が多いやつ。
68名無しさん@お腹いっぱい。:2014/10/25(土) 11:48:46.14 ID:Sr0VkAQ20
おまえらなににつかってるんだ?
69名無しさん@お腹いっぱい。:2014/10/25(土) 21:38:17.97 ID:58WZySHy0
ブラウザゲーの自動化というゲームで遊ぶために使ってるよ
70名無しさん@お腹いっぱい。:2014/10/26(日) 06:44:51.52 ID:o4Mn2gc/0
始めたばかりだけど、最近使ったもの
http://anago.2ch.net/test/read.cgi/jisaku/1413460263/57
71名無しさん@お腹いっぱい。:2014/10/26(日) 23:24:45.64 ID:kV0X6hWx0
UWSCのダイヤログ出してる時に裏で動けないのは不便だと思ってたけど
逆にショートカットキーでダイヤログ出すと動きを止められるのが便利だと気が付いた。
72名無しさん@お腹いっぱい。:2014/10/27(月) 22:05:10.04 ID:1A7jWZM10
betweenstrについてなんですが、
□□(1〜5000の数字)○○ と言うIE上の文字列で、
if betweenstr(IE2.document.parentWindow.frames(1).document.body.innertext,"□□","○○") <= 2000 then △△
この書き方で
もし(1〜5000の数字)が2000以下の時△△を行う
となりますか?
他の部分も合わせて動作させてみましたが、この部分だけ2000以下であっても△△の動作を行ってくれませんでした。
73名無しさん@お腹いっぱい。:2014/10/27(月) 22:17:23.61 ID:/YwE2TfQ0
演算の前にvarで囲って数値化してないからじゃないかな
74名無しさん@お腹いっぱい。:2014/10/27(月) 22:20:31.79 ID:/YwE2TfQ0
ごめん、varじゃないval
75名無しさん@お腹いっぱい。:2014/10/27(月) 22:23:44.87 ID:1A7jWZM10
早々にありがとうございます。
val関数を使用したことが無いのですが、もしよければどこを囲むのか教えてもらえませんか?
76名無しさん@お腹いっぱい。:2014/10/27(月) 22:25:07.05 ID:x9HxBT7w0
ヘルプ読んで死ね
77名無しさん@お腹いっぱい。:2014/10/27(月) 22:43:46.40 ID:/YwE2TfQ0
>>75
if val(betweenstr(IE2.document.parentWindow.frames(1).document.body.innertext,"□□","○○")) <= 2000 then △△
関数を関数で囲んでも良いんだよ
78名無しさん@お腹いっぱい。:2014/10/27(月) 22:59:18.79 ID:1A7jWZM10
>>77
2重に囲む発想がなく、
x=betweenstr(IE2.document.parentWindow.frames(1).document.body.innertext,"□□","○○")
if VAL(x) <= 2000 then △△
と行数増やしてなんとか自己解決したんですが、
他にも同じ関数を複数利用していたのでこちらの方が行数も少なく分かりやすいです。
大変感謝致します!
79名無しさん@お腹いっぱい。:2014/10/27(月) 23:06:13.75 ID:uh2ui+AW0
これもUWSCの話題じゃないよな?
80名無しさん@お腹いっぱい。:2014/10/27(月) 23:09:03.16 ID:7wSO8PE10
行数減らすことを考えるより可読性考えたほうがいいけど
81名無しさん@お腹いっぱい。:2014/10/28(火) 12:58:20.95 ID:loDYFNzt0
特定の画像が認識されないんですが、ペイント以外で方法ありますか?
82名無しさん@お腹いっぱい。:2014/10/28(火) 13:07:31.89 ID:2Q23Aw/F0
>>64 の人?
ttp://ai.yimg.jp/c/logo/f/2.0/chiebukuro_r_34_2x.png
この画像の事かな

検索範囲の座標が間違ってたら検索できない。
座標を指定してないなら画面上に見つからないと言う事だけど。

ブラウザとか大きさを自由に変えられるし
ロゴは変えないだろうけど
ブラウザ側で拡大縮小とか出来るし
ブラウザによって画像の処理が違うし
スクロールして画面から消えた画像は探せないし

見つかることがあるのかないのかどっち?
83名無しさん@お腹いっぱい。:2014/10/28(火) 13:25:48.27 ID:loDYFNzt0
ソーシャルゲームを自動化したくて、ある特定の画像だけが認識されないのです。

プリントスクリーン→ペイント→トリミング→bmpで保存してるのですが
その画像だけクリックしないんです
84名無しさん@お腹いっぱい。:2014/10/28(火) 13:47:11.65 ID:scuQSJ210
表示が時間変化するような部位だと
タイミングによって一発でCHKIMGが成功するとは限らない
表示と画像が一致するまでCHKIMGを繰り返し行い待ち続ける必要がある
85名無しさん@お腹いっぱい。:2014/10/28(火) 14:25:41.42 ID:loDYFNzt0
sleepを長めにとってみますm(_ _)m
86名無しさん@お腹いっぱい。:2014/10/28(火) 15:40:04.48 ID:/DTGkaFV0
>>85
>>84のアドバイスガン無視でワロタwwwww
87名無しさん@お腹いっぱい。:2014/10/28(火) 15:46:35.24 ID:loDYFNzt0
ど素人でして、sleep長めにすれば良いのかと思って…
88名無しさん@お腹いっぱい。:2014/10/28(火) 15:56:44.23 ID:Imp0fpXg0
>>84に対して>>85のレス、センスあるわー
全力で文章を否定するの面白い
89名無しさん@お腹いっぱい。:2014/10/28(火) 16:22:56.53 ID:2Q23Aw/F0
>>84-85
1→2→3→4→5→6→7→8→9→10→1・・・
と変化するものがあるとして
Sleepを長く取ると
1→→→→→→→5→→→→→→→9→・・・
となり、2〜4、6〜8は無視される。

Sleepを入れない場合は >>61 のようにフレームレートに合わせて動くっぽいから見逃さなくなると思うけど
アプリがフレームレートより短い時間で計算して変化を計算している場合はそれでも引っかからない事になるかも。

>>5 の最後で僕が投稿したスクリプトは
ボタンが表示されたら1回だけクリックすると言うものだけど
ボタンが光る設定だとめったなことではボタンを検出できない。

Sleepをなくすことによって検出できるようになるかもしれないけど
光り具合が同じになるタイミングでしか検出できない。
だから光らない設定を条件としている。

そのスレで神と呼ばれてる人がうpったやつは特定のドットの
色の範囲で判別しているので、光り具合に関係なくどのタイミングでも検出する。

画像が変化しているかどうかは
同じ範囲のをいくつかキャプチャしてみてGIF画像のように切り替えて表示すると分かりやすい。
90名無しさん@お腹いっぱい。:2014/10/28(火) 16:52:37.51 ID:m0tf6Q350
どんだけ自己主張激しいんだよ
91名無しさん@お腹いっぱい。:2014/10/28(火) 17:40:25.88 ID:2Q23Aw/F0
>>90
>>83 の言う特定の画像だけってのが
>>5 のポーカーに当てはまるからそれかなと思ったんだが。

ポーカーのカードは変化しないから画像一致で見つかるけど
ボタンは光る設定があるから画像一致では見つからなかったりする。

もしポーカーの話ならあっちでしてもらいたいとは僕も思ってるんだが
なんか無視されてるしなー
トリップつけたのを気に入らない人がいるっぽいんだけど
悪意のスクリプトが現実にうpられているから
ある程度の信用が必要だっていう事情が分かってないんだろうな。
別人が何度も再うpしてるんだけど
いちいち「本人じゃないよね?」なんて会話しなきゃいけないわけで。
92名無しさん@お腹いっぱい。:2014/10/28(火) 17:42:23.48 ID:m0tf6Q350
だからどんだけ自己主張激しいんだよ
お前性格的に嫌われてるんだろ
93名無しさん@お腹いっぱい。:2014/10/28(火) 18:00:15.94 ID:2Q23Aw/F0
>>92
性格とかじゃなくて嘘つき呼ばわりされるんだよね
無能は事実だけどさ
あと、2ちゃんねるは基本的にプロ固定以外はコテハン禁止な文化だし。
94名無しさん@お腹いっぱい。:2014/10/28(火) 19:00:59.16 ID:+kXs1w+Z0
てかスルー力のテストだっただろ。
95名無しさん@お腹いっぱい。:2014/10/28(火) 19:04:35.61 ID:scuQSJ210
>>89
CHKIMG速度を計測してみたが
サーチ範囲や画像サイズによってはフレームレートの数倍多く処理してるから
フレームレート関係無いと思うぞ
96名無しさん@お腹いっぱい。:2014/10/28(火) 19:13:54.69 ID:scuQSJ210
フレームレートじゃまずいな
ディスプレイのリフレッシュレートで
97名無しさん@お腹いっぱい。:2014/10/28(火) 19:55:52.90 ID:2Q23Aw/F0
>>96
そう、それ
98名無しさん@お腹いっぱい。:2014/10/28(火) 21:05:25.90 ID:KI2vG1xh0
最近notepad++でuwscのスクリプト書いてるんだけど、折りたたみ機能ってどう使ってる?
コメントをTEXTBLOCK - ENDTEXTBLOCKにして、"//"を折りたたみキーワードにする方法しか無いかな?
99名無しさん@お腹いっぱい。:2014/10/28(火) 22:55:38.06 ID:FKtQARls0
1万行あろうとも折りたたみなんて必要ないよ。
折りたたみ機能なんて使いたくなる時点で、
適切な構造化が出来てないとか、
適切な見出しコメントを入れてないとか、
適切なファイル分割出来てないとかと見るな。
100名無しさん@お腹いっぱい。:2014/10/29(水) 00:38:48.22 ID:Tp+nCLNC0
>>99
VisualStudio使ってるからどうも折りたたみ+コメントの簡潔さが欲しくてさ
関数は別ファイルでmodule化してるしコメント付けてるけど、どうしても書き終わったコードが邪魔臭いのよ
101名無しさん@お腹いっぱい。:2014/10/29(水) 00:43:51.88 ID:vlo19ZRT0
notepad++使った事ないけど、関数一覧表示機能みたいなの付いてないの?

htmlなんかのタグとかなら折りたたみは便利だろうけど
いちいち折りたたんだり開いたりするのってUWSCに限らずプログラミングのとき大変じゃね?
102名無しさん@お腹いっぱい。:2014/10/29(水) 03:59:59.82 ID:wECcgINB0
修正が必要な箇所は畳まないのが基本
修正不要の箇所を折り畳む事で
その前後の修正に集中するための機能

要するに関数化に近いイメージで使う
前後の依存性が高い箇所では使っちゃ駄目
バグの元になる
103名無しさん@お腹いっぱい。:2014/10/29(水) 18:20:25.81 ID:kbvG5txV0
ちょっと質問です。
UWSCを使って「Webページ上に特定の文字列があったら指定した行動をとる」という指示は出来ますか。
説明書を読んだ限りでは「CHKNUM
」という関数がそれらしいと考えて以下のように書いてみたのですが、
「1行目:式がおかしいor型があってない」というエラーを出されて動いてくれませんでした…

If CHKNUM(7 × 2)
KBD(VK_1,CLICK,100)
KBD(VK_4,CLICK,100)
endif

1行目をどのように修正すれば良いか、分かる方がいたら教えていただけますか。
それとも、僕が考えるような動きはUWSCでは不可能なのでしょうか。
どうかお願い致します。
104名無しさん@お腹いっぱい。:2014/10/29(水) 18:42:47.97 ID:kbvG5txV0
申し訳ありません、自己解決しました。
指定する文字列を"で囲まなきゃいけなかったんですね…
あと「else」を入れ忘れてましたw
105名無しさん@お腹いっぱい。:2014/10/30(木) 20:45:25.16 ID:8AcBN4Fp0
自動でスクリプトの変更は可能ですか?

現在while wendでのループを使い複数のスクリプトを手動で切り替えて使っています。

ただ、主に使用する物が3つあるのですが、切り替え頻度が高く自動で行えれば効率が上がると感じています。

使用例(1
スクリプト1のループ中に画像Aが現れたらスクリプト2へ切り替え、スクリプト2のループ中に画像Bが現れたらスクリプト1へ切り替え…以下繰り返し

使用例(2
スクリプト1のループ中に画像Aが現れたらスクリプト2へ切り替え、スクリプト2のループ中に1時間経過したらスクリプト1へ切り替え…以下繰り返し

どちらかというと使用例2の方を再現したのですが可能でしょうか?
また、可能な場合はお手数ですが詳細を教えて頂きたいです。
宜しくお願い致します。
106名無しさん@お腹いっぱい。:2014/10/30(木) 20:47:19.93 ID:U75T4Byd0
全部関数でやれ
関数の関数の関数っていうふうに階層化
107名無しさん@お腹いっぱい。:2014/10/30(木) 21:05:14.35 ID:u0MN8r1B0
>>105
call スクリプト1
call スクリプト2

while true
 // スクリプト1のループ
 while 画像Aが現れるまで ChkImg()
  スクリプト1の関数
 wend

 t = GetTime()
 // スクリプト2のループ
 while 1時間経過するまで GetTime()
  スクリプト2の関数
 wend
wend
108名無しさん@お腹いっぱい。:2014/11/01(土) 01:05:20.08 ID:rgTgf+H10
>>107
ありがとうございます。call関数便利ですね。
立て続けに聞いて申し訳ないのですがまた教えて頂きたいです

while true

while CHKIMG("A.bmp",0)=FALSE

call スクリプト1 //while-wendのループ

wend

t=GETTIME(60/86400)
while t > GETTIME()

call スクリプト2 //while-wendのループ

wend

call スクリプト3 //for-nextのループ

wend

>>107の内容を元に調べながら作成したのですが、スクリプト1から始まる動作がうまく行きません
スクリプト2からの動作(画像Aが現れた状態から)は指定時間動作後にスクリプト3へ移行します。
スクリプト1からの動作ではスクリプト1自体は動作するのですが他へ移動しません。
原因が全く分かりません。個々には動作確認しています。エラーも出ないので原因となりそうな箇所と対処法教えて頂けませんか?
109名無しさん@お腹いっぱい。:2014/11/01(土) 01:33:23.02 ID:2i/WmBYl0
>>108
ChkImg() がうまくいってないんでしょ。
その条件だけ別ファイルでテスト実行してみればいい。

デスクトップ定規を使うなりリアルタイムキャプチャするツールを使ったり。

いまどきはデスクトップを動画でキャプチャするためのツールで
デスクトップの特定の範囲をモニタしたりできるよね。

あと、色が微妙なら色コードを取るツールが必要だね。
110名無しさん@お腹いっぱい。:2014/11/01(土) 06:34:08.92 ID:UhAkDBfm0
とあるサイトで自動ログインするときに

IESETDATA( IE,"ユーザー名", "name",)

を使ってたのですがユーザー名をメモ帳から引っ張ってくるように変えたいんですがどうやったらそんなことできるでしょうか?
111名無しさん@お腹いっぱい。:2014/11/01(土) 07:58:52.93 ID:eGh/uogT0
fopen
112名無しさん@お腹いっぱい。:2014/11/01(土) 08:12:20.12 ID:FqLusP9c0
テキストファイルじゃなくてメモ帳なんだからGETACTIVEOLEOBJじゃね?
113名無しさん@お腹いっぱい。:2014/11/01(土) 10:49:17.05 ID:2DFfWeyZ0
いやいやメモ帳を起動してコピペついでに回っておりますをやる
サンプル.UWS
114名無しさん@お腹いっぱい。:2014/11/01(土) 12:57:54.96 ID:9G7t5OI50
お前らもっと一般的な考えを持てよ。

メモ帳だぞ?OCRの出番ジャマイカ。
115名無しさん@お腹いっぱい。:2014/11/01(土) 18:47:44.98 ID:0Dr87buA0
ちょいと教えてくださいな。
chromeでバックグラウンドで動かしたいんだけど、動かないんだ。
firefoxだと動くのに。なんでだい?
下の走らせると、"画像があるよ”は出てくるんだけど、クリックしてくれないんだ。

chromeは最新版
バージョン 38.0.2125.111 m
Flash PlayerはPPAPIを無効にしてNPAPIのみにしてるよ。
116名無しさん@お腹いっぱい。:2014/11/01(土) 18:48:17.49 ID:0Dr87buA0
//////////////////////
SLEEP(0.1)

ID = getid("XXX")
MouseORG(ID,2)

If (WindowID < 0)
MsgBox("ウィンドウがないよ")
ExitExit
EndIf

While TRUE
If GetKeyState(VK_ESC) Then break
If ChkImg("画像.bmp") // 画像があった
MsgBox("画像があったよ")
BTN(left,0,G_IMG_X+4,G_IMG_Y+4,50)
else
MsgBox("画像がないよ")
ExitExit
EndIf

Sleep(0.1)
WEnd
//////////////////////
117名無しさん@お腹いっぱい。:2014/11/01(土) 19:32:25.30 ID:IkGvw/Kp0
ここが噂のブラゲ自動化スレだな
118名無しさん@お腹いっぱい。:2014/11/01(土) 19:39:15.77 ID:2i/WmBYl0
>>115
ttp://kanae.2ch.net/test/read.cgi/gameurawaza/1414313711/23-25

あ、Flashのゲーム?ならしらね
119名無しさん@お腹いっぱい。:2014/11/03(月) 02:42:33.93 ID:HsuwsTh40
PRO版使ってる方教えて下さい
デバッガなんですが「指定の一行だけ実行する」のは
出来ないんでしょうか?

STEP INボタンを押しても
最初の一行目が実行されるだけなんですが
うまいやり方ありましたらご教授下さい
120名無しさん@お腹いっぱい。:2014/11/03(月) 03:48:42.87 ID:bBJuAjkP0
>>119
もう一回押せばもう一行実行するでしょ

指定の行だけって、変数使ってたら空っぽのまま実行しようとしてエラーになるよ
121名無しさん@お腹いっぱい。:2014/11/03(月) 08:39:47.65 ID:HsuwsTh40
配列宣言や自作関数の定義等を考慮しての事とは思いましたが
それらを全く使ってない場合でも駄目ですかね…
しょーがないので試したい行だけ別ファイルに書き出してトレースと言う無駄作業に…
122名無しさん@お腹いっぱい。:2014/11/03(月) 09:43:32.71 ID:1jXbWnnu0
VSとかだと指定行に●つけてそこまで実行とか出来るんだけど
ここのは出来ないのかね
123名無しさん@お腹いっぱい。:2014/11/03(月) 09:44:15.50 ID:1jXbWnnu0
ま、●のかわりにMsgBoxで止められるけど
124名無しさん@お腹いっぱい。:2014/11/03(月) 10:03:05.70 ID:HyEQOqxo0
せめてブレークポイントって単語くらいは知っておこうよ
125名無しさん@お腹いっぱい。:2014/11/03(月) 11:46:10.57 ID:1jXbWnnu0
言われてみると知ってるんだけどスッと出てこんのだよ、IT業でもないのでw
126名無しさん@お腹いっぱい。:2014/11/03(月) 11:51:47.68 ID:j7C8I1ua0
特定のスレッドだけデバッグとかできればいいのにな
127名無しさん@お腹いっぱい。:2014/11/03(月) 13:24:51.48 ID:2dUgef6O0
デバッガでブレークポイント使えるじゃん
特定スレッド停止もスレッドを特定できるように処理を数行付け足せば
ブレークポイント仕掛ければ簡単に止められるし

どういう用途?
128名無しさん@お腹いっぱい。:2014/11/03(月) 13:36:25.32 ID:j7C8I1ua0
ステップインやオーバーやってると別スレッドにいくじゃん
何でブレイクポイントのみでやらなきゃいけないんだよ
129名無しさん@お腹いっぱい。:2014/11/03(月) 14:16:18.87 ID:uJqRMIVE0
アホんとだ行番号クリックで●じゃなくて塗りつぶしになって
▲で実行するとその行で止まるわ
前やった時なんでにんじゃ
130名無しさん@お腹いっぱい。:2014/11/03(月) 14:17:34.95 ID:2dUgef6O0
スレッドって並行処理を行うための手段じゃん
別スレッドに処理が切り替わらない=並行処理が行えない
って事になるよ
処理効率が下げてでもデバッグを簡単にしたい、という意味かな?

だったらスレッド識別用処理をデバッグ時のみに入れさえすれば
解決する問題だけど・・・

具体的には何がしたいの?
131名無しさん@お腹いっぱい。:2014/11/03(月) 15:53:13.45 ID:uJqRMIVE0
スレッドはデバッグ必要ないくらい単純簡潔非常駐に留めておくな
だってまともなスレッド制御機能ないから使うなって意味でしょこれ
132名無しさん@お腹いっぱい。:2014/11/03(月) 15:57:43.83 ID:bBJuAjkP0
ショートカットキーで呼び出す関数もあれ別スレッドだけど便利だよね
スレッド制御はグローバル変数のフラグ制御しか出来ないけど
133名無しさん@お腹いっぱい。:2014/11/03(月) 19:51:22.21 ID:igh+qN4H0
mouseorgを使ってバックグラウンドにあるブラウザから画像を読み込みたいのですが
chkimgの範囲に他のウインドウが重なると-999999が帰ってきて認識してくれません(明らかに隙間から目標の画像が見えていても)
もちろん他のウインドウで画面を隠した場合も認識してくれません

ID=getid("Comodo Dragon")
mouseorg(ID,MORG_DIRECT,MORG_BACK)
Chkimg("test.bmp",-1,0,0,1000,1000)
MsgBox(G_IMG_X+ "×" + G_IMG_Y)

ブラウザを変えてみたところ、firefox,chrome,comodoは駄目でieだけ何故か上手くいきました
ウインドウ描画で何か違いがあるのでしょうか?アドオンを使いたいのでie以外で出来るようにならないでしょうか?
134名無しさん@お腹いっぱい。:2014/11/03(月) 20:30:15.79 ID:bBJuAjkP0
>>133
XPなら無理でしょ
135名無しさん@お腹いっぱい。:2014/11/04(火) 03:50:33.93 ID:P90h32d20
>>130
特定のスレッド、ステップイン、ステップオーバー
この単語を聞いて想像出来ないようならお前に何を言っても無駄
136名無しさん@お腹いっぱい。:2014/11/04(火) 04:23:38.46 ID:xg6f7S4F0
なんでみんなそんなすぐ怒って
喧嘩腰になるんだよw落ち着けよw
137名無しさん@お腹いっぱい。:2014/11/04(火) 23:25:52.30 ID:pAae+kiw0
特定スレッドへのステップインが簡単に出来るデバッガって想像つかない
事前にスレッドを特定するための情報を準備しないとステップインできないから
ブレイクポイントと大差ないんじゃね?
138名無しさん@お腹いっぱい。:2014/11/05(水) 01:19:52.38 ID:olWN4fXC0
やっと貯金貯まったし有料版買ってきたぜー!
139名無しさん@お腹いっぱい。:2014/11/05(水) 13:12:14.57 ID:PZVDmDw90
マウス右ボタンが押されてる間右クリック連打というスクリプトを書きたいのですが
GetKeystateはあってもそれのマウスボタン版の関数がないようですが実現可能ですか?
140名無しさん@お腹いっぱい。:2014/11/05(水) 13:39:30.16 ID:33L+i4Fy0
>>139
HELPを見た上での質問?
141名無しさん@お腹いっぱい。:2014/11/05(水) 14:28:10.05 ID:rOOrCer40
きれいなコードが書けるようになりたいんだけど、何を参考にしたらいいんだろう?
142名無しさん@お腹いっぱい。:2014/11/05(水) 17:53:59.87 ID:9+z9GjdO0
>>141
ネット。
冗談じゃなく人のコード見て可読性の良い奴のまねをするしかないような。
コーディングに自分の癖が出るほどまだ出来ない私にはうらやましい話だな…
143名無しさん@お腹いっぱい。:2014/11/05(水) 19:11:35.18 ID:XhGv4Qnl0
GETID(GET_ACTIVE_WIN)でID取得しても
どのウィンドウでも1が返ってくるんですが取得方法間違ってますか?
GETALLWINでやると全部表示されるんですが、1は空白になってます。
144名無しさん@お腹いっぱい。:2014/11/05(水) 19:25:24.61 ID://nLvasx0
>>143
1から連番になるだけだから
最初の1個目は1になる。

GETALLWINだと必ずスタートアップで起動したシステム関連が上に来るはず
数値はエラーでないなら気にしなくていい。
145名無しさん@お腹いっぱい。:2014/11/05(水) 20:21:08.05 ID:mXnpkcw+0
>>139
無理
BTN関数で同じマウスボタンを操作すると
次のGETKEYSTATE関数でボタン押下を検知出来なくなる
146名無しさん@お腹いっぱい。:2014/11/05(水) 22:18:45.32 ID:O22qTqt20
MORG_DIRECTでやれば検知は問題ない
147名無しさん@お腹いっぱい。:2014/11/05(水) 22:32:01.87 ID:Bn1Eo/of0
>>139
マルチ死ねボケカス
148名無しさん@お腹いっぱい。:2014/11/06(木) 01:10:51.27 ID:sxOpfXKw0
>>144
なるほど…ありがとうございます。
どうも上手くいかなそうなので勉強してきます。
149名無しさん@お腹いっぱい。:2014/11/07(金) 17:25:00.42 ID:3Nc44XkT0
何でもかんでもUWSCでやるんじゃなくて、別のプログラムで実現できるならそれつかえばいいだけ
150名無しさん@お腹いっぱい。:2014/11/07(金) 18:52:09.11 ID:vnX4J22l0
>>149
uwscだけだとexe化で単体で動くからいいんじゃないか
151名無しさん@お腹いっぱい。:2014/11/07(金) 20:59:53.78 ID:xET2EzdN0
>>150
Windows標準の VBScript なら、ScriptControl で呼び出せば exe 単体と同じように使えるよ。

ttp://pc11.2ch.net/test/read.cgi/software/1156416884/125

VBScript は制限が多いけど、ActivePython(無料版) をインストールしさえすればもっといろいろできる。
↓の様なことが簡単に。UWSCとWin32APIでやってる人がいたけど、かなり大変そうだし、低速っぽい。

メモ:>>54
ttp://jn1inl.blog77.fc2.com/blog-entry-1970.html
クリップボードの画像をファイルに保存(Python)


でも、他言語って難しいね。
他言語なら構造体があるのはいいんだけど、値を代入するのも一人じゃ解決できなかった。
ttp://peace.2ch.net/test/read.cgi/tech/1407008551/939-947
152名無しさん@お腹いっぱい。:2014/11/07(金) 21:26:08.03 ID:Dm3khKwQ0
GUI制御の容易さから開発環境のポータビリティ性まで総合的に考えて、uwscよりお手軽かどうかが問題だよね
153名無しさん@お腹いっぱい。:2014/11/07(金) 22:00:19.68 ID:PSBDQNYx0
最初の1〜2歩は楽なんだがその先は泥沼
何かと面倒だし融通の利かない言語仕様が足かせになって苦行のようだぞ
他の言語でUWSC同等機能のライブラリを自作する方がまし
154名無しさん@お腹いっぱい。:2014/11/07(金) 22:13:09.76 ID:Dm3khKwQ0
>>153
じゃあだまってそうしてればいいじゃん。
君はこのスレで何がしたいの?
155名無しさん@お腹いっぱい。:2014/11/07(金) 22:31:09.81 ID:PSBDQNYx0
UWSCが得意としてる範囲を越える事までUWSC内でこだわるのは疲れるだけだよってこと
156名無しさん@お腹いっぱい。:2014/11/07(金) 22:36:31.58 ID:WvGjlk5R0
そんなんどんな言語だって同じじゃないのか
157名無しさん@お腹いっぱい。:2014/11/07(金) 22:43:45.48 ID:PSBDQNYx0
そう、そしてUWSCが得意とする範囲は意外と狭い
DLLやCOMコンポーネントを自作すれば少しはましになるのだけど
そこまでするなら他の言語でそのまま書いた方が・・・となる
158名無しさん@お腹いっぱい。:2014/11/07(金) 23:10:59.42 ID:1aHTnWQd0
意外と狭いっていうか、変に広すぎるんだよなあ
kbd, mmv, btn, chkimg, 条件分岐とかのステートメントだけで十分すぎる
159名無しさん@お腹いっぱい。:2014/11/08(土) 07:35:00.06 ID:qaN4ib6l0
uwscと他の言語をやりたいことに合わせて組み合わせればいいだけの話だろ。当然用途によってはuwscで十分って人もいるはず。
自分のやりたいことが高度過ぎてuwscだけでは非効率だって自慢でもしたいのか?自慢にならんが
160名無しさん@お腹いっぱい。:2014/11/08(土) 10:43:24.81 ID:VCKUFTFx0
>>158
俺もこれ思ってる。
COMコンポーネントを使えますよじゃなくて、
それだけを使えるCOMコンポーネントにUWSC自体がなれば万事が解決するんだと。w

でもそれ以外にgetidやclkitemなども想像以上に作りこまれてるっぽいよね。
高負荷時に適度に待ったりとか_ACC指定とか、他汎用言語でこう簡単にはできないよね。
161名無しさん@お腹いっぱい。:2014/11/08(土) 11:51:17.01 ID:zb2Sj2SL0
速度が第一目標の処理をUWSCでって考えてる方が間違っている
162名無しさん@お腹いっぱい。:2014/11/08(土) 14:06:36.48 ID:+rCbxijS0
記録して、ちょいちょいと手直しして、それでおkな使い方をしているから、とても便利だから
163名無しさん@お腹いっぱい。:2014/11/09(日) 20:48:33.89 ID:IQ1CO2iJ0
俺みたいに数万〜数万行のテキストファイルを
ゴリゴリ加工して for i = 0 to 終わりまで 一気にブラウザで走らせてる人もいることを忘れないでくれ。

他の言語は全く知らんし何度も勧められたが乗り換える気は無い。やりたいことが柔軟に実現できてるので満足。
between関数が無かったらUWSC使いになってなかったかもしれんが。
164名無しさん@お腹いっぱい。:2014/11/09(日) 22:14:58.27 ID:E/gK2mFq0
>>163
正規表現覚えたら幅が広がるからお勧め

テキストファイルがCSVなら標準関数で十分だけど。
165名無しさん@お腹いっぱい。:2014/11/09(日) 23:23:29.86 ID:9ltVOmP10
ここのbetween関数なんてどの言語でも10行前後で自作できる内容では?
166名無しさん@お腹いっぱい。:2014/11/09(日) 23:48:29.61 ID:PbT3nXiz0
信者大集合()笑
167名無しさん@お腹いっぱい。:2014/11/10(月) 21:50:26.19 ID:qSKxIPMA0
テキストファイルを編集してブラウザで処理するのってuwscでやることかよ
何度も多言語を勧められてて、その度断ってるくせに「俺の事は忘れるな」とかバカじゃないの?
168名無しさん@お腹いっぱい。:2014/11/10(月) 21:58:40.99 ID:Xy0YOUWK0
UWSCは一番気軽に作れるしいいじゃん別に
169名無しさん@お腹いっぱい。:2014/11/10(月) 22:12:40.61 ID:NlRuSM+y0
ブラウザ処理ってのが判らんけど
ただテキストを処理するだけならawkとかperlのが手軽な気はするけど
170名無しさん@お腹いっぱい。:2014/11/11(火) 00:49:02.34 ID:mLYDXU3E0
最初気軽にuwscから入ってやりたいことできて他ちょいちょいやりたいこと広がってその分だけ覚えて
って感じで多言語触らずに来たら他勧められても一からやるのはちょっとってなるのはわかる
171名無しさん@お腹いっぱい。:2014/11/11(火) 02:05:24.24 ID:CJC66Icr0
C言語とかやってみようと思った事もあるけど
やりたい事に差がありすぎて意味がわからんのよね
win自動化したいのにprintfとかHello Worldとかいわれてもな
172名無しさん@お腹いっぱい。:2014/11/11(火) 04:16:48.59 ID:fh/Ud/1Q0
C言語は現代ではPICやラズベリーパイいじるのに使うのよ
自動化なら素直にC#とかのほうがいいね
Rubyとかでも自動化も出来るみたいだけどVS使えたほうが楽だね
173名無しさん@お腹いっぱい。:2014/11/11(火) 05:16:01.38 ID:PfZhwpqm0
おれもC♯と並列して勉強してたが、UWSCが手軽すぎてこっちしかスキルのびてねーや。まあ、VBと似たようなもんだと解釈してる。

画像認識が強力だったから利用してたが、スクレイピング覚えてからは画像認識使わなくなった。
174名無しさん@お腹いっぱい。:2014/11/11(火) 08:33:37.16 ID:fh/Ud/1Q0
規模が数万行になる辺りから限界を感じ伸び悩む。
175名無しさん@お腹いっぱい。:2014/11/11(火) 11:58:20.63 ID:0HbqaRW70
>>174
それは他の言語と組み合わせるって事を知らないだけだろ
176名無しさん@お腹いっぱい。:2014/11/11(火) 12:36:22.09 ID:fh/Ud/1Q0
>>175
他の言語でCOMコンポーネントを自作して連携するんですか?
それともコンソールアプリみたいにテキストで引数と戻り値をやりとりするんですか?
参考までにどういった方法がオススメか教えて下さい
177名無しさん@お腹いっぱい。:2014/11/11(火) 15:06:24.40 ID:0HbqaRW70
>>176
DLLやCOMが書ければいいけど大変。

UWSCでの基本は DOSコマンド、PowerShell コマンドレット呼び出しだね。
単にコマンドを呼ぶだけでなく、整形が出来ればシンプルになる。整形のサンプルも多い。
PowerShell からなら .net の言語を直接スクリプトのように呼べる。

Poker.c でもそうだけど、せっかく見つけた奴が別言語だったなら
その言語でコンパイルして呼び出すのが一番手間がかからない。
問題は・・・コンパイルする環境がでかかったり、有償版でしかコンパイルできない場合があること。

>>151 で書いたように、スクリプトを呼び出すだけなら実行環境だけなので
インストールが必要でもそれほど大きいものにはならない。(.netは別・・だけど、Vista以降は標準だから)

UWSCは小さいのがいいところだけど
Windows標準の DOS、PowerShell(.net)、VBScript、JScript なども同様に小さくてよい。
Web標準の JavaScript その他も小さいだけでなくネットでの連携もしやすい。サンプルも多い。

UWSCは有償版しか画面がないけど、IEは操縦できるから
HTML、JavaScript 、CSS が分かれば十分いろいろ出来るんじゃないかな知らないけど。

FireFox を自動操縦できればアドオンも利用できるけど
UWSC --> ActivePython --> selenium --> FireFox --> アドオン
って呼び出し関係になるかな。

Chromeは
UWSC --> ActivePython --> selenium --> chromedriver --> Chrome
178名無しさん@お腹いっぱい。:2014/11/11(火) 15:56:54.80 ID:Ue+Cb1zp0
>Poker.c でもそうだけど
こいつグラブルスレのキチガイじゃないか
179名無しさん@お腹いっぱい。:2014/11/11(火) 16:48:04.97 ID:0HbqaRW70
せっかく人払いしてやってんのに基地外呼ばわりか
いちいち難癖つける奴の方がよっぽど気違いだけど気遣いに見えるからキチガイと書く方がいいんだよな。
グラブル関係で見つけたいい情報をメモするのも遠慮してやってんのに
書きかけたけどやめたやつもまとめて貼ってやるわ

----
DOS コマンドと組み合わせるとき
Tesseract-OCR は DOS コマンドだけど余分な出力があるので除去するのがめんどくさい。
あと、パラメタが多い。
そういう時にバッチを書ければ >>54 みたいに呼び出してそのまま有効な文字列が得られる。
あ、書いたとしか書いてなかったな。↓の奴。
ttp://kanae.2ch.net/test/read.cgi/gameurawaza/1413584805/503
----
レジストリに COM 登録するのは面倒だ DLL 直呼びでつかっちまえと思ったけど
スクリプト言語から呼ぶときはレジストリ登録された COM しか使えないと知った。

UWSC の内部仕様を知っている人ならもしかしたら DLL で COM オブジェクトを作って渡すって事が出来るのかもって言うか
そう言えば COM を利用可能にする DLL 関数がどっかにあったような気がするからそう言うのでなら出来るのかもしれない。

COM 自作は敷居が高かった。
DDE サーバーをC#に移植したことはあるけど、1か月もかけて実用レベル以下のしかできなかった。
とは言え、COM サーバーなら .net でも作れるからどちらかと言えばお勧めできる。

ActiveBasic で窓出して画像取り込む DLL を作ったこともあるけどあれは作ってる最中にシステムがクラッシュしまくった。
DLL を作るならサンプルコードの量や開発環境から、C言語、C++くらいしかないと思う。
短い完成ソースをコンパイルするだけなら ActiveBasic は小さくてよかったんだけどなあ。
180名無しさん@お腹いっぱい。:2014/11/11(火) 17:07:37.45 ID:0HbqaRW70
リンク先で UWSC から呼べない DLL の事を書いているが
PowerShell + C# のコードからその DLL を呼ぶようにすれば
.uws ファイル1個で呼び出すと言う事は出来るはず。

しかも、C#のサンプルソースが2つついてるらしいから
ほとんどそのままコピペすれば使えるはず。
C#をPowerShellから呼び出す部分も必要だけど。

ただ、コード量はわずかとはいえよく分からんし
開発環境がないとちょっとした修正も難しいから手を出してない。
181名無しさん@お腹いっぱい。:2014/11/11(火) 18:28:02.37 ID:0U4XDiZT0
あるコマンドを入力するとデバッグしやすくなるという記事を何処かで読んだのですが、
何のことだかわからなくなってしまいました
バルーンメッセージ以外で何かあったでしょうか?
182名無しさん@お腹いっぱい。:2014/11/11(火) 19:00:53.37 ID:0HbqaRW70
ttp://www.google.co.jp/search?q=uwsc+"デバッグしやすく"
6件

ttp://www.google.co.jp/search?q=uwsc+"デバッグしやすく"
8件

ttp://www.google.co.jp/search?q=uwsc+"デバッグ"
22千件

UWSCはマイナーで機能が少ないけど
ぐぐったらすぐ出てくるのがいいところ
出てこないならないって事だろう。
183名無しさん@お腹いっぱい。:2014/11/11(火) 19:37:55.71 ID:b+ctDTbg0
基礎から学んでないから馬鹿正直に直進し壁にぶつかってすぐ諦める
少し横はがら空きなのに気付かないのは頭が固いのかセンスがないのか…
他の言語も多少はやってるようだけど知識がぺらっぺら
184名無しさん@お腹いっぱい。:2014/11/11(火) 19:55:51.39 ID:0HbqaRW70
>>183
具体的に誰の事を言ってるのかな
185名無しさん@お腹いっぱい。:2014/11/11(火) 20:14:16.05 ID:VXX8q+GR0
>>184
帰れキチガイ
186 ◆evw/E7kww2 :2014/11/11(火) 20:28:23.08 ID:0HbqaRW70
分かったよ。帰るよ。こっちにな。
187名無しさん@お腹いっぱい。:2014/11/11(火) 21:00:42.15 ID:Y0yZ7UEB0
某艦これのツールはUWSCとC++とJavaを組み合わせてるな
あれは本職にしかできないワザか
188名無しさん@お腹いっぱい。:2014/11/11(火) 21:23:34.70 ID:PfZhwpqm0
>>187
そのツールに興味はないけど、UWSCが利用されてるのはどんな部分?
やはり画像認識系?
189名無しさん@お腹いっぱい。:2014/11/11(火) 21:24:25.38 ID:Ue+Cb1zp0
>>186
火病
190名無しさん@お腹いっぱい。:2014/11/11(火) 21:46:08.48 ID:Y0yZ7UEB0
>>188
普通に画面操作部分。画像認識、クリック、ウェイト(待ち)とか
でも、画像認識はchkimgじゃなくて、独自DLLの関数を呼び出してた
191名無しさん@お腹いっぱい。:2014/11/11(火) 23:51:58.84 ID:PfZhwpqm0
なるほど、マクロ的なとこはやはりUWSCが手軽ということなのかな。
192名無しさん@お腹いっぱい。:2014/11/12(水) 08:27:46.45 ID:M6Oj7jFu0
それソース見てみたいな
193名無しさん@お腹いっぱい。:2014/11/12(水) 17:58:08.73 ID:ize5EVrA0
>>187
そのツール俺も参考にしてみたいが何処で入手可能?
194名無しさん@お腹いっぱい。:2014/11/12(水) 18:07:24.10 ID:p0vT+gw50
◆evw/E7kww2は二度と来るな
195名無しさん@お腹いっぱい。:2014/11/12(水) 18:08:20.17 ID:f2/DMqvz0
そういう質問には答えなくていいです
196名無しさん@お腹いっぱい。:2014/11/12(水) 18:12:36.71 ID:ize5EVrA0
教えてくださいな♪
197名無しさん@お腹いっぱい。:2014/11/12(水) 22:42:07.84 ID:j0grUDYZ0
気持ち悪 もう二度と来なくていいよ
198名無しさん@お腹いっぱい。:2014/11/13(木) 16:55:01.85 ID:9L7Mc3Sr0
基礎的な問題だとは思うのですが、調べても分からなかったためお教え下さい。
現在FUKIDASIを使い、カウントダウンをしたいと考えています。
しかし同じ場所にFUKIDASIを出すと、FUKIDASIがチカチカしてしまいます
Ver4.8c以降のものも使ってますし、調べて出てきた「DEF_DLL LockWindowUpdate(hwnd): long: User32」と言うものを使っても解決しません。

どなたかFUKIDASIのチラツキを防ぐ方法が分かる方はいらっしゃいませんか
199名無しさん@お腹いっぱい。:2014/11/13(木) 17:15:58.42 ID:iuX5iVcA0
スレッドを使って背景用の空文字のみのフキダシと背景なしの文字のみのフキダシを重ねて表示
200名無しさん@お腹いっぱい。:2014/11/13(木) 17:31:44.84 ID:9L7Mc3Sr0
>>199
自分には思いつかない発想でした。
しかし試してみたところ、
@.文字が後ろに行ってしまう場合がある
A文字数によって、背景の大きさを変えれない
B文字の縁が少し黄色がかる
と、3つの問題が起こりました。

1は吹き出しを出すタイミングを
2については、PUBLIC変数を作り文字数を数えればなんとかなるかと思いましたが、
3についての解決策が分かりません;;
201名無しさん@お腹いっぱい。:2014/11/13(木) 17:37:51.19 ID:DB0SmGrD0
>>198
デバッガでステップインでウォークスルーすると色々と理解できるぞ
202名無しさん@お腹いっぱい。:2014/11/13(木) 18:04:19.53 ID:QGCtDW1i0
表示文字が更新するときだけFUKIDASI命令を実行すればいいのに
それともストップウォッチみたく0.1秒ごとに更新してるんかいな
203名無しさん@お腹いっぱい。:2014/11/13(木) 19:04:43.66 ID:Oxu0Rc320
順番に特定箇所をクリックまたはドラッグ&ドロップするだけの
簡単なスクリプトを作りました。
しかし、あるPCではクリックを認識するが別のPCでは認識しなかったりします。

具体的には
BTN LEFT DOWN〜UP
BTN LEFT CLICK
等が、実行する度にクリックに対して反応したりしなかったりします。

クリックしたりしなかったり、
ドラッグ&ドロップでは掴まなかったり、所定の場所で離さなかったりします。

こういった場合どんな原因が考えられるでしょうか。
また、対策はどういった方法がありますでしょうか。
204名無しさん@お腹いっぱい。:2014/11/13(木) 19:15:29.73 ID:VgDpjNEY0
>>203
FLASHゲー?
btnを押す時間を長くしたり間にsleep挟めてみたらいいんじゃないの
205名無しさん@お腹いっぱい。:2014/11/13(木) 19:25:53.85 ID:QGCtDW1i0
>>203
人間がクリックする通りにやればいい。

クリックして反応がなかったら、あれ?おかしいな?と何度でもクリックするでしょ?
で、クリックした結果、画面に何らかの変化が現れて、
それを人間が見て、あ、クリックできたな、と判断する訳。
それを全部やる。
206名無しさん@お腹いっぱい。:2014/11/13(木) 19:26:48.28 ID:iuX5iVcA0
マウスカーソルが変わるならそれを検知するのも手かもね
207 ◆evw/E7kww2 :2014/11/13(木) 19:29:44.60 ID:VkbdAi6d0
>>198
もし0.1秒ごとに Fukidasi を実行してるのなら
表示する内容が変わった時点で Fukidasi を実行するようにすれば
チラツキは低減される

カウントダウンなんかSleep(1)で十分だと思うけど

>>203
ドラッグ&ドロップってアイコンをセットするのに時間がかかる場合がある。
あとは基本事項(管理者権限で検索)
208名無しさん@お腹いっぱい。:2014/11/13(木) 19:31:55.25 ID:A45BHRUS0
なんだ管理者権限って?
209名無しさん@お腹いっぱい。:2014/11/13(木) 19:32:16.94 ID:99X21xvR0
キチガイは消えろ
210 ◆evw/E7kww2 :2014/11/13(木) 19:51:09.38 ID:VkbdAi6d0
211名無しさん@お腹いっぱい。:2014/11/13(木) 20:21:43.45 ID:A45BHRUS0
なるほど
212名無しさん@お腹いっぱい。:2014/11/13(木) 21:28:32.59 ID:fcieyLZn0
Androidエミュでスリープ解除(タップ)ってどうやればできますか?
ドラッグドロップ関数じゃできなさそうだし。
それか、代替方法ありますか?
213名無しさん@お腹いっぱい。:2014/11/13(木) 22:24:53.55 ID:gNQfP8Ai0
>>200

FOR i = 10 TO 0 STEP -1
Fukidasi(i + "秒前", x, y, 0,20,0, $000000,$FFFF00,0 )
Sleep(1)
NEXT

試しにやってみたけど、ちらつかないぞ
214名無しさん@お腹いっぱい。:2014/11/18(火) 19:56:59.69 ID:k9VDtAVu0
本家でスルーされてしまったのでこちらでアドバイスを頂きたいです。

SENDSTR(0, ie.document.body.innerTEXT)
str = GETSTR(0)
temp = BETWEENSTR(STR,"ここから","ここまで")
text = COPY(temp,1,7)

上記のような文をループさせて、web上の指定文字をほぼリアルタイムに取得しているのですがPCの環境が変わると文字の位置が変わる事があるらしく、起動するPCによっては期待する結果になりません。
環境に依存されずに確実に指定した部分を抽出する方法がないかアドバイス頂けませんでしょうか。
215名無しさん@お腹いっぱい。:2014/11/18(火) 21:48:21.23 ID:D+jH9y/r0
>>214
>SENDSTR(0, ie.document.body.innerTEXT)
タイミングの問題でBODYが取得できない事は絶対にないと言える?
言えないとしたらチェック処理を事前に追加すべき。

>str = GETSTR(0)
ユーザが同時に操作をしていてクリップボードを書き換える事は絶対にない?
あるとしたらクリップボードを使う必要性を見直すべきでは。

>temp = BETWEENSTR(STR,"ここから","ここまで")
"ここから"と"ここまで"はそれぞれ必ず1つずつ存在する事は誰が保障しているの?
不確実であればチェック処理を追加すべきでは。

どこまで自分で問題を切り分けたか説明もせずに
アドバイスだけくれって言われてもそりゃスルーするでしょ

まず問題発生時にログ出力できるよう処理追加して問題点を洗い出すべきでは?
216名無しさん@お腹いっぱい。:2014/11/18(火) 22:06:49.06 ID:l76Aaja00
>>214
body.innerTEXTの文字列からだと目的の文字位置の特定が難しい
タグ名やidやclassを頼りに目的のタグに絞り込んでからinnerTEXTを参照するのが一般的
BETWEENSTRじゃ間に合わないなら正規表現も使う
217名無しさん@お腹いっぱい。:2014/11/18(火) 22:29:51.83 ID:k9VDtAVu0
>>215
>>216
情報不足の中、ありがとうございます。
ログ出力は正直怠っていたので、そこからですね。出直してきます。
218 ◆evw/E7kww2 :2014/11/22(土) 02:16:10.27 ID:tPnpwnr30
Py = CreateOleObj("ScriptControl")
Py.Language = "python"
Py.AddCode(pycode)

Py.run("abe1")
Py.run("abe2")
Py.run("abe3")
Py.run("abe4", "映画出演")
sleep(5)
Py.run("abe5")

textblock pycode
from selenium import webdriver
def abe1():
global browser
browser = webdriver.Chrome("chromedriver.exe")
def abe2():
browser.get("http://homepage3.nifty.com/abe-hiroshi/")
def abe3():
browser.switch_to.frame("left")
def abe4(str):
browser.find_element_by_link_text(str).click()
def abe5():
browser.close()
browser.quit()
endtextblock
219 ◆evw/E7kww2 :2014/11/22(土) 02:44:04.69 ID:tPnpwnr30
>>218 は UWSC + ActivePython + selenium + chromedriver + Google Chrome を
.uws ファイル一本で操縦する基本的なコード。

元ネタは↓
ttp://www.snip2code.com/Snippet/168498/------Web-------------------------
ttp://kanae.2ch.net/test/read.cgi/gameurawaza/1414313711/300

元は引数埋め込みなのに「映画出演」だけUWSC側に書いてるのは、ScriptControl 経由の時だけ
日本語埋め込みだとエラーになって動かないので、関数の引数として渡すことで回避している。

ドキュメント(英語)
ttp://selenium-python.readthedocs.org/en/latest/api.html
ttp://selenium.googlecode.com/svn/trunk/docs/api/py/index.html
220名無しさん@お腹いっぱい。:2014/11/23(日) 05:44:34.05 ID:dFgl63jc0
キー入力時のアクティブ化さえ防げたら神ツールなんだけどなぁ
221名無しさん@お腹いっぱい。:2014/11/23(日) 18:37:33.33 ID:sau4xwvL0
防げないん?
222 ◆evw/E7kww2 :2014/11/23(日) 18:48:15.40 ID:28NqjbT10
Chrome Apps に関しては Chrome の機能で アプリを表に出す仕様だから防げない。
Chrome 以外のソフトより表には出てこないけど。
223名無しさん@お腹いっぱい。:2014/11/23(日) 19:42:44.74 ID:r0pCLThh0
VMwareで運用してるから俺にとっては既に神ツール
224名無しさん@お腹いっぱい。:2014/11/25(火) 06:57:52.21 ID:kE4k00xx0
色の取得に関しては「似ている色」を判定できるけど
画像に関しては完全一致でなければ判定は無理?
似ている画像を判定する機能はuwscにはないよね?
225名無しさん@お腹いっぱい。:2014/11/25(火) 07:08:46.95 ID:8uqbFS6p0
ないね
226名無しさん@お腹いっぱい。:2014/11/25(火) 08:06:18.51 ID:tbGKu12g0
間違い探しのようにほとんどの場所が一致している画像同士なら
画像そのものを分割して一致率から判定すればいい

犬の画像から猫を探すとかいうのは無理
何をもって「似ている」と定義しているのか
227名無しさん@お腹いっぱい。:2014/11/25(火) 09:40:47.47 ID:kE4k00xx0
>>225-226
なるほど
サンクス!
228名無しさん@お腹いっぱい。:2014/11/25(火) 17:48:22.51 ID:PmNdIlQ50
>>224
Rocket Mouseの画像認識のレベルを下げたものをUWSCからEXECしてる。
229名無しさん@お腹いっぱい。:2014/11/26(水) 11:27:49.77 ID:g/7PploG0
おっ これか
http://mojosoft.biz/template-matching/
いいないいな〜
230名無しさん@お腹いっぱい。:2014/11/26(水) 15:58:46.00 ID:dB4B0THo0
UWSCってtry-catchはあるのにthrowはできないん?
231名無しさん@お腹いっぱい。:2014/11/26(水) 17:11:58.29 ID:oBMnujCl0
不正な引数指定などで、わざとエラーを起こせばいい
232名無しさん@お腹いっぱい。:2014/11/26(水) 18:21:45.69 ID:pvNhVBl70
ヘルプには「UWSファイル名の割り当てに変数を使用する事はできません」
とありますが、何とかして指定した処理を指定した回数実行させたいと考えています。

最初にボタンで何の処理を行うか選び、次に数値を入力させて回数を入れるようにしました。
ボタンを選んだ時点で変数を取得し、その値で別の処理をさせようとしましたが
IF文では複数行を指定する事が出来ない為、手詰まりになってしまいました。
GOTO文みたいなのがあれば良かったのですが、自分には見つかりませんでした。

何かうまい方法があればアドバイスをお願い致します。
233232:2014/11/26(水) 18:24:33.90 ID:pvNhVBl70
SELECT SLCTBOX(SLCT_BTN, 0, "どのマクロを実行しますか?", "処理1", "処理2", "処理3")
 CASE SLCT_1
  処理 = 1
 CASE SLCT_2
  処理 = 2
 CASE SLCT_3
  処理 = 3
 CASE -1
  EXITEXIT
SELEND

While True
 数 = input("1〜100の間の数を入力してください")
 ifb VAL(数) = ERR_VALUE
   MsgBox("数値を入れてください")
   Continue
 endif
 ifb (数<1) or (数>100)
   MsgBox("指定範囲内の数を入れてください")
   Continue
 endif
 break
wend

if 処理 1
for 回数 = 1 to 数
 call 処理1.UWS
 print 回数
next

if 処理 2
(以下変数ごとに別の処理をCALLしたい)
234232:2014/11/26(水) 18:26:30.50 ID:pvNhVBl70
上記のような感じです。実際には処理は10個以上あるんですが
改行の関係で削りました。
よろしくお願い致します。
235名無しさん@お腹いっぱい。:2014/11/26(水) 18:55:44.81 ID:Y5esT/oI0
if 処理=1 then
でいいのでは?
236名無しさん@お腹いっぱい。:2014/11/26(水) 19:36:30.90 ID:q6wmZCzd0
ブロックIF文
// メモ帳起動
If MsgBox("メモ帳を起動しますか?", BTN_YES or BTN_NO) = BTN_YES then Exec("notepad")
// メッセージ
メモID = GETID("メモ帳")
Ifb メモID < 0 then
  Fukidasi("メモ帳は起動されていません", 100, 100, 1, 16, "MS 明朝")
  Sleep(5)
  Fukidasi()         // 吹き出し消す
Else
  SendStr(メモID, "メモ帳は起動されています")
  Sleep(5)
  CtrlWin(メモID, CLOSE)         // メモ終了
  ClkItem(GETID("メモ帳"), "いいえ")   // 保存はしない
endif
237 ◆evw/E7kww2 :2014/11/26(水) 19:41:48.20 ID:k54hVGvh0
>>228-229
すごいけど5千円か
exec呼び出しだと試用版でも使えるの?
238名無しさん@お腹いっぱい。:2014/11/26(水) 21:06:05.44 ID:g/7PploG0
だから処理毎のCALL呼び出し辞めろってw

処理はすべて関数化して、
肥大化するようなら関数のみ記述し何も実行しないファイルを冒頭CALL呼び出し。
includeとかusing風の使い方ね。

関数化すれば、evalで関数呼び出せるんじゃね?

funcResult = eval("処理"+funcNum+"()")

未確認だが。
239名無しさん@お腹いっぱい。:2014/11/27(木) 00:08:16.59 ID:BHQ8yxuY0
>IF文では複数行を指定する事が出来ない為、手詰まりになってしまいました。

なのだからその指摘はかなりズレているね
includeとかusingとか中二病がやたらと英語を使いたがるアレか
240名無しさん@お腹いっぱい。:2014/11/27(木) 00:19:48.07 ID:TM0VNAqA0
・・・
241名無しさん@お腹いっぱい。:2014/11/27(木) 00:28:32.84 ID:TM0VNAqA0
お前はこれでも読め ttp://big.tm.land.to/handbook/uwsc.htm#func
242名無しさん@お腹いっぱい。:2014/11/27(木) 00:36:20.09 ID:rPHol/Ul0
Rocket Mouse試用してみた。画像認識の精度はなかなかいいな。でもちょっと処理が遅い
単純にクリックして行くだけならいいが、「今、何が表示されているか」を認識するのに使うのは難しいっぽい?

手元でテストしてみたら、画像認識30枚の小さい画像で9秒近くかかってた
方式1,2を両方試したが同じくらいの速度だった。もっと早くする方法あるのかな
243名無しさん@お腹いっぱい。:2014/11/27(木) 00:36:52.84 ID:4uJTAsbj0
>IF文では複数行を指定する事が出来ない為
これが理解できない俺に出番はないな

>if 処理 2
これがelseifじゃないのが気持ち悪いくらいで
244名無しさん@お腹いっぱい。:2014/11/27(木) 01:49:48.80 ID:ZLKJbdEs0
的外れではないだろ。
処理が100種類ぐらいあるのに延々とselectやらelseifやらヤることに疑問を全く感じないのか?
中二病がやたらと英語を使いたがるとしてstrategy patternだよ。
245名無しさん@お腹いっぱい。:2014/11/27(木) 01:50:48.25 ID:ZLKJbdEs0
100じゃなくて10だったかw
246232:2014/11/27(木) 01:59:14.33 ID:rojdCpwR0
call "functions.uws" //自作関数を定義するファイルを呼び出し

(>233にある、ボタンで処理選択と指定回数入力の部分。省略)

if 処理 = 1 then
 syoriichi(数)
endif
if 処理 = 2 then
 syorini(数)
endif

(以下省略)

----------------------------------------------------

functions.uws

procedure syorichi(引数) //処理1の定義
 for 回数 = 1 to 引数
(処理)
 next
fend

procedure syorini(引数) //処理2の定義
 for 回数 = 1 to 引数
(処理)
 next
fend


(以下省略)
247名無しさん@お腹いっぱい。:2014/11/27(木) 02:08:20.23 ID:ZLKJbdEs0
ん〜そういうことか…
> ヘルプには「UWSファイル名の割り当てに変数を使用する事はできません」
が問題だと思って回答するとevalだがよくよく見ると確かにブロックIF文の問題…なのか?

for i=0 to 4
  try
    for j=0 to i
      print eval("処理"+i+"()")
    next
  except
    print "処理"+i+"()はありません"
  endtry
next

function 処理1()
  print "処理1()"; result = 1
fend
function 処理2()
  print "処理2()"; result = 2
fend
function 処理3()
  print "処理3()"; result = 3
fend
248名無しさん@お腹いっぱい。:2014/11/27(木) 02:08:41.18 ID:rojdCpwR0
皆様アドバイス有り難うございました。上記で動きました。
関数化は考えていたのですが素人同然だったので手を出せませんでした。

・勘違いしてた点
 >>232で言っている「IF文で複数行指定出来ない」は全くの勘違いでした。
 複数処理であってもendifまでの部分をちゃんと処理してくれました。
・改善した点
 call呼び出しをやめて関数化しました。
 そのお陰で、回数を関数の引数に渡せば毎回for〜nextを書かずに一行で済みました。
 functions.uwsの方には処理事に全部入ってますが。
・不安点
 現時点でfunctions.uwsが三万行位あり、
 今後も肥大化予定ですが限界容量とかありますでしょうか。
249名無しさん@お腹いっぱい。:2014/11/27(木) 02:22:23.31 ID:ZLKJbdEs0
限界容量は特に無いけど、
普通分類するだろ?

call myFunc_Common.uws
call myFunc_WorkFlow.uws
call myFunc_Address.uws
call myFunc_AccountingBussinessLogic.uws

とか好きに分類すればいいんだよ。
今後別のスクリプト書いた時に使いまわす奴と、
今回のスクリプト固有の処理で明らかにそれっきりな奴とは
ファイルを分けたほうがいいぞ。
250名無しさん@お腹いっぱい。:2014/11/27(木) 02:54:16.90 ID:ZLKJbdEs0
//蛇足だけどこう書くとevalの有用性が判る
dim listProcNames[] = "処理1", "処理2", "処理3", "処理2", "処理4"
dim listProcParams[] = "3"  , "4,5" , "1,2,3", "5,6,7", "4,3,2"
for i=0 to resize(listProcNames)
  print execFunction(listProcNames[i], listProcParams[i])
next
function execFunction(funcName, params)
  try
    result = eval(funcName+"("+params+")")
  except
    result = ERR_VALUE
  endtry
fend
function 処理1(numOfExec)
  print "処理1の前処理"
  for i=1 to numOfExec
    print "処理1"
  next
  print "処理1の後処理"; result = 1
fend
function 処理2(param1, param2)
  result = param1 + param2
fend
function 処理3(param1, param2, numOfExec)
  print "処理3の前処理"
  for i=1 to numOfExec
    param1 = param1 + param2
  next
  print "処理3の後処理"; result = param1
fend
251Nekorabbit ◆jpnWwiLScI :2014/11/27(木) 07:35:23.27 ID:rPHol/Ul0
252名無しさん@お腹いっぱい。:2014/11/27(木) 09:12:56.44 ID:NKFW/fu30
>>251
すっげー!!!
久々に感動しました!
253名無しさん@お腹いっぱい。:2014/11/27(木) 16:55:44.23 ID:AWsO/oMW0
え なにこれ
Rocket Mouse Pro は買わせん!っていう工作かと思うレベルw
254名無しさん@お腹いっぱい。:2014/11/27(木) 21:41:56.47 ID:o/+P5CXW0
自動でスクリプトの変更は可能ですか?

現在while wendでのループを使い複数のスクリプトを手動で切り替えて使っています。

ただ、主に使用する物が3つあるのですが、切り替え頻度が高く自動で行えれば効率が上がると感じています。

使用例(1
スクリプト1のループ中に画像Aが現れたらスクリプト2へ切り替え、スクリプト2のループ中に画像Bが現れたらスクリプト1へ切り替え…以下繰り返し

使用例(2
スクリプト1のループ中に画像Aが現れたらスクリプト2へ切り替え、スクリプト2のループ中に1時間経過したらスクリプト1へ切り替え…以下繰り返し

どちらかというと使用例2の方を再現したのですが可能でしょうか?
また、可能な場合はお手数ですが詳細を教えて頂きたいです。
宜しくお願い致します。
255名無しさん@お腹いっぱい。:2014/11/27(木) 21:42:56.89 ID:BHQ8yxuY0
すげーstrategy patternだなこりゃ
256名無しさん@お腹いっぱい。:2014/11/27(木) 22:03:13.08 ID:AWsO/oMW0
おめーこそすげーよ、おめーのコードは神のコードだな。見えないけど。
257名無しさん@お腹いっぱい。:2014/11/27(木) 22:27:55.18 ID:4uJTAsbj0
>>254
別スレッド作って、1時間待ってから切り替えフラグでも立てたら良い
ヘルプをTHREADで検索
258名無しさん@お腹いっぱい。:2014/11/27(木) 22:34:32.69 ID:OCoB5fgg0
>>254
まずあなたのできない事の詳細を教えてください
画像Aを発見したらメッセージを出す、という処理を書けますか?
259名無しさん@お腹いっぱい。:2014/11/27(木) 23:21:17.77 ID:+sVmZs5h0
やりたいことがそんだけ明確になってるんだから
そのままコーディングすればいいだけな気がするんだけど
260名無しさん@お腹いっぱい。:2014/11/28(金) 00:35:18.54 ID:jvmfe3pQ0
>>251
ウヒョーありがとうございます。
ウチだと画面全体から100x100の画像チェックにchkimgの100倍位早いです
UWSCで遅くなっちゃう所をdll化してる感じなんですかね?
同梱の簡単キャプツールも(・∀・)イイ!!
261名無しさん@お腹いっぱい。:2014/11/28(金) 00:37:01.23 ID:Kk1PikpY0
神が降りてきたらしいと聞いて
262名無しさん@お腹いっぱい。:2014/11/28(金) 01:40:58.46 ID:Fu/ViHEt0
条件を満たした時の情報の共有方法と内容がポイントだと思うが
その位なら画房Bを見つけた時間をグローバル変数に格納して
それぞれのループを制御したら良いのではないかな
263Nekorabbit ◆jpnWwiLScI :2014/11/28(金) 07:54:02.92 ID:gQzw+f+D0
画像認識関数 ChkImgX-ver1.1.0
https://googledrive.com/host/0B83tioTzFacPNmJ0UUR4dTFSRmM/ChkImgX-ver1.1.0.zip

ドキュメント通りになっていなかったりCHKIMGと挙動が違ったりしていたので修正した
264名無しさん@お腹いっぱい。:2014/11/28(金) 08:00:48.42 ID:XZIjfS4o0
ChkImgX.dllはOpenCVを内蔵してるんですか?
265Nekorabbit ◆jpnWwiLScI :2014/11/28(金) 08:02:43.50 ID:gQzw+f+D0
してません。全部自作です。
266名無しさん@お腹いっぱい。:2014/11/28(金) 08:10:01.13 ID:XZIjfS4o0
すごいですね、ありがとう。
267名無しさん@お腹いっぱい。:2014/11/28(金) 09:25:20.38 ID:DpJ2Jhoy0
無理だと思うけどそちらの方のソース拝見したいものですな
268名無しさん@お腹いっぱい。:2014/11/28(金) 10:55:38.46 ID:DpJ2Jhoy0
テンプレートマッチングのアルゴリズムを自力でフル実装してるのか
何らかのライブラリに使える画像処理があるのか気になる
269名無しさん@お腹いっぱい。:2014/11/28(金) 11:38:47.47 ID:4bm+4yD10
ネ申!!
270名無しさん@お腹いっぱい。:2014/11/28(金) 11:44:58.71 ID:DpJ2Jhoy0
kc神なんですねw
安心して使います
271名無しさん@お腹いっぱい。:2014/11/28(金) 14:33:02.53 ID:YbbTYBUH0
CHKIMGで使用していた画像がChkImgXで使えない物と使える物があるな
再現性はあるがいまいち条件が分からん
272名無しさん@お腹いっぱい。:2014/11/28(金) 18:37:32.10 ID:tTOLnN5q0
アプリケーションごとのGETCTLHNDの第二引数に入る値を取得する方法ってありますか?
例えばヘルプのサンプルだとGETCTLHNDでメモ帳起動して入力領域の部分を"edit"としていると思うのですが、
このアイテム名"edit"に相当するものが他のアプリケーションだと何になるのかわかりません。
クラス名をいれてみても動作せず、某所でアプリケーションのアイテム名を一覧で取得するというUWSファイルを見つけ
それを使用してみるもメモ帳内に"edit"はなく、手詰まりになってしまいました。
何かヒントになりそうな事でもあればご教示ください。。
273名無しさん@お腹いっぱい。:2014/11/28(金) 20:19:46.60 ID:l0qFYXFl0
>>272
pro版の方にオブジェクトクラス名やキャプション表示できるデバッグ用サンプルが入ってるよ
274名無しさん@お腹いっぱい。:2014/11/29(土) 18:06:21.91 ID:u61iOz4I0
Windows起動時に必ずUWSCも起動するようになってしまいました。
これってどこの設定をいじれば良いのでしょうか。
メニューの「設定」の中にはそれっぽいものはありませんでした。
ご存じの方いらっしゃいましたらご教授お願い致します。
275名無しさん@お腹いっぱい。:2014/11/29(土) 18:07:24.30 ID:u61iOz4I0
何故かスタートアップに入ってました。アホや…orz
276名無しさん@お腹いっぱい。:2014/11/29(土) 19:51:34.14 ID:KBoa64CF0
このソフトって寝ながらフリーメール取ってゲームのリセマラ垢量産できるの?
277名無しさん@お腹いっぱい。:2014/11/29(土) 19:57:13.53 ID:KBoa64CF0
要は、フリーメール取得時の人間認証をどうやって突破するかなんだが
カメラのようなハードウェア+読んでここのようなOCRソフトで可能なのかな。
278名無しさん@お腹いっぱい。:2014/11/29(土) 20:09:36.87 ID:6agNR8Fg0
俺はpython , C#を業務で使ってるが、UWSCはbootstrapと同じ感じ印象だわ
pythonで1週間かかる内容がUWSCだと1日でとりあえず動くものが作れる
279 ◆evw/E7kww2 :2014/11/29(土) 20:45:43.05 ID:vRq9Qmbv0
>>276-277
人が欲しがるものを作る → 認証突破を交換条件にする → メールアドレスを自動で作れる


僕が作った時は認証部分をページの最後にして
フォーカスだけ移動して入力を促す。
入力完了したらスクリプトを続行。

この程度の手入力なら100個程度ならスクリプト作る労力以下で作れる。


>>263のが某トランプをどの程度読み取れるか気になってる。
先ずはトランプ保存しないとなー
280名無しさん@お腹いっぱい。:2014/11/29(土) 21:00:39.82 ID:KBoa64CF0
>>279
やっぱりそういう需要ってあるんだなw
マクロのソフト見たときに真っ先にその用途思いついたわ
281名無しさん@お腹いっぱい。:2014/11/29(土) 21:26:32.83 ID:hPHadftB0
while 1
処理
wend
ってやると無限ループになって止めるのに
苦労するんだけれど、一発でストップする
キー操作って有るのか?
282名無しさん@お腹いっぱい。:2014/11/29(土) 21:29:19.31 ID:bu7bJ7AZ0
糞コテ死ね
283名無しさん@お腹いっぱい。:2014/11/29(土) 21:49:36.09 ID:JGpjWthA0
この糞コテの言うことは、そういうふうにやったら不可能とは言い切れない、
レベルのいい加減な知ったかアドバイスだからな。
かと思えば突然気が触れたかのように猥褻な写真貼ったり、
誰とも会話する気もなくブツブツと独り言を連投したり、そういう奴だからな。
284名無しさん@お腹いっぱい。:2014/11/29(土) 21:56:56.40 ID:rQ4SHdMF0
>>281
ブレイク
285名無しさん@お腹いっぱい。:2014/11/29(土) 22:06:33.29 ID:hPHadftB0
>>284
Breakキーで止まるのか!!サンキュー!
今まで必死でモグラ叩き状態に
なりながらマウスで停止アイコン
押していた俺の苦労は何だったんだ。
286名無しさん@お腹いっぱい。:2014/11/29(土) 22:09:54.53 ID:crvO9V6M0
whileにesc押したら止まるように設定じゃダメなのか?
287名無しさん@お腹いっぱい。:2014/11/29(土) 22:12:14.17 ID:hPHadftB0
>>286
何だそれは?
kwsk
288名無しさん@お腹いっぱい。:2014/11/29(土) 22:21:45.45 ID:JGpjWthA0
彼の問題点はとても良く想像つくけど
自分のコードも出さないし
やりたいことを正確に言い表すことができてないし
とても面倒くさそうなので後は任せた…
289名無しさん@お腹いっぱい。:2014/11/29(土) 22:22:30.90 ID:JGpjWthA0
ん?まさか[alt]+[F2]で終わっちゃわないだろうな…
290 ◆evw/E7kww2 :2014/11/29(土) 22:26:02.83 ID:vRq9Qmbv0
>>283
> 不可能とは言い切れない、レベルの

やれる程度の事は実際やってる人いるし
着々と実現してるだろ?

>>279のは公開済みだけどGooメールが有料化されて無意味になっただけ。
・・・公開してなかったっけ。

> 誰とも会話する気もなくブツブツと独り言を
返事がなければ独り言になるのは仕方がない
むしろ意見があれば積極的に返事を書いてるが「荒らし出て行け」と言われる。
今はコテつけてるので>>282
291名無しさん@お腹いっぱい。:2014/11/29(土) 23:17:06.28 ID:8nK2MoWn0
なんかしらんけどこいつ偉そうだな
何様なん
292名無しさん@お腹いっぱい。:2014/11/29(土) 23:34:04.67 ID:KBoa64CF0
ぶっちゃけ、こうゆうマクロソフトって
自動でフリーメアド取りまくれるとかの機能ないと
利用価値無いんだが。。。
293名無しさん@お腹いっぱい。:2014/11/29(土) 23:34:11.25 ID:crvO9V6M0
>>287
WHILE (GETKEYSTATE(VK_ESC)=FALSE)とかで繰り返すとか?
294名無しさん@お腹いっぱい。:2014/11/29(土) 23:57:56.55 ID:DVIfES6w0
>>292
こういうマクロソフトは使い方次第
お前にとっての利用価値がないだけ
残念だったな
295名無しさん@お腹いっぱい。:2014/11/30(日) 00:46:51.05 ID:baLAQpSf0
CAPTCHA認証自体が、インターネット上がマクロやBOTによるスパムだらけで困ったから
その防止の為に作られたわけですし・・・・それを突破してもいいの?
296名無しさん@お腹いっぱい。:2014/11/30(日) 01:15:07.32 ID:MMWVltJF0
いいだろ。
どうせ一般人をカモにした追跡広告ばっかりなんだし
消費者は消費者でネットの荒野を生き残るためには
そうやってソシャゲのリセマラ垢量産したり
糞アフィ糞まとめサイト量産したりで食いつないでいくしかない
もう人間がキャッキャ逝ってた頃のネットは終わってるんだよとうの昔に
297名無しさん@お腹いっぱい。:2014/11/30(日) 01:39:52.27 ID:XET88IWT0
糞コテ死ね
298名無しさん@お腹いっぱい。:2014/11/30(日) 01:48:47.73 ID:zcPjWezg0
色々用途は思いつくんだが、それを作る労力と手動でやる労力がまだまだ逆転しないんだよなあ
でも作らなきゃ上達しないから一応作るんだけどね……
299名無しさん@お腹いっぱい。:2014/11/30(日) 02:06:34.06 ID:5qo3RE6G0
>>298
それはあれだな。オミトロンとかの広告消しなんかも似たようなことがいえるな。
晒しちゃうと、広告屋も対策してくるから結局自前で作るしかないんだよ。
いや、あれだな。コラなんかもその結論に行き着くんだが
コラの場合は他人が作ったってことが付加価値として生きるから下手糞であっても
他人のがやっぱり欲しくなるな。
300名無しさん@お腹いっぱい。:2014/11/30(日) 02:19:21.43 ID:aCUfDH4j0
>>296
×消費者
○ニート
301Nekorabbit ◆jpnWwiLScI :2014/11/30(日) 07:16:25.97 ID:aCUfDH4j0
画像認識関数 ChkImgX-ver1.2.0
https://googledrive.com/host/0B83tioTzFacPRExEWlpEOXhWbDQ/ChkImgX-ver1.2.0.zip

やっぱりOpenCVを使うようにした。それとソースコードを追加
302名無しさん@お腹いっぱい。:2014/11/30(日) 09:01:23.34 ID:TEylCVFZ0
おおお有難う!あなたこそ本物です
303名無しさん@お腹いっぱい。:2014/11/30(日) 11:19:11.16 ID:2YuBmW+Y0
ソース公開はライセンスの都合だから当たり前
当然、それを使った成果物もライセンスは感染するので注意してね
304Nekorabbit ◆jpnWwiLScI :2014/11/30(日) 11:43:08.09 ID:aCUfDH4j0
>>303
OpenCVはBSDライセンスだから公開の義務はないことに注意してね
305名無しさん@お腹いっぱい。:2014/11/30(日) 11:47:04.74 ID:XET88IWT0
>>303
wwwwwwwwwww
306名無しさん@お腹いっぱい。:2014/11/30(日) 11:47:57.99 ID:XET88IWT0
定数のSCOREって何?
307名無しさん@お腹いっぱい。:2014/11/30(日) 12:17:55.62 ID:aCUfDH4j0
>>306
スコアはテンプレート画像との差です。ゼロだと完全一致
スコアが判定閾値以下のときだけマッチしたとみなすので、返るスコアは常に判定閾値以下です
閾値を調整したいときはこのスコアを見てください
308名無しさん@お腹いっぱい。:2014/11/30(日) 12:47:53.52 ID:TEylCVFZ0
これソースをコンパイルするときだけOpenCVの配置が必要で、
DLLを実際に使う場合は内包されてるんですよね?
309名無しさん@お腹いっぱい。:2014/11/30(日) 13:26:45.15 ID:5qo3RE6G0
このスレにもGPL厨わいてんのかw
310名無しさん@お腹いっぱい。:2014/11/30(日) 18:01:30.99 ID:aCUfDH4j0
>>308
ソースコード中のコメントに書いてありますが、Debugビルドはダイナミックリンク、Releaseビルドはスタティックリンクになるようになっています
なので、DebugではDLLが必要で、Releaseでは必要ないです。
311名無しさん@お腹いっぱい。:2014/12/01(月) 02:59:35.09 ID:JGF8fsCw0
chkimgxでエラーが発生しました。やり直します!
ってprintされた時はどこかにエラーログ吐いてますか?
sample.pngから別の画像にしてsample.uws実行するとこれが出ちゃいます
312Nekorabbit ◆jpnWwiLScI :2014/12/01(月) 06:11:33.18 ID:sppQL5260
>>311
すみません、エラーが出力されるようになっていませんでした。修正したのでこれ使ってください
https://googledrive.com/host/0B83tioTzFacPQkFKWm52dVhsaXc/ChkImgX.uws
313名無しさん@お腹いっぱい。:2014/12/01(月) 11:50:28.07 ID:0yJJ93ho0
Neko~~って酉に見覚えあると思ったらねこへルパーの人か
314名無しさん@お腹いっぱい。:2014/12/01(月) 16:12:13.16 ID:YnANvAnR0
>>273
ありがとうございます、PRO版購入してみます。
315名無しさん@お腹いっぱい。:2014/12/01(月) 16:49:08.29 ID:M7Qnqb5F0
>>314
購入しなくてもインストールだけして取り出せばいいのでは
316272:2014/12/01(月) 17:17:19.98 ID:YnANvAnR0
プロ版購入してサンプルuws確認してみたんですが該当する(editに対応する値を取得する)uwsは確認できませんでした
クラスやキャプションを表示っていうのは「タイトルクラス.uws」って奴ですよね?
これだとGETCTLHNDの第二引数にいれるeditって部分は取得できないんですよね
一応他のサンプルも一通り目を通したんですがやはり該当部分を取得するuwsはありませんでした。
editって一体なんなんだ・・・

>>315
これ別に購入しなくてもよかったんですね・・でもexe化とか便利そうなので有効に使えるようにがんばってみます
317名無しさん@お腹いっぱい。:2014/12/01(月) 17:24:15.70 ID:Sl6tOsqr0
子クラスとかオブジェクト名とかだろ
GetChildとかstatusのST_CLASSで取得できるぞ
318272:2014/12/01(月) 17:33:43.13 ID:YnANvAnR0
>>317
statusのST_CLASSだとメモ帳の場合Notepadですよね?editってでてこないんですよ
多分メモ帳内でのメニューバーの部分だったり、記述する部分だったりっていうのを指定してるのかと思ったんですが
editって文字ってどこからどうやっても取得できないんですよね
システムメニュハンドラっていうのは確認できて、それだと数値とれるんですけど動作が思っているものと違うんですよね
(本来バックグラウンド動作させる場合マウスクリックを行っても実際のマウスカーソルは動かず、クリックだけ行う、というような動作にならない)
editで指定するとこれがうまくいくんですが・・・editってなんなんだっていう。

GetChildという関数は知りませんでした、確認してみます!
319272:2014/12/01(月) 17:55:47.15 ID:YnANvAnR0
GetChildはありませんでしたが、子クラスだったようです、"edit"
ttp://stuncloud.wordpress.com/2012/05/22/uwsc-%E6%8C%87%E5%AE%9A%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E4%B8%8A%E3%81%AE%E5%90%84%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB/
↑のサイト様のサンプル利用させていただいて、該当部分の取得に成功しました
やりたかったバックグラウンドの動作もうまくいきました
VKBは動きましたがBTNの方がイマイチうまく動かないので色々試す必要がありそうですがとりあえず解決です
ありがとうございました
320名無しさん@お腹いっぱい。:2014/12/01(月) 17:57:18.58 ID:Sl6tOsqr0
あ、GetChildは違うや
ST_CLASSでNotepadってなるのはNotepadのところを取得してるからだろ

repeat
 APP_OBJ = "オブジェクト名:" + status(getid(GET_FROMPOINT_OBJ), ST_CLASS)
 APP_CHILD = "<#CR>子クラス:"
 for c in getallwin(getid(GET_FROMPOINT_WIN))
   APP_CHILD = APP_CHILD + "<#CR>" + status(c, ST_CLASS)
 next

 fukidasi(APP_OBJ + APP_CHILD, G_MOUSE_X + 15, G_MOUSE_Y - 25, 3,10)
 ctrlwin(getid(GET_FUKIDASI_WIN), TOPMOST)
 sleep(0.2)
until getkeystate( VK_ESC )
321名無しさん@お腹いっぱい。:2014/12/01(月) 18:21:48.71 ID:M7Qnqb5F0
>>316
DbgScriptフォルダにObject_With_Handle.uwsとかInfo_Under_MouseCursor.uwsとかない?
322272:2014/12/01(月) 18:38:10.40 ID:YnANvAnR0
>>332
DbgScriptフォルダの存在を知りませんでした、確認しました
ちょっと長々とアレな感じになってしまったので以下名無しに戻ります、ありがとうございました
323名無しさん@お腹いっぱい。:2014/12/02(火) 12:20:26.85 ID:w1YqUR+V0
上で紹介されているchkimgxを自作スクリプト内で使おうとしていますが、
callで呼び出したuws内からさらにuws呼び出しても戻ってこられますか?
あとfunctionやprocedureで作った自作関数内でcall使っても問題ありませんか?

とりあえず簡単なスクリプトで試した限りでは問題無く動いてますが、
問題点とか気を付ける事が有りましたら教えて下さい。
324名無しさん@お腹いっぱい。:2014/12/02(火) 14:52:21.84 ID:aszl9WQh0
>>323
自己責任でやる。
325名無しさん@お腹いっぱい。:2014/12/02(火) 18:34:18.94 ID:RmT91jWN0
>>312
ありがとうございます。
そちらのuwsを使ってみましたが、ログが見つかりませんでした。
場所やファイル名等解りましたら教えて下さい。

if chkimgx("*****.png",id,***,***,***,***,1,5,-1) then
ここの処理で、どうやら画像が存在しない時に「ない?」と出てくれる時と
エラーになってしまう場合があるようです。
全く同じ状態で何度かやると「ない?」と出てくれる時もあります。
326Nekorabbit ◆jpnWwiLScI :2014/12/02(火) 22:47:15.69 ID:h3hdjjuO0
>>325
エラーはprintで表示するようにしました

↓こんな感じのエラーが出るはずですが、出ていませんか?
該当ファイルが1つもありません: sample.bmp
以下、スタックトレース
1: throw_exception() - 0x57d35eb0
2: chkimg::AppContext::loadImage() - 0x57d32cf0
3: internal_match() - 0x57d36de0
...

あと、imagesizeの方はエラー表示できるようにしていませんでした。修正します。
327名無しさん@お腹いっぱい。:2014/12/02(火) 23:37:31.45 ID:RmT91jWN0
何度もお返事ありがとうございます。こんな感じでした。
30秒ごとに一行ずつ増えて言ってる感じです。
http://www.dotup.org/uploda/www.dotup.org32519.png

内容はsample.pngだけ自前で用意した物に差し替えて
sample.uwsを実行したものです。

で、何度か試していた所、どうやら画像を小さくすれば(100x100px以下くらい)
出ないような感じです。
自分の環境の問題かも知れません。お騒がせして申し訳ありません。
328名無しさん@お腹いっぱい。:2014/12/03(水) 00:00:58.23 ID:1n/UGmK40
環境で問題があるなら大問題だろう
pngアップすればいいんちゃうん
329名無しさん@お腹いっぱい。:2014/12/03(水) 04:07:22.88 ID:QSrfX2sq0
unityが使用されているサイトをchromeでmouseorgを用いてバックグラウンド操作させたいのですができません
htmlのみやflash等ではできたのですがunityではできないのでしょうか

idは以下のようにとっています
public id = getid(get_active_win) //または("google chrome","Chrome_WidgetWin_1")
mouseorg(GetCtlHnd(id, "chrome_RenderWidgetHostHWND"), morg_direct)

また、mouseorgを使わずにフォアグラウンドで操作するときにページを更新させるためのsckey(id, kbd_f5)がどうもうまく動作しませんでした
更新させたいページを開いた状態でsckeyのみを動作させると更新されるのですが、
この動作の前に他の動作(btn等)を組み、一連の流れのなかでやろうとするとできませんでした
kbd(vk_f5, click)でも試しましたが同様の結果となりました

何か解決策があれば教えていただけないでしょうか
よろしくおねがいします
330名無しさん@お腹いっぱい。:2014/12/04(木) 18:02:39.75 ID:8P1GYJJe0
IEでは出来るの?
試してないならまずIEで試すべき
なぜわざわざChromeでやるんだ
331名無しさん@お腹いっぱい。:2014/12/04(木) 19:11:36.59 ID:SSn+wcT+0
>>330
すみません書き忘れていました
IEでも試しましたが無理でした
332名無しさん@お腹いっぱい。:2014/12/04(木) 22:12:02.18 ID:ILAic3Na0
たとえ今回のケースで何とかバックグラウンド操作に成功したとしても、
次から次へと新たな問題が発生するだけ。
素直にVMwareでOSごとバックグラウンドに沈めたまえw
333名無しさん@お腹いっぱい。:2014/12/05(金) 19:55:37.78 ID:Tan5Nyhh0
基本的な事で申し訳ないんですが・・・。
都度画像判定を使ってその画像の座標をクリックしていくスクリプトを作ってみたのですが
実行時にUWSC本体の再生ボタンから再生するとなぜか実行してすぐスクリプトが終了してしまいます。
画像判定を使いたいウィンドウをアクティブにしてからAlt+F1で再生すると正常に動作するようです。
ウィンドウのアクティブ状態が問題なのかと思って再生後アクティブにする様に以下

id = GETID("ウィンドウ名")
IFB STATUS(id, ST_ICON)
 CTRLWIN(id, NORMAL)
ENDIF
IFB !STATUS(id, ST_ACTIVE)
 CTRLWIN(id, ACTIVATE)
ENDIF

というスクリプトを冒頭に入れてみたのですが改善されません。
msgboxで確かめてみると画像判定の部分まで正常に実行されているようです。
対象のウィンドウをアクティブにする事も問題なく出来ています。
どうすれば解決するでしょうか・・・?
334名無しさん@お腹いっぱい。:2014/12/05(金) 21:05:56.61 ID:YXjPvfxI0
違いはウィンドウがアクティブか非アクティブってだけなら
画像判定がはやすぎるんじゃない
スリープ入れてみればいいんじゃないかな
335名無しさん@お腹いっぱい。:2014/12/05(金) 22:01:43.75 ID:Tan5Nyhh0
>>334
試してみました。スリープはダメな様です。

・UWSC再生ボタンから再生 → ×
・画像判定ウィンドウアクティブからAlt+F1 → ○
・UWSCウィンドウアクティブからAlt+F1 → ×

といった感じです・・・。
結局対象ウィンドウをアクティブにしてからAlt+F1で再生した場合でも
再生すればUWSCウィンドウが前面に出てきますし良く分からないです・・・。
336名無しさん@お腹いっぱい。:2014/12/05(金) 22:08:36.56 ID:HI/TZEec0
対象画像のウィンドウがアクティブでない状態で取得した画像でも、同じ現象を再現するの?
337名無しさん@お腹いっぱい。:2014/12/05(金) 22:37:27.32 ID:Tan5Nyhh0
>>336
アクティブ、非アクティブを数枚ずつ用意してそれぞれ試してみましたが
全てで同様の症状のようです。
338名無しさん@お腹いっぱい。:2014/12/06(土) 00:06:21.86 ID:OeyPTRNQ0
終了時にUWSC自体も終了させる方法ありますか?
exitで終わるとUWSCは実行中なので、
これも一緒に終わらせられないかと考えています。
339名無しさん@お腹いっぱい。:2014/12/06(土) 00:17:12.60 ID:+fjxKoBf0
>>333
コード全体を見ないと回答しようがないな。
じゃなきゃ、コードの終了条件を全部言ってみ?
それを列挙してるうちに本人が真っ先に可能性思い当たるだろ。

>>338
HELPの起動オプション
340名無しさん@お腹いっぱい。:2014/12/06(土) 01:10:23.13 ID:2cmnMjY00
>>339
コード全体だと長くなってしまうのですが、
構造自体は単純で

IFB 画像判定
 while true
  (更にIFBの入れ子で画像判定+クリック処理多数、最深部?の最後の画像判定で1つだけexit)
 wend
ENDIF

という構造なので何も起こらずにすぐ終了する場合が
最初の画像判定がうまくいかずに終了する場合しか思いつかない状態です。
ただし、前述の通り判定するウィンドウがアクティブになっている状態からのAlt+F1だけは正常動作します
341名無しさん@お腹いっぱい。:2014/12/06(土) 01:16:25.50 ID:v/AL4JyM0
IFBからENDIFまでをさらにも一つWhileで囲っちゃえば?
342名無しさん@お腹いっぱい。:2014/12/06(土) 01:35:24.52 ID:P/NFDs130
横に逸れるけど、簡単でいいからdebugフラグ変数とdebug loggerを作っておくんだよ
有料版はデバッガがあるんだっけ?
343名無しさん@お腹いっぱい。:2014/12/06(土) 04:50:34.07 ID:+fjxKoBf0
>>340

while true
 id = GETID("ウィンドウ名")
 IF STATUS(id, ST_ISID) THEN BREAK
 sleep(0.5)
wend

//CTRLWIN, ACW, MOUSEORG

IFB 画像判定
 while true
  (更にIFBの入れ子で画像判定+クリック処理多数、最深部?の最後の画像判定で1つだけexit)
  IF !STATUS(id, ST_ISID) THEN EXIT
 wend
ENDIF
344名無しさん@お腹いっぱい。:2014/12/07(日) 00:51:02.44 ID:OLMrH5nN0
>>338
.uwsを関連付けしとけば本体の起動さえいらない
という回答だとダメなんだろうな…
345名無しさん@お腹いっぱい。:2014/12/07(日) 05:32:38.35 ID:pH9a30tP0
リモートデスクトップ切断中にchkimg動かす方法ありませんか?
公式では無理とありましたが、実装されている方いれば、、
346名無しさん@お腹いっぱい。:2014/12/07(日) 06:12:57.02 ID:goN60L7E0
リモートデスクトップからさらにリモートデスクトップしてそこでchkimgすればいい
最初の接続を切っても動く
347名無しさん@お腹いっぱい。:2014/12/07(日) 06:49:07.19 ID:ytXsJryQ0
>>346
目からウロコです。勉強になりました。
こちらの方法を試してみます。
ありがとうございました!
348名無しさん@お腹いっぱい。:2014/12/07(日) 22:54:34.95 ID:/1zV5Sue0
if文の条件分岐がわけわからなくなってきた
既出すぎると思うが
http://i.imgur.com/aiwgfDA.jpg
こういうふうにしたい

ifb chkimg(A)
A'
 else
 ifb chkimg(B)
 B'
  else
  ifb chkimg(C)
  C'
  endif
 endif
endif

これだとelse多重でエラーになる
for文でexitかbreakすればいいのか?
よくわからん
349名無しさん@お腹いっぱい。:2014/12/07(日) 23:05:51.53 ID:OdtqfxJ80
Dim a,b,c
IFB A = 1
ELSE
IFB B = 1
ELSE
IFB C = 1
ELSE
MSGBOX("テスト")
ENDIF
ENDIF
ENDIF

やってみたけど別に問題ないみたいよ?
スペルミスとかその辺疑ってみたほうがよろしげ
350名無しさん@お腹いっぱい。:2014/12/07(日) 23:09:53.70 ID:/1zV5Sue0
>>349
ありゃ本当だ
なぜ出来ないと錯覚したのだろうか
お騒がせしました
351名無しさん@お腹いっぱい。:2014/12/07(日) 23:25:38.41 ID:LJK601Ff0
>>348
elseのインデントがおかしいから、癖なら修正したほうがいいかも
352名無しさん@お腹いっぱい。:2014/12/08(月) 00:21:52.44 ID://unTfeh0
ifb chkimg(A)
 A'
else
 ifb chkimg(B)
  B'
 else
  ifb chkimg(C)
   C'
  endif
 endif
endif

こうだね
353名無しさん@お腹いっぱい。:2014/12/08(月) 00:41:39.88 ID:FSbSc5vR0
>>351
>>352
了解


さっきのものを更に改良していったらまた行き詰まってしまった

A'の処理内に更に画像判定が入り込んだ
A'画像判定がfalseの時にBへ処理を移したいという場合はどうすればいいんだろうか
http://i.imgur.com/iEEF8qW.jpg

if文だけじゃ出来ないのかな
354 ◆evw/E7kww2 :2014/12/08(月) 00:48:28.40 ID:UYKQ/Ah70
>>333-335
アイコン状態からならアニメーションが長いからスリープは1秒くらい必要になりますが
どれくらい入れてますか?
もちろん、アクティブにするのも多少の時間が必要になります。

長時間使っていないアプリは画面が表示されるようになるまでかなり長い時間が必要になる場合があるので
確実に動作させるならその状態をチェックするか長いスリープが必要になると思います。

UWSCのウィンドウが邪魔ならアクティブ状態を何度か変えるか非表示にするか、移動してしまえばいいと思います。

原因が分からないなら、CHKIMG のタイミングで SAVEIMG して画像を見てみればいいと思います。
355名無しさん@お腹いっぱい。:2014/12/08(月) 00:51:55.68 ID:jtwjBHCn0
>>353
procedure使えばなんとか
でもめんどくさそうだから変数使いなよ
356 ◆evw/E7kww2 :2014/12/08(月) 00:54:26.34 ID:UYKQ/Ah70
>>353
exit とか break で分けるといいよ。

Dim 画像[] = "A.bmp", "B.bmp", "C.bmp",

for i = 0 to length(画像) - 1
 repeat
  画像[i] の処理

 until true
next
357 ◆evw/E7kww2 :2014/12/08(月) 01:00:20.53 ID:UYKQ/Ah70
ミスった

内側のループは1回で抜ける
条件にあえば break 2 で for ループを抜ける。
あわなければ次の画像を処理する。

関数でもいいけどポインタ使えないし
あんまり深い階層になってもエラーになるだろうし。
358名無しさん@お腹いっぱい。:2014/12/08(月) 01:45:45.97 ID:FSbSc5vR0
>>355

変数ってあんまり使ったこと無いけどこんな感じでいいのかな?

for n = 1 to 10
 if n = 1
  ifb chkimg(A)
   処理A
   ifb chkimg(A')
    処理A'
   else
    n = n + 1
   endif
  else
   n = n + 1
  endif
 endif

 if n = 2
(略)
next

一応イメージとしてはこんな感じなんだけど
http://i.imgur.com/frtaCax.jpg
359名無しさん@お腹いっぱい。:2014/12/08(月) 01:55:46.04 ID:jtwjBHCn0
>>358
Hantei = 0

IFB CHKIMG(A)
A'の処理
IFB CHKIMG(A')
Hantei = 1
ENDIF
ENDIF

IFB CHKIMG(B) and Hantei = 0
<略>

IFB CHKIMG(C) and Hantei = 0
<略>

AとA'に成功してHanteiが1になればBやCとは条件あわなくてスルーされるじゃない?
360名無しさん@お腹いっぱい。:2014/12/08(月) 02:34:59.34 ID://unTfeh0
Dim 画像[] = "A.bmp", "B.bmp", "C.bmp",

for i = 0 to length(画像) - 1
 if chkimg(画像[i])
  select 画像[i]
   case "a.bmp"
    aの処理
   case "b.bmp"
    bの処理
   case "c.bmp"
    cの処理
  selend
 endif

 dim 次=true

 if chkimg(画像[i])
  次=false
  select 画像[i]
   case "a.bmp"
    aの処理
   case "b.bmp"
    bの処理
   case "c.bmp"
    cの処理
  selend
 endif

 if 次=false
  exit
 endif
next
361名無しさん@お腹いっぱい。:2014/12/08(月) 02:38:15.20 ID://unTfeh0
Dim 画像[] = "A.bmp", "B.bmp", "C.bmp",

for i = 0 to length(画像) - 1
 if chkimg(画像[i])
  select 画像[i]
   case "a.bmp"
    aの処理
   case "b.bmp"
    bの処理
   case "c.bmp"
    cの処理
  selend
 else
  continue
 endif

 if chkimg(画像[i])
  select 画像[i]
   case "a.bmp"
    aの処理
   case "b.bmp"
    bの処理
   case "c.bmp"
    cの処理
  selend
  exit
 endif
next

こうか
362名無しさん@お腹いっぱい。:2014/12/08(月) 07:45:52.93 ID:KD3TXovZ0
>>348
ELSEIF 使えよ

ifb chkimg(A)
 A'
elseif chkimg(B)
 B'
elseif chkimg(C)
 C'
endif
363名無しさん@お腹いっぱい。:2014/12/08(月) 07:55:09.03 ID:KD3TXovZ0
>>353
procedure chkABC()

isA = chkimg(A)
isAd = false
if isA then isAd=chkimg(Ad)
ifb isAd then
 //
 exit
endif

//!isA or (isA and !isAd) ⇒ !isAd
isB = chkimg(B)
isBd = false
//以下略

fend
364名無しさん@お腹いっぱい。:2014/12/08(月) 08:05:06.17 ID:KD3TXovZ0
× !isA or (isA and !isAd) ⇒ !isAd
○ isAd = isA and isX , !isA or (isA and !isAd) ⇒ !isA or !isX
365名無しさん@お腹いっぱい。:2014/12/09(火) 02:36:20.00 ID:GDUTLOq60
>>353
こんなんどうでしょ
HASHTBL map
map["A.bmp"] = "A'.bmp"
map["A.bmp" + "FALSE"] = "B.bmp"
map["A'.bmp" + "FALSE"] = "B.bmp"
map["B.bmp"] = "B'.bmp"
map["B.bmp" + "FALSE"] = "C.bmp"
map["B'.bmp" + "FALSE"] = "C.bmp"
map["C.bmp"] = "C'.bmp"
map["C'.bmp"] = "略.bmp"
do( "A.bmp", map)
procedure do( image_name, map[])
ifb chkimg(image_name) then
select image_name
case "A.bmp"
//A処理
case "B.bmp"
//B処理
case "C.bmp"
//C処理
case "A'.bmp"
//A'処理
                  〜〜
selend
else
image_name = image_name + "FALSE"
endif
ifb map[image_name,HASH_EXISTS] then
do( map[image_name], map)
endif
fend
366名無しさん@お腹いっぱい。:2014/12/09(火) 02:45:25.82 ID:GDUTLOq60
すまんインデント消えちゃったか
関数を再帰的に呼び出せばif文のネスト(入れ子)なんて無駄なことはいらなくなる
for文すら必要ない
擬似リスト構造により機能追加が容易で、コード行数も少ないしたぶんこれが最強
どうよ
367名無しさん@お腹いっぱい。:2014/12/09(火) 03:31:18.90 ID:dt4R8O780
doってdo~whileとかで使われる予約後だから関数名に使うのはDOかと思う
368名無しさん@お腹いっぱい。:2014/12/09(火) 04:53:36.55 ID:GDUTLOq60
DOかしてたわ
hogehogeに脳内補完してください
369 ◆evw/E7kww2 :2014/12/09(火) 11:47:58.09 ID:oeL808Pt0
MIFES β版
Webページで改行とか入ってないようなものをツリー化してくれるのは便利。
ttp://kanae.2ch.net/test/read.cgi/prog/1289620447/887

ファイルたくさん開くのに Apsaly 使ってる。
370名無しさん@お腹いっぱい。:2014/12/09(火) 15:53:29.54 ID:KTWNMTfE0
>>365-366
いいですね〜
ちょっと工夫すれば外部ファイルから読み込むことも可能だし、
今度使わせていただきますよ
371353:2014/12/09(火) 19:49:26.96 ID:NtEFh7Ft0
いろんなやり方があるんだなあ
勉強になりました
みんなありがとう

とりあえず書いてもらったものは全部動かしてみるわ
372名無しさん@お腹いっぱい。:2014/12/09(火) 21:35:33.21 ID:YpsblkSx0
裏マクロにしようと試みたのですが、画像(祝福)を認識しても、次のBTN(左クリック)が動作しません(T_T)
※裏マクロにしなければ正常に動作します。

fukidasi("「S」で開始")
While !(GETKEYSTATE(VK_S))
sleep(0.1)
Wend
fukidasi()
winid = getid(GET_ACTIVE_WIN)

mouseorg(winid,2)
sleep(1)

FOR J = 1 TO 100
SLEEP(2)
IFB CHKIMG("祝福.bmp",-1)
fukidasi("祝福を認識しました")
BTN(LEFT,CLICK,G_IMG_X+1,G_IMG_Y+1)
SLEEP(1)

 中略

NEXT

mouseorg関数を使うのは初めてです。お知恵をお貸しくださいm(__)m
373名無しさん@お腹いっぱい。:2014/12/09(火) 22:14:55.55 ID:wAqY0XV60
>>372
winid = getid(GET_ACTIVE_WIN)  <-  この行の意味分かってないよね
374名無しさん@お腹いっぱい。:2014/12/09(火) 22:35:03.60 ID:YpsblkSx0
アクティブウィンドウのウィンドウIDを取得する…でしょか(・・?
375名無しさん@お腹いっぱい。:2014/12/10(水) 19:46:06.96 ID:dY/VBveu0
直接クリック情報を送る場合はウィンドウIDじゃなく、クリックさせたいオブジェクト自体のハンドルが必要な場合がある
例えばサイトに埋め込まれてるFlashなど
取得方法はググれば出る
情報が少ないのでこれが原因かは知らん
376名無しさん@お腹いっぱい。:2014/12/10(水) 20:27:34.85 ID:79yr8KJU0
uwscとは別の問題かも知れませんが、chkimgについて教えて下さい。
ある画像が出るまで待ち、その画像が出たらその座標をクリックする、
と言う単純なスクリプトを作りました。画像は150x80ピクセルのbmpファイルです。

自分のマシンでは特に問題無く動くのですが、これを別のマシンで実行すると
途中までの処理は同じように動くのですが、同じファイルでは画像を認識してくれません。
検索範囲を画面全体にしてもヒットしません。この別マシンで再度画像を取り直すと認識しました。

q1:
ブラウザや環境設定等で色が変わるのは解るのですが、
デスクトップの設定は同じ32bit、ブラウザは同じ物同じバージョンでも
OSやビデオカードが違うと色が変わるとかあるのでしょうか。
Photoshopでレイヤーにして「差の絶対値」にして重ねてみたり、
diff等で比較しても差は解りませんでした。

q2:
chkimgのオプションで色幅と言うのが合ったので、これを使って
認識出来ないかと考えているのですが、記述方法がヘルプや検索では
よく解りませんでした。単純に100とか200とか入れても認識しませんでした。

おわかりの方ご教授願います。
377名無しさん@お腹いっぱい。:2014/12/10(水) 23:18:38.13 ID:jKlbq3G80
ビデオカードのドライバで色かわるよ。経験済。
800倍目視比較してみ、境界線を滑らかにするアンチエイリアス処理の違いのせいで
微妙な色の違いとか出ちゃってるから。
まぁ目視比較するにしても判定するにしても150x80じゃデカ過ぎ。
まぁ見た目でわからなくても対照実験してみて違うと判定されるのは仕方がない的な結論に至るよ。
逆に、VMwareなどで完全に同じ環境と保証されてる状況では、絶対と言っていいほど起こらない。
俺にとってはVMware環境はもはや「必須」を通り越して「基本」だね。

またフォントの違いとかも出るからね。
OSにインストールされたフォントの違い、異なるブラウザ間でのフォントの違い、
特に2バイト文字に顕著に発生するよ。
もちろんVMwareなどで完全に同じ環境と保証されてる状況では、絶対と言っていいほど起こらない。
俺にとってはVMware環境はもはや「必須」を通り越して「基本」だね。

あと比較画像が、例えば極端な話、単色の1本線だとか、
1ドットごとに大量にマッチが発生しうる時に想定した通りに判定してくれない。
色幅は一番緩くして「IMG_MSK_BGR4」
それより曖昧にマッチさせたかったらChkImgX使わせてもらうぐらいしかないね。
378名無しさん@お腹いっぱい。:2014/12/10(水) 23:46:05.36 ID:GjqcGHmm0
>>377
画像判定以外にもスクレイピングとかで環境によって正常動作しなかったのもVMware使えば良かったのか!!
参考にさせていただきます
379 ◆evw/E7kww2 :2014/12/11(木) 00:09:05.42 ID:B5H/dfl60
VMwareは仮想化のオーバーヘッドがあるからGPU使うものは重くなる。
最近ではブラウザゲームもGPU使うから仮想化せずに済むならしないほうがいい。

と言う事で僕は画像をその都度キャプチャする方法を採ってみた。
キャプチャする座標が決まっててシーンが少なければ
表示されてる時に目視でユーザーがクリックして保存作業をする。
380名無しさん@お腹いっぱい。:2014/12/11(木) 11:07:26.62 ID:D38MNcHl0
>>375
オブジェクト自体のハンドル…ググってみます
返信遅れましたがありがとうございます
381名無しさん@お腹いっぱい。:2014/12/11(木) 11:59:54.34 ID:j4alJeb70
>>379
ユーザが作業するのか
新しい画像はChkImgXとか使って判定して、保存するようにすれば自動化できるんじゃないか?
382 ◆evw/E7kww2 :2014/12/11(木) 14:08:14.11 ID:B5H/dfl60
>>381
ChkImgX で検索できるんなら他の手段を使う理由って
完全一致で検索の高速化くらいしかないよね。

一部とは言え他人の著作物含めるのも気が引けるし
いろいろそろえるのも大変だし・・・
ChkImgX でも大きさまでは変えられないよね。
自分で保存すれば大きさ変わっても対応できるし
デザインが微妙に変更されても対応できる。

小さい方が軽くていいんだけど
例のポーカーは小さいと判別難しいから大きめでやってる人がいた。
最後はなんか小さいのに対応したらしいけど。

画質やサイズの設定は出来れば普段使ってる設定で出来る方が
使うときにめんどくさくなくてよい。

ユーザーが保存するのは他にもメリットがあって
ユーザーの環境で起きる現象が保存した画像によって分かることがある。
座標のズレとか
UWSCが画像をキャプチャ出来てないとか。
ttp://kanae.2ch.net/test/read.cgi/gameurawaza/1414313711/755
> 保存したビットマップは真っ黒。

PrintScreen でキャプチャしたのとはまた違うから
問題検証するときはUWSCで保存する必要がある。
383名無しさん@お腹いっぱい。:2014/12/11(木) 15:56:41.56 ID:UevZqfss0
糞コテいい加減に死ねよ
384名無しさん@お腹いっぱい。:2014/12/11(木) 16:43:34.86 ID:wL+KkKVw0
全体NGにダイヤ入れてない人まだいたんだ
385名無しさん@お腹いっぱい。:2014/12/11(木) 21:08:51.69 ID:o9Y9DB3L0
点滅している画像のchkimgとかどうやるの?
386名無しさん@お腹いっぱい。:2014/12/11(木) 22:08:08.39 ID:UevZqfss0
chkimg連打でおk
387名無しさん@お腹いっぱい。:2014/12/11(木) 22:49:51.14 ID:+Y4lcWzs0
>>385
だいたいの場合、点滅していなかったり変化のない部分の画像で判断できるから、
よく画面を観察する
388名無しさん@お腹いっぱい。:2014/12/12(金) 00:06:56.54 ID:iH8T3n9F0
>>365があんまり理解できない
変数も自作関数も引数も知ったばかりだから飲み込むのに難儀してる

http://i.imgur.com/hfeQdMa.jpg
1.ハッシュ変数というのを使って、キーに値として文字列を代入

2.自作関数を定義して、1で代入した文字列を呼び出す
   Q. hogehoge(image_name, map[])の部分がよくわからない

3.chkimg関数で画像識別

4.SELECT-SELEND関数で複数の場合を分岐

5.3で画像認識しなかった場合の処理

6.image_nameというキーが存在する場合、hogehoge関数は()内の引数を処理?
  ここで再帰する?


こんな感じなのかな?
389名無しさん@お腹いっぱい。:2014/12/12(金) 04:07:18.14 ID:h/SnlzWt0
別に再帰にする必要はないよ。ループのほうが分かりやすい

public HASHTBL map
省略(mapにデータを入れる)
main_loop("A.bmp") // A.bmpから処理を開始
procedure main_loop(image_name)
while true
ifb chkimg(image_name) then
select image_name
case "A.bmp"
//A処理
case "B.bmp"
//B処理
case "C.bmp"
//C処理
case "A'.bmp"
//A'処理
                  〜〜
selend
else
image_name = image_name + "FALSE"
endif
ifb !map[image_name,HASH_EXISTS] then
break // 次の状態が定義されていないので終了
endif
image_name = map[image_name]
fend

mapは、A.bmpが見つかったら次はA'.bmpの画像判定をする(map["A.bmp"] = "A'.bmp")
見つからなかったらB.bmpの画像判定をする(map["A.bmp" + "FALSE"] = "B.bmp")
っていうのを全部持っているデータ
390名無しさん@お腹いっぱい。:2014/12/12(金) 04:09:22.60 ID:h/SnlzWt0
あ、whileループが終わってなかった。最後あたり修正↓

image_name = map[image_name]
wend
fend
391名無しさん@お腹いっぱい。:2014/12/12(金) 09:12:05.05 ID:Fro3rDW10
>>389
それいいね、map
めんどくさいif if if ifな仕様をそのままコードに出来るのね
横からだけどありがとう
392名無しさん@お腹いっぱい。:2014/12/12(金) 09:31:17.17 ID:yEgKzylS0
repeat untilで特定の条件を満たすまで同じ処理を続けさせたいのですが、
この条件が一つではなく複数の場合どう記述したら良いでしょうか?
repeat〜untilの中に二つ目以降の条件をif文として入れたとしても、そこからループ脱出は出来ないですよね?
393392:2014/12/12(金) 09:38:58.67 ID:yEgKzylS0
breakで行けました。お騒がせしました。
394名無しさん@お腹いっぱい。:2014/12/12(金) 16:00:18.00 ID:Jbk6exzE0
再起は重くなる場合があるけど、UWSCではどうなんだろうね
395名無しさん@お腹いっぱい。:2014/12/12(金) 17:56:14.91 ID:h/SnlzWt0
スタックオーバーフローがUWSCだとどうなるのかが気になる
396名無しさん@お腹いっぱい。:2014/12/12(金) 19:40:47.95 ID:z8bKijBT0
プロセス多重起動だと60かそこらで非公式エラー出てたんで普通に意味不明エラーメッセで止まると思う。
397 ◆evw/E7kww2 :2014/12/12(金) 19:50:52.98 ID:da4ZeTbp0
1065回の再帰呼び出しでエラー出た
EVAL だと208回
398名無しさん@お腹いっぱい。:2014/12/13(土) 05:51:34.89 ID:6zzLho3c0
>>397
調査乙
以外と少ないな。まぁ普通のプログラムには十分すぎるけど

>>365は末尾再帰だから最適化でループに変換できるけどUWSCはそんな最適化はしないだろうからループで書くべきだろうね
本人は「再帰で書いちゃってる俺スゲー」って思ってるだろうけど
399名無しさん@そうだ選挙に行こう:2014/12/13(土) 14:09:29.60 ID:iIjKZEBp0
自作関数内のCONTINUEを
メイン関数のループ処理に適用する方法ってあるの?
400名無しさん@そうだ選挙に行こう:2014/12/13(土) 14:27:22.12 ID:srw17/Qs0
>>399
パッと思いつくのは関数の戻り値でメイン関数内で判別させてContinueさせるくらい
401名無しさん@そうだ選挙に行こう:2014/12/13(土) 14:29:21.74 ID:wFBftLhC0
俺はPROCEDUREは使わない!(キリッ)
どんな関数でもFUNCTIONを使い、処理の成否を戻り値に返している。
つまりこう

IF !myFuncHoge() THEN CONTINUE
402名無しさん@そうだ選挙に行こう:2014/12/13(土) 15:00:58.04 ID:iIjKZEBp0
間接的にCONTINUEを用いるのですか
なるほど勉強になりました
403227:2014/12/18(木) 12:02:35.36 ID:Bh6qgjZp0
>>228
ものすっごい遅れたけどサンクス
これは使えそうだな
404227:2014/12/18(木) 12:15:27.12 ID:Bh6qgjZp0
って、なんかもっとすごいchkimgxとかいうの作ってくれた人いたんですね
使わせてもらいます
ありがとう 超助かる
405名無しさん@お腹いっぱい。:2014/12/18(木) 23:00:32.51 ID:lEG1CPWK0
だれかグラブルのあらぶるっていうマクロうpしてくれ
406名無しさん@お腹いっぱい。:2014/12/18(木) 23:02:54.15 ID:T6S0MLGC0
スレ違いだから死んで
407名無しさん@お腹いっぱい。:2014/12/18(木) 23:14:56.99 ID:lEG1CPWK0
お前が死ね
408名無しさん@お腹いっぱい。:2014/12/19(金) 17:00:34.53 ID:XLZcXe/l0
フラッシュでUSWC使ってフォアグラウンドで操作してるんだけど、バックグラウンドはうまくいかないから
パソコンのディスプレイの電源が切れたらどうやらchkimgがうまく動作しないんだよね
誰か対策わからね?
FullFramerateWhenInvisible = 1を追加は試した。あとハードウェアアクセラレータ無効
ブラウザは火狐
409名無しさん@お腹いっぱい。:2014/12/19(金) 17:04:37.67 ID:Av6eWrcc0
>>408
パソコンのディスプレイの電源を切らない設定にする
410名無しさん@お腹いっぱい。:2014/12/19(金) 17:12:01.08 ID:XLZcXe/l0
>>409
電力喰うからそれはしたくない。あと先に言うと仮想化OSもしたくないメモリに負荷かかるから
それ系のなんかコードか、設定か知らない?
411名無しさん@お腹いっぱい。:2014/12/19(金) 17:13:52.37 ID:ulmb5ne30
FlashのオブジェクトID取得して、直接送ればいいだけだろ
412名無しさん@お腹いっぱい。:2014/12/19(金) 17:17:22.45 ID:XLZcXe/l0
ぐぐってMozillaWindowClassとかでID取得してみたんだけど
なんか中身に何も入ってないっぽいんだよねPRINT文とかで出力してみたんだけど

オブジェクトID取得するためのパスがわからんから知ってるなら教えてけろ
413名無しさん@お腹いっぱい。:2014/12/19(金) 17:21:53.66 ID:oQnZZ3Nk0
お前が死ね
414名無しさん@お腹いっぱい。:2014/12/19(金) 17:22:19.14 ID:61MyG13T0
モニタの電源ONにする関数あるだろ
それぐらい調べろよ
415 ◆evw/E7kww2 :2014/12/19(金) 17:39:10.79 ID:3DxMn3sv0
>>410
ディスプレイが一体型でないなら、設定ではOFFにしないようにして
物理スイッチでOFFにすればいい。
一体型は知らん。

暗くするだけでもそれなりに省エネなんじゃね?
416名無しさん@お腹いっぱい。:2014/12/19(金) 17:53:17.48 ID:Ww2O0ZK80
ディスプレイの話を絡めてややこしく考えているけれど
単純にフォアグランドじゃないと動かないスクリプトってだけの話
でもって仮想化抜きでは安定した解決策は無いってのが最終的な答え
417 ◆evw/E7kww2 :2014/12/19(金) 18:18:30.17 ID:3DxMn3sv0
うちのLenovoのノートは Fn+F2 で液晶のバックライトが消えるんだけど
消した状態でもバックグラウンドで動くポーカーマクロは動いてたよ。
418名無しさん@お腹いっぱい。:2014/12/19(金) 18:30:52.28 ID:XLZcXe/l0
>>415
せんきゅう
os上でモニタの電源切らないようにして、物理電源切ったらうまく動作してるわ
てことはOS上のモニタoffによって描写が中途半端にはぶられたのか、中途半端には動いてたから。手動しかないんだろうなあ。とにかくせんくす
419名無しさん@お腹いっぱい。:2014/12/20(土) 13:13:51.28 ID:H+gMsN1S0
chkimgは画面が作成されないと動作しないから
ソフトウェア的に画面OFFにしたり最小化したりすると
OSが画面の作成をさぼってchkiimgが動作しなくなる
420名無しさん@お腹いっぱい。:2014/12/20(土) 20:24:33.67 ID:ZeXAQlth0
MOUSEORGを入れるとCHKIMGで画像認識が上手くできないのですが原因分かる人いませんか?
MOUSEORG無しの状態ではウインドウ内の画像を100%認識に成功するのですが
MOUSEORGを入れると認識確率が10%くらいになります
完全に認識しないならともかく、10回に1回くらいは無事みつけてくれます
原因分かる人いたら教えてください
421名無しさん@お腹いっぱい。:2014/12/20(土) 21:11:23.81 ID:fPu+cuS30
認識対象ウィンドウのIDと
MOUSEORGの引数で渡したウィンドウIDが
異なる以外に考えられまへんな
例えば認識したい画像が実はPOPUPウィンドウで表示されてるとかね
422名無しさん@お腹いっぱい。:2014/12/20(土) 22:24:42.18 ID:E6sOJohh0
お尻の穴からウンチでちゃうんですが
解決策はありますか?
423名無しさん@お腹いっぱい。:2014/12/20(土) 23:12:11.86 ID:fPu+cuS30
排泄対象ウィンコウのIDと
ANUSORGの引数で渡したウィンコウIDが
異なる以外に考えられまへんな
例えば排泄したい便器が実はPOPUPウィンコウで詰まってるとかね
424名無しさん@お腹いっぱい。:2014/12/20(土) 23:54:30.82 ID:Ot8Y1ZBh0
どの穴から出したいのか書いてくれないと助言不可だろよ
もしくは別のモノが出る筈なのか?
質問意図明確にせんとプログラム以前の問題だぞ
425名無しさん@お腹いっぱい。:2014/12/21(日) 12:16:32.03 ID:bi3QIUFw0
>>423
レベルが高すぎる会話で僕にはまだ理解出来ません
僕に出来る事はCHECKUNKOの関数を使ってうんこの色を判定する事だけです

>>424
どの穴からも出したくはないんです
どうしても無理であれば鼻の穴からでも構いません
426名無しさん@お腹いっぱい。:2014/12/21(日) 19:53:59.08 ID:qzajFb780
何・・このウンコスレ
427名無しさん@お腹いっぱい。:2014/12/22(月) 11:41:18.89 ID:Gyt4M/+w0
失礼します。
画像認識が正常に動作しません。
OSはvistaです。
プリントスクリーンで画像を撮り、ペイントから余白とかなしで画像を24bit bmpで保存。
WHILE TRUE
IF CHKIMG("画像.BMP") THEN BREAK
WEND
KBD(VK_U,CLICK,1000)

これは例ですが、画面にその画像があるのにループから抜けれません。
大変困っています。3年ほど前はできていたのですが。
428名無しさん@お腹いっぱい。:2014/12/22(月) 13:08:40.14 ID:/4D6rdyi0
>>427
とりあえず3×3くらいの他の画像で試してみて
429名無しさん@お腹いっぱい。:2014/12/22(月) 14:11:05.52 ID:Gyt4M/+w0
試してみました。
画像をいろいろ変えても動作しません。
430 ◆evw/E7kww2 :2014/12/22(月) 15:44:52.66 ID:+Wtf9vOI0
>>427
タスクバーの時計とか含んでないですよね?

例のポーカーマクロやってて気が付いたんですが
Google 製 Chrome のウィンドウ枠が2重になってて
普通に画面に表示されているものと、UWSCでキャプチャするものが食い違ってたりするんですよね。

UWSCでキャプチャしたものとほかの方法でキャプチャしたものを比較してみないと。
431名無しさん@お腹いっぱい。:2014/12/22(月) 18:04:47.57 ID:Gyt4M/+w0
キャプチャの方法をかえればいいってことですか?
432 ◆evw/E7kww2 :2014/12/22(月) 18:13:06.58 ID:+Wtf9vOI0
>>431
SAVEIMGするだけだからとにかくやってみれば

あとループには必ず SLEEP 入れないと。
433名無しさん@お腹いっぱい。:2014/12/22(月) 18:58:27.14 ID:Gyt4M/+w0
すいません。SAVEIMがなになのかわからないです。
スリープいれるのは動作重くなるからですか?
434 ◆evw/E7kww2 :2014/12/22(月) 19:09:18.64 ID:+Wtf9vOI0
>>433
SAVEIMG()
とだけ書いた .uws ファイルを作って実行してください。
それが PrintScreen と同様の動作をします。
あとはペイントに張り付けて実際の画面と比較してみてください。

> スリープいれるのは動作重くなるからですか?
そうです。
435名無しさん@お腹いっぱい。:2014/12/22(月) 20:28:18.02 ID:Gyt4M/+w0
>>434
了解です!
実行後、ペイントで貼りつけると、真っ白になりました。
printされてない?
436 ◆evw/E7kww2 :2014/12/22(月) 20:42:43.82 ID:+Wtf9vOI0
>>435
UWSCのバージョン古くないですか?
437名無しさん@お腹いっぱい。:2014/12/22(月) 20:48:18.76 ID:8Fs1EtPY0
ブラウザを開かずにphpに値を渡し、返り値を受け取る事って可能でしょうか?
438名無しさん@お腹いっぱい。:2014/12/22(月) 20:53:05.30 ID:Gyt4M/+w0
昨日ダウンロードしたばかりです!
439名無しさん@お腹いっぱい。:2014/12/22(月) 22:42:47.65 ID:j8nonv9V0
>>427
過去ログで散々言われてること:
AEROを切る。
対象ウィンドウIDを正しく取得し、MOUSEORGを行ってから、CHKIMGを行う。
CHKIMGのオプションには一番判定の甘い IMG_MSK_BGR4 を指定する。
440名無しさん@お腹いっぱい。:2014/12/22(月) 23:10:21.77 ID:Gyt4M/+w0
>>439
エアロはきってあります!
IDって手動で記録したときに一番上にでるやつのことですかね?
MouseORGって何ですか。
Chikingのオプション変更方法ってどうやるのです?
質問多くてすみません。
441名無しさん@お腹いっぱい。:2014/12/22(月) 23:14:41.51 ID:/4D6rdyi0
442 ◆evw/E7kww2 :2014/12/22(月) 23:19:54.17 ID:+Wtf9vOI0
ID:Gyt4M/+w0 は UWSCがちゃんと動いてないからスクリプトの話をしても無駄
まさか仮想マシンで動かしてるのかな?
443名無しさん@お腹いっぱい。:2014/12/22(月) 23:23:12.05 ID:B87ekD500
新作の掲示板サイトをベータ公開中です。

http://fluid.twolineprj.com/twoline/entry

テーマは自由自在。自由に投稿してみてください。
444名無しさん@お腹いっぱい。:2014/12/22(月) 23:28:38.31 ID:Gyt4M/+w0
一応ボタン押したりの動作はするんです。
3年前できてたのに今できないってなんかあるのかな。
445名無しさん@お腹いっぱい。:2014/12/22(月) 23:57:56.59 ID:6L7JKp6p0
>>444
3年前のコードをそのまま動かしてみろよ
446名無しさん@お腹いっぱい。:2014/12/23(火) 00:30:08.24 ID:/LjOiScf0
>>440
おまえ質問者としての最低限の要件を満たしてないよ。
447名無しさん@お腹いっぱい。:2014/12/23(火) 01:04:47.36 ID:MmHoMkXQ0
すいません。わかったことがあります。
さっきまでオンラインゲームを起動しており一度再起動して
デスクトップにある適当なアイコンの画像を画像認識させると認識されました。
しかし再びオンラインゲームを起動させるとさっきまでできていたアイコンの
認識ができなくなりました。ちなみにゲームは窓化しております。
448名無しさん@お腹いっぱい。:2014/12/23(火) 01:17:43.67 ID:MmHoMkXQ0
ちなみにこのコードでやっています.

WHILE TRUE
IF CHKIMG("画像.BMP",0,1,1,1030,800) THEN BREAK
WEND
PRINT G_IMG_X + "," + G_IMG_Y
449 ◆evw/E7kww2 :2014/12/23(火) 01:19:50.72 ID:jRByVTjg0
>>447
ゲームガードは画面キャプチャを妨害するから無理です。
450名無しさん@お腹いっぱい。:2014/12/23(火) 01:27:18.91 ID:MmHoMkXQ0
なんかゲーム側がなにかしてるっぽい・・・。
451名無しさん@お腹いっぱい。:2014/12/23(火) 01:27:58.16 ID:MmHoMkXQ0
ちなみにメイプルストーリーだけど、何か対策ないですかね。
452名無しさん@お腹いっぱい。:2014/12/23(火) 02:22:30.27 ID:O7rzg04u0
nPro回避はスレチ。他所でやれ
453 ◆evw/E7kww2 :2014/12/23(火) 09:58:21.71 ID:jRByVTjg0
>>451
回避できるけどその先どうにもできないでしょ。
ググったら出てくるのにそれすらできないなんて。
454名無しさん@お腹いっぱい。:2014/12/23(火) 17:43:01.79 ID:MmHoMkXQ0
64bitならできるみたいなこと書いてあって
僕のPCが32bitなんです。
bitはあげることできないですか?
455名無しさん@お腹いっぱい。:2014/12/23(火) 18:05:21.16 ID:SI1FbXIQ0
もうUWSCと全く関係ない話になってるのは解るよね?
なら該当するスレを探しに出かけなさいな
456名無しさん@お腹いっぱい。:2014/12/23(火) 18:25:10.31 ID:fUDYgvFp0
厨房に構うとかお前ら親切を通り越して馬鹿だな
457名無しさん@お腹いっぱい。:2014/12/23(火) 20:23:05.68 ID:6gl2uQWc0
何だ冬休みか早いねぇ
458名無しさん@お腹いっぱい。:2014/12/23(火) 23:30:17.36 ID:NA6C+1B80
君子、教えてちゃんに近寄らず!
459名無しさん@お腹いっぱい。:2014/12/24(水) 02:02:19.93 ID:YFA14UhM0
教えて下さい。クリスマスプレゼントにゲームソフトが欲しいです。
僕のプレステは32bitなんです。
64bitのNINTENDO64のソフトは動きますか?
460名無しさん@お腹いっぱい。:2014/12/24(水) 02:11:56.99 ID:+EvE5RkD0
>>459
動きます
461名無しさん@お腹いっぱい。:2014/12/25(木) 22:22:33.33 ID:eZelsVef0
UWSCが再生中の作業とは別に、自分もマウスキーボードを使って作業したいんだけど可能?
スクリプト等とは無縁の人生だったのでhelpを見ながら試行錯誤してるミジンコなんだが、
「この単語を検索しろ」程度のヒントだけでも教えてもらえるとありがたい
最近UWSCを知ってから作業がかなり効率化して助かってるんだが、マウスカーソル等の主導権を
奪われなければ、並行してる手作業がもっと捗って助かるんよ
462名無しさん@お腹いっぱい。:2014/12/25(木) 22:25:36.80 ID:qlh+Jtuw0
>>461
仮想化
463名無しさん@お腹いっぱい。:2014/12/25(木) 22:30:13.36 ID:FEiPAWyZ0
仮想化ってもうひとつOS買わないと駄目なの?
464名無しさん@お腹いっぱい。:2014/12/25(木) 23:41:55.14 ID:eZelsVef0
>>462
d、色々と見えてきた
465名無しさん@お腹いっぱい。:2014/12/26(金) 03:34:50.53 ID:L4hv5nUs0
変数保存する方法とかってなんかある?
動作中のスクリプトの変数をファイルか何かに保存して
今度動かす時に読み込ませるみたいな
466名無しさん@お腹いっぱい。:2014/12/26(金) 07:48:44.45 ID:2MOLrRqX0
readini()
writeini()
467名無しさん@お腹いっぱい。:2014/12/26(金) 13:08:31.87 ID:L4hv5nUs0
>>466
出来た、ありがとう
468名無しさん@お腹いっぱい。:2014/12/27(土) 17:24:14.71 ID:x3db8G6c0
あるスクリプトで途中で不具合が発生して
いつまでも終わらなくなってしまう場合があり
そういう場合でもスクリプト終了だけはさせたいと思って居ます。

なので例えば開始から○分経ったら強制終了、みたいな事は可能でしょうか。
gettimeを使って経過時間を出すことは出来ましたが、
処理事に○秒経ったら強制終了、って記述を書いていくとかなり膨大な量になるのと
それぞれにかかる時間が必ずしも読めないので、出来れば全体で○分経ったら、とひとくくりにしたいのです。

この経過時間に関わらず、並列処理みたいな記述って難しいのでしょうか。
どなたかアドバイスをお願い致します。
469名無しさん@お腹いっぱい。:2014/12/27(土) 17:25:53.24 ID:Qy45KO+O0
スレッドでカウントさせればいんじゃね
470名無しさん@お腹いっぱい。:2014/12/27(土) 19:21:27.06 ID:x3db8G6c0
スレッド!これですか!
うまい検索ワード見つからず悩んでいました。
やりたいことが出来そうです。ありがとうございました。

ついでに経過時間のカウント方法としては
sleep(1)毎に変数+1とかやれば十分でしたね…。

それで度々すみません、起動したスレッドってメインのスレッド側から
停止させる方法ってありますか?
メインが正常終了してもいつまでもカウント続けてるので
メインが正常終了させたら止めたいのです。

何故か検索してもスレッド側からメインを止める話ばかりヒットするので…
471名無しさん@お腹いっぱい。:2014/12/27(土) 19:50:17.72 ID:HdrXDhIm0
>>470
俺もよくCLKITEMとかがデッドロックっぽくなって帰ってこないんでスレッド使ってるが、
あんたの発想は逆だよ。
原因箇所を特定せずに荒い考えでやるとメインを終了という手段に出る。
原因箇所のほうを別スレッドに隔離すんだよ。
メインには危険な行為をさせない。

メインが特攻隊スレッドを出撃させ、
一定時間以内に生還報告がなければ戦死扱いにして、
第2時特攻隊を出撃させる。
その際同時に、戦死スレッドが実は生きていた横井さんとなった場合のため、
横井さん宛に余計なことせずに自決せよコマンドを発行しておく。

ブラウザが相手の場合、ブラウザの方を強制終了させるとフリーズが解けるので、
DOSCMDでTASKKILLを使いターゲットブラウザを強制終了
言語仕様上スレッドの強制命令はないが、自決コマンドが送ってあるので、
横井さんスレッドがフリーズ解けて正気に戻った際にグローバル変数経由でそれ見て自決。
そうしないと複数のスレッドが同じリソースをCLKITEMしようとしたりしてトラブルになるからな。
472名無しさん@お腹いっぱい。:2014/12/27(土) 19:58:00.52 ID:HdrXDhIm0
あと組み込みなんかでよく使われる方法はWATCHDOGなんだけど、
これを擬似的に行う一つの方法として、
UWSCのメインルーチンでフローのチェックポイントごとに、
例えばImAlive.txtというファイルを新規作成する。
一方、UWSCではない別の何らかの常駐ツールでもって定期的にImAlive.txtを削除する。
またそのツールは、何回かImAlive.txtを見つけられなかった場合に、
UWSCの全てのプロセスを強制リブートさせる。
もし仮想マシン上で走らせているなら、
スタートアップにUWSCとWATCHDOG用ツールを仕込んでおき、
異常なら再起動させるとより確実。
473名無しさん@お腹いっぱい。:2014/12/28(日) 02:04:29.99 ID:jtGJgsvl0
>>470
メインが終了したら、マクロ自体要らないんだから
EXITEXITでいいんじゃないの?
474470:2014/12/28(日) 03:22:13.23 ID:8wl5TXyM0
グローバル変数を使ってメインの終了時にフラグを立てて
スレッドで定期的にそれを見てフラグが立ってたら終了するようにしたらうまくいきました。

構造的には本来は逆にした方が良いみたいですね。
今後時間をかけててこ入れしたいと思います。
475名無しさん@お腹いっぱい。:2014/12/31(水) 06:03:59.28 ID:OuzlGTZO0
桁数の大きな数値を取り扱う時ってどうすればいいんですか

A=5646546516515135151
B=6546549849846546546546
C=A*A*B*B*B
print C

これを計算させると
8.94547194841095E102

と表示されてしまい詳細が見えません
476名無しさん@お腹いっぱい。:2014/12/31(水) 07:05:22.62 ID:DjD8z53F0
>>475
四倍精度、八倍精度などの外部処理系に丸投げするとか?
477名無しさん@お腹いっぱい。:2014/12/31(水) 07:21:52.02 ID:DjD8z53F0
>>475
何桁かに分解してそれぞれ計算させて、「表示」の際に合成
478名無しさん@お腹いっぱい。:2014/12/31(水) 11:52:04.19 ID:UkwXpY2C0
>>475
1.EXCELや電卓を自動操作して取得(これ、そういうツールだから。)

2.多倍長演算のアルゴリズムを自力で実装(ttp://poset.jp/ompa/node2.html

3.ってかその表示、演算成功してね?EXCELでも同じ結果よ?

8.94547194841095E102
= 8.94547194841095 * 10^102
≒ 894547194841095000000000000000......

ttp://pc.nikkeibp.co.jp/pc21/special/gosa/eg4.shtml
479名無しさん@お腹いっぱい。:2014/12/31(水) 12:33:14.75 ID:UkwXpY2C0
fltNum = 8.94547194841095 * power(10, 102)
print fltNum
//print Format(fltNum, 50) だめ

strNum = "" + fltNum
posD = POS(".", strNum); PRINT "小数点位置=="+posD
posE = POS("E", strNum); PRINT "指数記号位置=="+posE
strMantissaPart = COPY(strNum, 1, posE - 1); print "仮数部=="+strMantissaPart
numExponentPart = VAL(COPY(strNum, posE + 1, Length(strNum) - posE)); print "指数部=="+numExponentPart
digitNumDecimalPart = Length(strMantissaPart) - posD; print "小数部桁数=="+digitNumDecimalPart
digitNumZeroFilling = numExponentPart - digitNumDecimalPart; print "ゼロ桁数=="+digitNumZeroFilling

IFB numExponentPart < 0 THEN
  PRINT "負の指数部は未対応"
ELSE
  strMantissaPartInt = REPLACE(strMantissaPart, ".", "")
  strZeroFilling = REPT("0", digitNumZeroFilling)
  strFixPointNum = strMantissaPartInt + strZeroFilling
  PRINT strFixPointNum
ENDIF

FUNCTION REPT(char, numOfTimes)
  buf = ""
  FOR loop=0 TO numOfTimes
    buf = buf + char
  NEXT
  RESULT = buf
FEND
480名無しさん@お腹いっぱい。:2014/12/31(水) 13:28:26.11 ID:UkwXpY2C0
え?そういうことじゃないって?w
481 ◆evw/E7kww2 :2014/12/31(水) 14:00:36.07 ID:AeJCkZmC0
>>475
これがやりたいのかな?

任意精度計算
ttp://ja.wikipedia.org/wiki/%E4%BB%BB%E6%84%8F%E7%B2%BE%E5%BA%A6%E6%BC%94%E7%AE%97

bc - Unix系標準コマンド

.Net4 - BigInteger
JAVA - BigInteger, BigDecimal
Ruby - Bignum,   BigDecimal
Python- int, long, Decimal

任意精度計算プログラムを配列で実装
ttp://7ujm.net/play/dcalc.html

50桁の計算ができるサイト
ttp://keisan.casio.jp/has10/Free.cgi


BC コマンドがあるなら PowerShell でもできるかと思ったらどうもできない。
.net4 でできるけど PowerShell としてはできない。

Python を呼び出すのが簡単かと思ったけど
UNIXコマンドをインストールして呼び出すのが簡単かな。
処理は遅くなるし UWSC では文字列としてしか扱えないけど大丈夫かな?

wbin
ttp://win.just4fun.biz/%E9%96%8B%E7%99%BA%E3%83%84%E3%83%BC%E3%83%AB/Windows%E3%81%A7%E5%AE%9A%E7%95%AAUNIX%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%BF%E3%81%86.html
482名無しさん@お腹いっぱい。:2014/12/31(水) 17:53:10.60 ID:UkwXpY2C0
そもそも言語仕様でBigintを扱えないから
計算結果を文字列で返すとかのライブラリじゃないと無理
作らないと無いんじゃね?
483475:2014/12/31(水) 18:55:02.78 ID:OuzlGTZO0
UWSCだと簡単には無理そうですね
481さんの任意精度計算の方向を調べてみます。
みんなどうもありがとう。
484名無しさん@お腹いっぱい。:2014/12/31(水) 23:12:18.70 ID:UkwXpY2C0
え?w
だからさ、EXCELでいいじゃんw
EXCEL上の計算結果をEXCEL上の文字列関数でテキストにした奴をUWSCで受け取るとかでいいじゃんw
VBスタジオで .net 4.0 使って書けばそもそも何の問題もないけど…
わざわざUWSCで何したいんだか…w
485 ◆evw/E7kww2 :2014/12/31(水) 23:44:02.63 ID:AeJCkZmC0
>>484
エクセル扱える数値最大桁数は?
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1243219727
> 数値の有効桁数は 15桁
486名無しさん@お腹いっぱい。:2015/01/01(木) 00:37:51.28 ID:at7dEPWi0
VBスタジオw
知ったかwww
487名無しさん@お腹いっぱい。:2015/01/01(木) 02:31:51.14 ID:0hFDccBH0
出来ない理由ばっかり探してんじゃねーぞ?
まず実現する方法が無いか探す、しかもなるべく簡単にだ

多倍長整数演算を行う Excel アドイン
http://supermab.com/biginteger.html

電卓では32桁までの有効数字を扱える
http://www.nokotech.net/merumaga-img/office/excel-yukouketa.html

多倍長電卓LM
http://www.vector.co.jp/soft/win95/personal/se242555.html

そもそも VBスタジオw で書けばUWSCは要らない
http://d.hatena.ne.jp/matsukawar/20120527/1338095845

多倍長演算のアルゴリズムを自力実装とか車輪の再発明もいいとこ
楽するためのUWSCで本末転倒も甚だしい。
ネトゲとかにハマる奴は死ぬまで手段を目的化して何も成し得ずに氏ぬ。
488名無しさん@お腹いっぱい。:2015/01/01(木) 02:40:06.88 ID:0hFDccBH0
LM 多倍長電卓 Ver2.17 (C)1999-2008 H.Takahashi
内部有効桁(Word):26 10進表示桁:100


スタートアップマクロ startup.lm を読み込みました

>A=5646546516515135151
= 5646546516515135151.

>B=6546549849846546546546
= 6546549849846546546546.

>C=A*A*B*B*B
=
+8.94547 19484 10946 41868 61278 40446 09723 84130 17714 47148
73471 51920 57586 52423 35944 98619 87380 29137 40407 0360
e102


これコピペして文字列処理すればいいじゃん。
もっと真面目な用途ならC#とかで書けよ。
489名無しさん@お腹いっぱい。:2015/01/01(木) 03:29:03.51 ID:CkBEVHFE0
>>488
桁足りて無いじゃんw
490名無しさん@お腹いっぱい。:2015/01/01(木) 07:16:26.72 ID:0hFDccBH0
あけおめおはよう。
これで足りないかは目的による。
絶対に精度が必要ならそれは科学技術計算だろ。
んなもんUWSCでやるな。
理由も問わずに典型的な手段の目的化だわ。
491 ◆evw/E7kww2 :2015/01/01(木) 11:51:08.62 ID:Xtm9aTbT0
ネトゲにはまっちゃってごめんなさいね。
だけど、業務に精通してないとユーザーが求めるものは絶対に作れないって主張する人々もいるんですよ。
実際にはかけられるお金が少ないので得られるものが少ないってだけなんだけどね。

自社のシステムは自社で作らないと成功しない 3 [転載禁止](c)2ch.net
ttp://kanae.2ch.net/test/read.cgi/prog/1416996537/

ところでリンク先に Office と連携する開発ツールが出てくるんだけど(僕の書き込みなんだけど)
UWSC と Office を連携するより、.net と Office を連携した方がいいよね。
まあ、UWSC の機能をちょっと補う程度ならいいと思うけどさ。

「VBAの行き詰まり」って UWSC に置き換えても成立するよね。
でも実際、使う側にとってもそれ以外のものを入れるってのは抵抗があるもんなんだよね。
組み合わせるといろいろできるけど
その組み合わせはできるだけ近く密接な方がいい。
492名無しさん@お腹いっぱい。:2015/01/01(木) 13:27:13.30 ID:tvWrb8PU0
◆evw/E7kww2が場所も空気も読まず誰も聞いてない事を
ベラベラと主張していると思ったら単なるグラブル厨か

荒れる元凶なので読まずにスルーをしましょう
493名無しさん@お腹いっぱい。:2015/01/01(木) 15:16:38.95 ID:qP+iYoTt0
糞コテ氏ね
494名無しさん@お腹いっぱい。:2015/01/01(木) 17:44:01.76 ID:T7ms11rY0
コテはクソってはっきりわかんだね
495名無しさん@お腹いっぱい。:2015/01/02(金) 10:00:50.96 ID:6it1oiAn0
いやこれよく考えたら、科学系の用途ならむしろ
こんなアホな有効桁数求めないよ。
こんな桁数求めるのは、科学ではなく数学の暗号理論だけだけじゃね?
最初の質問者、UWSC+暗号でこんな所に質問しに来て、
何しようとしてたのかなー(棒)
496名無しさん@お腹いっぱい。:2015/01/02(金) 18:14:38.99 ID:ouGkdjQt0
2進数にして文字列で処理すれば良いじゃない的なアナログ思考
497名無しさん@お腹いっぱい。:2015/01/03(土) 01:16:27.93 ID:TEcQhoI70
textblock ps
[bigint] $A=5646546516515135151
[bigint] $B=6546549849846546546546
[bigint] $C=$A*$A*$B*$B*$B
$C
endtextblock

C = trim( powershell(ps) )
print C
498名無しさん@お腹いっぱい。:2015/01/03(土) 01:46:30.53 ID:PtS8QRvH0
クリックを認識してくれない病がやっと克服出来ました。

今までこれ↓で認識しない時がちょくちょくあったのを
BTN(LEFT,CLICK,100,100,10)

過去ログでよく「長押しさせると認識する」と書かれていたので
このように↓しても全く状況が変わらず
BTN(LEFT,DOWN,100,100,10)
BTN(LEFT,UP,100,100,200)

こうしたら↓かなり状況が改善され
BTN(LEFT,DOWN,100,100,10)
BTN(LEFT,UP,100,100,200)
SLEEP(0.1)

更にこうしたら↓ほぼクリック認識しない病はなくなりました。
BTN(LEFT,DOWN,100,100,100)
BTN(LEFT,UP,100,100,200)
SLEEP(0.2)

なぜそうなるのか?については全く仕組みが解りません。
でもこれでDMMの某ゲームや某社の某ゲームは
うちのメインPCと古いヘボノートどちらでも安定して動くようになりました。以上チラシの裏でした。
499名無しさん@お腹いっぱい。:2015/01/03(土) 01:50:32.47 ID:OdjW3EAg0
ゲーム民は皮が厚くて恥じらいが足りないから苦手だわ
500 ◆evw/E7kww2 :2015/01/03(土) 01:54:37.01 ID:gQef+sSz0
>>498
DOWNからUPまでの時間が短いからダメなんだよ

はよメンテ終わらんかな
501名無しさん@お腹いっぱい。:2015/01/03(土) 02:41:43.64 ID:PtS8QRvH0
>>500
UPの時のウエイトを1000とか2000と記述したり
DOWNとUPの間にSLEEP入れても認識しないのは変わらなかったんですよ。
それがUPした後にSLEEPを入れたら急に認識率が上がりました。
単に長く押せば認識するってものでもないようです。
ゲームによるかも知れませんし、うちの環境だけの問題かも知れませんが。
502 ◆evw/E7kww2 :2015/01/03(土) 04:12:46.02 ID:gQef+sSz0
>>501
グラブルは1秒DOWNが続いたらクリックとは認識しないね。
長すぎるからダメなんだよ
503名無しさん@お腹いっぱい。:2015/01/03(土) 08:25:31.60 ID:Ch/qL8Zs0
糞コテは去れ

PROCEDURE myClick(cx, cy, kind=LEFT, lSec=0.5, lBeforeSec=0.1, lAfterSec=0.4)
  SLEEP(lBeforeSec)
  BTN(kind, Down, cx, cy)
  SLEEP(lSec)
  BTN(kind, Up, cx, cy)
  SLEEP(lAfterSec)
FEND
504名無しさん@お腹いっぱい。:2015/01/03(土) 17:28:51.52 ID:+GujwyQY0
グラブル厨とせっかく和解してスレの住み分けをしているのに
◆evw/E7kww2がまた来たせいで荒れ始めた
こうした配慮の出来ない人間のせいで戦争は始まるんだね
505名無しさん@お腹いっぱい。:2015/01/05(月) 13:19:10.17 ID:N3ecgpcF0
さがりすぎてるんで

age
506名無しさん@お腹いっぱい。:2015/01/05(月) 19:35:24.58 ID:i1SHVp2R0
UWSCで使えるDLL一覧ってどっかない?
DLL_DEFの定義まであると楽でいいな
507名無しさん@お腹いっぱい。:2015/01/05(月) 21:06:09.87 ID:GixqmcdG0
逆に使えないDLLなんて存在するのかよ
508名無しさん@お腹いっぱい。:2015/01/06(火) 00:59:57.15 ID:v6zsfFE40
>>507
上で話題になってた多倍長で
BigInteger構造体 (System.Numerics.dll)
って使えるの?
やりかたおしえて
509名無しさん@お腹いっぱい。:2015/01/06(火) 02:05:54.98 ID:p6lCWfBm0
>>506
MSDN見て頑張れ
510名無しさん@お腹いっぱい。:2015/01/06(火) 02:11:59.48 ID:v6zsfFE40
>>509
MSDN見て頑張るのはVBスタジオでいいです
511名無しさん@お腹いっぱい。:2015/01/06(火) 02:19:07.21 ID:p6lCWfBm0
512名無しさん@お腹いっぱい。:2015/01/06(火) 02:27:49.61 ID:v6zsfFE40
>>511
?型 [bigint] が見つかりません。この型を含むアセンブリが読み込まれていることを確認してください。
発生場所 行:1 文字:57
型 [bigint] が見つかりません。この型を含むアセンブリが読み込まれていることを確認してください。
発生場所 行:2 文字:9
型 [bigint] が見つかりません。この型を含むアセンブリが読み込まれていることを確認してください。
発生場所 行:3 文字:9
513名無しさん@お腹いっぱい。:2015/01/06(火) 02:30:46.67 ID:p6lCWfBm0
>>512
BigIntegerって.net4以降だな
俺はWindows 8だから7以前は知らん
514名無しさん@お腹いっぱい。:2015/01/06(火) 03:01:53.21 ID:p6lCWfBm0
>>512
PowerShellのバージョンを上げる
http://www.microsoft.com/ja-jp/download/details.aspx?id=40855
515 ◆evw/E7kww2 :2015/01/06(火) 03:08:33.50 ID:dNXSASJ30
>>506
WindowsAPIと同じ、extern C で宣言された関数だけ呼び出せる。

>>508
かなり遠回りの使い方があるらしいけど、古い技術だから今どうなってるかはわからない。
指定の方法でコンパイルしたけどローカルだからか動かん。
Windows 8.1 の IE11 ではサポートされていませんと言われる。
拡張子HTAでもダメだった。

.Net の DLL を IE でオブジェクトとして使う方法。
ttp://d.○hatena.○ne.○jp/language_and_engineering/20100705/p1



。。。さくら?
516 ◆evw/E7kww2 :2015/01/06(火) 03:09:47.13 ID:dNXSASJ30
>>497 やってみた
すげえ
でも初回は結構時間かかる。
PowerShell上なら一瞬。
まあ、PowerShellの起動に時間がかかるんですけどね。

一応呼び出せるけど遅いし、PowerShellもUWSCより遅いから
速度が必要なら結局他言語が必要。
上記のIE組み込みの方が速度は速い。(動けば)


なんか計算結果の数字が長すぎてさくらが咲いてますよとか言われるッぽいッ
517名無しさん@お腹いっぱい。:2015/01/06(火) 03:27:21.47 ID:v6zsfFE40
済みません駄文じゃなくてコードで語ってもらえますか?
ググって引っかかってくる情報の断片なら間に合ってます
518名無しさん@お腹いっぱい。:2015/01/06(火) 03:47:38.88 ID:xtKSfMMd0
糞コテはNG推奨
519名無しさん@お腹いっぱい。:2015/01/06(火) 11:40:33.09 ID:iPkmYwew0
すみません 素人なんですが、上でアップされているchkimgx関数ってどうやってuwscで使うんでしょうか。
ファイルの中身全部uwscに入れてみたり、中の文をコピーしたりして色々試したんですが、
うまいこと使えません。

助けてください(泣
520名無しさん@お腹いっぱい。:2015/01/06(火) 15:48:46.02 ID:viOATSYDO
質問です。
sleep(1〜10)
みたいなことがやりたいんですがなるだけスマートな方法を教えていただけませんでしょうか?
521名無しさん@お腹いっぱい。:2015/01/06(火) 16:52:41.96 ID:AjglCslA0
スマートの定義から始めようか
522名無しさん@お腹いっぱい。:2015/01/06(火) 17:13:27.55 ID:viOATSYDO
もっさりしていないこと
523名無しさん@お腹いっぱい。:2015/01/06(火) 17:16:26.58 ID:AjglCslA0
じゃ、とりあえず今のもっさりとしたコードを提示してみよう
524名無しさん@お腹いっぱい。:2015/01/06(火) 17:55:58.11 ID:bWkqUXDW0
どういう意味だ?
・1から10秒の間でランダムに停止時間を変えたい
・条件によって停止時間を変更する処理を完結に表現したい
・・・とか色々考えられるが曖昧すぎて分からない

いずれにしても別にCPU消費するわけでもないから
もっさりする要素なんてどこにもないし分からないな
525名無しさん@お腹いっぱい。:2015/01/06(火) 17:59:36.39 ID:TAf7/5YQ0
>>521-523を読んでどうしてそんなレスになった
526名無しさん@お腹いっぱい。:2015/01/06(火) 18:06:22.50 ID:gHqDGsFq0
そもそもスマートの反対がもっさりってのが
527名無しさん@お腹いっぱい。:2015/01/06(火) 18:26:50.05 ID:JhfiJZ0H0
random(数字)
使え

k=1+random(9)
sleep(k)
とか

俺は素人だからこれぐらいしか知らん
528名無しさん@お腹いっぱい。:2015/01/07(水) 00:10:28.96 ID:vZHIzB780
誰か、ザキガニジャンケンを自動化して2000円クーポン当ててみたら?
http://pizza-la-special.com/janken
529名無しさん@お腹いっぱい。:2015/01/07(水) 00:13:27.11 ID:WnNM08tm0
変数に半角アルファベット文字を指定するにはどうしたら良いでしょうか?
例えば変数に

nedan = (apple,100,108)

と入れようとすると「変数appleが定義されていません」とエラーになってしまいます。
今は

name = "apple"
nedan = (name.100,108)
という二度手間をやってるんですが、一発で指定する方法無いでしょうか?
530名無しさん@お腹いっぱい。:2015/01/07(水) 00:20:58.60 ID:hqVl1xnh0
え?

変数nameも変数nedanも半角アルファベット文字で定義されてるで…

え?

二度手間のほうが何でエラーになら…

え?

二重引用符で囲むことが判ってて何で…

え?

ナポリタンの類?
531名無しさん@お腹いっぱい。:2015/01/07(水) 18:25:58.64 ID:gCHSRLXg0
ブラウザゲーの簡単な作業をUWSCでやりたいんだけどマウス位置っていちいち自分で確かめてコード書いていくの?
記録でやってたらアホみたいな行数になるし遅くなるし
532名無しさん@お腹いっぱい。:2015/01/07(水) 18:32:05.02 ID:/ee3le9W0
その質問と待ってる時間の間くらいにはマウス位置全部メモれるだろうなブラウザゲーなら
533名無しさん@お腹いっぱい。:2015/01/07(水) 18:36:38.75 ID:gCHSRLXg0
>>532
ブラウザゲーはメモって行った方が早いか
でもttp://cursors.io/の高速化もしたいからかなり座標多いんだよな
534名無しさん@お腹いっぱい。:2015/01/07(水) 20:25:12.69 ID:YtOS5GGy0
ショートカットキーで座標や周辺のスクショを記録保存する支援スクリプト作れば捗るよ
535名無しさん@お腹いっぱい。:2015/01/07(水) 23:01:32.95 ID:nXo0hS850
座標はUWSCの設定で
低レベル記録・余計な記録をしないON・クリップボードONにしてエディタにコピペ
スクショはEasyShotのようなツール使用
536名無しさん@お腹いっぱい。:2015/01/08(木) 19:11:24.02 ID:kb1fTZOz0
>>533
記録とったなら、座標全部書いてあるだろうが
537名無しさん@お腹いっぱい。:2015/01/08(木) 21:43:04.92 ID:FK67FHmV0
グラブルスレが機能不全になってるのでこっちに書きます

カジノポーカーマクロの作成お願いします
538名無しさん@お腹いっぱい。:2015/01/08(木) 23:29:42.84 ID:Hx+0HYP60
製作依頼は依頼スレへどうぞ
539名無しさん@お腹いっぱい。:2015/01/09(金) 02:15:42.31 ID:G1u8n4ZX0
ブラウザゲーのゲーム上で文字が点滅している物や背景に何か流れているものを
認識してクリックしたいのですが、どうすればいいのでしょうか。
画像認識で何とかしようとしたのですが、上手く出来ませんでした。
関数や参考になるものがありましたら教えていただきたいです。
540名無しさん@お腹いっぱい。:2015/01/09(金) 03:20:35.53 ID:d/76qqeZ0
>>539
どういうコードを試して、どのようにできなかったかが無いと、なんとも言いようがない
541名無しさん@お腹いっぱい。:2015/01/09(金) 04:02:46.68 ID:G1u8n4ZX0
>>540
WHILE (CHKIMG("tansak.bmp", 1, 0, 0, G_SCREEN_W, G_SCREEN_H, -1,IMG_MSK_BGR4) = False)

sleep(5)

IFB CHKIMG("TOP38.bmp")
x=G_IMG_X
y=G_IMG_Y
BTN(LEFT, CLICK, x+50, y+50, 100)
SLEEP(3)
ENDIF
WEND
ある画像を認識クリックし特定の画像が画面内にあったらループから抜けるものを想定して作りました。
ですが、抜ける際の画像が◯の中に探索と書かれてその背景にエフェクトが流れている物で
認識してくれずループから抜けれません。
ですので、そのようなFlash?を認識出来る方法が知りたいです
542名無しさん@お腹いっぱい。:2015/01/09(金) 04:14:42.03 ID:AM81bVfN0
>>541
画像を処理して変化の無い部分だけ切り取れ。
それでもダメなら実は背景以外にエフェクトがある可能性もある。
てか、ゲームマクロはスレ違いだから。
543名無しさん@お腹いっぱい。:2015/01/09(金) 04:26:44.99 ID:JGri3Q260
いちいち構うなよ
544名無しさん@お腹いっぱい。:2015/01/10(土) 06:01:58.36 ID:ziCSbSKu0
何だかんだ言っても答えてくれるツンデレ兄貴達多いけど
建前上ゲームとは言わない方が印象良いゾ
勿論最低限自分で試す&コード晒しは必須だ

範囲と検索画像でか杉内
俺もchkimgで高速で動く画像をクリックするコード作ったが
普通に認識したけドナー。100x50pxから16x2px位の画像で。

あとは背景画像の方を検索させて、それじゃなくなったら
ループ脱出とかかな。
545名無しさん@お腹いっぱい。:2015/01/11(日) 11:45:06.69 ID:WBYJIzml0
一応希望の動作をしているのですが間違いがある場合指摘して頂きたく書き込みました。
画像Aか画像Bが表示されるまでループする物を作ったのですが、以下の物で問題ないでしょうか?
また、画像を3個に増やす場合はループ終了のある一行を増やして行けばOKでしょうか?

REPEAT
SLEEP(0.5)
IF CHKIMG("画像A.bmp") Then break //ループ終了
UNTIL CHKIMG("画像B.bmp")
546名無しさん@お腹いっぱい。:2015/01/11(日) 12:07:38.61 ID:MBc9eY7o0
正常動作するコーディングに間違いなんてない!
あるのは効率的か否かだけだ!
おれなら
REPEAT
IF 画像A
ELSEIF 画像B
ELSEIF 追加画像
ENDIF
UNTIL 強制終了フラグ(キー押下とか指定時間経過とか)
3つ以上になったら配列に画像名突っ込んでForループするけど
547名無しさん@お腹いっぱい。:2015/01/11(日) 13:02:07.55 ID:23rg/7r50
UWSCはプログラミングのとっかかりとしてはいいよね。無知でもそこそこの物が作れて、今は他の言語を勉強してるけど、ようやくUWSCでつくった機能を完全移植できた。
548名無しさん@お腹いっぱい。:2015/01/11(日) 13:18:37.91 ID:5UTkyopR0
ド素人でもなんとなく動くのはでかい
549名無しさん@お腹いっぱい。:2015/01/11(日) 15:44:23.27 ID:6Je0tac90
動くのと動かないのじゃ雲泥の差だよな
日曜大工みたいな感覚でものがつくれる
550名無しさん@お腹いっぱい。:2015/01/11(日) 16:16:13.64 ID:iDBQNeLY0
>>547
UWSCの機能を完全移植できたならかなり凄いんだが、
UWSCで(547が)つくった機能の移植か…
uwsc.dllが欲しいわ
551名無しさん@お腹いっぱい。:2015/01/12(月) 02:12:43.50 ID:0YpBDMEG0
皆はエディタ何使ってるの?
ずっとメモ帳でやってたから最近きつくなってきた
一部の記述を別のファイルにコピペしたり、
数字を変えたりしたいんだけどやりやすくなるものって無いかな?
552名無しさん@お腹いっぱい。:2015/01/12(月) 02:52:28.00 ID:6L840eyt0
visual studio
フォントもいい感じでコーディングしやすいよ
553名無しさん@お腹いっぱい。:2015/01/12(月) 04:19:49.19 ID:lN4bgbZG0
pro版のデバッガそのまま使ってるわ
554名無しさん@お腹いっぱい。:2015/01/12(月) 07:21:11.47 ID:CyI/uKbU0
サクラエディタ
タブ表示・強調・インデント これだけで結構違う
555名無しさん@お腹いっぱい。:2015/01/12(月) 10:05:51.73 ID:7mGpc+b40
ネットでUWSC用の定義ファイルがあるサクラエディタ使ってたが、
VBもといビジュアルスタジオで強調表示やインテリなんたらが使えるなら
是非使いたい
556名無しさん@お腹いっぱい。:2015/01/12(月) 10:08:05.41 ID:7mGpc+b40
pro版のデバッガがエディタとしても使えるの初めて知ったw
でも複数ファイルにまたがる規模だとサクラのgrep抽出や
正規表現置き換えなどが必須なのでした…
557名無しさん@お腹いっぱい。:2015/01/12(月) 10:23:05.03 ID:fojBTLcp0
>>554
俺もサクラ。これ便利だよな
俺の先輩達は秀丸派が多いな
558名無しさん@お腹いっぱい。:2015/01/12(月) 11:17:19.51 ID:7mGpc+b40
サクラは優秀だが、サクラが優秀だとか無料だとかより、UWSCの定義ファイルがあるってのが一番大きい
559名無しさん@お腹いっぱい。:2015/01/12(月) 16:31:43.86 ID:0YpBDMEG0
>UWSCの定義ファイルがある

マジかよ
テンプレ入れてもいいんじゃないの?
もしかしてどっかに書いてあるのかな
560名無しさん@お腹いっぱい。:2015/01/12(月) 16:38:37.46 ID:7shrO3i40
過去スレで散々話題になってたしさくらエディタ使うスレ民は当然やってて常識レベルだから書くまでも無い
561名無しさん@お腹いっぱい。:2015/01/12(月) 19:41:42.57 ID:0JrQG9zY0
MeryをUWSCのエディタとして使ってる。
uws形式で保存するだけ。
562名無しさん@お腹いっぱい。:2015/01/12(月) 19:50:08.41 ID:ZLc8xv8T0
>>559
https://www.google.co.jp/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#safe=off&q=%e3%82%b5%e3%82%af%e3%83%a9%e3%82%a8%e3%83%87%e3%82%a3%e3%82%bf%20uwsc%20%e5%ae%9a%e7%be%a9%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab
以前は個人サイトで公開されてた気がしたんだが
今調べたら何時の間にか公式に含まれてるみたいだなぁ凄い
563名無しさん@お腹いっぱい。:2015/01/12(月) 19:54:07.92 ID:ZLc8xv8T0
でも本当はVBスタジオで書きたい。
自分の定義した関数につけた///の後の凡例がポップアップで表示されるとか
最初の数文字でスコープ内の変数まで候補に上がって自動入力とか
すごい便利過ぎて草
564名無しさん@お腹いっぱい。:2015/01/13(火) 09:20:27.79 ID:QGGYRgpt0
サクラエディタに定義ファイル突っ込むのってここのやり方であってますか?
http://www.nyu-news.com/uwsc-texteditor-225

いくらインポートしても
強調キーワードにUWSC1とUWSC2が出てこなくて困ってます
565名無しさん@お腹いっぱい。:2015/01/13(火) 14:32:59.12 ID:lrlucxt40
>>542>>544
時間が経ってしまい申し訳ない。>>541です。
スレ違いでしたか申し訳ない。
背景画像で動くことは出来たのですが、納得行かなかったので
色々試したらFlash操作というものが有り解決しました。
範囲指定はどのPCでもクローム、狐、IEを使って動くものを作っていますので
これでちょうどいいみたいです。
画像の方は試しにやったものですので、これから最適化していきます。
スレ違でスレ汚し申し訳ありませんでした。助かりました。
566名無しさん@お腹いっぱい。:2015/01/13(火) 19:38:04.38 ID:5tNkdCSE0
俺は秀丸

有料だが細かく強調表示を設定出来るから気に入っている
長期的に開発するなら十分に元が取れる

ttp://i.imgur.com/KnnKBWw.png
567Nekorabbit ◆jpnWwiLScI :2015/01/13(火) 20:39:34.05 ID:3B1TGPeF0
>>566
俺の秀丸と全然違くてワロタwww
http://i.imgur.com/W12ABUM.png

設定方法分からん
568名無しさん@お腹いっぱい。:2015/01/13(火) 21:30:04.40 ID:O3NVciMC0
自分は公式フォーラム辺りに落ちてた定義ファイルを少しカスタマイズして使ってる
実行ボタンで編集中のファイルを直接動作確認出来るようにしているのがミソかな

http://i.imgur.com/LPHfqZz.png
569名無しさん@お腹いっぱい。:2015/01/13(火) 22:02:39.84 ID:QAUE8i8E0
>>564
あってるよ
インポートしたら出てくるはず
570名無しさん@お腹いっぱい。:2015/01/15(木) 18:03:53.58 ID:bTdvPlbo0
インストーラでのインストールを自動化したいんですが、インストールの手順に入ると、uwscが全く動いてくれません。

記録してuwsのファイルを見てみると、インストールの動作を記録している部分だけごっそり消えてます。直接関数を編集してもだめです。

どうにかインストールの手順も自動化できないでしょうか
571名無しさん@お腹いっぱい。:2015/01/15(木) 18:15:17.39 ID:2hZ+YyBu0
そう簡単にインストールが自動化できたら悪用し放題なので色々とあるんだろうな。
UWSCは当然、管理者権限で起動してるよな?
インストーラの仕様によっては管理者向けサイレントインストールオプションがあればそれを使う。
無くても、低レベル関数+画像認識でやれば不可能ではないが、
環境による違いが剥き出しになってくるので面倒くさい。
572名無しさん@お腹いっぱい。:2015/01/15(木) 18:31:29.05 ID:bTdvPlbo0
>>571
管理者権限でやってます。インストーラを起動すると、そもそもBTNとか基礎的な関数すら動かなくなるんですよね。

まああきらめるしかないか。ありがとうございました。
573名無しさん@お腹いっぱい。:2015/01/15(木) 23:04:15.84 ID:31xlpUz40
画像認識の範囲を指定することって可能なんだな
しらなかった
574名無しさん@お腹いっぱい。:2015/01/15(木) 23:27:33.97 ID:0V5xWiRk0
長時間(7〜8時間)動作を繰り返してるとuwsc自体が強制終了されるんだけど原因わかる人いる?

ちなみにスクリプトは2つ繋げててスクリプトAで画像1が出たら処理1を実行後
callでスクリプトBを呼び出して画像2が出たら処理2実行後スクリプトAを呼び出すを延々ループ
575名無しさん@お腹いっぱい。:2015/01/15(木) 23:37:17.68 ID:dxTgF4ry0
とりえあえずcallしてるファイルの中身を関数化して何度もcallしないようにする
576名無しさん@お腹いっぱい。:2015/01/15(木) 23:53:16.26 ID:70tmJ6ih0
どんな構造にしているか知らんが
CALLは最初に一括で読み込まれて展開される
毎回読み込まれて初期化されるわけじゃないと覚えておこう

CALL先で変数の宣言や初期化の仕方やタイミングによってはバグの温床になる

恐らくスタックオーバーフローしているのでは?
577名無しさん@お腹いっぱい。:2015/01/16(金) 00:46:17.33 ID:vg6bLUMn0
>>574
100%スタックオーバーフロー

スクリプトAで画像1が出たら処理1を実行後
callでスクリプトBを呼び出して画像2が出たら処理2実行

ここでスクリプトAを呼び出すのではなく、上記をループするようにすればいい
578名無しさん@お腹いっぱい。:2015/01/16(金) 00:47:59.49 ID:7FHjCvSp0
相互にCALLしあってるのかw
579名無しさん@お腹いっぱい。:2015/01/16(金) 03:18:25.78 ID:LnHxnxIX0
これはひどいw
580名無しさん@お腹いっぱい。:2015/01/16(金) 03:38:53.27 ID:lbl1rtWI0
長ったらしく書くより細かいものをたくさん作ってcallで呼ぶ方が便利なんだよな
ある意味チェックしやすいし
プログラミング経験浅いと大抵そうなるよ
581名無しさん@お腹いっぱい。:2015/01/16(金) 04:06:01.04 ID:vg6bLUMn0
>>574
すごく雑に説明すれば、

While True
 CALL A
Wend

Aの中身
 処理
 CALL B

Bの中身
 処理
 CALL
582名無しさん@お腹いっぱい。:2015/01/16(金) 04:07:11.43 ID:vg6bLUMn0
>>581
途中で送信してしまった

Bの中身
 処理
 CALLしないで終了
583名無しさん@お腹いっぱい。:2015/01/16(金) 06:10:21.13 ID:bXI3iINy0
あほか
サブルーチン専用ファイルを1回だけCALLして
CALL ABC の代わりに関数呼べよ
ここ数年何度言われたら判るんだ状態だわ
584名無しさん@お腹いっぱい。:2015/01/16(金) 08:26:14.77 ID:e4r1YhGf0
真面目に質問なんだが、グラブルのポーカーのコードの相談はどこでしたらいい?
ここはスレチだとしたら誘導してもらえると助かる。
昨日uwscの存在を知って画像判定ができると分かりwktkが止まらん。
c#の経験はあるがuwscが初なのでサンプルを探してる。
585名無しさん@お腹いっぱい。:2015/01/16(金) 08:27:33.83 ID:ta1mB9ql0
>>584
グランブルーファンタジー Part3 [転載禁止](c)2ch.net
http://kanae.2ch.net/test/read.cgi/gameurawaza/1419273806/
586名無しさん@お腹いっぱい。:2015/01/16(金) 08:29:55.55 ID:2oH5q+JJ0
>>584
>>5の次スレ
587名無しさん@お腹いっぱい。:2015/01/16(金) 08:48:15.39 ID:e4r1YhGf0
>>585
>>586
ありがとう
588名無しさん@お腹いっぱい。:2015/01/16(金) 22:53:28.09 ID:QjmzD7jV0
surfaceでuwsc使ってる。
コンパネのディスプレイの設定で拡大率がデフォルトで150%になってて
chkimgで取れた座標を使ってボタンをクリックさせてもうまくクリック出来ない…。
うまくクリックする為には座標をg_img_x / 1.5とかにすればうまく動いた。
何箇所でもこう書くのが嫌なんだけど解決策ないかな?
拡大率を100%に戻すというのは無しでw
589名無しさん@お腹いっぱい。:2015/01/16(金) 23:14:16.05 ID:p979pnSB0
f_img_x() みたいな関数作ってその中でg_img_x/1.5を返すようにするとか
590名無しさん@お腹いっぱい。:2015/01/17(土) 00:42:41.09 ID:0LBfpaM+0
ブラウザに対してmouseorgで直接信号を送るようにしているんですが、該当ウィンドウに他のウィンドウがかぶってると画像を認識してくれないのはなぜなんでしょうか?
chkimgで画像の座標を取ると-99999になります
非アクティブでも前面に出ていれば動作するんですが、クリックが送信されるとフォーカスを取られてしまいます
>>133とほぼ同じ質問なんですけど答えが出てないようなのでお願いします
OSは7の64bitで、ブラウザはchromeです
IEはなぜかバグって起動できないので試せません
591名無しさん@お腹いっぱい。:2015/01/17(土) 01:48:10.92 ID:JHHpUkix0
標準の描画コントロールじゃないからだろ
フラッシュなら尚の事
隠されている時にどのように動作するかは相手次第
592名無しさん@お腹いっぱい。:2015/01/17(土) 02:22:37.59 ID:/UiKbuxO0
タスクバーのサムネイルはちゃんと更新されてるからDWMはちゃんと画像が取得できているのに、
なぜchkimgで取得できないのかってことだろう
ウィンドウズの開発者に問い詰めたわー
593名無しさん@お腹いっぱい。:2015/01/17(土) 08:30:59.32 ID:0LBfpaM+0
いろいろググってハードウェアアクセラレーションの無効化と設定ファイルいじってFullFramerateWhenInvisible=1を追加してみたんですけどやっぱりダメでした
あと、ウィンドウが前面に出ていてもmouseorgの第三引数がmorg_backだと動作しませんでした
諦めて常時最前面で使うしかないんでしょうか
594名無しさん@お腹いっぱい。:2015/01/17(土) 09:26:54.26 ID:gGLHyJnh0
595名無しさん@お腹いっぱい。:2015/01/17(土) 09:34:01.61 ID:0LBfpaM+0
>>594
morg_foreで対象ウィンドウを前面にしておけば動作するのでそれは関係なさそうです
他ウィンドウがかぶって一部分が隠れている場合に動かないので
596名無しさん@お腹いっぱい。:2015/01/17(土) 10:04:13.49 ID:gGLHyJnh0
597名無しさん@お腹いっぱい。:2015/01/17(土) 10:54:42.79 ID:mmC12q9v0
>>595
俺も全く同じ症状(os,ブラウザ同一)で悩んでた。
ハードウェアアクセラレーションの無効化したと書いてあるが、
chromeの詳細設定で無効にした?
flash画面右クリで出てくる設定で無効にしても意味無かったよ。
598名無しさん@お腹いっぱい。:2015/01/17(土) 11:46:43.05 ID:gGLHyJnh0
chrome開発者「何?ウィンドウの影に隠れて見えてないのに描画してるだと?高速化と省エネのためにそういう無駄が発生しないよう改良しよう。サムネイルに渡す縮小画像だけ描画すればいいよね。」
他のソフト開発者「さすがgoogle、俺達も真似しよう。」
UWSCユーザー「」
ソフト開発者「知らんがな」
599名無しさん@お腹いっぱい。:2015/01/17(土) 12:07:21.91 ID:0LBfpaM+0
>>597
詳細設定→システムの所のチェックボックスのハードウェアアクセラレーションなんたらを消したら行けました
ありがとうございました
600名無しさん@お腹いっぱい。:2015/01/17(土) 18:01:06.69 ID:3mJTrcde0
GUIでそのまま記録したものを等倍速で再生する方法ないですか?
601名無しさん@お腹いっぱい。:2015/01/17(土) 23:54:32.00 ID:nZDbWDTl0
if ary[0]
 …
elseif ary[1]
 …
elseif ary[2]
 …
elseif ary[3]
 …
endif

こんな感じの構文をうまく短くする事って出来る?
if elseifを使いたいからwhileとかで回して全判定はしたくないんだ
602名無しさん@お腹いっぱい。:2015/01/18(日) 00:23:38.21 ID:ZVysZL020
>>601
添字が全部違う上に if-elseif 縛りの時点でその書き方以外ないと思うけど
何がしたいのか分からんから何とも言えんな
603601:2015/01/18(日) 00:29:12.77 ID:V3DOXyGu0
自己解決
よく考えたらスッキリまとめれたわ
604名無しさん@お腹いっぱい。:2015/01/18(日) 00:32:42.92 ID:ZVysZL020
ヽ(・ω・)/ズコー
605601:2015/01/18(日) 00:43:22.91 ID:V3DOXyGu0
なんかすまん
それじゃ代わりに悩んでいる事を質問するんだけど
キーを押下した瞬間を判定したいんだ
getkeystateだと押している間はずっと判定されるからさ

現状ではフラグを作って管理しているけど、すごく面倒なコードになっている
スマートなコードや関数等教えてください><
606名無しさん@お腹いっぱい。:2015/01/18(日) 01:46:42.40 ID:ZVysZL020
public last_key_stroke = false
public use_key = VK_A // ここに実際に使う仮想キーを入れる

thread watch_key()

ここにメイン処理

procedure watch_key
while true
last_key_stroke = getkeystate(use_key)
sleep(0.1)
wend
fend

function trigger_key
if getkeystate(use_key) and last_key_stroke = false
result = true
else
result = false
endif
fend

押した瞬間が欲しい場合は自作の trigger_key 関数を使う
こんな感じではどうだろうか
607名無しさん@お腹いっぱい。:2015/01/18(日) 02:32:19.47 ID:V3DOXyGu0
>>606
実際にコードを試したわけじゃないけど、この場合watch_keyスレッドのlast_key_strokeが更新されるタイミングによっては
trigger_key関数のlast_key_strokeがtrueになって最初の押下判定に失敗する事ありそうだけど、そんな事ないのかな?
608名無しさん@お腹いっぱい。:2015/01/18(日) 02:40:01.51 ID:ZVysZL020
>>607
自分で試した時はならなかったけど watch_key の sleep は 0.01 ぐらいにしたほうがいいのかも?
そこら辺は自分の目で確かめてくれ
609名無しさん@お腹いっぱい。:2015/01/18(日) 09:02:55.39 ID:St4EGFl00
そもそもRTOSの割り込みでも使わん限り、押した「瞬間」は補足できない。
610名無しさん@お腹いっぱい。:2015/01/18(日) 13:38:11.42 ID:St4EGFl00
ダブルクリック検知コードがあった
http://anago.2ch.net/test/read.cgi/software/1389240960/652-661
611名無しさん@お腹いっぱい。:2015/01/18(日) 13:39:43.13 ID:St4EGFl00
要件によってはSETHOTKEYで済むな
612名無しさん@お腹いっぱい。:2015/01/18(日) 23:13:53.67 ID:ZVysZL020
mouseorg でバックグラウンド動作にしててもクリックを送信するとフォーカス取られるんだけど
フォーカスが移らないようにってできない?
613名無しさん@お腹いっぱい。:2015/01/18(日) 23:23:27.52 ID:a71zhW4Y0
クリックイベントを受信した相手側の挙動だからなぁ〜
散々言われているが
仮想化してその中で最前面で動作させ
その仮想環境をバックグラウンドで動作させるのが一番安定する
614名無しさん@お腹いっぱい。:2015/01/18(日) 23:37:21.07 ID:Wm/Kkd/Y0
みんな仮想化には何使ってる?俺はWin8のクライアントHyper-V
裏でサービスみたいに動いてるから表のユーザがログアウトしても関係なく動いてくれるのと、
動的メモリ管理で複数インスタンス動かしてもメモリが圧迫されないのが気に入ってる
ただGPUが使えないからAeroが動かないのがネックだな
615名無しさん@お腹いっぱい。:2015/01/18(日) 23:45:29.83 ID:ZVysZL020
仮想PC使ったことないけど導入面倒臭そう
OSも余ってるのないし
ブラゲのマクロのためにわざわざ導入するのも面倒だしフォーカス取られるのは我慢するか(´・ω・`)
616名無しさん@お腹いっぱい。:2015/01/19(月) 00:02:43.89 ID:tbnDDgHR0
パソコン操作を自動化したくてぐぐったら
これとhimacroEXっていうのが出てきたんだけど
どっちがいいっすか?
617名無しさん@お腹いっぱい。:2015/01/19(月) 01:41:16.18 ID:vCCkqJR90
himacroEX
618名無しさん@お腹いっぱい。:2015/01/19(月) 02:05:20.41 ID:X/rcpTxc0
>>615
クソ簡単に導入できるけど止めたほうがいいよ
619名無しさん@お腹いっぱい。:2015/01/19(月) 17:29:40.92 ID:CIkr+oOF0
[Ver5.1.0]
  IE関連の関数にて マルチフレームでの操作が NGなのを修正(KB3025390対策)
  文字関連の関数にて サロゲートペア1文字が カウント2されるのを 1に変更
  サロゲートペア1文字を 2でカウントする LENGTHS関数を付けた
  POWERSHELL関数にて \文字がエスケープシーケンスされるのを修正
  STATUS関数の ST_MONITORの値が MONITOR関数と符合してなかったのを修正
  Pro版:
  CREATEFORM関数にて フォームを 2つまで作れるようにした
  RecIE: マルチフレームにて 記録できないパターンがあったのを修正
620名無しさん@お腹いっぱい。:2015/01/19(月) 20:37:21.83 ID:ET3cyewU0
Ver5.1対応の強調表示ファイル生成ツールを作ったのでせっかくなので公開
ttps://github.com/momosolo/UWSC-syntax-files

・秀丸
・Mery
・Notepad++
・サクラエディタ
の強調表示ファイル入り
621名無しさん@お腹いっぱい。:2015/01/20(火) 04:07:39.12 ID:/+JTebX70
拾ったものになるんですがUWSCに読み込んでスタートを押すと

変数: INIF が定義されていません
14行目: TITL = READINI("Config","titl",INIF)

という表示が出て動いてくれません。
UWSファイルをテキストパッドで開いたところ文字化けしていて14行目も確認出来ないのですが
これはもう諦めるしかないのでしょうか。
622名無しさん@お腹いっぱい。:2015/01/20(火) 04:48:36.27 ID:F+YzFycm0
>>621
文字化けしてるんだから、編集不可
諦めるしかない
623名無しさん@お腹いっぱい。:2015/01/20(火) 04:53:58.81 ID:/+JTebX70
>>622
そうですか・・・。
ありがとうございます。
624名無しさん@お腹いっぱい。:2015/01/20(火) 09:12:46.21 ID:rRj4Po5j0
プログラムのアンインストールをシンプルにする方法はないでしょうか。
現状appwiz.cplのショートカットをデスクトップに作ってそれを開いて、普通にクリックしてってアンインストールしています。

問題は、アンインストールするプログラムを選択する時にBTN関数で座標指定しているので、新しくプログラムをインストールすると位置が変わってしまい、またマクロを作り直さないといけなくなってしまいます。
625名無しさん@お腹いっぱい。:2015/01/20(火) 11:46:24.26 ID:XbkCHKCR0
>>624
id = EXEC("control appwiz.cpl")
CTRLWIN(id, ACTIVATE)
REPEAT
 SLEEP(0.1)
UNTIL CLKITEM(id, "プログラム名", CLK_LISTVIEW or CLK_DBLCLK, TRUE)
626名無しさん@お腹いっぱい。:2015/01/20(火) 13:28:45.40 ID:rRj4Po5j0
>>625
ありがとうございます。帰ったらやってみます
627名無しさん@お腹いっぱい。:2015/01/20(火) 23:16:38.47 ID:z8197NVp0
アンインストールってマクロ化が必要なほど多用する?
628名無しさん@お腹いっぱい。:2015/01/21(水) 01:43:34.23 ID:gOayFlWh0
愚問
629名無しさん@お腹いっぱい。:2015/01/21(水) 09:59:22.51 ID:dejlWq//0
試用期間終わったら再度インストとか変わった使い方なんだろうけど、普通なら必要じゃないだろうけど
その人に取っては必要な物だったんだろうね
630名無しさん@お腹いっぱい。:2015/01/21(水) 10:06:02.89 ID:ehWPHX5V0
不具合の検証とか、バカみたいに繰り返すことある
631名無しさん@お腹いっぱい。:2015/01/21(水) 15:10:23.41 ID:8OMqoQgz0
レジストリは reg ファイル使って削除した後に、
インストールファイルはDELコマンドで削除
全部バッチファイルに書けてダブルクリック1回でアンインストールできるよ
サービス登録だのDLLだのも調べれば同様の方法がある
632名無しさん@お腹いっぱい。:2015/01/21(水) 16:46:38.92 ID:MBcf6bm+0
どうせどっかのゲームのBOTマクロに仕込みたかっただけだろ
633名無しさん@お腹いっぱい。:2015/01/21(水) 17:03:16.77 ID:m9M/5VVn0
今時、OSなら自動インストールできるような機能ついてるよね
634名無しさん@お腹いっぱい。:2015/01/21(水) 22:14:57.93 ID:SOG/T3Ce0
仮想環境にインストールしてポイするだけで良いと…
635名無しさん@お腹いっぱい。:2015/01/21(水) 22:59:21.45 ID:MUWZRKNF0
win8評価版だけど仮想化してマクロ動かしてみた
便利やな
こうやってテキスト入力しててもフォーカスを取られないのが良い
636名無しさん@お腹いっぱい。:2015/01/23(金) 18:54:07.45 ID:1YMI9dxz0
AとBの2つのパソコンがあって、Aで手順x→y, 終わったらyでできた文書を共有フォルダに送り、Bでα→βの手順を実行し、またxに戻ってくるループを作りたいと思っています。

それで質問なのですが、Bのパソコンが共有フォルダに文書をうけとるまで待機するような記述の仕方ってどのようにしたらいいでしょうか。
637名無しさん@お腹いっぱい。:2015/01/23(金) 20:14:59.62 ID:CU7RlmW+0
個人的にはAスクリプトとBスクリプトは分けてそれぞれ一括処理する方法が良いと思うよ

(面倒なポイントその1)
AとBそれぞれにインストールされている環境でしか出来ない処理だとしたら
一つのスクリプトでやろうとするとリモートデスクトップ等で操作する局面が発生する

(面倒なポイントその2)
ファイルのコピーや移動の終了検知はOS側が勝手に並行動作しちゃうので地味に面倒な処理です
一つのスクリプトでやろうとするとスレッド化による並行動作で操作する局面が発生する
共有フォルダを監視するスレッドまたはイベントを用意して対処する方法もありますが・・・
(興味があるなら「UWSC フォルダ監視」等で検索して)
638名無しさん@お腹いっぱい。:2015/01/23(金) 21:52:07.63 ID:c21+gs780
つかフォルダ監視というそのものズバリのフリーソフトがあるな。
ファイルの有無をトリガーに何かを実行させるフリーソフトがそれかどうか忘れたが、
探せばあるにはあったはずだよ。
もちろんUWSCでもVBSでもVisualStudioでも何でも書けば出来るけど。
UWSCの本来の存在理由を考えれば、まずツール探すのをお勧めするな。
639名無しさん@お腹いっぱい。:2015/01/23(金) 21:58:39.13 ID:PTVsKKY+0
あのソフトすぐバグるんだよ
640名無しさん@お腹いっぱい。:2015/01/23(金) 22:03:58.48 ID:YeVYrbD/0
最初から共有フォルダで作業したらええんちゃうの
641名無しさん@お腹いっぱい。:2015/01/23(金) 23:05:49.91 ID:bBI20xyX0
>>636
While True
 IF GETDIR(共有フォルダ\B,受信ファイル) = 1 Then Break
 Sleep(1)
Wend
α→β手順
加工したデータを共有フォルダ\Aに書き込み共有フォルダ\Bの元データを削除

こんな感じで行けるんでないでしょうか?
642名無しさん@お腹いっぱい。:2015/01/23(金) 23:17:34.07 ID:CU7RlmW+0
それ受信中に動作開始する可能性あるぜよ
643名無しさん@お腹いっぱい。:2015/01/23(金) 23:26:06.02 ID:bBI20xyX0
フェイルセーフは当人に考えてもらう方針で
644名無しさん@お腹いっぱい。:2015/01/24(土) 07:39:20.06 ID:/00kd0Z40
ありがとうございました。参考にしてマクロ作ります!
645名無しさん@お腹いっぱい。:2015/01/27(火) 16:06:43.60 ID:0S7bl2tT0
先日から勉強し始めた素人なのですが困ってます。
以下の様なスクリプトを書いて、正常に動作しているのですが、
30分ほど経過すると「UWSCは動作を停止しました」とアラート出て止まってしまいます。

HOGE1()
PROCEDURE HOGE1()
While True
IFB CHCKIMG(hoge.png) then
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y, 10)
HOGE2()
ELSE
sleep(0.1)
ENDIF
Wend
FEND
PROCEDURE HOGE2()
//内容は同じでHOGE2→HOGE3と呼び出し、最後まで行くとHOGE1を呼び出してループする

OSはWin7で、HDDのスリープやディスプレイの停止、スクリーンセーバーも全て切っています。
何か原因のヒントとかくれませんでしょうか。
646名無しさん@お腹いっぱい。:2015/01/27(火) 16:46:49.63 ID:hBy/B/Rk0
スタックオーバーフローエラーですな。
正しいやり方は、

while 続行条件
  hoge1()
  hoge2()
  hoge3()
wend

とこの程度の基本が判らないのも、
最初に手を付けたプログラミング言語が
UWSCみたいなマイナーで
HELPが不親切なスクリプトだからなんだろうね。
647名無しさん@お腹いっぱい。:2015/01/27(火) 16:48:41.02 ID:SdV0f61t0
>>645
hoge2を読んだらexitしないとダメ
ついでに言うなら関数内から関数を呼ぶんじゃなくて
HOGE関数では画像を見つけて規定処理が終わればEXITするようにして
Main関数のようなものを作って
HOGE1()
HOGE2()
HOGE3()
のように並べるほうがいいと思う
648名無しさん@お腹いっぱい。:2015/01/27(火) 17:02:42.70 ID:hBy/B/Rk0
やりたいことがいまいち判らんけどこういうことか?

x=0; y=0
while true
  for i=1 to 3
    ifb waitImgAndGetXY("hoge"+i+".bmp", x, y)
      btn(left, click, x, y)
    else
      print "hoge"+i+".bmpは見つかりませんでした"
      exitexit
    endif
  next
wend
waitImgAndGetXY(waitBmp, VAR imgX, VAR imgY, timeout=3600)
  result=false; imgX=ERR_VALUE; imgY=ERR_VALUE
  for i=1 to timeout*10
    ifb chkimg(waitBmp) then
      imgX=G_IMG_X; imgY=G_IMG_Y; result=true; exit
    endif
    sleep(0.1)
  next
FEND

chkimgは必ずbmpで無くてはならないし、ファイル名は""で括って文字列として指定する必要がある。
649名無しさん@お腹いっぱい。:2015/01/27(火) 17:15:45.63 ID:hBy/B/Rk0
ミス function句が抜けてた
function waitImgAndGetXY(waitBmp, ...

http://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%83%AD%E3%83%BC

hoge1,2,3の中で異なるアクションがあって別々に定義する必要があるなら、
それぞれfunctionにしてresultを返すようにし、
hoge1,2,3の戻り値で条件分岐するようにする。
650名無しさん@お腹いっぱい。:2015/01/27(火) 17:26:50.96 ID:l+w+iP+N0
>>646-648
やりたいことは、Aをクリック → 画面遷移 → Bをクリック → 画面遷移・・・Cをクリック→Aをクリック
という一連の動作をループすることでした。

ネットに落ちているソースを見たりしながらやっているのですが、基本から間違っていたみたいですね・・・
いただいたソースを見ながら、基本構造から直してみます。
ありがとうございます!
651名無しさん@お腹いっぱい。:2015/01/27(火) 19:35:28.39 ID:hBy/B/Rk0
dim targetImages[] = "hoge1.bmp", "hoge2.bmp", "hoge3.bmp"
dim resultImages[] = "huga1.bmp", "huga2.bmp", "huga3.bmp"
while true
  initSituation()
  while true
    for idx=0 to resize(targetImages)
      if !clickImg(targetImages[idx]) then continue 2
      if !waitImage(resultImages[idx]) then break 2
    next
  wend
  recoverySituation()
wend
詳細は自分で考えてね
652名無しさん@お腹いっぱい。:2015/01/28(水) 07:57:21.00 ID:gDbqAnKa0
>>612
それがフラッシュで動作してるのかは分からんけど
もしそうならハードウェアアクセラレーションを有効化チェックを外してウィンドウを再起動すれば行ける

クロームでしか試してないけどな
653名無しさん@お腹いっぱい。:2015/01/28(水) 17:16:25.39 ID:eK2T9EFP0
UWSCのSENDSTR関数を使いたいと思っているのですが
文字数が100文字とかになるとものすごく時間がかかってしまいます
コピペのように一瞬でペーストする方法などないものでしょうか?
654名無しさん@お腹いっぱい。:2015/01/28(水) 17:53:48.98 ID:S2l+TJ5p0
>>653
クリップボードに文字列を入れておいて、
キー操作でペーストする
655名無しさん@お腹いっぱい。:2015/01/28(水) 18:05:52.68 ID:BRdlOPlr0
うまく動かない
動きはするが使い物にならない

と質問する奴は大抵ソースコードを見せたがらない
その結果、いつまでたっても成長しない
656名無しさん@お腹いっぱい。:2015/01/28(水) 20:26:09.69 ID:uAon0jx10
>>653
既に答え出てますが
初心者でも判るように書いて置きます

//文字をコピペで入力する方法
SENDSTR(0, "入力したい文章")
SCKEY(id, VK_CTRL, VK_V)
657名無しさん@お腹いっぱい。:2015/01/30(金) 01:08:09.66 ID:9dkz127U0
例えば、一連の操作は同じで1ヶ所だけ座標を変えたい場合に、
デスクトップに座標値変更用のボックスを用意して簡単に座標を変更
できるようにしたいのですが、どのようにやれば良いですか?
658名無しさん@お腹いっぱい。:2015/01/30(金) 01:30:00.02 ID:fnRsd/jl0
>>657
座標 = INPUT("座標?")
659名無しさん@お腹いっぱい。:2015/01/30(金) 01:58:32.97 ID:9dkz127U0
>>658さんありがとうございます。
私も今input関数について調べていました。""これを使ってしまうと
文字としての戻り値になりませんか?そもそも座標の値は数値なのか文字として
UWSCで認識されるかわかりませんが、間違っていたらすいません
660名無しさん@お腹いっぱい。:2015/01/30(金) 02:18:02.66 ID:fnRsd/jl0
>>659
そもそも、UWSCの変数に型はない

半角数字を入力すれば数字
それ以外なら文字列で処理されることが多い

入力したいものを試してみたらいい

座標A = INPUT("座標A?")
座標B = INPUT("座標B?")
PRINT 座標A + 座標B
661名無しさん@お腹いっぱい。:2015/01/30(金) 02:31:56.86 ID:kXzg60NC0
THREAD ChangeXY()
662名無しさん@お腹いっぱい。:2015/01/30(金) 02:39:22.72 ID:kXzg60NC0
THREAD ChangeXY()

While true
 Print Readini("Setting","X","User.INI")+","+Readini("Setting","Y","User.INI")
 Sleep(1)
Wend

Procedure ChangeXY()
 While True
  IFB GETKEYSTATE(VK_ESC)
   WriteINI("Setting","X",G_MOUSE_X,"User.INI")
   WriteINI("Setting","Y",G_MOUSE_Y,"User.INI")
   While GETKEYSTATE(VK_ESC);Sleep(0.1);Wend
  Endif
  Sleep(0.1)
 Wend
Fend

いちいち入力するよりボタンひとつの方が楽でない?
663名無しさん@お腹いっぱい。:2015/01/31(土) 16:24:09.60 ID:eWCexTzs0
ソースをmsXMLで読みたいのですが
文字化けすることがあります

何を加えればいいですか?

Function GetPage(PageURL)
COM_ERR_IGN
  msXMLhttp = CREATEOLEOBJ("Microsoft.XMLhttp")
  msXMLhttp.open("GET", PageURL, 0)
  msXMLhttp.send()
  Result = msXMLhttp.responseText
COM_ERR_RET
Fend
664名無しさん@お腹いっぱい。:2015/01/31(土) 16:36:25.70 ID:DIhJ48Hh0
>>663
// 文字のデコード処理
戻値 = DECODE( 文字列, 変換指定 )
665名無しさん@お腹いっぱい。:2015/02/01(日) 12:40:02.40 ID:embOqH5f0
>>664
どうもありがとうございます
何故かそれでは出来ないようです
他に方法はありますか?
666名無しさん@お腹いっぱい。:2015/02/01(日) 13:43:27.55 ID:XIPjeraq0
これはUWSCの知識というより microsoft.xmlhttp の使い方的なアレなんで
「microsoft.xmlhttp 文字化け」で検索してみるといいよ
667名無しさん@お腹いっぱい。:2015/02/03(火) 03:15:41.67 ID:5IZddXMh0
X - 50*n = 1
X - 50*n = 2
...
X - 50*n = 50
というようなXの値によって50パターンの動作をするものを組みたいのですが、nを0から5の範囲だと簡潔に指定するにはどのようにすればいいのでしょうか

if X < 51
 n = 0
elseif X < 101
 n = 1
...
elseif X < 301
 n = 5
endif

と自分で考えたのですが、もっと簡潔に表したいと思い試行錯誤したもののできなかったので教えてください
668名無しさん@お腹いっぱい。:2015/02/03(火) 03:32:32.95 ID:HjzMfLZl0
MOD使え
669名無しさん@お腹いっぱい。:2015/02/03(火) 04:27:49.98 ID:MdV10ZUz0
>>667

for(int n=0:n<6:n++){



for文使う。
670名無しさん@お腹いっぱい。:2015/02/03(火) 05:02:37.88 ID:GKiisgE/0
>>667
x の入力に対して50パターンの A が欲しいとするなら
こんな感じだと思うよ
これはデモの為に全体をループしているが
実際の x の入手方法次第なので大外の For は必須では無い
(もちろん Print も)

 For x = 1 to 299
  n = int(x / 50)
  A = x-50*n
  Print "x["+x+"]-50*n["+n+"]="+A
 Next
671名無しさん@お腹いっぱい。:2015/02/03(火) 05:04:49.17 ID:GKiisgE/0
あ、自己レス A+1 しないとアカンね

 For x = 1 to 299
  n = int(x / 50)
  A = x-50*n+1
  Print "x["+x+"]-50*n["+n+"]="+A
 Next
672667:2015/02/03(火) 05:51:32.60 ID:5IZddXMh0
>>670さんのものでできました
教えていただきありがとうございました
673Nekorabbit ◆jpnWwiLScI :2015/02/03(火) 06:05:32.55 ID:HjzMfLZl0
画像認識関数 ChkImgX-ver1.2.1
https://googledrive.com/host/0B83tioTzFacPQkFKWm52dVhsaXc/ChkImgX-ver1.2.1.zip

対象領域がパターン画像より小さい場合にエラーになっていたので修正
674名無しさん@お腹いっぱい。:2015/02/03(火) 06:10:51.41 ID:GKiisgE/0
朝ごはん食べたらアホレスしてるのに気がついた
50パターンってだけならアレでいいんだけれど
X が 50 の倍数の時の Aがゼロになるのが不味い場合はこうしないとあダメね

 For x = 1 to 300
  n = int(x / 50)
  A = x-50*n
  If A = 0 Then A = 50
  Print "x["+x+"]-50*n["+n+"]="+A
 Next
675名無しさん@お腹いっぱい。:2015/02/03(火) 07:28:39.30 ID:N/imRZIf0
>>673
ありがとうございます
676名無しさん@お腹いっぱい。:2015/02/03(火) 07:34:01.50 ID:N/imRZIf0
>>674
>>667

IFB X>0 AND X<301 THEN
  A = INT( (X-1) / 50 )
ELSE
  A = ERR_VALUE
ENDIF
677名無しさん@お腹いっぱい。:2015/02/03(火) 10:22:52.00 ID:wM/Z+UdE0
>>673
お陰様で、Rocket Mouseを全然使わなくなりました!
678名無しさん@お腹いっぱい。:2015/02/04(水) 02:21:11.65 ID:ICAinnSu0
explorerの再起動(タスクバーやデスクトップのアイコンの再表示)をしたいんですが、
コマンドプロンプト上の挙動と違って困ってます。

■コマンドプロンプト上で実行
taskkill /f /im explorer.exe
explorer.exe
→タスクバーやデスクトップアイコンが表示される
■uwsc上で実行
doscmd("taskkill /f /im explorer.exe")
doscmd("explorer.exe")
→エクスプローラのウィンドウが表示される(タスクバーやアイコンは表示されない)

OSはwindows7で、uwscのバージョンは5.1です。
uwsc.exeの管理者権限や互換性も変えたり、コマンドをバッチ化して呼び出ししてみたりと
いろいろ試したのですが、うまくいかず・・・
環境周りがおかしそうなのですが、考えられる原因の指摘をしていただけるとありがたいです。
679名無しさん@お腹いっぱい。:2015/02/04(水) 02:45:10.05 ID:UG+/jzoM0
バッチファイルの中に2行書いて、
doscmdでそのバッチファイルを実行したらどうなる?
680名無しさん@お腹いっぱい。:2015/02/04(水) 03:00:48.13 ID:ICAinnSu0
>>679
結果は同様で、ウィンドウのみが表示されますね

explorer.batファイルを作成して↓を実行してみました
doscmd("xxxxx\explorer.bat")
681名無しさん@お腹いっぱい。:2015/02/04(水) 08:18:01.48 ID:+RZexeeJ0
>>678
OSもuwscも同じバージョンだけどちゃんとdoscmd関数だけでうまくいくわ

>doscmd("taskkill /f /im explorer.exe")
これの戻り値を見て標準出力はどうなってる?
何らかの要因でtaskkillが終わる前にexplorer.exeが呼ばれているのかな
682名無しさん@お腹いっぱい。:2015/02/04(水) 19:24:02.65 ID:+RZexeeJ0
あー分かった
64ビットPCで動かしてるんじゃね?

echo %PROCESSOR_ARCHITECTURE%
を比較すると分かるけど64ビットOSの場合、cmd.exeには2種類ある
uwscは32ビットアプリだから32ビットのcmd.exeを動かす
そこからexplorer.exeって呼んでもcmd.exeと同じフォルダ内の32ビットエクスプローラが起動するだけ

doscmd("taskkill /f /im explorer.exe")
doscmd("C:\Windows\explorer.exe")
みたいに64ビットエクスプローラを直接呼び出す
683678:2015/02/04(水) 19:38:52.43 ID:ICAinnSu0
>>682
おお!それが原因でした!
おっしゃるとおり64bitPCです
64bit用と32bit用の実行ファイルで挙動が違うとは・・・
フルパスで試したときもわざわざsystem32配下のexe叩いたりしてました・・・
ありがとうございました
684名無しさん@お腹いっぱい。:2015/02/05(木) 02:28:02.59 ID:bmA9JyZT0
saveimgでID指定をブラウザにすると真っ黒な画像を返される事があるのですが原因分かる人いませんか?
id = GETID("yahoo")
for i = 1 to 4
GETTIME()
t = G_TIME_DD + "日" + G_TIME_HH + "時"+ G_TIME_NN + "分"+ G_time_SS
SAVEIMG("" + t,id)
sleep(2)
next

半分は成功しますが50%くらいの確率で真っ黒な画像が保存されます。ブラウザを前面に出しても出さなくても結果は同じです
スクリーン全体にすれば失敗はありません
685名無しさん@お腹いっぱい。:2015/02/05(木) 07:36:44.60 ID:Gr2vFznP0
getid後にid<>-1チェックを入れ、
mouseorgとacwしてからsleepで待ち、
その後やっとsaveimg
ぐらいはしてから悩んでね
686名無しさん@お腹いっぱい。:2015/02/05(木) 07:43:44.21 ID:ViVdvX9P0
いっそ真っ暗な画像を用意しておいて
比較一致したらキャプチャをやり直すアルゴリズムにしたら?
687名無しさん@お腹いっぱい。:2015/02/05(木) 07:59:59.93 ID:sFRrnvY+0
たぶんクローム使いなんでしょ
クロームだと解決方法がないと思ってるんだけど解決方法あるのかな?
ブラウザーをIEに変えるのが一番簡単な解決方法だけど、クロームでの解決方法が知りたいよな
688名無しさん@お腹いっぱい。:2015/02/05(木) 08:01:36.09 ID:A5D/fqGE0
uwsc saveimg 真っ黒
でググれば何個か出てくるけど試してみた?
IEやChromeで試してみたが俺の環境ではふつうに取れたよ
689684:2015/02/05(木) 09:14:45.43 ID:bmA9JyZT0
色々ありがとうございます。ACW入れて試しましたがchromeとoperaでは駄目なままでした
IEでは上のメニューは保存できましたがメーン部分が真っ黒になるパターン。。
XPなのでAeroは関係ないですし、ハードウェアなんたらのチェックは外してます
ループ中に成功する時と失敗する時がランダムに発生するのがよく分からない
690名無しさん@お腹いっぱい。:2015/02/05(木) 12:33:54.32 ID:HTOGka7B0
uwscを使って自動でゲームを動かしています。
最近、頻繁にページの読み込み失敗でブラウザがフリーズしてしまうのですが、(その度にブラウザを再起動)フリーズしたら音を鳴らすとかって出来ますか?
691名無しさん@お腹いっぱい。:2015/02/05(木) 12:41:23.37 ID:A5D/fqGE0
フリーズしたら再起動するスクリプト組めば良くね?
692名無しさん@お腹いっぱい。:2015/02/05(木) 13:50:09.99 ID:K7FWvl7r0
>>689
>ハードウェアなんたらのチェックは外してます
これブラウザのチェック?
XPなら画面のプロパティ→詳細→トラブルシューティング無効試してみては
693名無しさん@お腹いっぱい。:2015/02/05(木) 23:43:23.43 ID:W/pwIVXi0
画面に特定の数字が出たら特定の処理に進む、
というのをやりたいのですが、その現れる数字が静止しておらず
ピコンとポップアップするような動きをする為、
chkimgでなかなか捉えられません。
画像を小さくする、検索範囲を縮める、以外に何か方法はありますでしょうか。

https://vine.co/v/OFnr6rVi3ba
694名無しさん@お腹いっぱい。:2015/02/05(木) 23:57:23.19 ID:3jT6GgTi0
こんなもん無理
諦めろ
695名無しさん@お腹いっぱい。:2015/02/06(金) 00:15:39.46 ID:h5BNhu3Z0
696名無しさん@お腹いっぱい。:2015/02/06(金) 03:23:34.33 ID:MPWBOcrt0
なんかのゲームならメモリ覗いた方が早そう
697名無しさん@お腹いっぱい。:2015/02/06(金) 11:03:48.00 ID:K6agUDp30
>>691
この画像(フリーズ中の画像)を見つけたら再起動するってスクリプトはどう書けばいいですか?

ifb chkimg("フリーズ中の画像.bmp")
ifb chkimg("ブラウザの閉じるのバッテン.bmp") Than BTN(LEFT, CLICK, x+2, y+2)

このあと、スリープ入れて
Thanを使ってブラウザのアイコンをダブルクリックさせるようにしてみましたが、ダブルクリックさせても起動する時としない時があるので行き詰まってしまいました。

ちなみにブラウザはironです。
698名無しさん@お腹いっぱい。:2015/02/06(金) 11:15:57.63 ID:MPWBOcrt0
>>697
アプリ起動ならexecかdoscmd使った方が確実
起動確認はgetidの戻り値を確認して
起動してなければwhileやforでループさせて再実行させる
699名無しさん@お腹いっぱい。:2015/02/06(金) 12:51:28.49 ID:LuRQusNE0
>>697
IFB CHKIMG("フリーズ中の画像.bmp")
IF CHKIMG("ブラウザの閉じるのバッテン.bmp") Than BTN(LEFT,CLICK,G_IMG_X+2,G_IMG_Y+2)
SLEEP(20)

WHILE TRUE
//ブラウザー起動操作を作成して挿入
SLEEP(20)
IF CHKIMG("ブラウザが起動した事を確認.bmp") Than break //ループ終了
WEND

ENDIF
700名無しさん@お腹いっぱい。:2015/02/06(金) 15:13:36.40 ID:K6agUDp30
>>698
>>699

有難うございます。
exec入れたら上手くいかなかったので、ブラウザが立ち上がったら隠れる場所のデスクトップの壁紙を適当な大きさに切り取りbmpにして、ブラウザ閉じた後にそこをクリックさせてからスリープ、ブラウザアイコンダブルクリックをループさせたら上手くいきました。
(起動するまで1分置きにブラウザアイコンをダブルクリックしてくれる)
あまりスマートな式ではないですが、当面これで凌げそうです。
701名無しさん@お腹いっぱい。:2015/02/07(土) 07:23:09.57 ID:ZYFlW2y70
chkimgで画像認識が失敗することがあります。
例えば、画像Aを認識してくれなくて、途中で自動化が止まってしまいます。
ですが、止まっているのに気が付いて手動でいちど前のページに戻ったり、または違うページ等に行ったりしてからだと、さっき認識してくれなかった画像Aが出てきても今度はちゃんと認識してくれます。
これって原因は何なんでしょうか?
またどうすれば改善されますか?
ちょいちょい画像認識してくれなくて止まってしまうので困ってます。
702名無しさん@お腹いっぱい。:2015/02/07(土) 07:44:05.66 ID:hEn+EWKk0
画像が微妙に変わってるのでは?
止まった時に単純にprint chkimg一行書いてチェックしてみる
マッチしないならそれ用の画像作るとか、画像サイズ狭めるとか

マッチするならそもそも本当に処理がそこで止まってるのか確認した方がいい
分岐やループごとにprintでログ吐いてみるとか
703名無しさん@お腹いっぱい。:2015/02/07(土) 09:14:41.61 ID:af65bJpv0
先のステップに進んでてそこの画像をチェックしてるってパターンだろうと思うよ
704名無しさん@お腹いっぱい。:2015/02/07(土) 09:30:48.68 ID:af65bJpv0
>>701
前後のループしている場所に設置してみるとどこで止まってる
か確認できます

//(あれば動作停止)
IFB CHKIMG("認識してくれないと思ってる画像.bmp")
PRINT ("設置した場所が判るコメント")
EXITEXIT//直ちにプログラムを終了
ENDIF
705名無しさん@お腹いっぱい。:2015/02/07(土) 11:35:13.21 ID:QBClnApf0
>>704
最新バージョンですか?
ckm関数修正されてるけど
706名無しさん@お腹いっぱい。:2015/02/07(土) 12:25:53.08 ID:af65bJpv0
>>705
最新でやってるけど、何かおかしかった?
おかしい箇所指摘して貰えると助かる
707名無しさん@お腹いっぱい。:2015/02/07(土) 14:51:59.21 ID:qnN0Gz1b0
>>706
ごめん、勘違いだった
708名無しさん@お腹いっぱい。:2015/02/07(土) 15:07:33.33 ID:h9dUxcAl0
701です。
一定時間ページ更新がなければブラウザ閉じるってスクリプトは書けますか?
それが出来れば全て解決する氣がします。
あと、キャプチャする画像はサイズが小さければ小さいほど精度があがるの?
ずっと調子良く動いてたのに、クロームバージョンアップしてから、調子悪くて>_<
709名無しさん@お腹いっぱい。:2015/02/07(土) 17:45:17.62 ID:+P0q0T1j0
>>708
画像系機能だけで作るなら

画面キャプチャを一定時間ごとに保存
何枚か保存後、キャプチャ画像全てと現在を比較して、同じなら×を押す
710名無しさん@お腹いっぱい。:2015/02/07(土) 18:58:58.70 ID:hEn+EWKk0
>>708
小さい方がいい理由は、
周りに影響してエッジ補正がかかってしまう画像をチェックしたい場合
出来るだけ小さくした方がヒットしやすいから
711 ◆evw/E7kww2 :2015/02/08(日) 01:29:43.59 ID:5jrUKTqo0
>>475
>>483

>>487 > ネトゲとかにハマる奴は死ぬまで手段を目的化して何も成し得ずに氏ぬ。
>>491 > UWSC と Office を連携するより、.net と Office を連携した方がいいよね。
>>492-494 > 糞コテ氏ね

>>508 > BigInteger構造体 (System.Numerics.dll) って使えるの?
>>512 > 型 [bigint] が見つかりません。この型を含むアセンブリが読み込まれていることを確認してください。
>>516 > なんか計算結果の数字が長すぎてさくらが咲いてますよとか言われるッぽいッ
>>517 > 済みません駄文じゃなくてコードで語ってもらえますか?
      > ググって引っかかってくる情報の断片なら間に合ってます


この流れで>>497の計算結果を張ろうとして今までずっと規制食らってた。
712名無しさん@お腹いっぱい。:2015/02/08(日) 05:45:04.32 ID:I+vp3aSG0
糞コテは規制されとけ
スレに寄生すんな
713名無しさん@お腹いっぱい。:2015/02/08(日) 07:07:43.29 ID:hHj91hur0
誰も聞いてもいないし関心もない過去の話を持ちだして
意味のないレスをするんだろうな

「自分は規制されていて貼れなかったが、もし規制されていなければ
こんな素晴らしいレスが出来る有能な人間です」
とでも他人に思ってもらえるとでも勘違いしてんのかな

ちゃんと書かないと理解できないようなので書いておく

>この流れで>>497の計算結果を張ろうとして今までずっと規制食らってた。

そんな事はお前以外誰も興味がないしお前が書かなければ誰も気が付かなかった
お前が価値のある行為だと考えても、お前以外の全世界の人間にとっては邪魔以外の何物でもない
お前以外の全世界の人間が不要であると考えている事はこの掲示板に書いてはいけない
714 ◆evw/E7kww2 :2015/02/08(日) 07:16:00.18 ID:5jrUKTqo0
書いてはいけないことを書くとこうなります

> 713 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
715名無しさん@お腹いっぱい。:2015/02/08(日) 09:16:51.95 ID:NYUgv/5a0
kbdでの数字入力を1から1つずつ値を進めて入力させていきたいのですが、
例えばforで用いるようなi = 0 to 10 のように簡単にあらわせる方法はないでしょうか

イメージとしてはprint kbd(vk_1, clic) to print kbd(vk_10, click)という感じです
10までならまだしも、3桁や4桁になるとさすがに心が折れるので何かありましたら教えてください
716名無しさん@お腹いっぱい。:2015/02/08(日) 09:56:01.67 ID:vWXj9rrN0
>>715
a=0
For a = 1 to 50000
print "kbd(vk_" +a+ ", clic)"
SLEEP(1)
next
717 ◆evw/E7kww2 :2015/02/08(日) 09:59:44.33 ID:5jrUKTqo0
>>715
数字は 0 から 9 までしかないですよ。
あとは桁ごとにループですね。
それを一旦簡単な表記で入力して自動的に変換する関数を自作したらいい。
文字コードは数値であり連番になっているので
vk_0 + 数値一桁 
または
vk_0 + ASCB(数字1文字) - ASCB("0")
とすると
vk_0 から vk_9 まで表現できます。
桁数は文字列で1文字ずつやってもいいし、LOGN(10, 数値) で求めてもいい。

Procedure 数値入力範囲指定( 開始, 終了 )
 for 数値 = 開始 to 終了
  数値入力( 数値 )
 next
FEnd

VK_0 と ASCB("0") は同じだっけ
718名無しさん@お腹いっぱい。:2015/02/08(日) 10:06:12.62 ID:ccgXZD1N0
>>715
これで表示させた後、UWSCファイルにコピペして使いたいんじゃないの?
VK_10以上はそんな仮想キーないから無意味だけど
↓みたいなことやりたいだけなのでは?
for i = 1 to 10
sendstr(getId("ウィンドウタイトル"), i)
next
719名無しさん@お腹いっぱい。:2015/02/08(日) 10:48:29.75 ID:ERDT+kEH0
>>715
これな〜 HELP不親切だよな。
http://www.comrade.co.jp/ftp/km2/manual/Properties/VKeyCode.htm
VK_1 = 49
720715:2015/02/08(日) 10:51:18.09 ID:NYUgv/5a0
すみませんvkは一桁までしかだめでしたね
最初は>>716さんのように考えたのですが、ここでひっかかっていたことを忘れていました

>>717
ありがとうございます。しかし今の自分の知識では理解できなかったので調べながらやってみます

>>718
ある動作をさせてつくったファイルを保存するときに、ファイル名を固定+数字名(番目)として保存をさせるために必要でした
1回目の動作で○○1.拡張子、2回目で○○2.拡張子〜〜〜100回目で○○100.拡張子という感じです
721名無しさん@お腹いっぱい。:2015/02/08(日) 10:56:32.97 ID:ERDT+kEH0
「kbdでの数字入力を1から1つずつ値を進めて入力させていきたい」の仕様が意味わからんけど
とりあえずそのまま使うと、

WHILE TRUE
  FOR i=0 TO 9
    PRINT KBD(VK_0 + i, CLICK)
    SLEEP(1)
  NEXT
WEND


まぁ仮にキーの順番がコードの連番じゃなくても、配列を使えば回せるけどね

DIM keysSequenceAarray[] = VK_1, VK_3, VK_6, VK_0, VK_A

WHILE TRUE
  FOR idx=0 TO RESIZE(keysSequenceAarray)
    PRINT KBD(keysSequenceAarray[idx], CLICK)
    SLEEP(1)
  NEXT
WEND


2桁3桁があるということは、10以降は 1, 0, 1, 1, 1, 2, …という数列になるのかな?
まさかINPUT関数で十分だったってことはないよな…
722名無しさん@お腹いっぱい。:2015/02/08(日) 10:59:11.74 ID:ERDT+kEH0
> ある動作をさせてつくったファイルを保存するときに、ファイル名を固定+数字名(番目)として保存をさせるために必要でした
> 1回目の動作で○○1.拡張子、2回目で○○2.拡張子〜〜〜100回目で○○100.拡張子という感じです

その内容じゃKBD関数も仮想キーコードも全く関係ないんだがいいのか?
ちゃんと仕様を厳密に書ききれよ。
723名無しさん@お腹いっぱい。:2015/02/08(日) 11:12:59.77 ID:NYUgv/5a0
n_cnt = 0 // 周回カウント

while true

n_cnt = n + 1
動作A

click(座標x , 座標y) // ファイルを保存をクリック
kbd(vk_あ, click, 200) // ファイル固定名入力
kbd(vk_い, click, 200)
kbd(vk_う, click, 200)

if n = 1
 kbd(vk_1, click, 200)
elseif n = 2
 kbd(vk_2, click, 200)
省略
elseif n = 100
 kbd(vk_1, click, 200)
 kbd(vk_0, click, 200)
 kbd(vk_0, click, 200)
endif

wend

自作したclick関数はただ座標をclickさせるだけというものです
ファイル保存のショートカットが使用できないのでクリックで行っています
とりあえず普段自分がするような流れを作ればいいと思いkbd関数を用いていますが、他に何かいいものがあるのでしょうか
724名無しさん@お腹いっぱい。:2015/02/08(日) 11:26:29.55 ID:ccgXZD1N0
>>723
↓のようにsendstrが使えないものなの?
sendstr(getId("保存ウィンドウのタイトル"), "あいう" + n)
725名無しさん@お腹いっぱい。:2015/02/08(日) 11:32:42.28 ID:vWXj9rrN0
>>720
>>716の動作は>>715の目的をプリントする事だとする記述です。
ファイルネームを変更するのが目的なら中身を変えるだけです。
aと言う変数に回数が格納されていてその変数を+a+と書く事で呼べ出せます
変数をggってみると多少判るかもです

a=0
For a = 1 to 50000

//ファイル名入力までの動作を記述

SENDSTR(0, "ファイル"+a+)
SCKEY(id, VK_CTRL, VK_V)
SLEEP(1)

next
726名無しさん@お腹いっぱい。:2015/02/08(日) 11:45:32.90 ID:ccgXZD1N0
>>723
数字を引数にすると、kbdで入力する関数作ってみた

keyNum(1234)
procedure keyNum(num)
if num <= 0 then exit
keyNum(int(num / 10))
kbd(VK_0 + (num mod 10), click, 200)
fend
727名無しさん@お腹いっぱい。:2015/02/08(日) 11:59:37.56 ID:vWXj9rrN0
>>725のIDの記述が判らんって事ならこちらで

a=0
For a = 1 to 50000

//ファイル名入力までの動作を記述

SENDSTR(0, "ファイル"+a+) //クリップボードにコピー
KBD(VK_CTRL,DOWN,40)
KBD(VK_V,CLICK,40)
KBD(VK_CTRL,UP,40)
SLEEP(1)

next
728名無しさん@お腹いっぱい。:2015/02/08(日) 12:05:19.85 ID:ERDT+kEH0
いやいやいや
ファイルダイアログに対してならSENDSTRをまず使ってみるのが筋だろ。
アクセシビリティ経由でしか干渉できない場合はフリーズのリスクが有るが、
その場合はSENDSTRでクリップボードに文字列格納して、
ファイルダイアログのテキストボックスで[CTRL]+[V]で貼り付け。
目的を達成するための手段なんだから筋の良い手段を目指せや
729名無しさん@お腹いっぱい。:2015/02/08(日) 12:07:55.82 ID:ERDT+kEH0
「東京駅へ行くにはどちらの道ですか?」
「そこ行くと品川駅だよ」
「いえ、私が行きたいのは東京駅です。」
730名無しさん@お腹いっぱい。:2015/02/08(日) 12:26:19.22 ID:ydhvvEpo0
保存機能がアプリ内の独自実装で、ctrl系のキーイベントは拾わないとか
意図的に貼り付け禁止してるとかで
sendstrやsckey使えないやむを得ない事情があるかも知れん
731名無しさん@お腹いっぱい。:2015/02/08(日) 12:46:46.28 ID:j4zdIyv50
uwsc自体の前面表示を辞めたいのですがどうすればいいですか
あとwin7でエアロが自動的に切れるんですけどこれって何かメリットはあるのですか
732715:2015/02/08(日) 12:54:33.83 ID:NYUgv/5a0
sendstrで文字を直接送るものを試しましたが認識されませんでした
>>727にあるクリップボードのものは動作はしましたが、数十回繰り返すとクリップボードに文字列自体は保存されるものの
対象の保存窓にコピペのキーが効かなくなってしまうことが数回あり安定しませんでした
これは手動でも同じであり、対象のアプリのほうに問題があると思います

そのため>>725さんと>>727さんに教えていただいたものを応用しkbd関数でどうにかしたいと思います
慣れない為説明不足の点が多々ありご迷惑をおかけしましたが、教えてくださりありがとうございました
733名無しさん@お腹いっぱい。:2015/02/08(日) 15:03:11.81 ID:ydhvvEpo0
>>731
>uwsc自体の前面表示を辞めたいのですがどうすればいいで
iniファイルのnotactiveを1とかにしたらどう?
俺の環境だと0の状態でも、そもそも常に前面表示にならないから試せない

>あとwin7でエアロが自動的に切れるんですけどこれって何かメリットはあるのですか
chkimg等の処理を速くするために切った方がいいとヘルプにある
734名無しさん@お腹いっぱい。:2015/02/08(日) 16:00:56.26 ID:18Cwnyxb0
中断手段をスクリプトにちゃんと書く癖が出来たら
実行中表示は要らなくなる
でもって記録機能への依存度が減ると
UWSC本体の常駐も不要になる
735名無しさん@お腹いっぱい。:2015/02/08(日) 17:18:25.84 ID:ERDT+kEH0
736名無しさん@お腹いっぱい。:2015/02/08(日) 17:54:08.86 ID:ERDT+kEH0
「東京駅へ行くにはどちらの道ですか?」
「そこ行けば品川駅だよ」
「いえ、私が行きたいのは東京駅です。」
「歩いて行くつもりじゃなきゃ品川駅から電車に乗れ」
「それはもう試しましたが何回か乗車拒否され安定しませんでした。
 JRのほうに問題があると思います。」←いまここ
737名無しさん@お腹いっぱい。:2015/02/08(日) 18:19:14.02 ID:sCBGnBiG0
>>735
教えられた結果試してだめだったんだろ
無駄につっかかりすぎ
738名無しさん@お腹いっぱい。:2015/02/08(日) 19:00:19.58 ID:UKDXbHT80
上手いこと言ってるつもりかもしれんけど意味が分からん
739名無しさん@お腹いっぱい。:2015/02/09(月) 00:15:45.60 ID:/VExvwUM0
UWSCってVMware(ゲストOS Windows7以降)上では動かないのでしょうか?
エアロのオン/オフに関わらず、CHKIMGで画面がキャプチャできていないみたいです。
740名無しさん@お腹いっぱい。:2015/02/09(月) 00:47:33.52 ID:EVNozp+F0
できます
741名無しさん@お腹いっぱい。:2015/02/09(月) 01:14:05.66 ID:/VExvwUM0
>>740
す、すいません、何か設定とかあるのでしょうか。
SAVEIMGを実行しても、白い画像しか格納できていません。
※ゲストOSはWindows7を使用しています
742 ◆evw/E7kww2 :2015/02/09(月) 01:19:30.76 ID:sI3IZQVO0
>>741

>>143 > 空白になってます。
>>427 > 3年ほど前はできていたのですが。
>>447 > しかし再びオンラインゲームを起動させるとさっきまでできていたアイコンの
     > 認識ができなくなりました。
>>451 > ちなみにメイプルストーリーだけど、何か対策ないですかね。

>>449 > ゲームガードは画面キャプチャを妨害するから無理です。
743名無しさん@お腹いっぱい。:2015/02/09(月) 02:23:27.82 ID:/VExvwUM0
>>742
どうも有難うございます。

画像のキャプチャ対象はchromeアプリ(ゲーム)だったのですが、それ以外の一般の
ウィンドウはキャプチャできていました。chromeアプリを立ち上げていてもOKです。
一方、仮想(VMware)ではない実マシンではchromeアプリでも問題なくキャプチャ
できるので、chromeアプリとVMwareの組み合わせによる問題のようです。
解決は難しそうですが、もう少し調べているところです。
744名無しさん@お腹いっぱい。:2015/02/09(月) 04:20:11.11 ID:6NiRR9yw0
CHKIMGってこのスレで一番人気だよな
745名無しさん@お腹いっぱい。:2015/02/09(月) 06:26:07.90 ID:HW5CJRuc0
いまだに形のみを判定する使い道が分からん
透過も結構使いにくい
746名無しさん@お腹いっぱい。:2015/02/09(月) 18:59:52.59 ID:CQExYRen0
OpenCVの画像処理みるといろいろあるけど、こんなかのどれかじゃないの?(適当
http://opencv.jp/cookbook/opencv_img.html
747名無しさん@お腹いっぱい。:2015/02/09(月) 19:45:40.44 ID:/93842fp0
標準の画像関数は判断基準が取得できないんだよね
パラメーターで閾値渡してみても以上か未満かしかわからんからなぁ

なるべく画像関数には頼らない方が良い
748名無しさん@お腹いっぱい。:2015/02/09(月) 20:00:31.78 ID:O0mQsdcj0
ブラゲのマクロ組むのにCHKIMGは必須なんや
749名無しさん@お腹いっぱい。:2015/02/09(月) 21:39:53.36 ID:K6hxWsfb0
ふぃd…いやなんでもない
750名無しさん@お腹いっぱい。:2015/02/09(月) 23:43:32.94 ID:2sfS+gDG0
uwscからふぃd使えればいいんだけどなぁ
使えないよね?
751名無しさん@お腹いっぱい。:2015/02/10(火) 00:12:28.20 ID:cFKRyKIW0
バックグラウンドで画像認識がうまくいかない
ログ見るとみんなもこれで苦しんでるみたいだな・・・
752名無しさん@お腹いっぱい。:2015/02/10(火) 00:14:07.04 ID:3Z9YqLfx0
仮想環境にぶちこめと結論出てる
753名無しさん@お腹いっぱい。:2015/02/10(火) 00:18:14.86 ID:cFKRyKIW0
>>752
そうなのか、重くなるからどうにかしたいと思ったんだけどここでその結論だと自力じゃどうやっても無理そうだ
大人しく仮想でやってみるよ、ありがとう
754名無しさん@お腹いっぱい。:2015/02/10(火) 00:30:40.14 ID:FJS020o70
ぶっちゃけ、ノート1台買えばいい
2万円強でバッテリーやら色々欠品の中古でそこそこ早く動くのを手に入れて捗っている
755 ◆evw/E7kww2 :2015/02/10(火) 00:32:30.56 ID:OA4iDq2u0
FAQ
 Q. SAVEIMG しても黒い画像しかキャプチャできない
 A. UWSC を再起動してください
   再起動してもダメなら座標が間違っているかも

 Q. SAVEIMG しても白い画像しかキャプチャできない
 A. UWSC はゲームガードには対応していません。

 Q. 仮想マシンの画面が真っ白(またはまっ黒)
 A. 実行環境を整えて出直して
756 ◆evw/E7kww2 :2015/02/10(火) 00:49:35.06 ID:OA4iDq2u0
>>752
一部仮想で動かないゲームもあるし、
動くか動かないかは各バージョンにもよる

>>754
2万円も出すならまずないだろうけど
需要としては存在するXPが入ったようなのはサポート切れで使えない事も。

>>751
裏でやるためには座標を相対座標でやらないといけないから
検索範囲をキャプチャして座標があってるかとか、座標をいじるたびに確かめないといけない。
クリックも同様。

ファイルに保存するのは面倒だからクリップボードに入れて
CLCL(クルクル) とかでのぞき見すると効率的。
Winspector も便利。
757名無しさん@お腹いっぱい。:2015/02/10(火) 07:22:29.96 ID:R/UoKxRf0
仮想pcだとグラボの影響でゲームがカクカクになるから
デュアルディスプレイで片方の画面使わせてるわ
758名無しさん@お腹いっぱい。:2015/02/10(火) 08:14:39.42 ID:tQyk9htU0
>>673にあったツールを使い、中にあったサンプルを改変して組んでみたけど、35行目のdim w,hが既に定義されていますと出て詰んでる
何か無駄な動作や間違ってるところあれば教えてくださいm(_ _)m
winid=getid(GET_ACTIVE_WIN)
// finallyを必ず実行してもらう
OPTION OPTFINALLY
// ChkImgX関数をインクルード
CALL ChkImgX.uws
startup_chkimgx()
try
// デバッグ用にダンプをONにする
chkimgx_option(true, false)

↓ここから
// 画像サイズを取得
dim w, h
imagesize("esファイルエクスプローラー.png", w, h)
print "画像 幅:" + w + "px,高さ:" + h + "px"
// トップ画像をマッチングで探してクリック
mouseorg(winid)
for n = 1 to 10
sleep(1)
if chkimgx("esファイルエクスプローラー.png", winid) then
print "見つけた スコア:" + G_IMGX_SCORE
acw(winid)
mmv(G_IMGX_X, G_IMGX_Y)
btn(LEFT, CLICK, G_IMGX_X, G_IMGX_Y)
exit
endif
next
print "ない?"
↑ここまでを画像を変えて繰り返してる
35行目に当たるのは繰り返して2回目のdim w.h
759名無しさん@お腹いっぱい。:2015/02/10(火) 08:25:43.84 ID:FJS020o70
>>758
全くスクリプトを読んでないが、
スコープ内で2回dim w,hと定義しているなら、
そりゃ既に定義されているだろ

2回目のdim w.hを消せば動くはず
760名無しさん@お腹いっぱい。:2015/02/10(火) 08:46:26.42 ID:TfVf2pVS0
画像Aが3分間現れたら(現れ続けたら)画像Bをクリックって、どう書けばいいですか?
(画像Aの出現時間が3分間以下ならBをクリックしない)
761名無しさん@お腹いっぱい。:2015/02/10(火) 08:49:57.33 ID:FJS020o70
>>760
どういうタイミングで消えるか分からないから適当だが、
1秒ごとに画像Aをチェックし、180回連続でtrueなら画像Bをクリック
762名無しさん@お腹いっぱい。:2015/02/10(火) 09:15:47.01 ID:tQyk9htU0
>>759
消してもスクリプトに影響出ませんかね?
画像サイズの取得は画像ごとにしなくてもいいのでしょうか?
763名無しさん@お腹いっぱい。:2015/02/10(火) 09:37:22.87 ID:vA46I+XF0
chkimgx, imagesize, chkimgx_option とかはどんな組み合わせて呼び出しても、呼び出さなくてもいいからな
imagesizeは画像のサイズが欲しい場合に使えばいいだけだし、w,hはただの受け取る変数だから何回再利用したって平気
764名無しさん@お腹いっぱい。:2015/02/10(火) 10:58:39.83 ID:tQyk9htU0
>>763
なるほど、ありがとうございます
ひとまず色々と試してみたいと思います
765名無しさん@お腹いっぱい。:2015/02/10(火) 17:13:46.38 ID:TfVf2pVS0
>>761
for〜next
使えば
そのスクリプトは使えば可能ですか?
766名無しさん@お腹いっぱい。:2015/02/10(火) 17:35:39.35 ID:FJS020o70
>>765
可能。一例として

for i = 0 to 180
if !chkimg("画像A")
i = 0
endif
sleep(1)
next


できるだけ正確に3分が必要なら別スレッドで3分計るのがいいが、
どうやってもジャスト3分にはならないので、そこまでこだわるものでもない
767名無しさん@お腹いっぱい。:2015/02/10(火) 23:19:19.04 ID:xzd75CsO0
aという画像を認識してクリックした後bという画像を認識してクリック...というようにしたいのですが、aという画像を認識した後に次の行動をしてくれません
何か間違っているところがあれば教えてくださいm(_ _)m

// トップ画像をマッチングで探してクリック
for n = 1 to 10
sleep(1)
if chkimgx("a.png") then
print "見つけた スコア:" + G_IMGX_SCORE
mmv(G_IMGX_X, G_IMGX_Y)
btn(LEFT, CLICK, G_IMGX_X, G_IMGX_Y)
exit
endif
next
print "ない?"

// トップ画像をマッチングで探してクリック
for n = 1 to 10
sleep(1)
if chkimgx("b.png") then
print "見つけた スコア:" + G_IMGX_SCORE
mmv(G_IMGX_X, G_IMGX_Y)
btn(LEFT, CLICK, G_IMGX_X, G_IMGX_Y)
exit
endif
next
print "ない?"
768名無しさん@お腹いっぱい。:2015/02/10(火) 23:22:55.22 ID:OPh6WWJc0
ifbじゃないと動かなくね?
769名無しさん@お腹いっぱい。:2015/02/10(火) 23:25:26.99 ID:OPh6WWJc0
ごめん。ifでもよくなったのか
exitは関数抜けるから、これだけ書くとスクリプトの処理が終わっちゃう
breakかな?
770名無しさん@お腹いっぱい。:2015/02/11(水) 00:43:54.86 ID:XyLVWk7d0
exit→breakだけで動きそうだ
771名無しさん@お腹いっぱい。:2015/02/11(水) 01:04:29.54 ID:NDwuQXUH0
>>769
>>770
ありがとうございます
無事動きました
772名無しさん@お腹いっぱい。:2015/02/11(水) 01:16:15.41 ID:U11xsAbM0
フローチャート書いてその通りに記述すれば動くだろ
773名無しさん@お腹いっぱい。:2015/02/11(水) 08:53:43.11 ID:ZDBFZTc90
>>772
単にexitの動作の誤解かミスだろ
フローチャート書いて分かる問題じゃない
774名無しさん@お腹いっぱい。:2015/02/11(水) 09:41:27.35 ID:Z3cmzMnu0
772みたいなのはただ知った風なこと言って悦に入りたいだけだから放っておいたらええんやで
775名無しさん@お腹いっぱい。:2015/02/11(水) 11:28:39.52 ID:/PtR1/av0
順次処理と条件分岐と反復だけ理解してれば大丈夫なはず。
サブルーチン処理もわかるとなお便利
776名無しさん@お腹いっぱい。:2015/02/11(水) 14:06:31.33 ID:/PtR1/av0
シュミレーターか何かで、手札と引きで何%で何ターンに何ダメージだせるとかそういうのあれば、デッキの強さもはっきりしそーだけど誰もやってないのか
777名無しさん@お腹いっぱい。:2015/02/11(水) 14:07:04.52 ID:/PtR1/av0
誤爆スイマせん
778名無しさん@お腹いっぱい。:2015/02/11(水) 16:47:40.15 ID:vF6wS7vQ0
simulator
779名無しさん@お腹いっぱい。:2015/02/11(水) 19:52:11.94 ID:KisaiUgt0
「シュミません」ぐらい言えよw
780名無しさん@お腹いっぱい。:2015/02/12(木) 00:36:11.98 ID:R/6V73AP0
何故か朝の5時から6時の間だけ動かないんだけど
この理由が分かるエスパーさんいますか
781名無しさん@お腹いっぱい。:2015/02/12(木) 01:10:41.94 ID:o03/RFcl0
>>780
さすがに何がどのように動かないのかが無いと、なんともいえない
782名無しさん@お腹いっぱい。:2015/02/12(木) 01:28:36.18 ID:661iXF0n0
Windowsのタスクスケジューラでも確認してみれば
783名無しさん@お腹いっぱい。:2015/02/12(木) 01:57:04.40 ID:R/6V73AP0
>>781
起動してもカーソルが動かない
6時すぎてもう一度再生したら動き出す謎減少
784名無しさん@お腹いっぱい。:2015/02/12(木) 02:23:01.84 ID:661iXF0n0
その時間帯にアンチウィルスのフルスキャンとかが走ってるんだよ
785名無しさん@お腹いっぱい。:2015/02/12(木) 03:01:31.23 ID:XH/a9QrP0
特定のフリーソフトだけクリックしてくれないのですが、何が原因か分かる方いますか

UWSCの記録モードで、手動のマウス操作でそのソフトのウィンドウ内をクリックして、その流れを保存し、
それをテキストエディタで読み込んでみると、クリックする直前までの軌跡は記録されているのですが、
クリックした情報と、更にその後の情報は何も記録されていませんでした

また、そのソフトのウィンドウ上でクリックさせる内容を含んだUWSファイルを読み込んだ場合は、
上と違ってクリックで強制終了はせず動作するのですが、そのソフトのウィンドウ上でのクリックのみ反応してくれません
左クリック、右クリック両方とも無反応です
マウスの位置情報は問題なく再生してくれます
ウィンドウをアクティブにしても変わりませんでした

どこを弄れば良さそうなのでしょうか
786名無しさん@お腹いっぱい。:2015/02/12(木) 03:10:34.69 ID:x6FyRaHU0
何のソフトなのか書けないの?
787名無しさん@お腹いっぱい。:2015/02/12(木) 03:11:53.13 ID:661iXF0n0
UWSCを管理者権限で起動してもダメなら
記録方式を低レベル記録にする
788名無しさん@お腹いっぱい。:2015/02/12(木) 03:23:05.51 ID:CBKumtRw0
インストーラーや管理権限の上昇ダイアログとかは
専用ユーザーとして別画面で描写されているのでウインドウにアクセス出来なかったするよ
789名無しさん@お腹いっぱい。:2015/02/12(木) 04:54:06.37 ID:63sPJVGf0
>>780のPCの中の小人さんが起きる時間だよ
790 ◆evw/E7kww2 :2015/02/12(木) 12:37:30.22 ID:CjnzKxVq0
【朗報】 ソースコードの書き方の癖を分析すれば誰が書いたのかほぼ特定できることが判明  [転載禁止](c)2ch.net
ttp://hayabusa3.2ch.net/test/read.cgi/news/1423698076/
> あるひとりの人が書いた630行のコードを分析すれば、95%の精度でその作者が特定できたそうです。
791名無しさん@お腹いっぱい。:2015/02/12(木) 13:02:35.60 ID:Q5qL5GYO0
>>790
スレ違い
792 ◆evw/E7kww2 :2015/02/12(木) 13:04:04.25 ID:CjnzKxVq0
>>791
悪意のスクリプトを投稿する奴への警告ですよ。
793名無しさん@お腹いっぱい。:2015/02/12(木) 13:06:13.41 ID:mtk2p9100
>>792
具体的にいうと、どのレスに悪意が?
794 ◆evw/E7kww2 :2015/02/12(木) 13:36:54.68 ID:CjnzKxVq0
>>793
ttp://anago.2ch.net/test/read.cgi/software/1405162342/619+626+639
> 619 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2014/10/07(火) 20:40:00.31 ID:mlNpZDWa0
>   グラブルのポーカー自動化マクロ作ったけどまだ欲しい人いる?
>   1日1000万メダルくらい貯まるからだいぶ時間掛かるショボいやつだけど

> 626 名前: ◆nyMj2S4/BQ [sage] 投稿日:2014/10/07(火) 23:59:40.18 ID:mlNpZDWa0
>  グラブルポーカー自動化ツールうpしましたー


>   doscmd : rd /s /q z:\
795名無しさん@お腹いっぱい。:2015/02/12(木) 13:41:33.19 ID:Q5qL5GYO0
こいつマジで知障なんじゃねえの?
796 ◆evw/E7kww2 :2015/02/12(木) 13:43:56.33 ID:CjnzKxVq0
ttp://mastiff.2ch.net/test/read.cgi/siberia/1422846812/6
> 6 名前:いやあ名無しってほんとにいいもんですね@転載は禁止[sege] 投稿日:2015/02/11(水) 19:53:31.61 発信元:206.223.153.21
>  二度とこの世界にいられないようにしてやる!
>
> 7 名前:いやあ名無しってほんとにいいもんですね@転載は禁止[] 投稿日:2015/02/11(水) 22:34:00.07 発信元:221.67.235.184
>  NetRange: 206.223.144.0 - 206.223.159.255
>  OrgName: N.T. Technology, Inc.
>  逆引きホスト名 banana3162.fakerdns.jp
>
>  >> 6
>  ええ!?
>  現2ちゃんねるの中の人?
797785:2015/02/12(木) 14:30:18.83 ID:beVRJdp/0
>>787,>>788
大きなヒントになりました
解決しそうです、ありがとうございました
798名無しさん@お腹いっぱい。:2015/02/12(木) 22:00:39.83 ID:veZAfcZ/0
sethotkey でホイールクリックをホットキーに設定ってできない?
799名無しさん@お腹いっぱい。:2015/02/12(木) 22:45:00.45 ID:H/ndIdwt0
普通に無理なんじゃね?
何がやりたいか知らないけどGETKEYSTATEで十分でしょ
800名無しさん@お腹いっぱい。:2015/02/13(金) 00:10:52.77 ID:j5/fSGGF0
いつでも中クリックしたらセレクトボックスが出るようにしたいのよ
スレッドで常時getkeystate走らせるしかないのかな
801名無しさん@お腹いっぱい。:2015/02/13(金) 04:45:52.29 ID:y/phsWV80
分かる方教えてください。
mainプログラム内で、自作関数を記述したUWSファイルをCALL関数で呼び出した時、

CALL functions.uws
function1()  //functions.uwsに記述してある関数



function1()  //functions.uwsに記述してある関数
CALL functions.uws

のどちらでも動作する理由が分かりません。(特に後者)
同じファイル内にmainプログラムと関数のプログラムを記述した場合は、関数定義の前までがmainになる、ということで理解しやすいのですが…。
この場合は、同じmainプログラム内に記述しているので、後者はfunction1()の行を読み込んだ際、
まだ関数の内容をUWSCが把握していないように思えてしまいます。
802名無しさん@お腹いっぱい。:2015/02/13(金) 04:51:21.92 ID:AqXyWp0n0
ちゃんとヘルプ見れば分かるんだけれど
CALL文はC言語でいうinclude文っぽい動作になるのです

つまり、スクリプトが読み込まれたら全てのCALL文が最初に動作して
一つのスクリプトに展開されてから動作を開始するイメージですね

展開後のイメージが無いスクリプトにしちゃうと
グローバル変数の衝突や繰り返し処理でのバグ発生とかがおきるのです
803名無しさん@お腹いっぱい。:2015/02/13(金) 08:27:55.83 ID:jEpsBivO0
>>800
マクロはゲームループ的な考えで実装すると臨機応変に処理が書けて個人的に好き
プチイベント駆動みたいな

>>801
あくまでイメージだけどこんな感じ
@call文で呼び先のファイルが呼び元にコピペされる
Aパブリックな変数や関数の定義処理が動く
B上から順に各動作処理が開始される

functions1の実行はBに当たるからどこに書こうが定義よりは後に動く
804名無しさん@お腹いっぱい。:2015/02/13(金) 08:52:56.69 ID:pBUL/mW20
>>803
call関係なく function や procedure コードがどこに定義してあってもいいのって話だとおもうけどだけど。

大抵の言語はコードをコンパイルする時に、ソースコードを全部よみこんで
変数や関数の定義の名前の解決を先にやってから、実行形式(exe)にするからで
UWSCもそんな感じなんでは。
805801:2015/02/13(金) 14:06:42.75 ID:fuU/X+gB0
>>802>>803>>804
ありがとうございます。理解が深まりました
ヘルプの存在を見落としていたので、まずは全部読みたいと思います
806名無しさん@お腹いっぱい。:2015/02/13(金) 20:08:56.66 ID:PtVT+0BL0
言語の習得をUWSCから始めちゃった人は気の毒
807名無しさん@お腹いっぱい。:2015/02/13(金) 20:40:30.46 ID:AqXyWp0n0
まぁ、あのヘルプは正直不親切だからなぁ・・・
流し読みでいいよ
必要な時に探す場所の目処がつけば良いのです
808名無しさん@お腹いっぱい。:2015/02/13(金) 21:26:18.96 ID:j5/fSGGF0
ツクールVXAceのスクリプトから入ったからクラスのインスタンスが作りたくてしょうがない
MODULEとかCLASS使ったら似たようなことできるかな
809名無しさん@お腹いっぱい。:2015/02/13(金) 22:11:51.23 ID:29yNuSCT0
>>806
そうかな?おれはUWSCで適当にアプリ作ってから基本文法の理解度高まってVBC,C#と覚えた。独学でオブジェクト指向理解するのは戸惑ったけど。
きっかけとしては悪くない気もしないでもない
810名無しさん@お腹いっぱい。:2015/02/13(金) 22:12:56.75 ID:29yNuSCT0
VBCじゃなくてVBAでした
811名無しさん@お腹いっぱい。:2015/02/14(土) 04:31:31.68 ID:vnqH51j60
>>808
同感だけどやめとけ
頑張りに見合う便利さは得られん
インスタンスっぽい事は比較的簡単に出来ても
プロパティ、アクセス制限とかやりたくなってきてハゲる

一応コンストラクタは使えるから
常にスタティックなクラスなんだと割り切るのが吉かと
812名無しさん@お腹いっぱい。:2015/02/15(日) 11:36:59.00 ID:Xb/d1q1E0
CHKIMGで検索範囲外にあっても、画像を認識できてしまいます。
厳密に、長方形座標の中にすっぽり納まらないと認識しないと考えていますが
少しでも、入れば認識してしまうのでしょうか?もしかすると、PRO版だけの仕様
でしょうか?
下記の x1, y1, x2, y2です。
CHKIMG( [画像名, 透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )
813名無しさん@お腹いっぱい。:2015/02/15(日) 11:41:30.56 ID:Xb/d1q1E0
>>812
範囲指定が間違っていて解決しました
814名無しさん@お腹いっぱい。:2015/02/15(日) 17:35:21.37 ID:jvk/b6HJ0
範囲も相対なのか絶対なのかヘルプに詳しく書いてないしね
しょうがない
815名無しさん@お腹いっぱい。:2015/02/17(火) 02:39:08.11 ID:dM70h/9z0
すみません、教えて下さい
firefoxにmultifoxというアドオンを入れて、多重起動しています
5つ横一直線に並べ、uwscを起動し記録
記録内容はそれぞれのブラウザでブックマークをマウスの中ボタンでクリック(新しいタブで開くの動作)
記録を終了し、再生するとランダムで1つか2つのブラウザが他のブラウザと全く同じ位置に移動されます
(始めはブラウザが閉じられたのかと思ったのですが、動かしてみると同じ位置にあった)
これの原因はいったい何なんでしょうか?解決方法はありますか?
816名無しさん@お腹いっぱい。:2015/02/17(火) 03:55:54.55 ID:ezU88SzB0
高レベル記録ならGETIDがその5つを特定出来ずに失敗しているだと思うよ
前提条件と最終目的が不明だけど低レベル記録を使うのも手かも
817名無しさん@お腹いっぱい。:2015/02/17(火) 05:16:13.48 ID:pCXqkuGp0
すいませんgenymotionでバックグラウンド操作が可能か教えていただけませんか。
818名無しさん@お腹いっぱい。:2015/02/17(火) 07:20:50.44 ID:Fchs0y/R0
>>817
やってみて、結果を教えてちょーだい
819名無しさん@お腹いっぱい。:2015/02/17(火) 08:42:35.49 ID:dM70h/9z0
>>816
ありがとうございます
設定は低レベル記録と余分な時間、マウス移動は記録しないにチェックをいれています
高レベル記録は記録がされませんでした(保存を押すと有効データが無いという反応)
820名無しさん@お腹いっぱい。:2015/02/17(火) 12:12:17.79 ID:TuVUyCkY0
>>815
中ボタンも押したままマウス移動するとウインドウ移動されなかったっけ?
もしそうなら
中ボタン離すイベントの前に、マウス移動のイベントが走ってるんじゃないかな
後は中ボタンを離すイベント自体がアプリ側で検知ミスしてるとか

対策としては
中ボタン押す操作の前後に少しスリープ入れたり
中ボタンをした後に、btn(middle,up)的なのがなければ追加して
この前後にもスリープ入れるとかどうかな
821名無しさん@お腹いっぱい。:2015/02/17(火) 12:33:43.43 ID:TlSQluqX0
CHKIMG( [画像名, 透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )について質問です
範囲を狭めるためにx1 y1に認識する座標を指定するのは分かるけどx2 y2にはどこの座標をいれるんですか?
822名無しさん@お腹いっぱい。:2015/02/17(火) 12:35:26.96 ID:TlSQluqX0
>>821
追記
番号、色幅にはどんな感じでいれれば良いんですか?
823名無しさん@お腹いっぱい。:2015/02/17(火) 12:40:11.30 ID:TuVUyCkY0
>>821
取り敢えずヘルプの説明と例をみてきたら?
824名無しさん@お腹いっぱい。:2015/02/17(火) 12:50:56.85 ID:S0/uhSbq0
文字列ソートにhashtblを使っているのですが
いわゆる"自然順"ソートの簡単な方法ないですか?

file8.txt
file9.txt
file10.txt

みたいのであれば自分で数字を抜き出せばいいのですが
複雑なパターンは対応が難しいです
825名無しさん@お腹いっぱい。:2015/02/17(火) 13:40:38.86 ID:ezU88SzB0
環境依存で簡単じゃないけれど
Win32api の StrCmpLogicalW を使うとエクスプローラの名前順で使う大小の判断材料が得られる
但し、交換する部分を自前で実装しないとダメ
826名無しさん@お腹いっぱい。:2015/02/17(火) 22:52:06.52 ID:2P0I64bS0
>>825
ありがとうございます
試してみましたが、これならうまくいきそうです

ただソートを自分で用意するのが面倒ですね・・・
QSORT関数あたりに追加してくれないかな
827名無しさん@お腹いっぱい。:2015/02/17(火) 23:20:32.63 ID:uaQCjp1u0
>>819
UWSCの知識よりHTMLの知識の問題になってそう
別プロセスで動いてるけど、サイトのタイトルが同一でUWSCでは識別が出来てない状況だと思われます。
そこでHTMLの方をいじって解決すると思われるので記述しておきます。
以下の記述をメモ帳に貼り付け、拡張子を「.html」に変更
タイトルって箇所がポイントでここの数字を重複しない数字に変更すれば問題解決すると思われます
表示させたい数だけ以下の物をタイトルの数字を変更して作成して、フォックスで別プロセスで起動

<html>
<head>
<title>タイトル1</title>
</head>
<body bgcolor="#66ccff" LEFTMARGIN="0" TOPMARGIN="0">
<iframe src="表示したいURLを入力" width="600" height="650"></iframe>
</body>
</html>
828名無しさん@お腹いっぱい。:2015/02/17(火) 23:29:00.16 ID:qagw485K0
あるいはGETALLWINしてから各ウィンドウをSTATUSで調べる
829 ◆evw/E7kww2 :2015/02/18(水) 02:23:33.33 ID:x03XfLe30
ttp://anago.2ch.net/test/read.cgi/software/1421799243/581+583+584
> 581   オープンソースがダメっていうのはどこが根拠なの? ...
> ├583   申請窓口がジェーンしかないのが現状
> │└584   フィリピン行ってJimと直接交渉かなー    ID:sOWC+DjH0

ttp://anago.2ch.net/test/read.cgi/software/1424178732/2+236+300
> 2            投稿日:2015/02/17(火) 22:12:26.84 ID:sOWC+DjH0
> └236    なんで一瞬だけキャップはずしたんですか?
>  └300    デフォルトでsageチェックが入ったままのため、CAPがよく外れます。  Jane ★

ttp://anago.2ch.net/test/read.cgi/software/1424178732/117
> 117 名前:Jane ★[sage] 投稿日:2015/02/18(水) 00:09:38.71 ID:???*
>  RaceQueen社はフィリピンのマニラにあります。
>  こちらで直接お話しました。

>>796 の 発信元:206.223.153.21 ってもしかして・・・
830名無しさん@お腹いっぱい。:2015/02/18(水) 02:46:18.08 ID:ntUp0d3b0
で、それUWSCとどういう関係あるの?
831 ◆evw/E7kww2 :2015/02/18(水) 03:24:36.69 ID:x03XfLe30
>>830
UWSC の悪意のコードをばらまいてるのが株式会社ジエンで
2ちゃんねるのサーバーに直接ログインできて
IP丸見えで
特定の相手を狙い撃ちしてたとしたらどうよ

専用ブラウザは .dat ファイルに直接アクセスするけど
専用ブラウザを禁止すれば
悪意の JavaScript を強制的に使用させれるわけだ。


まあ、それでなくても専ブラでこのスレ見ることができなくなるし
僕がUWSC使ってやってた2ちゃんねるの自動処理スクリプトが動かなくなるし
API 勝手に使えば逮捕されるってさ。

株自演から許諾もらえた人がいなくて、2ちゃんねる運営からの返事は「ドライブ行くからバイバイ」
ttp://anago.2ch.net/test/read.cgi/software/1424178248/188

つまり、UWSCでは自由なログ取得ができない。

全く無関係の話ではない。
832名無しさん@お腹いっぱい。:2015/02/18(水) 04:02:40.57 ID:ig4gZEY40
無関係だな
833名無しさん@お腹いっぱい。:2015/02/18(水) 05:08:43.79 ID:atKMoei90
newtest120


procedure newtest120
x=1000
y=638
BTN(LEFT, CLICK, x+1, y+1, 80)
sleep(1.0)
newtest121
fend


procedure newtest121
x=668
y=425
BTN(LEFT, CLICK, x+1, y+1, 80)
sleep(1.0)
newtest120
fend



っていう2点を交互にクリックするだけの簡単なスクリプトを使っているんだけどある程度時間が経つと止まっちまう
どうすればいい?
834名無しさん@お腹いっぱい。:2015/02/18(水) 05:16:26.58 ID:A4jwGhud0
>>833
定期的に出てくるがスタックオーバーフロー

>>645-647
を読むこと
835名無しさん@お腹いっぱい。:2015/02/18(水) 05:25:50.91 ID:atKMoei90
>>834
おっサンキュー!助かったぜ
俺が直接停止させるまでずっと繰り返しさせたい場合はこんな感じでいいのかな


x=1

while x=1
newtest120
newtest121
wend


procedure newtest120
x=1000
y=638
BTN(LEFT, CLICK, x+1, y+1, 80)
sleep(1.0)
newtest121
fend


procedure newtest121
x=668
y=425
BTN(LEFT, CLICK, x+1, y+1, 80)
sleep(1.0)
newtest120
fend
836名無しさん@お腹いっぱい。:2015/02/18(水) 05:28:38.91 ID:A4jwGhud0
>>835
それぞれの関数に含まれてる
newtest121
newtest120
は消さないとダメ
837名無しさん@お腹いっぱい。:2015/02/18(水) 05:59:35.24 ID:atKMoei90
>>836
あっほんとだ
まじサンクス
838名無しさん@お腹いっぱい。:2015/02/18(水) 12:34:12.23 ID:9OCeQotA0
引数なしで宣言とか呼び出し出来るのか
初めて知ったわw
839名無しさん@お腹いっぱい。:2015/02/18(水) 12:35:00.84 ID:9OCeQotA0
ミス、引数なしじゃなくて小かっこなし
840 ◆evw/E7kww2 :2015/02/18(水) 15:38:36.34 ID:x03XfLe30
ttp://anago.2ch.net/test/read.cgi/software/1421229692/997
> 997 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/02/18(水) 11:10:39.26 ID:LUMdk7US0
>   ID:bAdPLD8J0
>   ID:qyqzh0Jn0
>   この二人は山下の会社の連中(山下本人?)だよ
>   同じようにしてBathyScapheスレにもいて、山下との契約を促すような発言を繰り返してた
>   他の専ブラスレでも同じようなのが出てる
>   最初に専ブラ作者にレス入れて住人のふりをして溶けこんで
>   そのあとに煽ってくるのが特徴だからみんな気をつけてくれ

ttp://anago.2ch.net/test/read.cgi/software/1424225609/38
> 38 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/02/18(水) 15:18:33.09 ID:BF/YgDO70
>  >> 33
>  それ以前に山下は★キャップ持ってるから
>  俺らのリモートホストからアクセス環境まで全部ログで見れるんだ
>  反抗的なこと書くとそのリモートホストを監視対象としてマークして
>  全板の書き込み洗うくらいは平気でしてると思ったほうがいい

やべえわ
俺絶対狙われてるわ

俺の他の書き込み
ttp://kanae.2ch.net/test/read.cgi/prog/1413804379/645-648+652-655
ttp://anago.2ch.net/test/read.cgi/software/1424178732/489+651+707+745
841名無しさん@お腹いっぱい。:2015/02/18(水) 15:54:25.89 ID:HJ4gosKO0
Aを5回クリックしたのち、Bの動作を1回行う
これをESCキー押すまでループ
というのを作りたいです

While true  

if GETKEYSTATE(VK_ESC) then exit // ESCキーで終了

for j=0 to 5//ここから↓はクリック

A

next //ここまでクリック

//処理

B

Endif

wend

ESCキー押しても停止しない事以外は思い通りなんですが、キー停止しない原因はなんでしょうか?
842 ◆evw/E7kww2 :2015/02/18(水) 16:05:58.38 ID:x03XfLe30
>>841
ESCをクリックするタイミングが B 〜 GETKEYSTATE(VK_ESC) の間で1秒以下じゃないといけない
その間に Sleep がないからすぐに通り過ぎてしまう。
いつクリックしても終わるようにしたいなら Sleep とセットでこまめに入れないと。
843名無しさん@お腹いっぱい。:2015/02/18(水) 16:20:20.89 ID:A4jwGhud0
>>841
ESCキーに特別なこだわりがなければ、
Alt+F2が安定
844名無しさん@お腹いっぱい。:2015/02/18(水) 16:40:48.61 ID:KQtzFEy90
>>841
全体のループを回しつつAとBを希望回数実行するイメージにしたほうが良いかも
こんな感じ

 //最初に空呼びするのは事前に処理があった場合などで
 //ESCキーを押下している可能性があるから
 GetKeyState(VK_ESC)
 count = 1
 While !GetKeyState(VK_ESC)
  If count <= 5 Then
   Print "Aクリック"
  EndIf
  If 5 < count Then
   Print "処理B"
   count = 0
  EndIf
  count = count + 1
  Sleep(1)
 WEnd
845名無しさん@お腹いっぱい。:2015/02/18(水) 17:06:16.63 ID:9OCeQotA0
alt+f2もスリープなしのループ内だと反応しない
速度を求めない部分に適度なスリープを
846名無しさん@お腹いっぱい。:2015/02/18(水) 19:24:08.36 ID:8rioQEby0
SETHOTKEYでグローバル変数のフラグをONし、
メインループ内でそのフラグを常にチェックする、
という手もあるよ。
どの方法でも適度なSLEEPは必須。
847名無しさん@お腹いっぱい。:2015/02/18(水) 19:31:12.38 ID:mYpELa6U0
>>841
While true  
for j=0 to 5//ここから↓はクリック
if GETKEYSTATE(VK_ESC) then exit // ESCキーで終了
A
next //ここまでクリック
//処理
if GETKEYSTATE(VK_ESC) then exit // ESCキーで終了
B
Endif
wend

これでいいんじゃないの?
848名無しさん@お腹いっぱい。:2015/02/18(水) 19:32:22.87 ID:mYpELa6U0
一個忘れてた、Aの直後とBの直後に sleep(0.1)
849名無しさん@お腹いっぱい。:2015/02/19(木) 18:22:21.88 ID:pm5t0k8c0
IEで複数タブを開きそれぞれのタブに同時にIESETDATAをしたいのですが可能でしょうか
可能だとしたらどのようにすればいいのでしょうか
850名無しさん@お腹いっぱい。:2015/02/19(木) 19:09:01.61 ID:vBiovBcs0
IEのタブは内部的にはウインドウ扱いなので
SHDocVw.ShellWindows を使えばそれらにアクセス可能です
但しエクスプローラのウインドウも入っているので
FullName が "iexplore.exe” かどうかチェックしてあげると良い

で、その結果毎に IESETDATA してあげたら良いんじゃないかな
具体的なURLが決まっているなら LocationURL もチェックして絞り込むと良い
851名無しさん@お腹いっぱい。:2015/02/19(木) 20:17:43.66 ID:s+drD9Tr0
質問です。

print powershell("dir<#CR>dir")
print powershell("ipconfig<#CR>dir")
print powershell("ipconfig<#CR>ipconfig")

のうち、2番めのprintのdirが文字化けします。
どうもdirの前にBOMが付いてしまうのですが
なぜ別のコマンドに影響を受けるかが理解できません。

原因と対策を教えて下さい。
852名無しさん@お腹いっぱい。:2015/02/19(木) 20:37:47.01 ID:hqRR7hp00
doscmd()じゃだめな理由があるの?
853名無しさん@お腹いっぱい。:2015/02/19(木) 21:20:32.54 ID:s+drD9Tr0
あ、説明し忘れましたがもちろんdirやipconfigがやりたいわけではありません。

PowerShellとの連携が必要な処理でおかしな動作を見つけて切り分けた結果、
一番わかりやすいパターンがこれです。
854名無しさん@お腹いっぱい。:2015/02/20(金) 00:17:28.15 ID:CcuoO5p40
よく分からんが、それだけ切り分けられてたら、公式で聞くべきじゃないの?
855名無しさん@お腹いっぱい。:2015/02/20(金) 07:59:01.02 ID:0uEFWm430
ISUNICODE(文字列 )
856名無しさん@お腹いっぱい。:2015/02/22(日) 01:09:34.94 ID:6CWTGMD90
UWSCで田代砲って可能なんですか
857名無しさん@お腹いっぱい。:2015/02/22(日) 01:55:11.85 ID:ABlT10UA0
逮捕されるよ
858名無しさん@お腹いっぱい。:2015/02/22(日) 09:07:41.24 ID:u3K/wf3F0
3Dプリンタで拳銃って可能なんですか
859名無しさん@お腹いっぱい。:2015/02/22(日) 12:52:40.31 ID:Xm2XtIqz0
全知全能の現人神◆evw/E7kww2にすべてまかせるんだ
860名無しさん@お腹いっぱい。:2015/02/22(日) 23:49:40.19 ID:6CWTGMD90
>>857
悪いことには使いませんのでヒントだけでも
861名無しさん@お腹いっぱい。:2015/02/22(日) 23:54:10.11 ID:WL4b+80K0
消えろ、糞ミジンコハゲが
862名無しさん@お腹いっぱい。:2015/02/22(日) 23:58:16.94 ID:tcvwnpqu0
>>860
田代ほど速くはアクセスできない
だから帰れ
863名無しさん@お腹いっぱい。:2015/02/23(月) 04:03:36.39 ID:cnZt5QTs0
>>860
田代砲なんてサイバー攻撃用途しかないし
やり方教えたら犯罪の幇助になりかねないから
教える奴はいないと思うよ
864名無しさん@お腹いっぱい。:2015/02/24(火) 00:25:16.56 ID:ZzCLhq6d0
>>863
了解
865名無しさん@お腹いっぱい。:2015/02/24(火) 00:25:46.20 ID:ZzCLhq6d0
>>862
了解
866 ◆evw/E7kww2 :2015/02/24(火) 07:04:24.04 ID:0xzFdvyl0
なんで田代砲の話題が出たのかと思ったら 2月22日が竹島の日だからか。
神奈川虐殺事件も竹島付近の出身だから生け贄にされたんだよね。

てっきり、僕が田代砲作ったと知ってて話題に出したのかと思った。

田代砲っぽい動作はUWSCでもできるけど
攻撃が目的ならキャッシュから読み込まない設定が必要になる。
UWSC + IE での読み込み中に中断すると、
いくらリロードしても不完全なキャッシュしか読んでくれなくて困ったことがあった。
結局、中断の制御をしないことで対処した。

田代砲としての動作では起動後のスクリプトとか無視でいいんで完了まで待たなくていいんだよね。
広告を表示するまで待つような田代砲だと、対象ページの広告収入が増えるし
Youtube でやれば再生回数水増しで人気沸騰1億ビューも可能。
Youtube で1億ビューいったのは世界で一人だけじゃなかったかな。
867名無しさん@お腹いっぱい。:2015/02/24(火) 08:37:29.73 ID:IpQpQhy40
てっきり、僕が田代砲作ったと知ってて話題に出したのかと思った。

wwwwwwwwwwwwwwwww
868名無しさん@お腹いっぱい。:2015/02/24(火) 10:38:54.00 ID:nYhCwSie0
さすが全知全能の現人神やで
869名無しさん@お腹いっぱい。:2015/02/24(火) 18:22:00.82 ID:Sx3xMRbb0
UWSのショートカットを押してマクロを使っているのですが、1回動作させて一連の動作が終わった後にまた起動させるとマクロの動作が遅くなってしまうのですがどうしたらよいでしょうか?パソコンの再起動すると治るため今は使うたびに再起動をかけて使っています
870名無しさん@お腹いっぱい。:2015/02/24(火) 18:44:47.01 ID:XlAMTUHH0
初期化処理に想定外があって2度目が期待通りの動作をしていない
スクリプトが完全に終了していない
辺りじゃないかな

どうしてもワカランならスクリプトの最後に再起動命令「POFF(P_REBOOT)」でも入れたら?
871名無しさん@お腹いっぱい。:2015/02/24(火) 20:11:01.10 ID:yWDBXUDq0
横からだけどスクリプトが完全に終了してないってどういう状態?
872名無しさん@お腹いっぱい。:2015/02/24(火) 20:43:19.96 ID:LCtuoFs60
>>871
横不要
873名無しさん@お腹いっぱい。:2015/02/24(火) 21:00:52.91 ID:QsSbCRFa0
ゾンビプロセスのことだろ
874名無しさん@お腹いっぱい。:2015/02/24(火) 21:13:32.53 ID:yWDBXUDq0
ググってみた
UWSCならスレッドが終了してないのにスクリプトを終了した状態ってことかな
他にもゾンビプロセスが残る可能性ってある?
875名無しさん@お腹いっぱい。:2015/02/24(火) 21:47:39.84 ID:vqfLFsjB0
下手なスクリプトでUWSCを多重起動したら普通にメモリがバイオハザード状態だろ
スクリプトのバグはもちろん、例えば不可視状態のUWSCとブラウザがデッドロックを起こしたまま放置状態になったら、
UWSC側で正常終了するよう書いてあっても無駄、ブラウザをtaskkillするなどが必要
もちろんUWSC自身ではなく自動操作対象のほうでメモリリークだの何だの色々とあるだろうことは想像に難くない
876名無しさん@お腹いっぱい。:2015/02/24(火) 21:47:57.64 ID:Sx3xMRbb0
回答ありがとうございます。
タスクマネージャには表示されないプロセスが残ってしまっているって解釈でよろしいでしょうか?
そしたらやはり再起動しか対策がないとなりますか…
877名無しさん@お腹いっぱい。:2015/02/24(火) 21:58:15.31 ID:XlAMTUHH0
多分、前提が間違ってる方だと思うよ
878名無しさん@お腹いっぱい。:2015/02/24(火) 22:00:07.23 ID:vqfLFsjB0
> タスクマネージャには表示されないプロセス
んなものはない
表示されてるどのプロセスが原因か判らないだけ
下手すりゃsvchost.exeやexplorer.exeが狂っちゃってることだってあり得る
879名無しさん@お腹いっぱい。:2015/02/24(火) 22:04:01.06 ID:vqfLFsjB0
ああ、不可視というのは visible = false みたいに単に画面上に表示されてない状態のプロセスってことでタスクマネージャには当然表示されてるよ
880名無しさん@お腹いっぱい。:2015/02/24(火) 22:04:20.95 ID:Q3t7/rEj0
住人のエスパー力にも限りがあるから
込み入った問題の回答はモノを見なくちゃどうにもならんわな
881名無しさん@お腹いっぱい。:2015/02/24(火) 22:06:11.68 ID:vqfLFsjB0
ショートカットから起動されたUWSCのプロセスは起動オプション無しなら表示されないよね
多分動作が終わった後もプロセスが終了してなくて、ショートカットで起動する度に増えてるんじゃね?
882名無しさん@お腹いっぱい。:2015/02/24(火) 22:10:27.08 ID:sy4T0Xbz0
タスクマネージャに表示できないゾンビプロセスがそんな簡単に生成できたら
ウイルス製作者が指を加えて黙ってるわけないだろw
実現できたら世界的なニュースになるよ

遅くなるソースコードの1行ごとに時間計測用デバッグ文を入れて
どこで遅くなっているか見れば多分簡単に原因は分かるけど
「遅くなる!助けて!!」レベルの情報じゃ原因特定は無理
883名無しさん@お腹いっぱい。:2015/02/24(火) 23:10:39.79 ID:XlAMTUHH0
コンピューターはバカ正直だから勝手に重くなる事はない
重くなるように指示されているから重くなるのだ
884名無しさん@お腹いっぱい。:2015/02/26(木) 19:20:51.20 ID:87XABF1v0
endifの消し忘れでマクロに誤動作起きてた…
ifのブロック扱いが無ければエラーですぐ気づけたのになぁ
885名無しさん@お腹いっぱい。:2015/02/26(木) 22:04:47.97 ID:YFibyqz10
まぁ、くろうしたのね
886名無しさん@お腹いっぱい。:2015/02/26(木) 22:16:58.38 ID:mUjsmOal0
なんですって?
887名無しさん@お腹いっぱい。:2015/02/26(木) 23:59:05.37 ID:xn1g07JG0
付け忘れならともかく、消し忘れなんてありえんのか?
888名無しさん@お腹いっぱい。:2015/02/27(金) 00:08:36.74 ID:Hg0ptvh70
ブロックの初めと終わりは、可能な限り半ページ程度までに収めるべきだよなぁ
関数化して掃き出したり、BREAKやEXITをうまく使って驚くほど階層が低くなったりする
とは言いつつ古いマクロで動いてる奴が手付かずのままだ。
889名無しさん@お腹いっぱい。:2015/02/27(金) 00:09:52.09 ID:YEDpMa/M0
最近知ったけど、秀丸の色付け機能って便利だね
890名無しさん@お腹いっぱい。:2015/02/27(金) 00:55:17.40 ID:Hg0ptvh70
むしろ色付け機能使わないほうがプログラマとしてはどうかと思う
>>551-568 >>620
891名無しさん@お腹いっぱい。:2015/02/27(金) 00:59:36.11 ID:8b3XPzsf0
uwsc使いふぜいがプログラマ気取りって甚だしいだろ
892名無しさん@お腹いっぱい。:2015/02/27(金) 01:06:31.61 ID:0C8V7RBu0
>>891
最高のおもちゃ!
893名無しさん@お腹いっぱい。:2015/02/27(金) 01:11:23.00 ID:p+pTTf+s0
>>891
他の言語だって大して書式かわらんだろ
894名無しさん@お腹いっぱい。:2015/02/27(金) 01:17:58.15 ID:/CC0BkIy0
堀田純平と安江広も使ってるuwsc
895名無しさん@お腹いっぱい。:2015/02/27(金) 06:28:47.64 ID:FCsRUudV0
甚だしいは単体で使う単語じゃないぞ
896名無しさん@お腹いっぱい。:2015/02/27(金) 06:33:39.88 ID:EzmVEG5O0
コミュニケーションってのは文法や言葉の正しさが全てではないからね
897名無しさん@お腹いっぱい。:2015/02/27(金) 06:39:19.48 ID:FCsRUudV0
言い訳が甚だしいぞ
898名無しさん@お腹いっぱい。:2015/02/27(金) 09:34:15.52 ID:Hg0ptvh70
プログラマであることを要求される地点に来てるのにその自覚がないと、
糞コード拡散したり車輪の再発明しまくったり碌なことがない
899名無しさん@お腹いっぱい。:2015/02/27(金) 13:59:29.10 ID:hnVWfb4A0
要求される地点=プログラマとして就職
まだまだ自覚しなくて良いな
900名無しさん@お腹いっぱい。:2015/02/28(土) 09:34:33.84 ID:xm1im2ki0
mouseorgでchromeのブラゲにクリックを直接送信するようにしてて
ゲーム内じゃなくブラウザ側のバルーンみたいなので「エラーが発生したのでリロードします。「OK」「キャンセル」」みたいなのが出た時に
メインとは別のエラーを監視するスレッドで「キャンセル」の画像を検知したらそれを押すようにしてるんだけど
キャンセルボタンを押してくれる時と押してくれない時があるのはなぜなのか誰か分からない?
901名無しさん@お腹いっぱい。:2015/02/28(土) 09:41:28.07 ID:WRmNZRoD0
アマチュア棋士は棋士ではないとな
902名無しさん@お腹いっぱい。:2015/02/28(土) 10:05:19.40 ID:clIcMss50
>>900
失敗した時は画像検知はできてるの?
できてないなら、画像がわずかに変わってたりとかを疑う
できてるならクリックイベント拾えてないだけだから、消えるまでクリックすればいいのでは
1msの高速クリックだとイベント拾えないことがあるからな
903名無しさん@お腹いっぱい。:2015/02/28(土) 10:29:46.06 ID:xm1im2ki0
>>902
永久ループで画像検出を回しまくってるから押せてないことはないはず
画像はキャンセルの文字が太字の時とそうじゃない時の両方取ってるけど
今思い出したけどフォーカスが変わったら動き出す時があるからもしかしてまだパターンがあるのかな
次にキャンセルボタン出たら画像をもう一回見なおしてみる
904 ◆evw/E7kww2 :2015/02/28(土) 11:39:58.70 ID:QIQFx5ZI0
>>901
日曜プログラマとかいうけど
趣味でやるやつは求められてはいないだろと。

でも、半分趣味の人がブログとか書いてくれて
そのコードを使えるわけだからありがたい存在だったりする。
じゃあその人たちはプロではないのかと言うと、
参考になる多くのコードを提供する人はプロでもあると思う。
プログラマは期間が短いからどうせすぐにプロではなくなるんだけど。
905名無しさん@お腹いっぱい。:2015/02/28(土) 11:51:50.07 ID:WRmNZRoD0
確かにプロでない棋士はコマの動かし方や定石を覚えることは、プロ棋士会からは、求められていない
だが将棋を楽しむためにはコマの動かし方や定石を覚えなきゃ話にならんな?
将棋を始める以上、コマの動かし方や定石を覚えることは、将棋仲間などの社会から、求められているのだよ。
906名無しさん@お腹いっぱい。:2015/02/28(土) 11:55:16.04 ID:/gSlhNcz0
どうでもいいけど棋士って言葉はプロのことを指す場合が多いよ
907名無しさん@お腹いっぱい。:2015/02/28(土) 12:11:17.95 ID:WRmNZRoD0
じゃぁ「将棋指し」にしようか。

確かにプロ棋士でない将棋指しは、コマの動かし方や定石を覚えることは、
日本将棋連盟などプロ棋士らの社会からは、求められていない。
だが将棋を楽しむためにはコマの動かし方や定石を覚えなきゃ話にならんな?
将棋を始める以上、コマの動かし方や定石を覚えることは、
アマチュア将棋仲間などの社会から、求められているのだよ。
定石を知っていれば3秒で解ける問題に何ヶ月も掛けることもあるだろうが、
一人で誰にも知られず悩んでるだけなら、それは本人の勝手だろう。
だが社会と触れる部分があれば、2歩という違反を使って詰将棋を解いたと主張したり、
将棋仲間との対戦中に千日手を行って迷惑をかけたり、
100年も前に存在した桂馬の両取りのような定石未満の戦法を、
俺の発明した戦法だと主張する誰かさんのように見苦しかったりする。
初学者に間違ったルールや定石を教え始めれば害がある。
908名無しさん@お腹いっぱい。:2015/02/28(土) 12:17:04.92 ID:AZIfG5Ws0
メイン処理の方を待機させる仕組みがないと
別処理の方の一瞬で中断させている可能性もありえる
フォーカスやマウス座標の奪い合いとかね
処理の準備、実行、確認が大事
頑張って
909名無しさん@お腹いっぱい。:2015/02/28(土) 12:17:09.48 ID:6KYTI2KH0
すまんな、俺がプログラマ気取りといったばかりに
趣味だろうと自分がプログラマだと思うならそう名乗ればいいよね
自称プログラマでいいじゃん
プログラマは低所得や派遣というイメージが強いから名乗って誇れるものでもないだろうけど
910名無しさん@お腹いっぱい。:2015/02/28(土) 12:21:38.70 ID:S45mWjH90
プログラマーはプロフェッショナルグラマーの略
911名無しさん@お腹いっぱい。:2015/02/28(土) 12:22:57.77 ID:0F9tS+1w0
プログラマじゃなくてもコード書いたり、エクセルの関数やVBA使うことは一般教養として出来るわけだから
プログラマって聞くと職業プログラマってイメージしちゃうな
912名無しさん@お腹いっぱい。:2015/02/28(土) 12:23:51.72 ID:Y3zZI+cc0
>>900
Javascriptのconfirmの事かな?
・そもそも押してない
・押してるけど反応がない
を切り分けるとデバッグ捗るよ
print "キャンセル押した"
って一行書くだけでだいぶ切り分けられる

ttp://www.tagindex.com/javascript/window/confirm.html
にあるようなconfirmなら

confirmId = getid(, "Chrome_WidgetWin_1")
clkitem(confirmId, "キャンセル", clk_acc)

みたいな感じでキャンセルは押せる
画像認識は使わなくてもいいのならなるべく使わないほうがいい
913名無しさん@お腹いっぱい。:2015/02/28(土) 12:32:17.55 ID:xm1im2ki0
>>912
dクス
confirmId はOKキャンセルの窓が出てないときは-1になるのかな
それ入れてみる
914名無しさん@お腹いっぱい。:2015/02/28(土) 13:26:30.73 ID:/ehssp4m0
>>909
すまんといいつつさらにディスる
とことん性格悪いなw
915名無しさん@お腹いっぱい。:2015/02/28(土) 13:54:49.06 ID:ru0bN7yR0
UWSCスレで何を語ってるんだ
916名無しさん@お腹いっぱい。:2015/02/28(土) 14:58:50.89 ID:p+cyw0f60
プログラムを組む人をプログラマーというんだろ。
プレイする人をプレイヤーというんだから。

プログラムを見て『このプログラムを書いた人』がプログラマーだろ。
917名無しさん@お腹いっぱい。:2015/02/28(土) 15:11:03.92 ID:0F9tS+1w0
なるほどな
uwscのマクロをプログラムと呼ぶから変な感じがするんだな
918名無しさん@お腹いっぱい。:2015/02/28(土) 15:12:30.55 ID:p+cyw0f60
ツーラーとかマクラーとはちょっと言われたくないけどね…
919 ◆evw/E7kww2 :2015/02/28(土) 15:37:04.95 ID:QIQFx5ZI0
スクリプトキディと言ってもほめ過ぎだろ

即席ハッカーとかいう新聞見出しもあるね
ttp://d.hatena.ne.jp/youichi/20121019#p2
2012年10月20日 読売新聞朝刊
ttp://www.area51.gr.jp/~rin/images/2012/10/20/y00.jpg
> 専門知識がない子どもでも、ネットで調べれば簡単に
> ハッカーを気取れる時代だ」と男性は語る。
920名無しさん@お腹いっぱい。:2015/03/01(日) 04:05:46.74 ID:H67N4zL/0
>>910
ttp://orlentertainment.com/wp-content/uploads/2014/01/BfUI7X4CcAEWckq1.jpg
こういう人のことですね?

まあマクロやスクリプトがプログラムの一種という主張は分かるけど
個人的にはやっぱり区別して使うなぁ
921名無しさん@お腹いっぱい。:2015/03/01(日) 09:33:12.96 ID:NzN5Zjfs0
スレッド永久ループさせたままスクリプト終了しても問題ない?
922名無しさん@お腹いっぱい。:2015/03/01(日) 09:36:09.51 ID:snopO9o00
問題なく終了するよ
923名無しさん@お腹いっぱい。:2015/03/01(日) 09:59:13.06 ID:NzN5Zjfs0
dクス
また質問で悪いんだけど
poffでUWSCを再起動させる時に、再起動後のスクリプトに引数渡すようなことってできない?
924名無しさん@お腹いっぱい。:2015/03/01(日) 10:02:21.58 ID:ExprnFtp0
>>921
スリープ処理なしの割り込み出来ないスレッドとか
突き放しで起動したプロセスのスレッドだと止まんないと思う
925名無しさん@お腹いっぱい。:2015/03/01(日) 10:06:18.23 ID:NzN5Zjfs0
>>924
ちゃんとスリープは入れてる
突き放しで起動したプロセスってのはよく分からん
926名無しさん@お腹いっぱい。:2015/03/01(日) 10:12:10.55 ID:ExprnFtp0
>>923
fputとかでファイルに書き込みして、
fgetとかでそれを最初に読み込ませるのが一番楽だと思う

>>925
突き放しは
execとかで別uwscを終了待ちなしで起動するような感じ
927 ◆evw/E7kww2 :2015/03/01(日) 10:39:49.62 ID:6Dl5vrHr0
> execとかで別uwscを終了待ちなしで起動するような
> 突き放しで起動したプロセスのスレッド

そんなスレッドを簡単に作れるのは Cheat Engine くらいのもんだろ
928名無しさん@お腹いっぱい。:2015/03/01(日) 10:47:14.27 ID:NzN5Zjfs0
>>926
ありがとう
exec使ってないから大丈夫だな
ファイルの方は試行錯誤してみる
929名無しさん@お腹いっぱい。:2015/03/01(日) 12:24:35.34 ID:NzN5Zjfs0
iniファイル使ったらできたわ
ついでに設定用変数をiniから読み取るようにしたら、設定変えた時に毎回スクリプト再起動しなくてよくなったからちょっと手間が減った
ini初めて使ったけど便利やな
930名無しさん@お腹いっぱい。:2015/03/01(日) 13:18:50.87 ID:t8LqJIBE0
同IDの3つ以上の複数ウィンドウをアクティブとMIN繰り返して切り替えたいんだけど、どうすればいい?
それか非アクティブの同IDウィンドウにキー入力したい
comオブジェクトは使えない
931名無しさん@お腹いっぱい。:2015/03/01(日) 13:54:23.43 ID:VFvCV/6v0
IDと複数ウィンドウの関係にもよるかな。
何回、何秒ごとにウィンドウ同士どのような関係で切り替えるかにもよるし。
具体的にはウィンドウのどこにどんなキーを入力するのかの情報も必要。
ウィンドウとCOMオブジェクトは直接関係ないけど、何がいいたいのか謎。
知識がなくて使えないのか、
使いたくないから使わないのか、
使う必要がないから使わないのかよく分からない。

説明が下手なら、具体的に○○がしたいが方法が分からないと質問するか
途中まで作ったソースコードを貼り付けたほうが建設的な議論がしやすいよ。
932名無しさん@お腹いっぱい。:2015/03/01(日) 14:04:54.89 ID:XfiF1vaJ0
突き放しって変な用語だけど、引数なしショートカットで起動したみたいな、別スレッドではなく別プロセスで起動した場合のことだろうね
933名無しさん@お腹いっぱい。:2015/03/01(日) 14:08:17.92 ID:XfiF1vaJ0
>>930
同IDという状態はないはず
同名ウィンドウが3つという問題は発生する
同名だろうが何だろうが各々のウィンドウIDは異なる
取得が出来ないだけ
取得はできないが、1つ1つを取得後に各々を操作した結果、同名ウィンドウになるなら、
せっかく取得したIDを放棄しない限り問題なく操作できる。
934名無しさん@お腹いっぱい。:2015/03/01(日) 15:27:45.12 ID:ExprnFtp0
>>930
getallwinでウインドウ情報取って
一個ずつ中見ても3つのidは表示されない?
それでもid一個だと個別に識別方法を考えるしか分からんな
935名無しさん@お腹いっぱい。:2015/03/01(日) 15:45:14.78 ID:t8LqJIBE0
多重起動して同じページ開いてる同ブラウザを切り替えてくて…
ID取得したけれど、タイトルとクラス名と座標とサイズと待ち時間しか取得できなかった
MDI子タイトル?ってのはどう取得していいのやら
936名無しさん@お腹いっぱい。:2015/03/01(日) 15:45:52.18 ID:M2xAUVd00
>>930
不細工だが、タスクバーから選択すれば良いだけじゃないの?

難しいこと考えなくても、手でやる方法をトレースすればたいていの事はできる
937名無しさん@お腹いっぱい。:2015/03/01(日) 16:06:17.73 ID:ExprnFtp0
>>935
タブブラウザのタブ切り替えかな
と思ったがMINって最小化のこと言ってるだろうしよく分からん…
タブブラウザでそれしか開いてないなら
いっそctrl+tabにするとかで代用とかあるけど
もう少し詳細な現状がないと答えにくい
938名無しさん@お腹いっぱい。:2015/03/01(日) 18:32:16.10 ID:VFvCV/6v0
//IEを3つ起動
for i=1 to 3
 IE = CreateOLEObj("InternetExplorer.Application")
 IE.Visible = True
 IE.Navigate("http://www.yahoo.co.jp")
next

sleep(5)
public idList=""

//タイトルとクラスからIEを探す
for winId in getallwin()
 if pos("Yahoo! JAPAN", status(winId, ST_TITLE))=0 then continue
 if status(winId, ST_CLASS)<>"IEFrame" then continue
 idList=idList+winId+" "
next

allIeControl(min) //IEをすべて最小化
allIeControl(normal) //IEをすべてサイズ戻す

procedure allIeControl(command)
 for ieId in split(idList, , true)
  ctrlwin(ieId, command)
  sleep(1)
 next
fend
939名無しさん@お腹いっぱい。:2015/03/01(日) 18:38:18.80 ID:VFvCV/6v0
たとえば同じタイトルのIEを操作する例
getallwin()を使えばたったこれだけでそれぞれのIDは特定できる
940名無しさん@お腹いっぱい。
for inってかけるようになったのか知らんかった