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

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

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

1 :名無しさん@お腹いっぱい。:2015/03/08(日) 00:18:57.40 ID:itdOhEn30.net
Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある
ttp://www.uwsc.info/download.html

●UWSC 掲示板(※作成依頼掲示版ではありません)
 質問の際には自力で作ったスクリプトを晒すか、具体的な解らない場所を提示すること
 上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫
ttp://www3.bigcosmic.com/board/s/board.cgi?id=umiumi
ttp://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=past

●UWSC - Wikipedia
ttp://ja.wikipedia.org/wiki/UWSC

●使い方・基礎解説学習サイト
ttp://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584
ttp://www.confrage.com/uwsc/
ttp://necro.jp/dev/uwsc/
ttp://park14.wakwak.com/~simizu/uwsc/fruwsc.html
ttp://canal22.org/
ttp://big.tm.land.to/handbook/uwsc.htm
ttp://www.game-rev.com/review/gameut/uwsc.html

●スクリプトテンプレサイト
ttp://izagne.com/uwsc/
ttp://scripts.web.fc2.com/
ttp://www.nagomi-jp.net/~liners/
ttp://nem.symphonic-net.com/uwsct/0610uwsct.html
ttp://siromasa.digi2.jp/uwsc/
ttp://iriyak.adam.ne.jp/uwsc.html

588 :名無しさん@お腹いっぱい。:2015/05/23(土) 12:56:19.50 ID:xiFykTZl0.net
ソースコード管理はDropboxとTortoiseGitを組み合わせて使えば楽なんじゃね?
使ったことないけど

「いま追加途中の処理は消したくないけど、いったんうまく動いてた頃のコードに戻したい」
とかよくあるじゃん
エディタの自動バックアップ機能だけでこれをやろうとすると大変

ファイルを手作業で退避してからタイムスタンプを頼りに欲しいバージョンを探す羽目になる
そこからバグを修正して退避させたコードをマージしたい、となるともう絶望的

Gitだとブランチ切り替えるだけ、マージもほぼ自動でやってくれる
一度試してみるといい

589 :名無しさん@お腹いっぱい。:2015/05/23(土) 20:10:26.52 ID:a7xATCjJK
uwscで作るとかは無理なのか?
1時間ごとにwhile監視して、内容が変わっていたらファイル名+時間とかで
コピー作成。何か難しいとこある?

590 :名無しさん@お腹いっぱい。:2015/05/23(土) 23:58:40.33 ID:nZxuV0Lbt
無理じゃないけどすでに他で実装されてる機能をわざわざ作るのは無駄かな
プログラム初心者の勉強用ならいいかもね

1. 指定した1つのファイルの監視
2. 指定した複数ファイルの監視
3. 指定した複数フォルダの監視
4. どのフォルダでコード書いても自動でファイルパスを解析して監視

自分の実力に合わせて作ってみるといいよ

591 :名無しさん@お腹いっぱい。:2015/05/24(日) 00:19:54.26 ID:M3bR0sl2f
いや、他で実装されてるものに不満があったり、見つけられないから
ここに書いてると思って見てたんだけど…。
「満足できる機能が欲しいなら作るのが一番確実でない?」という程度の
提案。処理内容もそう難しいものとは思わなかったからな。
あと自作だと応用が無限だから将来性も非常に高い。

一応Dropbox経験者として書いておくと、「自動で同期される」は
なかなか胡散臭いことがあるから気を付けてな。手動更新もついてないし、
更新されたかどうかもその都度チェックしないといけないこともある。
まだ見てるかわからんけど。

592 :名無しさん@お腹いっぱい。:2015/05/24(日) 14:27:37.29 ID:fK/MeGnH0.net
public id1=GETID(GET_ACTIVE_WIN)
print status(id1,ST_PROCESS)
sleep(0.3)

KBD(VK_ALT,DOWN,30)
KBD(VK_TAB,CLICK,300)
KBD(VK_ALT,UP,300)
sleep(0.3)

public id2=GETID(GET_ACTIVE_WIN)
print status(id2,ST_PROCESS)
sleep(0.3)

このスクリプトでid1とid2に同じウィンドウIDが入る理由がわからない
ちなみにpublicを外すとそれぞれ別のウィンドウIDが入る

593 :名無しさん@お腹いっぱい。:2015/05/24(日) 14:34:10.18 ID:3fBbOc8N0.net
それはグローバル変数は無条件に最初に実行されるからだよ
グローバル変数は宣言と初期化は別にした方が感覚的な動作順と一致するよ

594 :名無しさん@お腹いっぱい。:2015/05/24(日) 14:45:24.11 ID:fK/MeGnH0.net
なるほどわかりましたありがとうございます
特にヘルプにはのってないように思うのですが
そういうのってプログラム界隈の常識だったりするんでしょうか・・・

595 :名無しさん@お腹いっぱい。:2015/05/24(日) 15:14:23.38 ID:3fBbOc8N0.net
ヘルプのキーワードで PUBLIC で検索すると・・・

※ PUBLIC変数の初期化はスクリプト実行前に行われます

って書いてあるんだなぁ
因みにグローバル変数って何時でも何処でもアクセス可能な変数という意味だから
そういう意味では常識

余談だけどCALL命令も実行前に予め展開してから動作を開始するのでこれにも注意が必要
CALL先のグローバル変数や動作順が曖昧になるのでバグの温床に成るのだけれど初心者程ハマりやすい
CALL先のスクリプトは関数のみにして最初に1回だけCALLした方が良いってレスがよく付くのはこの為
でもこっちは好き好きかな

596 :名無しさん@お腹いっぱい。:2015/05/24(日) 15:26:28.97 ID:3fBbOc8N0.net
ちょっと補足しておくと
最初の例で話をすると id1 と id2 は何時でも何処からでもアクセスされる可能性を考えて

public id1 = -1
public id2 = -1

と宣言と初期化したら GETID(GET_ACTIVE_WIN) する迄は
他の参照箇所からでも未取得だと判断できるよ

597 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:21:21.07 ID:qvDPXZzz0.net
初歩的な事で申し訳ないんだが

IFB CHKIMG("test.bmp,-1,x1,y1,x50,y30,,IMG_MSK_BGR4")
MSGBOX("画像認識に成功しました。")
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
endif

こんな感じで画像認識のテストをしてるんだが、画像が映ってる画面をスクロールしたりして位置がずれるだけで認識してくれなくなるんだがどうしたらいいかな
同じ画像が画面に4〜5個あるんだが画像を撮った位置の奴しか認識しないし、位置がずれればそれも駄目になってしまう
Help見て画像の大きさの範囲とか色無視とか色幅に余裕をもたせる?とかいれてやってみたんだが何か間違ってるのかな
背景も単色でどれも同じだし大きさや形も一緒に見えるんだが何で認識してくれないんだろうか

598 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:36:41.33 ID:CgfbemLh0.net
ぶっちゃけCHKIMGの曖昧検索は使えないと思うよ
曖昧じゃなくても見つけられる検索用の画像を用意した方が良い

どうしても曖昧な検索に頼らないと駄目なら
過去スレに類似画像検索用もDLL貼ってた人居たでしょ
アレ使ったら?

599 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:45:38.42 ID:BPsSvuAk0.net
>>597
x1,y1,x50,y30
これサーチ範囲だろ?
サーチ範囲外に画像の位置がずれたら認識しないと思うが
そういうレベルの話ではないのだろうか

600 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:46:51.43 ID:tqKcIqpY0.net
> x1,y1,x50,y30

間違って小さな値が入っててサーチエリア外になってるとかない?

601 :名無しさん@お腹いっぱい。:2015/05/25(月) 09:47:47.90 ID:yz8xoD7N0.net
>>597
サーチ範囲指定がおかしい
「"」での囲い先もおかしい
4~5個の画像が厳密に一致していない

いっきに全部行おうとせずにひとつずつ確認しな
画像は全て一致しているのか、サーチ範囲は機能しているのかetc

602 :名無しさん@お腹いっぱい。:2015/05/25(月) 11:45:52.25 ID:zYIN4Xno0.net
画像サイズとサーチ範囲を誤解してるだろうな

603 :名無しさん@お腹いっぱい。:2015/05/25(月) 11:53:50.32 ID:uBMGP39BD
わしならこうする

Dim Win[4]
Win[0] = GetID("なんとかかんとかのアプリ")
Win[1] = Status(Win, ST_X)
Win[2] = Status(Win, ST_Y)
Win[4] = Status(Win, ST_Width) - Win[1]
Win[3] = Status(Win, ST_Height) - Win[2]

IFB CHKIMG("test.bmp",-1,Win[1],Win[2],Win[3],Win[4],,IMG_MSK_BGR4)

604 :名無しさん@お腹いっぱい。:2015/05/25(月) 11:51:55.44 ID:qvDPXZzz0.net
おおう、こんな早くレスつくとは思ってなかった、みんなありがとう
IFB CHKIMG("test.bmp")
MSGBOX("画像認識に成功しました。")
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")

endif

最初はこれでやってて色々試してあんな感じになったんだけど色々間違っているのか
その間違いは一旦置いておいて、上記ので撮った時の座標と現在の座標がほんの少しでもずれると認識してくれない事がなんでか分からないんだよね
色無視だけ追加してやってみても駄目だしさっぱり分からん、背景無視で画像の文字に反応するように出来ないかな?背景は水色っぽくて文字は白なんだけども
やりたい事は上から下にスクロールしていって画像が出てきたらクリックってのをしたいんだけど、中々難しいねぇ

605 :名無しさん@お腹いっぱい。:2015/05/25(月) 12:28:51.61 ID:mrtgo7Ug7
>>603
mouseorgを使うといいよ

606 :名無しさん@お腹いっぱい。:2015/05/25(月) 12:34:01.34 ID:zYIN4Xno0.net
>>604
とりあえずx1,y1,x50,y30を
0,0,2000,2000くらいにして動かしてみたら?

607 :名無しさん@お腹いっぱい。:2015/05/25(月) 12:49:50.53 ID:SvpDjoG90.net
間違いのせいでそうなってる可能性が高いのに、間違いを一旦置いといてどうするよ

608 :名無しさん@お腹いっぱい。:2015/05/25(月) 13:59:14.70 ID:qvDPXZzz0.net
いや>>604ので基本チェックしてるのよ
座標とか色無視とか何にも付けない状態で画像とり直して何度もやってるんだが駄目で困ってる
位置によって微妙に色変わってんのかなぁ、画像大量に用意してやるくらいしかないかね?

609 :名無しさん@お腹いっぱい。:2015/05/25(月) 14:38:33.43 ID:yz8xoD7N0.net
>>608
やっていることと言っていることがちんぷんかんぷん
お前さんが整理しきれてないからこちらもちんぷんかんぷん

どこまでが成功してどこから失敗したのか、何をどうしたいのか簡潔にかいたらやさしいお兄さんが教えてくれるかもね

610 :名無しさん@お腹いっぱい。:2015/05/25(月) 14:44:38.98 ID:abs8tZNk0.net
>>608
実際に位置によって色が変わってるか確認してみた?

アウトラインはアンチエイリアスがかかることが多いから、3dotくらい削ると安定することがある

611 :名無しさん@お腹いっぱい。:2015/05/25(月) 14:46:48.26 ID:99MSNuhI0.net
しらんがな

612 :名無しさん@お腹いっぱい。:2015/05/25(月) 16:02:39.09 ID:zYIN4Xno0.net
testが見えるように表示
testの画像を取って保存
print chkimg("test")を実行すると結果がtrue
僅かに画面をスクロールさせる
print chkimg("test")を実行すると結果がfalse

でいいの?
これなら、>>610のように見た目分からないレベルの画像加工処理が入ってるか
サーチ対象の画像が透過してるとかだな

曖昧検索のDDL使うか、
画像を小さくしたり、peekcolorで頑張るという手もなくはない

実際のサイトや類似サイトを示せばもっとイメージできるんだが

613 :名無しさん@お腹いっぱい。:2015/05/25(月) 17:18:28.59 ID:wJZicumD0.net
背景色の影響が文字だか画像に影響してるんでしょ
画像を加工して透過指定すればいい
画像加工の方法は
ペイントを起動4隅を同じ色にして、透過させたい部分を同じ色で塗るだけ

勘違いしてるであろう座標指定はとりあえずなしで以下で実行
IFB CHKIMG("test.bmp,1,,,,,,IMG_MSK_BGR4")

614 :名無しさん@お腹いっぱい。:2015/05/25(月) 18:46:48.48 ID:j/NgR3bi0.net
間違いなく画像が異なってるよ。
色幅はあくまで色しか幅を持たせてくれない。
色が全く同じでも、1ピクセルだけ違う場所があればFALSEだからね。
FLASHなんかで画像を表示してると、その処理方法によっては、
1ドット動いただけで、ドットレベルでは異なる形状になる。
特に、画像を原寸大で表示していない場合は確実にそうなる。
CHKIMGは、どの画像のどこを見れば、そういった影響から
逃れられるかを見つけ出せるかが勝負どころ。
少なくとも、不一致判定となった2つの画像を数百倍に拡大して
完全一致していないのかどうか自らの目で確かめることぐらいは必須。
調査の結果、無理という結論に至ることも少なくないぞ。
どうしてもダメなら、ChkImgXを使わせてもらえばいかが。
ところでダブルクォーテーションで囲む範囲や変数の使い方が
初心者レベルで間違えてるのは判ってるのかな?

615 :名無しさん@お腹いっぱい。:2015/05/25(月) 21:28:12.99 ID:SvpDjoG90.net
「test.bmp,-1,x1,y1,x50,y30,,IMG_MSK_BGR4」 というファイル名なのかも?

616 :名無しさん@お腹いっぱい。:2015/05/25(月) 21:55:47.39 ID:NyMNGZNA0.net
その発想はなかったw

慣れてると2chに貼られたコードでも違和感ですぐ気付くけど
慣れないうちは文法ごとに色分けできるテキストエディタとか使えば
こういう単純ミスはかなり防げるんだけどな

初期設定のままUWSCが色分けできるMeryいいよ

617 :名無しさん@お腹いっぱい。:2015/05/25(月) 22:06:21.56 ID:99MSNuhI0.net
ID:qvDPXZzz0みたいなのは、延々とアホみたいな質問するだろうから無視が一番

618 :名無しさん@お腹いっぱい。:2015/05/26(火) 12:57:02.60 ID:oJaZjdVLu
CREATEFORMで読み込んだhtmlのフォームのtext areaに、SETFORMDATAで複数行のテキストを入力させています。
テキストは全部入るのですが、その表示がおかしいです。
1行目だけが表示されて、最初の改行以降2行目からは白く隠れてしまいます。
見えませんが選択することは出来ますし、1文字でも編集したら瞬間に全部がちゃんと表示されます。
改行を<#CR>にしてもCHR(10)にしてもCHR(13)にしても変わりません。
UWSC Pro 4.9c、Wix XP SP3、IE8です。
同じ症状の経験ある人いませんか?

619 :名無しさん@お腹いっぱい。:2015/05/26(火) 13:19:38.70 ID:WrGTn/9gZ
それはソースないとわからんわ。

無料でプログラムもらっておいて礼すら言わないカスって結構いる?
ネット上での話だが。思ったよりイラつくなこれ。

620 :名無しさん@お腹いっぱい。:2015/05/26(火) 19:24:32.38 ID:Dm8v7lsf0.net
chkimgの色幅なんだけど

指定なし→true
IMG_MSK_BGR1〜4→false

ってなっちゃうんだけど、おんなじ状況の人いる?

wind() //座標をウインドウ基準に
public wid
wid = status(id, ST_WIDTH)
public hit
hit = status(id, ST_HEIGHT)
path =(画像フォルダ)
num =getdir(path)

for A = 0 to LENGTH(GETDIR_FILES)-1
ifb chkimg(path +"\"+ GETDIR_FILES[A],,1,1,wid,hit)//ここのオプションを変える
print GETDIR_FILES[A] +"…OK"
else
print GETDIR_FILES[A] +"…NG"
endif
next

621 :名無しさん@お腹いっぱい。:2015/05/26(火) 19:32:37.27 ID:U67im66g0.net
あ、自己解決しました
y2の後に番号があるの忘れていました。

622 :名無しさん@お腹いっぱい。:2015/05/26(火) 20:58:21.66 ID:uLWAtFpta
>>618
UWSC Pro 5.1.1.0 Win8.1 IE11の環境だと問題なく改行表示される
<textarea name="Text1" rows=4></textarea>
SETFORMDATA("aaa<#CR>bbb", "Text1")

再現できる環境が無いので気休め程度の事しか書けないのが申し訳ないけど
レンダリングモードを変更してみるとか
<meta http-equiv="X-UA-Compatible" content="IE=8">
\r\nを送ると改行されるとの情報もあるのでCRLFを指定して送ってみるとか
SETFORMDATA("aaa"+chr(13)+chr(10)+"bbb", "Text1")

textareaペーストが一番早い気もする

623 :618:2015/05/26(火) 21:14:22.55 ID:ksZNBT0ug
>>622
レンダリングモード変更で解決しました。
CRLFはダメでした。
ありがとうございます!

624 :名無しさん@お腹いっぱい。:2015/05/28(木) 10:26:46.72 ID:8Pc/2x0R0.net
アンダーバー入れると行の途中で改行できるようになるのか
アンダーバーの後に//入れればコメントもできる
行の途中にコメント入れたいときに便利だなこれ

625 :名無しさん@お腹いっぱい。:2015/05/29(金) 01:22:09.81 ID:biwb9Jcst
exe化したのを販売とか配布したら、
腕のいいプログラマーだったら解析とかできちゃったりするの?

販売するときに「ここは気を付けよう」ってポイント何かあれば
教えて下さい

626 :名無しさん@お腹いっぱい。:2015/05/29(金) 10:31:03.87 ID:n3vawDngH
>・ EXE化ツールが付属しています。(EXE化後は単体での実行が可能であり、ライセンスフリーにて配布できます)

販売できますと書いてない
解析すればすぐ内部コアがUWSCって分かる
同人的な位置づけで限定的な公開方法で有償配布ならまず何か言われることはないと思うが
あとは作者次第

こういうプログラムを有償で組みますならOKなんじゃね


ちなみにスクリプトは絶対に元に戻せない仕様らしい(作者談)が
多少かじったことがある人ならば即どんな処理をしてるのかわかるぞ
これはUWSCに限った事じゃなくてどんな言語でもそうだけど

627 :名無しさん@お腹いっぱい。:2015/05/29(金) 16:36:29.96 ID:biwb9Jcst
そうなの?w

教えてくれてどうもありがとう。
ライセンスフリー=販売可能だと思ってたわ。馬鹿やな俺

もし販売するってなったら皆、C++とかで作ってるの?
ググってもわからんかった。

628 :名無しさん@お腹いっぱい。:2015/05/29(金) 17:23:25.91 ID:VWSIePJRk
ライセンスフリーってのは、UWSCのライセンスがかかってこないって事だろ。
配布に関して有償とか無償とか書かれてないから、販売していいんだよ。

無料配布の開発環境で販売していけない場合、無償での配布のみ可能とか書いてあるよ。

ttps://www.embarcadero.com/jp/products/delphi/starter-faq
> C++Builder Starterは、〜関連する収益が、1,000 USドルを越えないというライセンス規定

> 「Indie」ライセンス
> 「Indie」ライセンスは、特別な商用ライセンスで、フリーウェア、オープンソース、限定的な「収益」を上げる商業用の利用が許諾されます。

> 非商用ライセンス
> 非商用ライセンスは、価格の安い製品の提供を可能にしますが、同時に開発した製品を販売することを許諾しない

629 :名無しさん@お腹いっぱい。:2015/05/29(金) 19:28:39.07 ID:MqwgUQQOd
>>625
販売については公式掲示板過去ログに
〜要点のみ抜粋〜

>自作して、EXE化したスクリプトは、販売も可能なのでしょうか。
>DATE:2007/9/8(Sat) 15:45 No.1080

>OKです。
>DATE:2007/9/8(Sat) 19:12

〜抜粋終わり〜
(UWSC掲示板過去ログ検索boardlog「EXE版の販売について」で検索)
とやりとりがあるので可能だろうけど
販売する前に問い合わせておいた方が確実だろうね

解析については
EXE化したUWSファイルは暗号化されて取り込まれているので
単純にテキストエディタやバイナリエディタで開いても内容はわからない
復元するツールがあると言う話も聞いたことが無いので
一般人が内容を見ることは無理

>腕のいいプログラマーだったら解析とかできちゃったりするの?
解析スキルの高い人がその気になれば復元されてしまう可能性は0ではない

>販売するときに「ここは気を付けよう」ってポイント何かあれば
>教えて下さい
UWSCは環境や操作する側の設定に依存する部分が多いので多くの環境で動かすには
かなりの技術が必要
少なくともこの質問をする技術レベルならトラブルになることが予想されるので
販売は止めておいたほうが良いと思うよ

630 :名無しさん@お腹いっぱい。:2015/05/29(金) 19:58:47.26 ID:VWSIePJRk
EXE版を売るメリットなんかないと思うけどね。

EXEはウィルスの感染対象になる。
遠隔操作事件のように、悪意のコードを埋め込まれて再頒布される可能性がある。

>>629 が解析できないと言ってるのはあくまでもスクリプトの部分であって、
EXEとしてのフォーマットは決まっているので感染するのは簡単。

UWSCを使ったゲームマクロのスレでもこのUWSCスレでも、
何かいいものがあるとすぐに悪意のスクリプトがばら撒かれていることを知っていれば
感染可能性のあるEXEで配布なんてやろうとは思わないでしょ。

ゲームの自動化って需要はあるんだけど
削除されちゃうんだよね。
自分でホームページ作って公開したり、
取り扱ってくれるところがあればいいけど
通報があるとすぐに削除されてしまう。
その場合、悪意のコードを埋め込まれたEXEがどこかで再頒布されると、
オリジナルを頒布した人が逮捕される。

あと、「EXEなら何でもできるでしょ?」って、要求が大きくなるのもデメリット。

631 :名無しさん@お腹いっぱい。:2015/05/30(土) 09:00:22.36 ID:sFbRDONtD
>>628-630
すげー参考になる。めっちゃありがとう。
技術的な質問板はよく見るけど販売系は調べ方がよくわからない。

>>629
>>UWSCは環境や操作する側の設定に依存する部分が多いので多くの環境で動かすにはかなりの技術が必要

逆に多くの環境で間違いなく動く言語教えてもらえるとすげーありがたい。
Javascriptは環境に左右される印象がある。やっぱりC++とかが良いの?

>>630
ゲームマクロはこの前、逮捕者出たよね。
逆にもしプログラムを売るとしたら何(どんな言語かetc)で、
どういう形が良いと思う?

ちょっとスレチになって申し訳ない。
適切な板があれば移動する。

632 :名無しさん@お腹いっぱい。:2015/05/30(土) 09:45:55.85 ID:NtbxeqpP0.net
MOUSEが押下され続けてる状態ってのを取得したいんだけど、
GETKEYSTATEでVK_LBUTTONを時間区切って何回か見る以外に方法ある?

633 :名無しさん@お腹いっぱい。:2015/05/30(土) 10:06:44.58 ID:wmeXMlqtX
>>631
こんなところでそんな話してる奴が商売できるわけがないから考えるだけ無駄。

>>222-226

【JavaScript】スクリプト バトルロワイヤル49【php,py,pl,rb】
ttp://toro.2ch.sc/test/read.cgi/tech/1430308707/
> 608 名前:デフォルトの名無しさん[sage] 投稿日:2015/05/21(木) 21:46:24.25 ID:uDd3DnUr.net
>  つまるところ結局はAppleさんとMSさんなんすよね
>  Swift,C#

> 909 名前:Office & Gamers ◆G144Hzgh2.0e [アハ♪” uh huh] 投稿日:2015/05/30(土) 03:00:42.71 ID:TKwdVSEz.net
>   それと、俺様がJSに手を染めない理由は、ソース丸見えってところw
>   もうね、こんな公開処刑みたいなインタープリターだけはやめとけw

C++でも環境はいろいろ。
むしろ、JS は OS の違いを吸収してくれてるはず。
JS でもサーバー必須なら丸見えでも商売になってる。

634 :名無しさん@お腹いっぱい。:2015/05/30(土) 10:14:18.87 ID:/5qWzqR+0.net
それが一番手っ取り早いと思うよ
何回か見る必要があるって理解しているから大丈夫だと思うけれど
判定前に一度空読みしてバッファをクリアしないと瞬間値にならないからね
(厳密にはそれすらも瞬間値ではないが)

635 :名無しさん@お腹いっぱい。:2015/05/30(土) 10:20:17.69 ID:NtbxeqpP0.net
>>634
そういう関数なり引数なりがあるかと期待したけど無いんだね
thx

636 :名無しさん@お腹いっぱい。:2015/05/30(土) 16:30:17.70 ID:TZwPvYTO0.net
初歩的な質問で申し訳ないんですが
一つのウィンドウ上で作ったスクリプトを
もう一個同じ環境の別ウィンドウで並列処理させたいのですが
THRED SENDTOTEST

ID = EXEC("KASOU1")
call test.uws

PROCEDURE SENDTOTEST()

ID = EXEC("KASOU2")
call test2.uws
FEND

としています。
一応、全く同じスクリプトにはせずに
各スクリプトの頭に
test.uwsの場合
id = GETID("KASOU1")
MOUSEORG(id)

test2.uwsの場合
id = GETID("KASOU2")
MOUSEORG(id)

を追記していますがマウスの取り合いになってしまい、上手く並列処理してくれません。
まだ、UWSC自体触り始めたばかりで間違っている所は多々あるのでしょうが、完全に並列化するのはやはり難しいのでしょうか?

637 :名無しさん@お腹いっぱい。:2015/05/30(土) 16:50:58.30 ID:3KFoCyzZ0.net
>>636
スレッドでだめそうなら
uwsc自体を二つ起動しちゃうかな
execとかで

638 :名無しさん@お腹いっぱい。:2015/05/30(土) 16:59:39.17 ID:BGEAI9SQ0.net
「マウスの取り合い」が具体的に何を指しているか明確にしないと

そもそも2つのウィンドウを両方アクティブにして
何か処理させるのは原理的に出来ない

だから答えは
「何をやりたいかによって並列化できるかどうかは決まる」
かな

639 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:16:56.66 ID:24/7t0QER
Mousorgの指定してるIDが取り合いになるってことじゃないの?
それなら2つ起動しないとダメよ
現在のマウス移動可能範囲っていうグローバルな値に格納してるわけだし

640 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:09:12.74 ID:TZwPvYTO0.net
CHKIMGを使った画像認識してクリック
ウィンドウ相対座標のクリック等です

>>637
UWSC自体を二つ起動して
それぞれにtest.uwsとtest2.uwsを再生させるという認識で合ってますか?

641 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:40:00.80 ID:sFbRDONtD
>>633
色々ありがと! とりあえずいろいろ調べてみて、試せるところから試すわ。

642 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:36:01.89 ID:3KFoCyzZ0.net
>>640
そう思ったけど
>>638の言うように、クリックして話す前にマウスが移動されたりするとかで挙動がおかしくなるから危険
コントローラ用のuwsを用意して、
二つuwsの処理に実行権限を振り分ける感じがいいかな
・コントローラuws
call a.uws;b.uws
i=0
while true
select i mod 2
case 0;a()
case 1;b()
selend
i=i+1
wend

・a.uws
fuction a()
//中断出来るまでの一処理だけ書く、2週目以降のための状態を変数に保存するのも忘れずに、public変数の競合も注意、classとかで括った方がいいかも
fend
・b.uwsはa.uwsと同じ感じで

643 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:36:08.62 ID:xMVR/Xi20.net
片方の処理をしてる時はもう片方は待つって処理を入れて
排他処理をさせれば良いだけではなくって?

644 :名無しさん@お腹いっぱい。:2015/05/30(土) 17:44:25.07 ID:3KFoCyzZ0.net
>>643
callで出来るならそっちの方がスマートか…

645 :名無しさん@お腹いっぱい。:2015/05/30(土) 18:06:06.45 ID:TZwPvYTO0.net
>>644
丁寧な回答有難うございます
内容は完璧には理解出来てないのですが要勉強ですね…
>>643
例えば
aを処理してる間にbを待機させる処理を入れて
中断を挟める所にcallでbを処理させて、bが中断挟める所にaの処理をcall
以下ループという感じでスクリプトを組めば大丈夫という事でしょうか?
何か質問ばかりですいません…

646 :名無しさん@お腹いっぱい。:2015/05/30(土) 18:47:53.27 ID:3KFoCyzZ0.net
>>645
>>644のcallで出来るならの部分は忘れて、変なこと言った
>>642をそのままの感じでやるか、
スレッドを使ってpublicな変数に実行する処理の識別子を入れる感じ?
・メインuws
public runNo="a"
//call宣言やスレッド実行処理を書く

・a.uws
procedure a()
while true
//やりたい処理を入れる
waitA()
//やりたい処理を入れる
waitA()
wend
fend
procedure waitA()
//他の処理実行
runNo="b"
//実行権限渡されるまで待つ
while runNo<>"a"
sleep(0.1)
wend
fend

・b.uws
//aとほぼ同じ
procedure waitB()
runNo="a"
while runNo<>"b"

647 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:00.81 ID:TZwPvYTO0.net
>>646
ここまで丁寧でしかもテンプレ的な物まで作ってくれるなんて…
感謝の念でいっぱいです!
教えてもらった方法で色々試行錯誤してみます
本当に有難うございました!

648 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:09.37 ID:3KFoCyzZ0.net
あとcallは処理実行するわけじゃなく、
その場所にソースをコピーしただけだと思った方がいい

649 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:03:11.95 ID:/5qWzqR+0.net
同じ事をするソースを2重に管理するのはバージョン管理が一致しないで後々バグの温床になるよ
スレッドを使った似たようなケースでこんなの作って
それぞれのスレッドから呼び出してどっちか区別可能しながら制御したことあるわ

//プロセス番号とスレッド識別子でIDを作成
DEF_DLL GetCurrentProcess(): hwnd: kernel32
DEF_DLL GetCurrentThreadId(): hwnd: kernel32
Function GetCurrentID()
 result = GetCurrentProcess() + "." + GetCurrentThreadId()
FEnd

650 :名無しさん@お腹いっぱい。:2015/05/30(土) 19:45:45.98 ID:k0Af3UX50.net
実際に並列処理ができるわけじゃないんだし、一つにまとめて順番にやった方がいいのでは

651 :名無しさん@お腹いっぱい。:2015/05/30(土) 20:09:31.86 ID:FaUG3gh00.net
マウス操作などのユニークなリソースを
複数のスレッドから奪い合って制御するなんて
悪手の典型じゃんかデッドロックの温床だよ

UWSCはあくまで人間が手動で操作する所を自動化するもの
2人の人間が一つのPCを操作する様を自動化する状況なのか?
1人が対象を頻繁に切り替えて擬似並列する操作を自動化するはずだ

対象を切り替えて処理するのを実現するのは手間の問題で必ず実現可能だが、
手動では再現したことのないデバッグ不能な複数スレッドからの並行自動操作
を実現するのは、そもそもプログラムレベルで正しく書いたとしても、
その成果は、その構想がOSの仕様上そもそも不可能な動作だったことを証明
する結果となるリスクがあるぞ。

料理が盛りつけられたお皿が2つ。これを両手で同時に食べようとしても、
お箸が一膳しかなかったり、お口も一つしか無かったというオチにならんようにな。

652 :名無しさん@お腹いっぱい。:2015/05/30(土) 21:50:16.85 ID:5/MuJWZb0
>>631
まず>>631が理解したほうが良いと思うことはUWSCはWindows操作を自動化するツールのスクリプトだということ
メリットは、手動で操作できることはほぼ比較的簡単に自動化出来ること
つまり新しくウインドウを作成してデータ処理をすることは(無理では無いが)不得意だということ

そこを踏まえて
>逆に多くの環境で間違いなく動く言語教えてもらえるとすげーありがたい。
多言語も変わらない(UWSCのような他プログラムをコントロールするプログラムという意味で)
コントロールされる側の環境、設定に(Windowsの環境、設定も含めて)依存する部分がどうしても出てくるし
たとえそれはC++等の他言語で作っても同じことで
多くの環境で動くようにするには環境間の差異を認識して処理を振り分ける必要があるのだけど
その環境間の差異は違う環境で実際動かしてみないと気づかない事が多々あると言うこと
その差異を認識して組んでるスクリプトを見ると参考になるし、素直に尊敬するよ

一言でいうと、言語の問題ではなく処理の問題 なのでUWSCでも環境の差異を吸収して動くものは作成可能

シェアウェアの販売方法を知りたいと他スレで質問するにしても
もう少し具体的に質問したほうがレスが付きやすいかもしれないね

653 :名無しさん@お腹いっぱい。:2015/05/31(日) 06:59:11.72 ID:1XAFtc6rG
>>652
ありがとう!優しいな。
極端に言うと
msgbox("こんにちは")
って表示させるだけのプログラムであれば、またそれが相手側に表示を
させられていれば、言語は何でもいいし、問題もないってことだよね。

その辺踏まえていろいろ試してみるよ。uwscでもできそうで良かった。
ありがとう。l

654 :名無しさん@お腹いっぱい。:2015/05/31(日) 06:56:08.93 ID:hSYLC6Mx0.net
https://service.gmx.com/registration.html
このページのフォームを埋めて行きたいのですが、
フォームのID?が動的に変わっているようで、指定の仕方がわかりません。

IESetData(IE,FirstName,"id57")
こんな感じだと思うのですが、id57の部分が変わってしまうのか入力されません
わかる方お願いします。

655 :名無しさん@お腹いっぱい。:2015/05/31(日) 07:42:54.65 ID:spRZd9M70.net
>>654
ガチの犯罪報告ワロタwwww
通報しますた

656 :名無しさん@お腹いっぱい。:2015/05/31(日) 08:31:18.27 ID:+234HVzm0.net
>>654
そんなの手でやればいい
大量にアカウント取得したいと思ってる悪人以外はそう考えるだろう

657 :名無しさん@お腹いっぱい。:2015/05/31(日) 15:46:00.29 ID:SDSS//Sp0.net
全部画像検索で操作したらいい

658 :名無しさん@お腹いっぱい。:2015/06/01(月) 07:23:47.81 ID:7eb6mTTQ0.net
IELINKってフレーム分けされてるページだと文字列を読み込めないんですかね?

menu_fってフレームと、main_fってフレームがあって、menu_f内の「スケジュールの入力」って文字列をクリックさせたいんだけど、うんともすんとも言わん>.<

659 :名無しさん@お腹いっぱい。:2015/06/01(月) 14:29:47.45 ID:Axa8otif0.net
現在値のIEオブジェクトはフレーム定義のみのパターンかな
であればアクセスしたいフレームのIEオブジェクトを取得しよう
公式 FAQ #n37 に習って
同じドメインで同じプロトコルであればDOM操作するのも手

660 :名無しさん@お腹いっぱい。:2015/06/01(月) 20:00:58.86 ID:B4sEGaAv0.net
気になってframesetとiframeの両方を試してみたけど
IELinkは正常に動作する

操作を受け付けないframeとかあんのかな?

661 :名無しさん@お腹いっぱい。:2015/06/01(月) 20:04:32.22 ID:B4sEGaAv0.net
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.ink.or.jp/~bigblock/html/frame/01.html")
BusyWait(ie)
msgbox("frame IELink start")
msgbox(IELink(IE,"自己紹介"))

IE.Navigate("http://masaboo.cside.com/new_html1/ht_44.htm")
BusyWait(ie)
msgbox("iframe IELink start")
msgbox(IELink(IE,"次のページ"))

Procedure BusyWait(ie)
 repeat
  Sleep(0.2)
 until (! ie.busy) and (ie.readyState=4)
Fend

662 :名無しさん@お腹いっぱい。:2015/06/02(火) 01:33:31.66 ID:kONnq2Nk0.net
変るか?

663 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:19:29.49 ID:SCl6mZXT0.net
皆さんありがとう
試行錯誤しながら、教えてもらったことを試してみます。

お前ら優しいのな
惚れてまうわ

664 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:45:41.51 ID:SCl6mZXT0.net
今試してみてページの作りの違いなのかソース表示すると

>>661さんのサンプルページの場合
どこでソース表示しても、メニューとコンテンツの二つのフレームがあると分かるけど、

自分がUWSCを使用したいページの場合
・各フレームのソースのみが表示される
→メニュー部分でソース表示するのと、メイン部分でソース表示するのと内容が違う

mainフレームにもmenuフレームにも、headとbodyがあって
さらに言えば、ページ内にヘッダーがあるんだけど、そのヘッダーにもheadとbodyがある…。

何かすげーややこしい構造の管理ページ。
ちなみに、ヘッド部分・メニュー部分・メイン部分のそれぞれのリンク先を指定してみたけど、どれも読み込めなかった

665 :名無しさん@お腹いっぱい。:2015/06/02(火) 17:50:40.17 ID:SCl6mZXT0.net
あれ、ファイアーフォックスだとちゃんとソース表示される

666 :名無しさん@お腹いっぱい。:2015/06/03(水) 14:49:13.90 ID:jzVkSga+0.net
chkimg用の透過画像を簡単に作れる方法はないかな?

具体的には一番濃い色だけを残して他は透過色として塗りつぶしたいんだけど
色で選択して選択範囲反転、塗りつぶし、とやるのがいいのかな?

使ってるソフトがあったら教えて下さい
ペイントで1ドットずつやってるから目が疲れた

667 :名無しさん@お腹いっぱい。:2015/06/03(水) 15:11:46.10 ID:Gp34xgkt0.net
自分はフリーのgimpとか使ってたな

668 :名無しさん@お腹いっぱい。:2015/06/03(水) 15:39:19.35 ID:9AhfqGY+L
twitterのプロフィール画像、ヘッダー画像をアップロードしたいんだけど、
プロフィールを編集を押下から先がわからない。

プロフィール画像を変更→画像をアップロードのやり方分かる人いる?

初めて1週間のおれにはソースにid,nameがないぽくてお手上げ状態。。

座標クリックで凌ぐしか今思いつかない。
分かる人助けて

669 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:28:14.77 ID:jzVkSga+0.net
gimpか
ありがとう

670 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:48:09.69 ID:W59efDtX0.net
paint.netもおすすめ

671 :名無しさん@お腹いっぱい。:2015/06/03(水) 16:57:08.35 ID:UeOvBRd10.net
特徴的なごく狭い範囲を加工するだけだからMSPaintで十分だったわ。
てか、あまりでかい画像を持たせるのはなんかやだった。

672 :名無しさん@お腹いっぱい。:2015/06/04(木) 17:25:02.12 ID:CDT2sb0DE
ここでは初歩的な質問かもしれないけど、どうしても作りたいマクロがあって質問したい。

A「@30分起きに一度再生したいスプリクト」・B「常に再生(ループ)しておきたいスクリプト」を2つ。

基本はBを再生しておきながら、30分おきにAを再生(その間Bは停止)する場合どういうスケジュールにすればいいかな。

673 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:03:55.25 ID:8OB69mUNU
>30分おきにAを再生(その間Bは停止)
処理の内容によるとは思うけどAの再生状況をBが知る必要があるから
iniファイルを使ってAの再生フラグを作成してBの再生を制御するか
もしくはAとBを制御するCという制御用スクリプトを作ってそこから
CALLでAをB呼び出す方法
後者のほうが簡単かな

674 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:05:43.29 ID:8OB69mUNU
×CALLでAをB呼び出す方法
○CALLでAとBを(Cから)呼び出す方法

675 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:33:32.80 ID:KJajLfqNh
-Main.uws-
Thread FunctionA()
Thread FunctionA()
Exit

Procedure FunctionB()

676 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:36:55.08 ID:KJajLfqNh
書き込みウインドウで編集しようとしたら途中で書き込んじゃった

>>672
これを起動しておく

--Main.uws--
Thread FunctionA()
Thread FunctionB()
Exit

Procedure FunctionA()
 While True
  CALL A.uws
  Sleep(60 * 30)
 WEnd
FEnd

Procedure FunctionB()
 While True
  CALL B.uws
 WEnd
FEnd

677 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:44:00.99 ID:2TqM2PJKS
実質的に並行処理ではない(時間になったらBは途中であっても止める)から
この場合はスレッドは使うべきじゃないよ

Bで1行処理するごとに時間チェックする処理を呼び出して
時間になったらそのままAをコール、そのままBの処理に戻ると簡単

678 :名無しさん@お腹いっぱい。:2015/06/04(木) 18:53:50.80 ID:2TqM2PJKS
あと「30分おきに」の定義も厳密にしないとダメかな

>>676のような「30分+Aの処理が始まって終わるまでの時間」ごとになのか、
Aの処理時間とは無関係に、0分に最初の処理があれば30分、60分、90分・・・
のタイミングに呼ぶのかでも処理方法は全然違うから注意したほうがいい

679 :名無しさん@お腹いっぱい。:2015/06/05(金) 01:38:45.35 ID:Y75hI0BD0.net
photoshopで「イメージ」→「色調補正」→「二階調化」閾値255
これは真っ白のみ切り抜く方法だが
他の色でやりたいなら「自動選択ツール」許容値1とかでも



それ以外のやり方聞いてるんですよねスミマセン…

680 :名無しさん@お腹いっぱい。:2015/06/05(金) 03:28:03.59 ID:ACIe9+Kh0.net
このスレ的にはスクリプトでイメージを処理すれば良いんだけど
UWSCでイメージ処理は正直面倒くさい

681 :名無しさん@お腹いっぱい。:2015/06/05(金) 07:06:50.75 ID:lq3LJr2I0.net
IrfanView
とかは?

682 :名無しさん@お腹いっぱい。:2015/06/05(金) 11:14:16.47 ID:55WfbWby0.net
chkimgは処理速度が遅いから場所によっては数箇所peekcolorで判定する事もあるわ

683 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:33:41.73 ID:10/gL9fe0.net
ブラウザ操作の質問です

IEがビジー状態の間待つ
というコードをchromeではどう書けばよいですか?

684 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:57:29.93 ID:UlD2Vx9U0.net
基本的には書けない
セレニウム使うか素直にIEで

685 :名無しさん@お腹いっぱい。:2015/06/06(土) 09:58:52.47 ID:2jwoan/j0.net
俺なら、読み込み完了が分かる画像が表示されるまでスリープ
表示されたらさらに数秒スリープ
って感じのコードをゴリゴリ書くかな
アバウトだから、異常チェックは念入りに必要だけど

686 :名無しさん@お腹いっぱい。:2015/06/06(土) 10:45:55.76 ID:10/gL9fe0.net
>>684
ありがとうございます
>>685
ありがとうございます。それに挑戦してみます

687 :名無しさん@お腹いっぱい。:2015/06/06(土) 22:30:19.68 ID:6ckcFYnr2
uwscを起動すると通常は横に細長い小さなコントロール用パネルが表示されますが、
あるタブレットで起動すると、uwscのコントロール用パネルが最大化して起動してしまいます。

uwsc.exeの起動だけならウインドウバーをダブルクリックして元のサイズに戻せるのですが、
マクロファイルから起動させると最大化したままでウインドウバーが消えるので、まったく操作不能になります。
(タスクバーにも覆いかぶさるので、ソフトウエアキーボードが使えません)

タブレットはdell venue 8 pro、win8.1 32bit、
参考までに解像度は1280x800で、それ以下のサイズに変更しても同様の現象が起きます。
今落とせる古いバージョンのuwscでも同様の現象が起きます。
どなたか解決方法がわかる方いませんでしょうか。

688 :名無しさん@お腹いっぱい。:2015/06/07(日) 02:00:40.39 ID:gOW6AkJ5Y
>>687
検索するとwin8以降は画面解像度と文字サイズ設定で常にウィンドウが最大化されて開く仕様があるらしい
という事はわかりましたが、質問に解像度の事が書いてあるのでそこは承知している感じを受けました
根本的な原因はわかりませんが、取り敢えずUWSCの改善案として

>uwsc.exeの起動だけ〜
→UWSC右クリック→「タスクトレイに格納」を選択する
これで次回から起動時にタスクトレイに格納されるはず

>マクロファイルから起動〜
スクリプトファイル先頭にUWSCを最小化する命令を追加しておく
CTRLWIN(GETID(GET_THISUWSC_WIN),MIN)
(しかし、関連起動ではメイン画面は表示されなかったと思うのですが…)

関連起動時に表示されるウィンドウがログ表示用ウィンドウだとしたら
スクリプトファイル最初にあるPRINT文の直後にACW命令を追加
ACW(GETID(GET_LOGPRINT_WIN),0,0,200,150)

似たようなスペックのwinタブレットASUS VivoTab Note 8を使っているのですが
該当した症状はないので機種固有の設定等なのかもしれませんね
原因がわかりましたら報告していただけると他の方の参考になると思うので助かります

総レス数 1144
361 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200