自動化ツールuwsc使いよ集まれ6at SOFTWARE
自動化ツールuwsc使いよ集まれ6 - 暇つぶし2ch646:名無しさん@お腹いっぱい。
11/04/22 15:10:30.95 brg2zLT60
いつも参考にさせていただいてます。
以下のスクリプトの組み方を教えていただけナでしょうか。

①「画像A」が出るのを待つ
②出たら「1」のキーを押す
③数秒から数分で「画像B」が出るので待つ
④出たら「2」のキーを押す
※画像Aと画像Bは画面に出たままだが、もう押さない
⑤数秒から数分で「画像C」が出るので待つ
⑥出たら「3」のキーを押す
⑦画像A・B・Cが消えるので①に戻る

よろしくお願いします。



647:名無しさん@お腹いっぱい。
11/04/22 15:13:29.36 DgOL/gJc0
参考にした結果どこまでできたん?

648:名無しさん@お腹いっぱい。
11/04/22 15:38:26.54 Rbjr3RvM0
>>646
> ①「画像A」が出るのを待つ
> ②出たら「1」のキーを押す
> ③数秒から数分で「画像B」が出るので待つ
> ④出たら「2」のキーを押す
> ※画像Aと画像Bは画面に出たままだが、もう押さない
> ⑤数秒から数分で「画像C」が出るので待つ
> ⑥出たら「3」のキーを押す
> ⑦画像A・B・Cが消えるので①に戻る

組み方ってのはコレ自体の事。

この次やることは単に関数調べて書き写すだけ。
頭使わない単純作業。

そんなもの自分でやれ。

649:名無しさん@お腹いっぱい。
11/04/23 21:42:07.67 6YOXa8ZZ0
while true
ACW(GETID("Google Chrome","Chrome_WidgetWin_0"),133,11,1050,974,0)
KBD(VK_NEXT,CLICK,40)
Ifb chkimg("1.bmp") = true then
  sleep(181)
endif
Ifb chkimg("2.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+150, G_IMG_Y+10,100)
endif
Ifb chkimg("3.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
wend

調べたのですが、中々見つけることが出来ないので質問させて下さい。
指定の画像が現れた場合にバックグラウンドでクリックを実行するということは可能でしょうか?
MOUSEORGを使用するところまではわかったのですが、その先が・・・
お願い致します。

650:名無しさん@お腹いっぱい。
11/04/23 21:47:16.14 WTYNWcLE0
画像の出る場所もバックグラウンドなら不可能

651:名無しさん@お腹いっぱい。
11/04/23 22:09:12.38 6YOXa8ZZ0
>>650
ありがとうございます。

id=GETID("Google Chrome")
MOUSEORG(GETCTLHND(id,2))
while true
Ifb chkimg("A.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
Ifb chkimg("B.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
Ifb chkimg("C.bmp") = true then
  BTN(LEFT, CLICK, G_IMG_X+RANDOM(10), G_IMG_Y+RANDOM(10))
endif
wend

上記の状態だとクリック時にマウスポイントが移動し
アクティブ状態になってしまいます・・・
これを非アクティブで実行するにはどうしたら宜しいでしょうか?
もちろん画像は見える状態にあります。

652:名無しさん@お腹いっぱい。
11/04/23 22:57:15.99 HDl2pAxn0
>>651
クリック=アクティブ化

653:名無しさん@お腹いっぱい。
11/04/23 23:15:07.85 kr3w3hsZ0
非アクティブクリックは出来る

654:名無しさん@お腹いっぱい。
11/04/23 23:38:39.36 6YOXa8ZZ0
>>653
是非ご教授願いたい

655:名無しさん@お腹いっぱい。
11/04/25 19:35:22.03 jsRtYAq90
今日UWSCをDLしたばかりの初心者です。質問に答えていただけるとうれしいです。

1つ目:UWSCでキーボードの↑(Pg Up)と↓(Pg Dn)とAを同時に押すことは可能でしょうか
2つ目:例として KBD(VK_RIGHT,DOWN,500) を挙げるとします。
VKとかなんでしょうか。
RIGHT,DOWNとはどこのキーでしょうか。

なかなか調べてもキーや言語については書いておらず、困っております。
ぜひわかりやすい回答をよろしくお願いします。

656:名無しさん@お腹いっぱい。
11/04/25 19:52:44.01 LXyFlfS/0
down キーを押しっぱなし
up で戻す
click で普通に押す
組み合わせれば同時押しができる

vk_A Aボタン押す
right はカーソルの右

ヘルプ読んで後はネットで調べるそれでわからなければここで聞けばいい

657:名無しさん@お腹いっぱい。
11/04/26 11:09:45.35 B0OZFNNp0
次は1111ですよ!!!!

魔法少女まどか☆マギカ 第1110話
スレリンク(anime2板)

658:名無しさん@お腹いっぱい。
11/04/27 18:11:34.36 f5XMQTIb0
フリー版ですが、スクリプトが再生、スケジュールのどちらで起動されているかを得る方法はありますか?

659:名無しさん@お腹いっぱい。
11/04/27 21:53:28.64 lcY/5+Xo0
>>658
知らないけどスケジュールの方でコマンドラインオプション使えるならそれの有無で

660:名無しさん@お腹いっぱい。
11/04/28 11:34:29.35 WUQnwKcg0
F3キーを押したいんですけど
KBD(VK_F3,click)
じゃ無理だったのですが
押し方教えてもらえませんか

661:名無しさん@お腹いっぱい。
11/04/28 14:11:31.33 vFhukH4p0
>>660
URLリンク(www.geocities.jp)

662:658
11/04/28 14:24:10.79 LtzVx3ZJ0
>>659
遅くなりましたが、ありがとうございます。
その方法でやってみます。

663:名無しさん@お腹いっぱい。
11/04/30 18:57:50.26 32Rd07IC0
UWSCで、開き済みのEXCELから「検索」ってできますか?
.Cells(y,x).Value = "A"のように、セル自体に読み書きまでは出来てますが、
それ以上のことは出来てません。できれば、検索して完全一致があればその座標を入手、
完全一致がなければ「なかった」ことを知りたいです。
判る方、ご教授宜しくお願いします。

664:名無しさん@お腹いっぱい。
11/04/30 19:39:07.42 eZ2yNS1b0
>>663
VBAじゃだめなの?
Excelファイルにコード埋め込めないなら、アドインにしちゃうとか

665:名無しさん@お腹いっぱい。
11/04/30 19:40:33.61 U1T3CdW50
>>663
条件抽出できるExcel関数をそのセルに書き込んで結果を得るとか

666:名無しさん@お腹いっぱい。
11/04/30 22:42:36.75 Lz9PHktt0
複数のIDであるサイトに順番にログインし、同じ動作を実行させたい。
下記Aのようにすると動作を何箇所も修正するのが面倒なので、Bのようにできますか?
可能でしたらどのようにすれば良いのかお願いします。

A  ID1
   動作
   ID2
   動作
   ID3
   ・
   ・
   ・

B  ID1
   ID2
   ID3
   ・
   ・
   ・
   動作

667:名無しさん@お腹いっぱい。
11/04/30 22:53:26.60 0hS3NNEM0
>>666
PROCEDURE

668:名無しさん@お腹いっぱい。
11/05/02 11:04:53.85 qBRsL1H/0
お世話になります。

テンキーの「0」を1秒間隔でずっと押させつつ、
画面にAの画像が出たら画像をクリック。
これをループさせたいのですが、下記のように記述しても動いてくれません。
どこが間違っているのでしょうか?

thread A()
thread B()
While 1
sleep(0.1)
Wend

procedure A()
While 1
Sleep(1)
KBD(VK_NUMPAD0,CLICK,)
Wend
fend

procedure B()
While 1
IFB CHKIMG("A.bmp",-1 )
Sleep(1)
BTN(LEFT,DOWN,G_IMG_X+96,G_IMG_Y+99)
Sleep(1)
BTN(LEFT,UP)
ENDIF
Wend
fend


669:名無しさん@お腹いっぱい。
11/05/02 11:18:54.79 01KJj1Qr0
過去ログから見ると、同じような質問が続いてるなぁ。
しかも、自分で書いておきながら自分のロジックがわからないというものばかり。
単なるこぴぺスクリプターにありがち。成長してくれない。

…同じゲームのスクリプトを分割して聞いていても不思議ではない。

670:名無しさん@お腹いっぱい。
11/05/02 16:37:03.35 7SLqK3kT0
ゲームをスクリプトで補助させるのって、それ楽しいのかな、、といつも思う。

> 1秒間隔でずっと押させつつ

正直ニホンゴが意味わからん。
つーか、どこの行でダメなのか、くらいは自分で追い込もうぜ。
fukidasiでもPRINTでもいいから、ログとりながらデバッグすりゃあできるっしょ。

671:名無しさん@お腹いっぱい。
11/05/03 22:36:49.05 TOMSdzPx0
UWSC proでEXE化されたファイルからUWSファイルを取り出す事って出来ますか?

672:名無しさん@お腹いっぱい。
11/05/03 23:33:56.70 lzlWmIAX0
ゲームとかでの座標認識ってどうやるんですか?
サイト探しまくったんですけどどこにも乗ってないです。

673:名無しさん@お腹いっぱい。
11/05/03 23:41:41.19 K/oATwn20
ん?

674:名無しさん@お腹いっぱい。
11/05/03 23:53:32.91 P1jCGFNh0
座標は、ゲーム画面でそれっぽいところ動かすのを記録して
保存して、ファイル開けばだいたいわかる。
画像使う場合はCHKIMGとか使えばいいし

675:名無しさん@お腹いっぱい。
11/05/04 04:32:41.34 +YeOY92h0
>>672
全画面またはゲーム画面の左上から何ドットかは普通にわかる
ゲーム内でのそのゲーム特有の座標とかは判るわけがない
どうも後者を要求されてる気がする 前者を探しまくってわからないとかありえないし

676:名無しさん@お腹いっぱい。
11/05/04 07:10:21.56 Lkfr5Qr/0
おおおお
ありがとうございました!!!!

677:名無しさん@お腹いっぱい。
11/05/04 09:08:54.76 ZO72V00x0
後者でも前者との位置関係から割り出せるでしょ

678:名無しさん@お腹いっぱい。
11/05/04 09:55:57.41 AHgCiz+A0
後者ってウィンドウ外まで広がるゲームマップの何処かっていう座標だろ

679:名無しさん@お腹いっぱい
11/05/04 13:20:58.46 5+/6h24a0
メイプルストーリーでマクロやってる人いませんか?
もしよければマクロでログインするときどうやって
パスワード欄に文字を打ち込んでるか教えてほしいんですが・・
sentstrとかKBD関数で打ち込めないんです

680:名無しさん@お腹いっぱい
11/05/04 13:34:40.85 5+/6h24a0
すいません誤字です
sentstrじゃなくてsendstrです

681:名無しさん@お腹いっぱい。
11/05/04 15:07:47.36 CCPjytin0
> パスワード欄に文字を打ち込んでるか教えてほしいんですが・・
> sentstrとかKBD関数で打ち込めないんです

>>2
●質問したい方へ。
 「○○作れますか?」→ スクリプトを期待するのはお門違い。作れるか作れないか教えてくれる人はいるかも。
 「○○が作りたい」→ 自分作ればいいんじゃない?
 「○○作って下さい」→ 依頼スレじゃありません。
 過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
 自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。

682:名無しさん@お腹いっぱい。
11/05/04 19:59:28.41 wzOMUAlp0
>>671
もってないからよくわかんないけどたぶんEXE化は
エンジン+スクリプトの構成のはずだからバイナリエディタ使えれば不可能ではない

683:名無しさん@お腹いっぱい。
11/05/05 10:53:17.33 KWLdYo9I0
>>681
IDの入力は問題ないんですけどメイプルのパスワード入力欄が特殊だと思うんで
なにかヒントとなるような助言でも頂ければと思ってます><


684:名無しさん@お腹いっぱい。
11/05/05 12:36:30.03 kQwnCdgV0
ゲームチートに使う奴ネトゲ板とか裏技板とかで別スレ立ててやってくんないかな。

そもそも低レベルで自助努力ナッシングな質問ばかりだし、まともな用途に使ってる
人間としてはウゼエこと限りないんだが。

685:名無しさん@お腹いっぱい。
11/05/05 13:51:21.44 xWeC0mco0
マクロにまともも糞もないけど低レベルなのは確かだわ

686:名無しさん@お腹いっぱい。
11/05/05 17:57:07.42 /PNt3n6G0
UWSC自体が糞処理系だから仕方ない

687:名無しさん@お腹いっぱい。
11/05/05 18:03:17.26 KWLdYo9I0
ところでretってなんですか?

688:名無しさん@お腹いっぱい。
11/05/05 19:03:29.90 ptYc63U80
>>684
カナッシングな質問ふいた

689:名無しさん@お腹いっぱい。
11/05/05 20:59:27.18 W1f6vZlh0
特定の場所をクリックさせたいんですがうまくいきません。


KBD(VK_ESC,DOWN,80)
SLEEP(2)

ifb CHKIMG("a.bmp",-1)

x=G_IMG_X
y=G_IMG_Y

MMV(X,Y,80)
ENDIF

SLEEP(1)
BTN(LEFT,CLICK,X,Y,80)
SLEEP(1)
BTN(LEFT,CLICK,X,Y,80)
KBD(VK_ESC,UP,80)


690:名無しさん@お腹いっぱい。
11/05/05 21:12:08.45 KWLdYo9I0
画像は問題ないの?
ifb~endifをループで囲んでbreak入れれば?

691:名無しさん@お腹いっぱい。
11/05/05 21:45:58.53 xWeC0mco0
xyって大丈夫なの?

692:名無しさん@お腹いっぱい。
11/05/06 06:38:18.95 l+r+xGqX0
>>689
XとYの座標って絵の左上だから
XとYの座標に+5するとか。
あとどんな作業してるのかわからないけど
ボタンのクリックはENDIFの内側に入れるんじゃないの?
あとはループで囲うとかかな。

詳細が良くわからないので頓珍漢なアドバイスかもしれないけど

693:名無しさん@お腹いっぱい。
11/05/06 11:35:56.64 nxcWJScI0
ウィンドウの特定の入力欄に英数字を入れたいんですがうまくいきません。

直前のID欄の入力までは出来て、タブキーを押してパスワード入力欄をアクティブにした状態でやりました
一応マウス操作でパスワード欄をアクティブにしたりもしましたが出来ませんでした
click部分をdown,upに分けたり、
KBDとKBDの間にsleep(1)を入れたり、
40の部分を1000にしたりもしましたが出来ません
sentstrで変数や英数字などをウィンドウidをちゃんと取得した状態でやりましたができません
(そもそもID欄とPW欄にコピペできない仕様なので無理だと思います)
それとなぜかID欄では半角状態では入力できないみたいです、
なのでIDは全角で「お」を打ち込んで変換で半角数字にしました

KBD(VK_o,CLICK,40)
KBD(VK_1,CLICK,40)
KBD(VK_5,CLICK,40)
KBD(VK_7,CLICK,40)
sleep(0.8)
KBD(VK_RETURN,CLICK,40) //エンターキーでログインします
パスワード欄は強制的に半角入力になるみたいです



694:名無しさん@お腹いっぱい。
11/05/06 11:40:25.08 nxcWJScI0
ID入力は「お」という文字に事前にIDの数字を辞書登録した状態でやりました
KBD(VK_O,down,40) //「お」キーです
KBD(VK_O,up,40)  //「お」キーです
KBD(VK_space,down,40) //変換キーです
KBD(VK_space,up,40)  //変換キーです
sleep(0.8)
ログイン() //複数IDでログインしたいので「お」の後ろに条件に応じて数字を打ち込むようにしてますがパスワード欄の入力には影響はないです
sleep(0.8)
KBD(VK_space,down,40) //ログイン()も全角で入力なので変換で半角にします
KBD(VK_space,up,40)  //ログイン()も全角で入力なので変換で半角にします
sleep(0.8)
KBD(VK_RETURN,CLICK,40) //全角入力なのでエンターキーで確定します
KBD(VK_TAB,down,40) //パスワード欄に移るタブキーです
KBD(VK_TAB,up,40)  //パスワード欄に移るタブキーです
sleep(0.8)
~ここからパスワードの入力~
KBD(VK_o,CLICK,40)と続きます

たぶん全角でないと入力できないんだけどパスワード欄では半角入力になってしまう
この問題を解決する助言をください

695:名無しさん@お腹いっぱい。
11/05/06 18:00:10.05 IS08JZpr0
ディレイ40って0.04秒だからもっとしっかりゆとりを持たせたら?
あとパスワード欄の入力可否はそのソフト依存だと思う

696:名無しさん@お腹いっぱい。
11/05/06 19:36:03.00 nxcWJScI0
>>695
レスどうもです
これと同じようなことをuwscでやってる人がいるので
出来ないことはないと思うんですけど
なにかわかりませんか?
ディレイのところも1000などに変えたりしたんですけど無理でした・・

697:名無しさん@お腹いっぱい。
11/05/06 21:44:51.39 IS08JZpr0
すまん上で書いてたな

698:名無しさん@お腹いっぱい。
11/05/06 21:49:43.70 IS08JZpr0
記録ボタン使ってみたら?
記録→保存→動作確認→中身を簡素化する
でいいかと

699:名無しさん@お腹いっぱい。
11/05/06 22:11:03.11 9RnaXZtt0
>>693
辞書とかパスワードに影響ないとか、正直何したいのか分かり辛い。
入力段階ごとにIDとパスワードの状態を例として示した方が良いよ

700:名無しさん@お腹いっぱい。
11/05/07 00:12:30.26 mHIAImGa0
メイプルストーリー
…自動ログインで多重ログインか…ひどいもんだ。

701:名無しさん@お腹いっぱい。
11/05/07 00:32:43.15 uxg9/bzD0
>>694
URLリンク(scripts.web.fc2.com)

自動ログインスクリプト。
先にIDとパスワードのテキストファイル(MSLogin.dat)を作っておく必要がある。


-- MSLogin.dat ここから--
MapleStory ID List
名前, ID, パスワード // この行は変更してもかまいません。データは次の行から開始。
漢字名(表示用),ID,pass,メモ
-- MSLogin.dat ここまで--


KBD()で入力する場合はシフトとか特殊文字の処理が必要。
// UNICODE?文字を、キー送信用ASCIIキーコードに置き換える
Function CnvCCode( char )
 if !CHKNUM(char) Then char = STRCONV(char, SC_UPPERCASE)
 select char
  case "."
   code = VK_OEM_PERIOD
  case "@"
   code = VK_OEM_3
  default
   code = ASC(char)
 selend
 result = code
Fend

702:名無しさん@お腹いっぱい。
11/05/07 00:34:42.23 uxg9/bzD0
// Webページの入力コントロールにデータをセットする
Procedure InputData( ID, Info[], Data )
 Select Info[ID_Type]
  case ID_TEXT // テキスト
   SENDSTR( ID, Data, Info[ID_No], true, true )
  case ID_CLIP // クリップボード経由でテキストを貼り付け
   SendStr( 0, Data )
   SENDSTR( ID, "", Info[ID_No], true, true )
   SCKey( ID, VK_SHIFT, VK_END )
   sleep( 0.03 )
   SCKey( ID, VK_CTRL, VK_V )
  case ID_CLICK // クリック
   CLKITEM( ID, Data, CLK_ACC or CLK_SHORT or CLK_CONTINUE )
  case ID_KBD // 手入力エミュ
   SENDSTR( ID, "", Info[ID_No], true, true )
   SCKey( ID, VK_SHIFT, VK_END )
   sleep(0.1)
   for j = 1 to length(Data)
    sleep(0.03)
    SCKey( ID, CnvCCode(Copy( Data, j, 1 )) )
   next
   sleep(0.2)
  case ID_LIST // リスト選択
   CLKITEM( ID, Data, CLK_ACC or CLK_SHORT or CLK_CONTINUE )
   sleep(0.1); SCKey( ID, VK_TAB )
   sleep(0.1); SCKey( ID, VK_UP )
   sleep(0.1); SCKey( ID, VK_DOWN )
  default
   msgbox("i:" + " No." + Info[ID_No] + " Data:" + Data )
 Selend
Fend

703:名無しさん@お腹いっぱい。
11/05/07 00:44:22.39 uxg9/bzD0
PUBLIC   ID_NONE = 0
PUBLIC   ID_TEXT = $10 // テキスト(貼り付け)
PUBLIC   ID_KBD = $11 // キー入力をエミュ(ASCII文字限定)
PUBLIC   ID_CLIP = $12 // クリップボードから貼り付け
PUBLIC   ID_CHKBOX = $20 //
PUBLIC   ID_LIST = $30 // リストを選択
PUBLIC   ID_LISTCsr = $31 // カーソルキーによる選択
PUBLIC   ID_CLICK = $40 //

PUBLIC   ID_Type = 0
PUBLIC   ID_No   = 1 // テキストボックス, チェックボタンの番号
PUBLIC   ID_Key = 2

PUBLIC HASHTBL Data
================
 Dim GooP[][2] = _
_ // タイプ、番号、キー
 ID_TEXT, 2, "ID", _
 ID_TEXT, 3, "パスワード", _
 ID_TEXT, 4, "パスワード", _
 ID_TEXT, 5, "漢字姓", _
 ID_TEXT, 6, "漢字名", _
 ID_CLICK, 0, "性別", _  //(選択不可能)
 ID_LIST, 0, "生年", _
 ID_LIST, 0, "生月", _
 ID_TEXT, 13, "", _  //手入力なのでラスト
 "", "", "" // dummy

  s = //データの準備
  InputData( ID, GooP[i], s ) // データの入力

>>701-702 にこんな感じで定義したやつをぶち込む

704:名無しさん@お腹いっぱい。
11/05/07 14:27:44.63 eurEFH6h0
>>701-703
レスありがとうございます!
参考にさせていただきます

705:名無しさん@お腹いっぱい。
11/05/11 19:26:37.29 BXjDl7Fe0


706:名無しさん@お腹いっぱい。
11/05/17 18:35:31.01 UGhxi4pW0
So-netのポイントポンというゲームを自動でやりたいのですが、
SWFを認識してクリックすることって出来ますでしょうか?
このサイトです。
URLリンク(www.so-net.ne.jp)

707:名無しさん@お腹いっぱい。
11/05/17 19:57:43.12 +1xad/lQ0
できますよ

708:名無しさん@お腹いっぱい。
11/05/17 21:03:31.59 D0y9Fx350
>>706-707
見事なまでのテンプレだな。

709:名無しさん@お腹いっぱい。
11/05/17 22:07:48.63 UGhxi4pW0
>>707
どうやってやればいいのでしょうか?
ご教授いただければ・・。

710:名無しさん@お腹いっぱい。
11/05/17 22:09:43.86 UGhxi4pW0
CHKIMGではBMPしか駄目みたいなので、他にどういうアプローチが
あるか教えていただけるとうれしいです。

711:名無しさん@お腹いっぱい。
11/05/18 05:30:38.30 m+Qpbqgg0
>>710
BMPで十分だろ
それが気に入らんならMSAAで直接flashの操作するといい

712:名無しさん@お腹いっぱい。
11/05/18 13:22:28.74 iywQxWyC0
>>706って会員登録しないとダメなのかw

面倒だから見てないけど、この手のゲームだったらCHKIMGを使うのが1番確実だよ。
スクリーンショットとペイントだけで十分だ。

713:名無しさん@お腹いっぱい。
11/05/18 18:31:24.99 6WrbT/z10
調べても分からないので教えて下さい。
アクティブウインドウでは指定した所をクリックするのですが、
バックグランド(最小化)の時は違う所をクリックしてしまいます
両方で同じ場所(座標)をクリックするには、
どのようにすれば良いでしょうか?

wnd_id = GETID("○○○)
MOUSEORG(wnd_id, 2)

MMV(1100,585,1500)
BTN(LEFT,CLICK,1100,585,30)

714:名無しさん@お腹いっぱい。
11/05/18 18:35:02.50 mKLDAazC0
>>712
ありがとうございます。
これは一旦スクリーンショットをBMPとして保存して
それと照合させるってことですか?

715:名無しさん@お腹いっぱい。
11/05/19 08:56:01.85 IZxJh+aQ0
スクリーンショットで撮った画像を必要な部分だけ切り取る。
それをCHKIMGで探させてクリックさせる。

ifb CHKIMG("画像.bmp")
BTN(LEFT, CLICK, G_IMG_X+10, G_IMG_Y+20)
endif

画面上に"画像.bmp"があったら、その画像の左上から
右(X)に10ピクセル、下(Y)に20ピクセルの部分をクリックするというもの。

基本中の基本です。

716:名無しさん@お腹いっぱい。
11/05/19 09:23:24.83 T1Div3Tj0
ググってすらねーだろ

717:名無しさん@お腹いっぱい。
11/05/19 09:33:40.58 v/LFKHK/0
こんな親切なスレだと思わんかったよw
質問する前に試せば良いだろうに。

718:名無しさん@お腹いっぱい。
11/05/19 15:56:48.62 hu5TkwSm0
UWSCで詳細なデバックをしたいと思っています
コマンドプロンプトに返り値などを表示せる方法は無いものでしょうか?

Msgboxだと中断されてしまうので
print でコマンドプロンプトに表示される感じがいいのですが
方法がありましたら教えていただけないでしょうか
よろしくお願い致します

719:名無しさん@お腹いっぱい。
11/05/19 16:00:25.81 FaBEFFZI0
使ってて思ったんだけど他の言語の拡張ライブラリにChkImgとPeekColorを自分で実装したら
UWSC使う必要無くね?

720:名無しさん@お腹いっぱい。
11/05/19 17:15:11.68 BLUQoRtCP
車輪の再発明って知ってる?
敢えて作りたいのなら作ればいいと思うよ

721: 忍法帖【Lv=1,xxxP】
11/05/21 10:58:30.97 BbMPCqlJ0
2ちゃんねるの忍法帖切り替えツールが一応でけた。
こないだ3回目くらいのすいとん食らったときに思い立って複数作ってみたが、
IEへの反映方法がリストアか直接編集しかなくて意外と大変だった。

722:名無しさん@お腹いっぱい。
11/05/21 11:35:34.46 bBt6sr/x0
画像が認証できないのですがなぜでしょうか?


sleep(1)
ifb CHKIMG("ban.bmp",0)     
x=G_IMG_X // 画像の座標をxへ代入
y=G_IMG_Y // 画像の座標をyへ代入
BTN(LEFT, CLICK,x,y, 80)   // 画像の場所を左クリック
endif
wend

まず一段階でこれをしたいのですが
画像の形式もbmpです。切り取ってやりましたが
作動しません。
お手数ですがzipで準備しました。
暇のある方見てやってください(´・ω・`)
URLリンク(u9.getuploader.com)


723:名無しさん@お腹いっぱい。
11/05/21 12:00:24.99 BbMPCqlJ0
>>722
同じ部分を何度かキャプチャして違いがないか調べてみてください。
見た目で分かればそれでいいし、分からなければ色コードを・・・
同じエリアで切り取ってバイナリの一致をするかどうか見てもいいです。

変化がある場合は変化に対応するオプションが必要です。
(色ではなく形で見るというあれ)

キャプチャするときにJPEGとかで保存するようなソフト使ってないですか?
もし使ってたらその時点で色が変化しているので一致しません。
確実なキャプチャはAlt+PrintScreenです。
(ただし画面の色数によって違ってくるかも)

ビットマップファイルの形式はフルカラーじゃないといけません。
それ以下だと減色されて違う色になります。
もちろん画面の色数もフルカラーじゃないと。

724:名無しさん@お腹いっぱい。
11/05/21 17:36:36.83 bBt6sr/x0
>>723
お忙しい中見て頂いてありがとうございます
色変化してるんですかね
やって見たけどダメでした。もっと扱いに慣れてからこの手に触れようと思います

725:名無しさん@お腹いっぱい。
11/05/21 17:44:31.96 TY+fLqtTi
vistaやwin7だと、管理者で実行してやると解決するかも

726:名無しさん@お腹いっぱい。
11/05/21 18:33:30.38 eBttpOx+0
>>719
UWSCのドキュメントが少なく複雑で謎な言語仕様と戦う必要が無くなるから
ほとんどの人はそうしてる

727:名無しさん@お腹いっぱい。
11/05/21 19:00:45.33 N8mj71oS0
>>726
オーソドックスなBASIC的文法

最近主流のC的文法に慣れてると最初面食らうかもしれない

728:名無しさん@お腹いっぱい。
11/05/21 19:12:09.76 eBttpOx+0
>>727
文法とか以前にインスタンスが作れない名前空間的機能にclassって命名したりどうなの。
あと>>593のこの仕様とかw
競合しているなでしこのほうがまだオブジェクト指向で書けるからいいとオモッタ
でも結局C言語(win32 api)と相性のいいpythonの拡張ライブラリに
自前でChkImgとPeekColor実装したらどっちも使う必要無くなった。

729:名無しさん@お腹いっぱい。
11/05/22 14:30:22.93 4P4zk0BAi
>>728
希望としては、そのライブラリを公開してほしい

730:名無しさん@お腹いっぱい。
11/05/22 20:14:35.77 3zhjDiIw0
調べたのですが、見つからないので質問させてください。

IEを使用したときの接続表示待ちの指定は
while True
  if (! IE.busy) and (IE.readyState=4) then Break
  sleep(0.1)
だとわかったのですが、chromeを使った際の
接続表示待ちの指定がわかりませんでした。
何か方法はあるのでしょうか?

731:名無しさん@お腹いっぱい。
11/05/22 20:21:51.08 SGY1ppJH0
ありますん

732:名無しさん@お腹いっぱい。
11/05/23 00:12:29.86 ycsCtdl90
なんかファイルを開けないんですが
ドラッグドロップして一回動かさないと読み込みできない


733:名無しさん@お腹いっぱい。
11/05/23 00:32:19.76 ZSCGOBZL0
そうですか

734:名無しさん@お腹いっぱい。
11/05/23 11:12:22.75 ycsCtdl90
exeファイルをmew11で圧縮したのがいけなかったのかな?

735:名無しさん@お腹いっぱい。
11/05/23 11:45:44.84 a3VOAi3w0
>>730
何を持ってページ読み込み完了とするかをまず考える。

736:名無しさん@お腹いっぱい。
11/05/24 07:17:12.13 syW7YMrL0
忍法帳を管理するツール作ったんだけど、なぜかクッキーが消えることがあります。
クッキーに対しては一括読み込みして全行削除して1行書き込みして閉じるという
それだけのことしかしてないんですが。
クッキーは特別な管理がされているのでそれが影響してるのかなと思わなくもありませんが・・

バージョン確認したら4.5a (2009/3/31)だったので最新に差し替えてみます。

問題のツールも置いときますね。
URLリンク(scripts.web.fc2.com)

737:名無しさん@お腹いっぱい。
11/05/25 10:17:33.14 EhgzlpEh0
While True
 ifb PEEKCOLOR(511,605) = $0000e6 then//xyが赤の場合↓の場所を左クリック
BTN(LEFT,CLICK,723,758)
else
endif
Wend

↑動かないんです
どこが違ってるか見てもらえませんか?

738:名無しさん@お腹いっぱい。
11/05/25 10:26:45.33 tmfXCBnY0
>>737
BTNが実行されたらマウス座標が移動するけど、それは起こる?起こらない?

あと、座標、色コードはあってる?ちょっとでも違うと反応しないよ。それだと。
あと、Sleep()入れないと相手も動けないよ。
UWSCがCPU占有して重くなると、UIは受け付けなくなるようなゲームも多いからね。


739:736  忍法帖【Lv=2,xxxP】
11/05/25 12:45:37.52 tmfXCBnY0
どうやらクッキーは頻繁に書き換えるとだめらしい。
ある程度、時間を置いてのんびりやるとうまくいくようだ。


それよりJaneの動作がおかしくなった。
仮想マシンを新品に入れ替えてJaneドライブを接続して使っているが、
ログ取得の記録がどうも書き換わらない・・・

あ、そっか。ユーザーを一般ユーザーに変更したからアクセス権がないんだ・・・
ディスクのチェックをする権限もなかったし。
変なアクセス権が設定されてるんだろうな。

740:名無しさん@お腹いっぱい。
11/05/25 12:46:57.64 sktEnkul0
チラ裏でした

741:名無しさん@お腹いっぱい。
11/05/25 15:53:37.01 EhgzlpEh0
ACW(GETID("パチンコ"))
While True
Sleep(1)
 ifb PEEKCOLOR(511,605) = $0000e6 then//xyが赤の場合↓の場所を左クリック
KBD(LEFT,CLICK,723,758)
else
endif
Wend

↑此処まで修正しました
やっぱり無反応です。
色はペイント座標は記録からメモ帳で調べてますが、
皆さんはどうやって見てますか?

742:名無しさん@お腹いっぱい。
11/05/25 16:29:49.72 tmfXCBnY0
>>741
ペイント(拡大)とメモ帳で問題ないけど、
色ってシェーディングかかってたら似た色でもコードが違ってくる。
座標がピンポイントで一致しないといけない。
それは大変なので、特にシビアじゃないときには「赤っぽい色」で判定する。

red = color and $FF
green = (color and $FF00) / $100
blue = (color and $FF0000) / $10000

if (80 < red) and (green < 40) and (blue < 40) then 赤っぽい
てな感じで。
数値は適当なので、カラーマップとか見て目で判断する。
括弧つけないとredとgreenの論理積扱いされるかも。
括弧つけると先に不等号判定され、結果がbool値になるので、それを論理積する。

大小判定は直感的に分かるように、大小の方向を一致させるといい。

743:名無しさん@お腹いっぱい。
11/05/25 17:04:08.85 J6WPryn10
勉強になるなぁ

744:名無しさん@お腹いっぱい。
11/05/27 14:35:43.35 rO7PE39G0
>>741
狙ってるところを、何回もスクショとってみて、確認かな。
ずーっと同じ値なら固定値でいい。
バラついてるなら、ばらつき加味してプログラムすべし。

745:名無しさん@お腹いっぱい。
11/05/28 22:29:36.94 sS6Xevt50
画像認証の範囲指定をおしえてください。


Ifb CHKIMG("mp45452.bmp",409,714,1500,1500,) > 0 //MP薬補充
sleep(0.1)
KBD(VK_F8)
endif

範囲指定しなければちゃんと動いています。
後ろの範囲は適当に入れた数値で、もし0,0,1500,1500だったら動作します。

MOUSEORG(0) 
↑などもいろいろやってみましたがだめでした。

746:名無しさん@お腹いっぱい。
11/05/28 23:10:57.58 2eEfKVil0
特定の画像を一定の秒数表示された場合にF5を押すマクロを組みたいのです。
ググってみたもののわからなかったので教えて下さい。

747:名無しさん@お腹いっぱい。
11/05/28 23:27:36.07 HiI2w12Y0
>>2

748:名無しさん@お腹いっぱい。
11/06/01 05:47:51.61 ycjsTZmX0
UWSCで書くとコードの再利用性が無いから
せめてclass機能が欲しい

749:名無しさん@お腹いっぱい。
11/06/01 14:06:13.08 6Omdq0pO0
現状はモジュールなのにクラスとか名づけてるのが嫌だし、それはあるなぁ…
あとは配列で
dim list = 1, 2, 3, [4, 5, 6], [aaa:7, bbb8]
とかネストしたりキーバリューが書けたらなぁ

…上でもかかれてたけど、UWSCでやる必要ってWin32APIのウィンドウ操作と画像認識だけだよな。

750:名無しさん@お腹いっぱい。
11/06/01 15:30:46.98 pgGwEwGR0
画像認証に関してお聞きしたいのですが、どうやら画像が微妙に変化してるようで
同じような外見の画像に対して画像Aか画像Bのどちらかに反応するようです
詳細(ディスプレイ=32Bitカラー、キャプチャしたBMPイメージ=24bitカラー)

そこで
ifb (CHKIMG(画像A.bmp)or(CHKIMG(画像B.bmp))
...(以下の動作は画像AもBもほとんど同じ)


ifb CHKIMG(画像A.bmp)
...
ELSEif (CHKIMG(画像B.bmp)
...

を考えたのですが上下どちらの方がいいでしょうか?

751:名無しさん@お腹いっぱい。
11/06/01 15:41:56.14 /OG9qV2i0
>>750
変化のない部分だけを切り出す。

たとえばボタンとしては画像の全体がボタンとして機能するとしても、
ボタンの場所を探るのに必要な部分というのは、他の場所と混同しない最小限のドット数があればいいわけです。

似た感じだが全体が違う画像の場合、色を無視して形で判断するオプションをつけます。

上記2つが出来ない場合にだけ、>>750のどちらかが必要になりますが、
基本的に画像が見つからない状態でループを繰り返すならどちらでも同じなので、
シンプルに or で結ぶのがいいでしょうね。


752:名無しさん@お腹いっぱい。
11/06/01 23:26:58.20 T7q6pnZp0
質問です。

Test.uws ”C:\Test\新しいフォルダ\20110601 テストてすとTest.txt”
と実行した場合のパスの文字列を取得したいです。
PARAM_STR[0]は
C:\Test\新しい~1\201106~1.TXT
となります。
「C:\Test\新しいフォルダ\20110601 テストてすとTest.txt」という文字列を取得したいのですが、
どのようにすればよいでしょうか。

753:名無しさん@お腹いっぱい。
11/06/02 12:21:04.43 VUco/QRe0
APIのGetLongPathName()か、DOSコマンドかな。

DWORD GetLongPathName(
 LPCTSTR lpszShortPath,  ショートファイル名
 LPTSTR lpszLongPath,   受信バッファ(UWSCの場合は空白文字列)
 DWORD cchBuffer      バッファサイズ(LengthB(lpszLongPath))
);)

空文字列と言えば "" ですが、
空白文字列は "              " こんな感じで十分な長さのものです。

DOSのDIRコマンドでとる方法もあるけど、フォルダごとにやらないといけないのかな
URLリンク(www.gizcollabo.jp)


パス名をショートファイル名で表示するように設定してたりしませんか?
> UWSC.exe test.uws "ロングファイル名"
っていう呼び出し方でMsgBox(PARAM_STR[0])ってやると、普通にロングファイル名で出てきますが。


754:名無しさん@お腹いっぱい。
11/06/03 00:24:53.64 posbHy0I0
FastHash.dllを使ってハッシュ計算をやろうとしてるんだけど
とりあえず書いてエラーは出ないんだが、肝心のハッシュがデタラメ…
DEF_DLLってほとんど使ったこと無いから根本的に間違ってそうなのが怖い。
誰か何処が間違ってるのか教えて下さい…

DEF_DLL FHCreateHashEngineObject(DWORD):HWND:FastHash.dll
DEF_DLL FHComputeHash(HWND, pchar, DWORD):Bool:FastHash.dll
DEF_DLL FHGetHashValue(HWND, var pchar, DWORD):DWORD:FastHash.dll
DEF_DLL FHHashValueToHashString(var string, pchar, DWORD, BOOL):FastHash.dll
DEF_DLL FHCloseObjectHandle(HWND):Bool:FastHash.dll
DEF_DLL FHCreateHashValueObject(HWND):HWND:FastHash.dll
DEF_DLL FHInitHashValue(HWND):int:FastHash.dll
htype = $4
msg = ""
cr = "<#CR>"
fh = FHCreateHashEngineObject(htype)
ado = CREATEOLEOBJ("ADODB.Stream")
ado.Type = 1



755:名無しさん@お腹いっぱい。
11/06/03 00:25:45.42 posbHy0I0
ado.Open
ado.LoadFromFile("FastHash.dll")
fsize = ado.size
msg = msg + fsize + cr
bufsize = 512
while !ado.EOS
buf = ado.Read(bufsize)
FHComputeHash(fh, buf, lengthb(buf))
wend
hash = format(" ", 32)
hashsize = FHGetHashValue(fh, hash, htype)
out = format(" ", hashsize*2+1)
FHHashValueToHashString(out, hash, hashsize, false)
msg = msg + out + cr
msgbox(msg)
//正しい値 "BAD795FCF94AE0532B57F886205965C7"
FHCloseObjectHandle(fh)

756:名無しさん@お腹いっぱい。
11/06/03 12:57:01.66 c/BneUED0
>>754-755
buf = ado.Read(bufsize)
print LengthB(buf)
とすると、妙に小さくてランダムなサイズになってるんです。
多分NULL終端文字列扱いになってる。

UWSC自体はChr(0)を途中に含めた文字列でもデータの最後までの長さを取得できるんですが、
配列データを受け取るときに安全のために終端するんでしょう。

DEF_DLL RtlMoveMemory( string, SafeArray, DWord ):kernel32.dll
と宣言して
buf = format( " ", bufsize )
RtlMoveMemory( buf, ado.Read(bufsize), bufsize )
とやれば、受け取ったバッファを確実にコピーできるはずですが、
正しい値は得られませんでした。


ちなみに、FHComputeHash のループが終わったら
FHCreateHashValueObject でハッシュオブジェクトを作ることが必要だとか。


757:名無しさん@お腹いっぱい。
11/06/03 18:48:38.95 c/BneUED0
 bufsize = 1
 while ! ado.EOS
  buf = ""
  for i = 1 to 512
   if ado.EOS then break
   ByteData = ado.Read(bufsize)
   buf = buf + CopyB( ByteData, 1, 1 )
  next
  ifb ! FHComputeHash(fh, buf, lengthb(buf))

こうやったら512バイトのバッファが作れてファイルサイズ分だけの処理は出来るようになりましたが、
どうもデータが壊れてしまうようでうまくいきませんね。
半角はいけるんですが、2バイト文字が壊れます。
文字コード変換してるのかも。

引数に受信バッファを指定できるタイプの関数を使わないと無理でしょう。


758:名無しさん@お腹いっぱい。
11/06/03 20:37:05.72 posbHy0I0
>>756
> FHCreateHashValueObject でハッシュオブジェクトを作ることが必要だとか。

これ、最初の頃は書いてましたが、どうもFHGetHashValueを
呼べばそのときに再計算やってるらしく、1回だけ計算するときは
必要ないようで消してます。

どうもFastHash.dllをUWSCで扱うのは無理っぽいのかな…
これは今後の課題としてとりあえずはBASP21でも使ってみようかと思います。

759: 忍法帖【Lv=1,xxxP】
11/06/04 12:26:40.90 2KBRGkl70
UWSC 旧バージョンをダウンロードできるサイトってありますか?



760:名無しさん@お腹いっぱい。
11/06/04 13:49:07.48 hyDuayc40
ためしにバイナリコピーを書いてみた。

 adoS.LoadFromFile(GET_CUR_DIR + "\ReadMe.txt")
 adoS.CopyTo(adoD, -1)
 adoD.SaveToFile("copy.bin", 2 ) // adSaveCreateOverWrite

↑動く
↓動かない

 while ! adoS.EOS
  buf = CopyB("",0,0) // 本家からの引用で、文字コードをユニコードじゃなくANSIにする技。
               // buf = "" だとユニコード扱いらしい。
  for i = 1 to 512
   if adoS.EOS then break
   buf = buf + CopyB( adoS.Read(bufsize), 1, 1 )
   size = i
  next
  print size
  print buf
  adoD.Write(buf)    // そもそもCOMエラーで動かない。バリアント型に変換されないのか。
 wend
 adoD.SaveToFile("copy.bin", 2 )

UWSCがデータを触らないで済めば受け渡し自体は出来るんだよ。
型変換ができればいけそうな気はするんだけど
VARTYPE( 変数, [変換タイプ] ) とか書いてあるところがあったけどUWSCは対応してないみたいで


761:名無しさん@お腹いっぱい。
11/06/04 15:20:26.61 OZFKFCHZ0
fsize = ado.Size
buf = ado.Read
FHComputeHash(fh, buf, fsize)

全部メモリに読み込んでやってみると
エラーが出たり出なかったり…
エラー出てない時の値もランダム。

762:名無しさん@お腹いっぱい。
11/06/04 22:23:36.02 tgYxdGHc0
「指定のテキストが画面上に現れたら、
指定の画像をクリックする。」
のようなマクロを作りたいのですが、
色々試しているのですが、エラーが出てしまいます。
どなたか教えて頂けないでしょうか?

763:名無しさん@お腹いっぱい。
11/06/04 22:29:52.60 xhQE3RN+0
色々試したソースを挙げてごらん

764:名無しさん@お腹いっぱい。
11/06/04 22:34:17.05 HC7Ps71g0
>>754
画面ポチポチ以外はC#とか普通の言語でやればいいのに
なんでこういうのをUWSCで書くという苦行を選ぶんだ?

765:名無しさん@お腹いっぱい。
11/06/04 22:41:43.77 oJ7biuYS0
>762
できるが俺も>763と同意見だな。
いちから書くのはめんどい。おまえが元になるものを出せば訂正してやるよ。
偉そうにいえるほど能力は高くないが、汚く直すくらいはできる。
んで、それをおまえの好みに整えて使えばいい。

766:名無しさん@お腹いっぱい。
11/06/04 22:42:12.23 tgYxdGHc0
752です。

ifb CHKIMG("画像1.BMP",0)      // 画面上に画像があった場合以下へ

x=G_IMG_X // 画像の座標をxへ代入
y=G_IMG_Y // 画像の座標をyへ代入

BTN(LEFT, CLICK, x, y, 80)   // 画像の場所を左クリック

の辺りまでは出来ました。

767:名無しさん@お腹いっぱい。
11/06/04 23:05:06.87 tgYxdGHc0
ついでに画像認証はテキストの認証方法が分からなかったので
応用しました。
しかし、上記のスクリプトでは認証した画像をクリックすること
くらいしかできなく、私もかなり最近始めて
これ位の基礎動作しか分からなかったため、
質問を上げさせて頂きました。


768:名無しさん@お腹いっぱい。
11/06/04 23:08:35.00 xdBjojGQ0
テキスト認証ってやっぱ画像にするしかないのかな

769:名無しさん@お腹いっぱい。
11/06/04 23:09:06.32 S8RdXfJA0
で、その後の処理とエラー内容を想像しろと?

770:名無しさん@お腹いっぱい。
11/06/04 23:12:05.37 kQlUkhv60
>>766
endifが無いとかそういうエラーじゃないよな。
どんな問題がおきてるか書かないと、だれも判らないよ。
自分が書いていることを客観的に見れないのがそもそもの問題のような気がするけど。
自分の記述が、uwscにどう解釈されるのか、伝えたい相手にどう解釈されるのか。
受け取る側の立場に立てないと難しいぞ。

771:名無しさん@お腹いっぱい。
11/06/04 23:34:45.94 HC7Ps71g0
>>754
CでやりたいことをラップするDLL書いてみたよ
FastHash.dllのハッシュ値が"BAD795FCF94AE0532B57F886205965C7"になればいいんだよね?

URLリンク(codepad.org)

772:771
11/06/04 23:45:49.08 HC7Ps71g0
バイナリあったほうがいいかなと思ったりして。
VS2008でコンパイルしたもの。

URLリンク(www1.axfc.net)

773:名無しさん@お腹いっぱい。
11/06/05 02:21:08.39 g86IC7rZ0
2011/06/05 UWSC Ver4.7、 Pro版と Free版をリリースしました。

774:名無しさん@お腹いっぱい。
11/06/05 15:27:22.12 QXzudF7U0
>>773ので型変換できたのでやってみました。

  dat1 = VARTYPE(buf,VAR_BYTE or VAR_ARRAY) // 文字列→バイト配列
  adoD.Write( dat1 )

bufのサイズは512なんだけど、出力した結果は2倍近い数字に。
しかし、表示された半角文字分くらい、2倍には足りない。

サイズを見ると、LengthBなら変換前も後も512だけど、Lengthだとちょっと短い。
adoD.Write() に渡すときはデータだけであって、サイズは自動処理されるから、
どっちの長さを渡しているか分からない。多分Lengthだろう。
しかも出力結果は倍のサイズ。

いやまて、バイト配列にしたときに配列数よりバイト数が大きいと言うことは、いくつかは2バイト文字として格納されているのか。
意味が分からない。


しかし、SETHOTKEY( キーコード, [修飾子キー, Procedure名] )は便利かも。
以前リモコン動作をバッチファイル経由で・・・あ、実行ファイル指定だと意味ないか。


775:名無しさん@お腹いっぱい。
11/06/05 15:54:49.65 QXzudF7U0
>>767
よくある画像認証システム(画像を読み取ってテキスト入力)はUWSCでは対処できません。
変化のある画像を扱えないからです。

その変化が単調な変化ならPEEKCOLORで色コードで判定できます。



>>774>>760の下のコードに追加したものです。
他に試したパターンを以下に

//  dat1 = VARTYPE(buf,VAR_DISPATCH) // String型からBoolean型へのバリアント型変換はできません。

//  dat1 = VARTYPE(buf,VAR_BSTR) // (元の型) Write時にCOM Error

//  dat1 = VARTYPE(buf,VAR_VARIANT) // String型からバリアント型への変換はできません。

  dat1 = VARTYPE(buf,VAR_BYTE or VAR_ARRAY)
//  dat2 = VARTYPE(dat1,VAR_VARIANT) // Byte型からバリアント型への変換はできません。
//  dat2 = VARTYPE(dat1,VAR_DISPATCH) // Byte型からInteger型への変換はできません。

776:名無しさん@お腹いっぱい。
11/06/05 17:26:50.41 QXzudF7U0
関連する情報を検索してて、0~0xffをテストデータにする方法が載ってたんでやってみた。
0x80までは問題ないけど、その後のデータが化ける。
chr(0)とか、CRLFを扱えるからバイナリいけるとおもってた。
他にもDLLに文字列バッファを渡したりしてたけど、
受け渡しするデータが扱える文字列だったり、
UWSCではポインタの保持のみ(代入したり関数に渡したりしない)だからちゃんと扱えるように見えたのかも。

関数で使いたいときはvar で参照渡しすることで回避できるけど、
代入できないとどうにもならんよな。

結果:
 0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
80 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F
3F 21 81 91 81 92 3F 5C 7C 81 98 81 4E 63 61 81
E1 81 CA 2D 52 81 50 81 8B 81 7D 32 33 81 4C 83
CA 81 F7 81 45 81 43 31 6F 81 E2 3F 3F 3F 3F 41
41 41 41 41 41 41 43 45 45 45 45 49 49 49 49 44
4E 4F 4F 4F 4F 4F 81 7E 4F 55 55 55 55 59 54 73
61 61 61 61 61 61 61 63 65 65 65 65 69 69 69 69

777:名無しさん@お腹いっぱい。
11/06/05 17:31:21.90 QXzudF7U0
>>776のコード
代入方法はどれでも一緒。

// サンプルデータの準備
//dat = CopyB("", 0, 0)   // dat = "" との違いが見られない
//dat = ""
//dat = chr(0)
dat = CopyB(chr(0), 1, 1)
for i = 1 to $ff
 dat = dat + chr(i)
next

for i = 0 to 16 - 1
 str = ""
 for j = 0 to 16 - 1
  // str = str + format( ABS(ascB(CopyB(dat, i*16+j+1, 1))), 3, -1) // ↓でも同じ
  str = str + format( VarType(ascB(CopyB(dat, i*16+j+1, 1)), VAR_INTEGER), 3, -1)
 next
 print str
next

ifb ascB(chr(0)) = 0
 print "ascB(chr(0)) = 0"   // 一致する
else
 print "ascB(chr(0)) <> 0"
endif
ifb ascB(chr($81)) = $81
 print "ascB(chr($81)) = $81"
else
 print "ascB(chr($81)) <> $81" // 一致しない
endif
sleep(10)

778:名無しさん@お腹いっぱい。
11/06/05 17:41:52.80 QXzudF7U0
>>777の条件文は、Format関数でおかしくしたのかの実験。
だが、そうではなかった。

absを使ってみたけど関係なし
しかし、ASCではFF8Aとかに変換されたりするので、AscBを使う必要がある。
どの道0x80以上の範囲でのことなので大差はないが。


779:名無しさん@お腹いっぱい。
11/06/05 17:46:20.34 sEVwMmd6O
あのさ、先にやりたいこと全部試して
まとめだけ書くって知恵は無いの?

780:名無しさん@お腹いっぱい。
11/06/05 18:32:05.88 QXzudF7U0
>>779
やりたいことは別にない。とりあえずUWSCでバイナリデータを”自由に”扱えるか知りたい。

今まではバイナリデータでも"ADODB.Stream"を使えば扱えると思ってたけど、
受け渡しすら出来ないなら選択肢からさっさと外さないと時間の無駄でしょ。

DLLならメモリに直接書き込んでくれるから文字列バッファを使って受け渡しは出来ていたけど、
COMオブジェクトは代入渡しだからUWSCが自動処理する関係でおかしくなるんだね。

で、動くコードは結論だけで済むんだけど、動かない場合は単に作った人が使い方を間違っただけかもしれない。
それを他人が検証するには「何をしたか」を書かないといけない。

>>750だってコードは出してるけど、肝心な部分がないので判断できないでしょ。

今まではバイナリデータっぽく扱うことが出来ていて不便は感じなかったんだけどね。
バイナリデータなんて実際は扱ってないから。
そもそも他アプリを操縦するのがUWSCの基本だから(以下略


781:名無しさん@お腹いっぱい。
11/06/05 18:49:30.58 QXzudF7U0
>>779
あ、やりたいことあったよ。

HSPスクリプトのDLL呼び出しが出来るけど、あれってEXECするのと変わらないよね。データの受け渡しが出来ないから。
一応管理データがあるみたいだけどHSP内部で使うものであって、スクリプトで扱うものじゃない。
あれを使ってデータのやりとりやら制御ができたらいいなと。

まあ、HSP覚えるのめんどくさいから使わないんだけどね。
HSPでも結局はDLLで全部やっちゃうらしいし。

あれを使おうと思ったのはそもそもチートするときに、食いついたゲームプログラムから
呼び出すことが可能でメモリ改ざんが可能なスクリプト実行環境だったからなわけで。
結局、実行ファイル展開後に食いつく方法とかセキュリティソフト回避する方法とか分からなくて投げ出したんだよ。
UWSCから呼んでみたのは、実際どう呼び出すのかテストと、
UWSC Free版で画面を自由に使えるかなと。


782:名無しさん@お腹いっぱい。
11/06/05 18:51:21.07 BZXWRVGgP
ひとまず深呼吸をしよう。
腹式呼吸で10秒吸って、10秒はくのを10回繰り返す。

そしてこのスレを全レス表示させて1から順に流して見ていこう。
中身は見なくても大丈夫。スレの流れる様子を見るようにして。

するとどうだろう。
君の実験は邪魔になってるのがよくわかるよね。
君の実験メモをここに書くのはやめよう。

783:名無しさん@お腹いっぱい。
11/06/05 19:29:01.77 SWS3yrb80
>>782
いや、それはどうよ。
UWSCで出来ないことがある…という情報は「誰にとっての『邪魔』」なんだ?

784:名無しさん@お腹いっぱい。
11/06/05 20:36:40.45 ni4DAQUY0
>>783
全部書くことはないと思う
先にやりたいこと全部試して結果のまとめだけ書いて
コードはcodepadにでも貼れば1レスでまとまるでしょ
それで同じことに興味がある人がいたらレスを拾うんじゃないかな
今みたくコードも含めて途中経過も全部書きこんでたら読むのめんどくせってなるよ

785:名無しさん@お腹いっぱい。
11/06/05 20:50:50.65 QXzudF7U0
>>784
確かにURLリンク(codepad.org) みたいなのは見やすくていいんだけど、
Basic系がないのはなんでなんだぜ。
C言語を選択してUWSCのソースを張るのは荒らし行為だよね?


786:名無しさん@お腹いっぱい。
11/06/05 20:59:25.58 ni4DAQUY0
>>785
シンタックスエラーになるだけだし荒らしにならないよ
てかPlain Text選べばいいだけでしょ

787:名無しさん@お腹いっぱい。
11/06/05 21:36:43.20 UpCDO7L00
Java Access Bridge for Microsoft Windows Operating System 2.0
が正しくインストールされているかどうかを調べる方法ってありますか?

と言うのも、Javaで作られたアプリを操作しようと四苦八苦しているんですが、操作できません。

GETIDは取得でき、SCKEYを利用できたりは出来るんですが、SENDSTR、CLKITEMなど直接コントロールを
操作/設定しようとしても無反応です。

例えば以下のような感じで記述しています。
SENDSTR(ID,"aaa",1,TRUE,TRUE)

なので、一番最初の文に戻りますが、Java Access Bridgeが正しくインストールされていないのでは?
と疑っています。

788:名無しさん@お腹いっぱい。
11/06/05 21:54:10.65 BZXWRVGgP
>>784
まさしくその通り。

1レス内で収まる範囲のソースコードや説明であれば誰かの役には立つとは思う。
しかし、こんな長文をダラダラ延々と続ければ続けるほど誰も見なくなり
情報価値は少なくなる。むしろマイナスだ。邪魔。荒らし行為そのもの。

一応フォローするけど、まともなコードも書けるようだし頭はいい人だとは思う。
アスペルガー症候群なんだろうか。

789:名無しさん@お腹いっぱい。
11/06/06 02:55:49.79 9zgS8WMT0
そうかな。
ホームラン級のバカだと思うけどな。
uwscの役割を理解せずに、何でもかんでも要求してるだけだろ。
v2cみたいに。w

790:名無しさん@お腹いっぱい。
11/06/06 03:07:13.75 npqVU/0S0
要求はしてないだろ。確認しただけだ。本当に馬鹿発言だな。

791:名無しさん@お腹いっぱい。
11/06/06 04:02:16.44 9zgS8WMT0
uwscに要求したじゃん。

792:名無しさん@お腹いっぱい。
11/06/06 08:50:24.84 4AVwEeJW0
>>789
いまどきバイナリファイルも扱えないスクリプトなんてw
…というレッテル張りに始終するのが賢い選択だったのかな?

793:名無しさん@お腹いっぱい。
11/06/06 12:14:20.48 8xId2Plm0
>>792
近代的なプログラミング言語は言語仕様は最小限にして
機能はライブラリで提供するのが主流だからバイト配列が扱えない言語も多いよlua、lisp、javascriptとか。
PHPやVBは時代に逆行して機能を言語仕様に詰め込むから言語としてバカにされ続ける。

794:名無しさん@お腹いっぱい。
11/06/06 12:15:55.68 npqVU/0S0
lispとか古すぎ

795:名無しさん@お腹いっぱい。
11/06/06 12:34:24.36 E8y1CT6vi
>>793
外部ライブラリを使っても、UWSCの制限でバグるのが問題なんだろ。
使える外部ライブラリを提示出来るならその指摘もありだとは思うけど…

796:名無しさん@お腹いっぱい。
11/06/06 12:47:15.73 8xId2Plm0
>>795
UWSCにライブラリ作るためのAPIなんて用意されてないだろ。

画面ポチポチやるかき捨てプログラム書くための専用ツールなんだから
どうしても必要なんだったら普通の言語使うか>>771みたくネイティブコード吐ける言語に処理させて
結果だけ受け取ったほうが圧倒的に効率いいだろ

797:名無しさん@お腹いっぱい。
11/06/06 13:24:04.29 npqVU/0S0
>>796
すでに存在するものを利用できるのがスクリプトのいいところだ。
バイナリの受け渡しさえ出来ればいいんだからUWSCが対応したらそれでこんな議論は終わりだ。

しかし、加工したはずの文字列がゴミまで一緒に渡すようになると、既存のコードに影響するからね。
>>796が主張するように自分で処理するDLLを作って文字列を加工したのに、
UWSCがそれを無視してゴミをデータとして処理したとすると、それはそれで問題がある。

> 結果だけ受け取ったほうが圧倒的に効率いいだろ
それは当たり前だよ。
だけど、スクリプトでやることに意味があるんじゃないか。
コンパイル環境がいらないとか、コンパイル言語でバグ出す前にテストしてみるとか。
WSHやJavaScriptじゃなくUWSCを使うのは、手軽にDLLを使えるからだろ。
DLLはバイナリデータを扱うことが多いんだから、バイナリがうまく扱えないのはメリットをデメリットで相殺してるようなものじゃないかな。


まあ、ハッシュ計算の問題はWindowsAPIのReadFile関数をDLLで呼び出せばたぶん解決だよ。
バイナリデータが扱えないと言うより、COMオブジェクト特有の代入演算がネックだったと。

798:名無しさん@お腹いっぱい。
11/06/06 13:33:26.37 npqVU/0S0
>>793
あと、Lispを近代的言語って表現するのはおかしいよね。
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)

Lispがとても古い時代のものだというのはプログラミング言語一つでも使えるなら知ってて当然なんだけど。
まあ言葉の表現がおかしいだけなんだろうけど、ものの捉え方がちょっとズレてるのが原因かもね。
だからこんな議論してしまうんだよ。
何でもかんでも自分の知ってるものに当てはめてしまうとかね。
もうちょっと基礎部分を広げた方がいいと思うよ。


799:名無しさん@お腹いっぱい。
11/06/06 13:39:21.47 8xId2Plm0
>>798
登場時期が古い=レガシー言語ってお前バカだろw
C言語よりC++やD言語がモダンだと思っちゃうタイプ?

800:名無しさん@お腹いっぱい。
11/06/06 14:53:42.01 8xId2Plm0
>> 結果だけ受け取ったほうが圧倒的に効率いいだろ
>それは当たり前だよ。
>だけど、スクリプトでやることに意味があるんじゃないか。
>コンパイル環境がいらないとか、コンパイル言語でバグ出す前にテストしてみるとか。

どんだけこのマウスポチポチツールに入れ込んでるのか知らんけど
これでいいじゃん

URLリンク(codepad.org)

この話題終了

801:名無しさん@お腹いっぱい。
11/06/06 21:36:31.18 kvcA2Kfh0
ふぉーとらんを馬鹿にする奴は俺が許さん

802:名無しさん@お腹いっぱい。
11/06/06 21:52:05.67 QHLp3LcH0
>>801
科学系では現役で新規プロジェクトに使われてたりするしね

803:名無しさん@お腹いっぱい。
11/06/06 23:37:35.58 9zgS8WMT0
こんなヘンピなスレで、なんでキチガイが湧くのかなぁ。
スレ過疎化すると、スレ建てした奴が必死に成るのかなぁ。
それにしても、スレチな発言しても意味無いと思うけどなぁ。

あ、かまってほしいだけ!?

804:名無しさん@お腹いっぱい。
11/06/07 00:02:06.85 czDeR00m0
こんなの作ってみたんだけどどうかな。
URLリンク(smallbasic.com)


805:名無しさん@お腹いっぱい。
11/06/07 18:40:45.62 FpMUckDF0
クリップボードの中身によって行動を変える条件分岐はどう書いたらよいの

806:名無しさん@お腹いっぱい。
11/06/07 18:48:08.13 3DgxKyzv0
クリップボード=GETSTR(0)

IFB クリップボード = "こっち" THEN

ELSEIF クリップボード = "そっち" THEN

ENDIF

807:名無しさん@お腹いっぱい。
11/06/07 19:01:24.65 FpMUckDF0
ありがとうごじゃました!

808:名無しさん@お腹いっぱい。
11/06/07 19:32:16.65 GF8L72VJ0
>>806
変数名に日本語使うと一瞬それらしく見えなかったりしたw

809:名無しさん@お腹いっぱい。
11/06/07 20:52:53.48 aOHIWvUD0
誤動作しそうだから、使わないとココロに決めた。

810:名無しさん@お腹いっぱい。
11/06/07 20:59:35.73 czDeR00m0
MOUSEORGとか使わなくても
ifb Status( ID, ST_ACTIVE ) で表にいるときだけ操縦するようにすれば
単純な記録・再生でも使えるよ。

まあ俺も誤動作させまくってるから失敗が怖ければ使わない方がいいけど、
たとえば仮想マシン上で動かせば仮想マシンの外には影響しないよ。

逆は可能だけどね。


811:名無しさん@お腹いっぱい。
11/06/08 13:29:25.29 aqQRx2dz0
古いの使ってたのを最新にしてみたら、既存のコードでシンタックスエラーになった。

コード; if ~ then exit
っていう1行で続ける条件文がだめで、
改行したらOKになった。


812:名無しさん@お腹いっぱい。
11/06/08 23:24:42.77 LN9bd+dX0
すでになおっとる(6/5)

813:名無しさん@お腹いっぱい。
11/06/09 12:32:10.82 S+BrRx410
画像リンクがどーしても出来ないです…
IELINKやページ内の画像を取得後にaltをターゲットに検索して、などは出来るんですが。。
必ずaltが宣言されてればいいんですけどそうじゃないので困っています。
画像が小さいと認識しにくいとの事ですが
どの程度の大きさまで認識できますか?
また画像の一部分を基準に認識可能でしょうか?


814:813
11/06/09 18:35:10.26 S+BrRx410
画像クリック他の所で試したら普通にいけました…
それと目的の画像をペイントで表示する場合は認識するのですが
画像として表示させた場合は認識しません。
認識の精度を上げる事は出来ないのでしょうか?


815:名無しさん@お腹いっぱい。
11/06/09 19:09:24.75 lxNHl3xJ0
画像として表示って何かな?

画像が拡大縮小とか加工されて表示されたらそりゃ別物と認識しますよ。

色範囲を広げるオプションはあるようなので、使ってみたら?


816:813
11/06/09 20:55:58.40 S+BrRx410
画像としてはWindowsフォトギャラリーでの表示です。
オプションは一通り試しみました…
形だけでも拾えないのでpngで四隅を透過処理してあるのは無理なんですかね。
もしかして対象もbmp形式じゃないとダメなんて事はないですよね?
ヘルプには参照元はbmpとは書いてあったんで、大丈夫だとは思うんですけど。。


817:名無しさん@お腹いっぱい。
11/06/09 21:11:21.94 lxNHl3xJ0
フォトギャラリーって自動縮小でしょ。100%で表示しないと。

あと、フォトギャラリーで表示した状態でキャプチャしてそれを切り取って検索したらうまくいくはず。


818:名無しさん@お腹いっぱい。
11/06/09 21:12:52.58 yG+RHF7P0
認識の精度を上げるんじゃなくて下げるんだろ。
違う画像を認識させようってんだから。

819:名無しさん@お腹いっぱい。
11/06/09 22:09:16.44 Hr+TP2+u0
ここも、GIMPスレ並のYahoo!知恵遅れ状態だなぁ…
UWSCで何させようとしてるか判ったら、爆笑できそうだな。w

820:名無しさん@お腹いっぱい。
11/06/09 22:19:56.08 lxNHl3xJ0
>>819
知りたいならほらここに
URLリンク(dl7.getuploader.com)

821:名無しさん@お腹いっぱい。
11/06/10 08:07:51.29 RPvBhsfT0
>>820
なにこれ、こんなに書いたの?かわいそう・・

822:名無しさん@お腹いっぱい。
11/06/10 13:20:01.54 jWf5r0Hv0
>>819
物をどう使おうと個人の自由だろ
お前は他人の使い方をバカに出来る程に凄い使い方してんの?


823:名無しさん@お腹いっぱい。
11/06/10 16:18:12.59 gqJ9okoX0
そういう意味か。

てっきり、A→Bと言う方法があるのに、A→C→D→E→B と言う風にするなんてプギャーみたいな事かと思った。


824:名無しさん@お腹いっぱい。
11/06/10 19:05:04.44 cKzGyQ5z0
>>822
いや、ボクが爆笑できそうなのは>>823が近い。
どっちかって言うと、UWSCじゃ無いソフトでスコーンとやれそうな気がして、想像すると笑えるって話さ。w
>>817が結論っぽいんだけど、そうなのかどうなのか返事が無いからなんともだし。
>>それと目的の画像をペイントで表示する場合は認識するのですが画像として表示させた場合は認識しません。
こんな事書かれても、なにをどうしたのか、サッパリワカラナイヨ。
>>ペイントで表示する
>>画像として表示する
どう違うってんだ?w
バカにされたくなかったら、他人が読んでも判る文章を書くべきじゃないのかな?

825:名無しさん@お腹いっぱい。
11/06/10 22:22:40.21 yDzVvEQ00
> UWSCじゃ無いソフトでスコーンとやれそうな気がして

やれたとしてそっちを使う意味がどれほどあるかってことなんだけど。


ところでLuaっていう言語はコンパイルもできるっぽくていいね。
VM使うみたいだけど、
C言語 ⇔ Lua の相互呼び出しが可能なので、Windowメッセージでスクリプト関数を呼び出すなんてことも可能。

でもC++とか.netでも使えるかどうかが分からないな。

826:名無しさん@お腹いっぱい。
11/06/10 22:30:22.60 cKzGyQ5z0
>>825
うーむ、キミの読解力の無さに絶望したぁぁぁぁ。

例えば、UWSCを使ってIEで2ちゃんねるを巡回するより、専用ブラウザ使った方が楽だろ?

827:名無しさん@お腹いっぱい。
11/06/10 22:31:51.02 7YTvWQ+P0
メイプルでchkimg使うとき範囲指定したら認識してくれないんだけど・・
手作業でメイプルのウィンドウ内をクリックしたらなぜか認識してくれるんだけど
KBDでやっても認識してくれないんだけどなにかコツとかあるんですか?

あとsaveimgでメイプルのウィンドウ内の画像取ったら真っ白になるんだけど
これってちゃんと撮れる方法とかないんですか?



828:名無しさん@お腹いっぱい。
11/06/10 22:33:28.90 7YTvWQ+P0
訂正 KBDじゃなくてBTNでした


829:名無しさん@お腹いっぱい。
11/06/10 22:41:55.44 cKzGyQ5z0
あれ?
結局、ボットの話?

830:名無しさん@お腹いっぱい。
11/06/10 23:38:48.47 yDzVvEQ00
>>827
> KBD→BTNでやっても認識してくれないんだけど

時々クリックできないバグみたいのがあるんですよ。ボタンをあげることが出来ない場合とか。
その状態でもマウスカーソルの移動とクリック動作はしてたりします。
だからマウスカーソルが移動するのかしないのか、その上でクリックできるのか出来ないのか言ってくれないと。
まあどっちにしろ分かりませんけどね。

mouseorgで座標の基準がずれてるのかもしれないし。

もしかするとmouseorg(ID, 2)で、目的のアプリのIDとは違うものを指定しているとか。
それでイベントがあさっての方向に飛んでいっているとか。
あるいは適切なコントロールにメッセージが飛んでないとか。
>>644みたいに
> MOUSEORG(GETCTLHND(id,"Edit"),2)
ってコントロールを指定しないといけないとか。


>>826
> 専用ブラウザ使った方が楽だろ?
UWSCが使えるならUWSCで専用ブラウザをコントロールするとはかどりますけど?


831:名無しさん@お腹いっぱい。
11/06/11 01:43:47.27 KTsgiup00
>>824
>バカにされたくなかったら、他人が読んでも判る文章を書くべきじゃないのかな?

始めはなにをさせようとしてるか判ったら
って言ってるのに次は文章ですか。
論点のすり替え上手いね。


832:名無しさん@お腹いっぱい。
11/06/11 04:47:58.70 EYzj6ZLD0
メイプルの画像認識は検索範囲をウィンドウの外から始めないと上手くいかない
例えば、HP回復だと

ID = GETID("MapleStory")
MX = STATUS(ID,ST_X)
MY = STATUS(ID,ST_Y)
HPx = 500 + MX
HPy = 780 + MY
ifb CHKIMG("HP.bmp",0,MX-1,MY-1,HPx,HPy) then
KBD(VK_HOME,CLICK,100)
endif

だと上手くいくけど、
CHKIMG("HP.bmp",0,MX,MY,HPx,HPy)
にすると認識してくれなくなる

833:名無しさん@お腹いっぱい。
11/06/11 06:24:00.15 qnFNK3qZ0
>>825
>C言語 ⇔ Lua の相互呼び出しが可能なので
perl、ruby、python一般的に使われてるほとんどのスクリプト言語で可能だよ

>VM使うみたいだけど、
VMってバイトコードインタプリタのことだけど
実行方法がなんか問題あるの?JITで爆速じゃないとヤダとかなら
LuaJIT Projectとかあるよ

>でもC++とか.netでも使えるかどうか
C言語で使える=C++からも使える

人気の言語は次々にCLI(.net)に植されているよ
まだ実行速度が十分じゃないけどそれでもUWSCの100倍は速いよ
まあ結局C#が素晴らしすぎるからみんなC#使っちゃうんだけどね

IronPython - Home
URLリンク(ironpython.codeplex.com)
IronRuby.net /
URLリンク(www.ironruby.net)
Lablua - Home
URLリンク(www.lua.inf.puc-rio.br)

834:名無しさん@お腹いっぱい。
11/06/12 12:33:10.22 IEVSGnHg0
>>813
>>814
>>816
結局、この書き込みなんだったんだろう…

835:名無しさん@お腹いっぱい。
11/06/12 19:07:19.31 4/CpV7DF0
RGBのうちBの値が100<150のときに動作Aを行うようにしたいのですが、
「関数が正しく閉じていません」とエラーがでてしまいます
なにが原因なんでしょう

IFB(PEEKCOLOR(700,300) and $FF0000)/$10000 100< and <150 then
動作A
else
動作B
Endif

836:名無しさん@お腹いっぱい。
11/06/12 20:23:35.55 NIxSeDQw0
>>835
ヘルプの「関数の定義」を読めば判る

837:名無しさん@お腹いっぱい。
11/06/12 20:32:47.17 Dg1uIKsE0
>>835
IFB  (PEEKCOLOR(700,300) and $FF0000)/$10000   100< and <150 then
  ↑スペースがないから関数の括弧扱い       ↑?

> 100< and <150
こんな比較方法はありません。
こうしないと↓
 (100 < B)  and  (B < 150)

だけどPeekColorを2回も呼び出すと遅くなるから、一旦変数に入れるべき。


838:名無しさん@お腹いっぱい。
11/06/12 20:35:44.75 NIxSeDQw0
よく読んだら違うか…ifの比較文がだめなんだろ。
true,falseで判断できない式は認められない。

あと、三つの値の同時比較はuwscは対応していない。

839:名無しさん@お腹いっぱい。
11/06/12 20:40:37.13 Dg1uIKsE0
> true,falseで判断できない式は認められない。

falseでないものは全てtrueになるので問題ない

840:名無しさん@お腹いっぱい。
11/06/12 20:54:13.06 NIxSeDQw0
>>839
マジかよw …と思ってたら、
100< and <150 は1でtrue扱いだったw

841:名無しさん@お腹いっぱい。
11/06/12 20:55:34.87 4/CpV7DF0
>>836-839
ありがとうございます。
とりあえず100以上であれば大丈夫そうなのでそれでやってみます

842:名無しさん@お腹いっぱい。
11/06/12 20:57:27.21 FmPEfqxB0
なにこれ気持ち悪い・・
書けば書くほど発見されていく糞仕様

print ( 100 < and < 150 ) //=> 1

843:名無しさん@お腹いっぱい。
11/06/12 21:10:04.08 Dg1uIKsE0
100 -> 01100100
150 -> 10010110
論理積 00000100

比較演算子が無視されてるかな


844:名無しさん@お腹いっぱい。
11/06/12 21:17:37.86 fHCxpPOf0
数値 < and // 常に0
数値 > and // 常に1

100 < and < 150 → (100 < and) < 150 → 0 < 150

845:名無しさん@お腹いっぱい。
11/06/12 21:28:14.28 FmPEfqxB0
print ( and )
print ( or )
print ( and + or )

全部エラーにしてくれないよ

846:名無しさん@お腹いっぱい。
11/06/12 21:31:07.64 NIxSeDQw0
>>844
納得した。

こういうのって一般的に構文エラーにするべき物?


847:名無しさん@お腹いっぱい。
11/06/12 21:33:53.08 FmPEfqxB0
UWSCはBNFすら公開されてないしパーサが正しい文として解釈してるんだろうと想像するしかないよね

848:名無しさん@お腹いっぱい。
11/06/12 23:25:55.80 IEVSGnHg0
別に、いちいちエラーにしてくれなくても問題無いじゃん?
こうこう、こんな事したら、思ったとおりに動かないんです。
と、作者に 日本語で メールするなりすれば良い事。
結果に影響が無いなら、俺だって放置するさ。w

849:名無しさん@お腹いっぱい。
11/06/13 00:55:54.91 tupIRmvE0
例)キャラがX座標の指定の位置まで右に動き、指定の位置に着いたらジャンプをする
次に指定の位置まで左に動き、指定の位置に着いたら上に移動する
次に指定の位置まで右に動き、指定の位置に着いたら最初の位置まで左に移動する

というように条件を満たした場合、次の動作をするそして全ての動作が終わったらまた最初から繰り返す
というようなマクロを作りたいと思っていますが 作り方がわかりません
教えていただけないでしょうか? よろしくお願いします

下記のものは考えつく構成ですがこれではうまくいきませんでした
WHILE CHKIMG("自分のマーク.BMP",0,0,0,0,0)
KBD(VK_RIGHT,1,100)
KBD(VK_ジャンプキー,0,200)
WEND
KBD(VK_RIGHT,2,100)

WHILE !CHKIMG("自分のマーク.BMP",0,0,0,0,0)


850:名無しさん@お腹いっぱい。
11/06/13 01:19:09.81 1it66pKH0
>>849
そういうのはモジュール化した方がいいね。
で、グループ化(見た目的に)する。
キャラ位置の確認方法は分からん。画像判定は難しいからね。
VK_Right とかそのまま使ったけど、キーコードはグローバル変数で持った方がいいね。

// ステップ1
伽羅.→歩行()
伽羅.停止()
伽羅.跳躍()

// ステップ2
伽羅.←歩行()
伽羅.停止()
伽羅.上昇()

// ステップ3
伽羅.→歩行()
伽羅.←歩行()
伽羅.停止()

module 伽羅
 dim r_key = false  // falseはUP中、trueはDOWN中
 dim j_key = false   //
 ・・・
 function →歩行()
  ・・・
  // →に移動するには、←をキャンセルしないといけないので、それを先にやる。
  ifb l_key then
   kbd(VK_Left, UP); l_key = false; sleep(0.023)
  endif
  kbd(VK_Right, DOWN); r_key = true  // ←操作と状態は1行につなげると確実にセットで指定できる。間違えにくい。

851:名無しさん@お腹いっぱい。
11/06/14 10:43:48.94 N4XAViK70
UWSCでCOMやAPIを扱いたいのですが、
調べ方が悪いのかさっぱり理解できません。
これらを扱うには多言語から行った方がいいのでしょうか
あとこれらはオブジェクト指向というものなのでしょうか。

852:名無しさん@お腹いっぱい。
11/06/14 13:59:28.35 RsLKFePU0
>>851
APIは違うけどCOMはオブジェクト指向な技術。

ただし、いわゆるオブジェクト指向プログラミングとは違う。

APIについて知りたい時は、
「WIN32 api」と関連キーワードで検索

DLLの宣言が知りたければ
UWSCの DEF_DLL とか
VBの"Declare Function"で検索

COM オブジェクトについては
UWSCの CREATEOLEOBJ とか
VBScriptの CreateObject で検索すると使用例が出るので早い。

オブジェクトの詳細はオブジェクト名+site:msdn.microsoft.com を
「日本語で検索」オプションで検索。


853:名無しさん@お腹いっぱい。
11/06/14 14:16:56.70 N4XAViK70
>>852
簡潔で分かりやすい説明ありがとうございます。
早速検索などで調べてきます。

854:名無しさん@お腹いっぱい。
11/06/14 17:00:03.32 NrA1k+P90
ちょとすれ違いかもですが
とあるゲームでUIにほとんどKBが割り当てられてないので
Enter押したら指定座標にあるOKボタンをクリック
→キーを押したらして座標にある次のページへのボタンをクリック
みたいな機能を作りたいんですがUWSCでできますでしょうか

以前はkeybatでやってたんですが、7に変えてから使えなくなってしまったので

855:名無しさん@お腹いっぱい。
11/06/14 18:14:41.40 RsLKFePU0
> Key Batはキーボードとマウスにドライバレベルで割り込むので、
> Direct X用のソフトや、MS-DOSプロンプトのソフトでさえ、その支配下におさめ、
> 非常に強力なマクロ実行が行なえます。

ああ、UWSCは確かにキーボードやマウスを操縦できますが、
目的のソフトで使えるかどうかは分かりませんね。

> →キーを押したらして座標にある次のページへのボタンをクリック

SETHOTKEYが使えるかも。
試したら大概のキーを一つの関数に割り当てできたので、分岐したらシンプルにまとまりますね。

SetHotKey( VK_Right, 0, r_crick ) // 省略方法がよく分からないのでとりあえず0

while true
 sleep(1)
wend

function r_crick()
 ifb chkimg("OK_Button.bmp",IMG_MSK_BGR4,0,0,200,200)
  BTN( RIGHT, CLICK, G_IMG_X、 G_IMG_Y )
 endif
fend

--
VK_LEFT
VK_UP
VK_RIGHT
VK_DOWN


856:名無しさん@お腹いっぱい。
11/06/14 19:31:03.27 RsLKFePU0
SetHotKey() 意外と使えるわ。

SetHotKey( Ascb(c), , "OnKeyClick" )
とかでほとんどのキーや文字を割り当ててインターセプトしても、
そのままKBD()で操作すれば漢字入力も普通に出来るし、
コピペとかもできる。

Procedure OnKeyClick()
 kbd(HOTKEY_VK, click)
Fend

問題はカーソルキー(↑↓←→)かな。
押しっぱなしはClickじゃなくてDOWNだけど、文字で見る限りClickしてもDownしても同じに見える。

いや、それより、操縦とチャットの切り替えの判断が必要になることか。
アプリケーションの切り替えならアクティブかどうか見ればいいけど・・・
それはどのやり方でも一緒か。


857:名無しさん@お腹いっぱい。
11/06/15 13:18:18.59 sbQ8YLFV0
外部からUWSCの関数を呼び出す方法があればいいなと思ってたけど、
HotKey経由でやったらいいかもしれん。

受け渡すデータはクリップボードに入れておいて、キー入力を発行。
単純にクリップボードを監視するループでやるよりもCPU食わんし
誤作動の確率が減る。

でも、KBD()とクリップボードが扱えるならUWSCを呼び出す意味ってないかも。

別プロセスとして起動したUWSCとの通信に利用できるか。
やってみたら出来たけど、複数登録は出来ないね。
登録が一つのキーには一つ。
だから違うキーを使えばやり取りは可能。
UWSC同士でやっても混乱するだけだけど、やれなくもない。


858:名無しさん@お腹いっぱい。
11/06/15 13:20:45.80 zhjWWPW20
>外部からUWSCの関数を呼び出す方法があればいいなと思ってたけど、

全くやる必要を感じません
普通の脳の持ち主は仕様が提供されている他の処理系を使います。

859:名無しさん@お腹いっぱい。
11/06/15 14:16:43.49 sbQ8YLFV0
>>858
たとえばどれ?

860:名無しさん@お腹いっぱい。
11/06/15 14:27:24.41 wLEdGhI20
プロセス間通信をサポートしてる処理系。

UWSCでなんでもかんでもやりたい基地の人と同一だろうけど
そういった用途のスレでは無いし
あんた荒らしにしかなってないから自分のサイトでやっててってみんな思ってるよ

861:名無しさん@お腹いっぱい。
11/06/15 15:20:02.91 sbQ8YLFV0
そうは言うけど.netとVS入れたら何GBも食うでしょ。しかもC:ドライブを。
しかも別のマシンで実行するには.netとかDLLをセットアップしないと動かない。
俺は旧いPCとXPしか持ってないからきついんですよね。

スクリプトなら軽量かなとPython入れてみたら案外でっかいし
簡単そうに見えて案外難しかったし
あのときはいきなりUnity3Dを動かしてみようと思ったのが悪かったのかもしれないが。
HSPも意外とでっかいんだよね。
画面が簡単に作れるのはいいんだけど画面以外とのやりとりがいまいちよくわからなかった。
画面内だけのことならSmallBasicが出てきたからこっちのほうが文法とか含めて分かりやすいかなと。
SmallBasicはサイズは軽量な割りにIDEがアニメーション使いまくっててゲストじゃ重かったけど、
HSPだってネイティブのようには軽くないし。

確かにUWSCは文法や挙動がいまいち分かりにくかったりしますが、
一旦覚えてしまえばエディタで気楽に書けるし実行するのも本体の実行ファイルがあればいいし、
やれる範囲のことなら楽なんですよ。
そんなたいそうなことは最初からやらないしね。

こんなことをだらだら書くほうがよっぽどうざいと思うけど>>860みたいに言われたら書くしかないよね?

まあお勧めはやっぱりSmallBasic+VBかな。
HSPも初心者に優しいけど文法とかがな・・
本気でプログラマ目指すならC++。もうちょっと楽なところがよければJAVAかC#かVB。

Ruby?なにそれ。
今、Luaとか squirrel とか AngelScript とかも見てみているんだけど
やっぱりどれもいいところと悪いところとあって迷うんだよね。
中途半端に手をつけると混乱するだけだし。

昔、親指シフトをエミュで練習したことがあったけど、必ずローマ字入力のときに混乱するんだよね。
確かに入力は速いかもしれないけどそれだけで通用するわけじゃない。
特にエミュはそれを覚えた人が応急的に使うものであって、親指キーボードを持たない人がやるものじゃなかった。

862:名無しさん@お腹いっぱい。
11/06/15 15:27:38.53 wLEdGhI20
相変わらず基地外すぎワロタ

お前の環境とかオススメとか誰も求めてないんで。
お引き取りください、そして2度と来ないでください。

続きはこちらに好きなだけ書いてください、さようなら。
URLリンク(scripts.web.fc2.com)

863:名無しさん@お腹いっぱい。
11/06/15 16:04:35.95 sbQ8YLFV0
>>862
あんたはUWSC使わなくても何でも出来るんでしょ?なんでUWSCを使ってるの?
何でも作れるような人がUWSCを使う意味って何?
むしろそこが重要なんじゃね?


864:名無しさん@お腹いっぱい。
11/06/15 16:12:49.77 wLEdGhI20
>>853
今の仕事の前任の人が業務で使うものを好き勝手UWCSとかいう糞アプリで大量書いて捨てて行ったから
それを保守、メンテナンスするハメになっている縁でスレ見てるだけだよ。

俺が.net frameworkで書き換えるのは簡単だけど
UWなんとかはwebのどこ探しても仕様書なんて見つからないから
業務で一定期間使ってる以上簡単には切り替えられないんだよ。わかるでしょ?

お前みたいななんでもかんでも裏技的なテクニックを使って実装しようとしてる基地外を見て
不幸な人間を増やしたくないと思った。

865:名無しさん@お腹いっぱい。
11/06/15 16:53:47.71 q7sA7lWs0
本気で何言ってるかわからないからもう少し落ち着いてレスしてみてはどうでしょうか?

866:名無しさん@お腹いっぱい。
11/06/15 16:56:09.16 OlG7pJRRi
>>864
.net(C#,VB)でのUWSC的な
・他ウィンドウの制御のサンプル
・デスクトップ画面の画像認識の手法サンプル
を教えてくださると凄く嬉しい。

…助けて。
私はそれが出来ずに、不幸を引き継ぎそうな低レベルな人です。
事務的な足し引きは判るけど、上記の様な一つ進んだ内容になるとアリモノを使う以外に無かった。
取っ掛かりさえあれば…と毎度思っていたのです。

867:名無しさん@お腹いっぱい。
11/06/15 17:01:54.60 sbQ8YLFV0
どんな環境だって問題が複雑になれば裏技的にやるもんでしょ。
大事なことは正しく知ること。

↓に引用したのがあるけど、みんな自分に合った物を捜し求めてるんですよ。
スレリンク(tech板:270番)
> Luaはダメだ。 AngelScriptを試してみよう… 

> とりあえず実装可能っぽいけど… 呼び出しコストとかどうなんだろ?
> 試すしかないかなぁ… はぁ… 資料少ないなぁ。


.net framework だってOSが新しくなればメンテナンスは必要でしょ。
もちろん.netは開発効率はいいんでしょうけどね。

自分のHPであれが出来ないこれがダメとかやってもいいんですけど、
業務妨害とか言われたりするのがね・・・
自分が間違っていたりした場合でも、レスが返せれば間違いを訂正してくれる人がいるかもしれないけど、
そんな凝ったページ作るのめんどくさいし。
何より、人がレスくれたページをいじくって消すと申し訳ないじゃないですか?
とにかくめんどくさいんですよ。
あなたがUWSCのメンテがうざいって言うのと同じようにね。


868:名無しさん@お腹いっぱい。
11/06/15 17:16:04.68 wLEdGhI20
>>866
例えばUWSCに添付されているGuruGuru.uws(でしたっけ?)のようなものと
chkimgしてクリックするようなサンプルをC#書いてアップローダにアップしますね

>>867
>どんな環境だって問題が複雑になれば裏技的にやるもんでしょ。
しません。

Linuxのシステム管理スクリプトがなぜperlからpythonに取って変わられたのか調べてみてください。

869:名無しさん@お腹いっぱい。
11/06/15 17:24:43.36 sbQ8YLFV0
> なぜperlからpythonに取って変わられたのか

書けるけど読めないからでしょ?


870:名無しさん@お腹いっぱい。
11/06/15 17:33:58.67 OlG7pJRRi
>>868
ありがたい。
出来れば、GruGru.uwsよりかは、『サンプル.uws』のような情報取得と入力等の機械的制御が本分かと思います。

871:名無しさん@お腹いっぱい。
11/06/15 17:40:45.16 wLEdGhI20
>>869
もちろんperlはきれいに書こうと思えば書けるんですが
Perlのモットーは「やり方はいろいろある (TMTOWTDI; There's More Than One Way To Do It)」なので
100人プログラマがいたら100通りの書きかたが出来てしまいます。
裏技的に書く書きかたが許されているのでグダグダになりやすいんですよね。

対してPythonはwikipediaの頁にも書かれているように

>Pythonでは多くのユーザによって書かれた同一の仕事をするプログラムは、
>だいたいどれも同じようなコードに収束する。基本機能にないものの多くはライブラリによって提供されている。
>また、Pythonではプログラムの文書化(ソフトウェアドキュメンテーション)が重視されており、言語の基本機能の一部となっている。

ドキュメントが豊富で誰が書いてもだいたいどれも同じようなコードに収束したほうが
他人が書いたコードを再利用しやすいですよね。
どちらの言語がより一般的になっていくかは明白ですよね。


ところでUWSCはどうでしょう、ドキュメントは読みやすいですか?
バイナリを扱う仕様はありますか?扱えたところで他人から見て暗号のようなソースコードになりませんか?

872:名無しさん@お腹いっぱい。
11/06/15 17:55:25.02 sbQ8YLFV0
>>871
> ドキュメントは読みやすいですか?

ヘルプの使い方を勉強すれば使えるよ。
あと、ソースコードも日本語が自由に使えるから読みやすいよ。
コードがどんなであれ、日本語のコメントを入れれば解決。

> バイナリを扱う仕様はありますか?
それができないねえって書いてたら怒られたんですけど。

> 扱えたところで他人から見て暗号のようなソースコードになりませんか?
関数化して見えなくすれば解決しますよ。
何子供みたいなこと言ってるんですか。
中身が分からないならテストする。それで解決ですよ。

>>871
> Perlのモットーは
最もよく使われてきたC言語
今も信頼されて使われることの多いC言語も、自由に書けるようになっていますが何か。

確かにPerlの難解さは異常かもしれませんが、当時はPerl以外にありえなかったんです。
だからPerlが使われてきたんです。


873:名無しさん@お腹いっぱい。
11/06/15 18:22:25.68 u0W1DsLj0
>>855
なんとか希望通りの操作は実行できたんですが
やはりキーボードがゲームのほうに奪われてるのか
ゲームが非アクティブな状態からでしか実行されませんでした

なにか他のツール探してみます

874:名無しさん@お腹いっぱい。
11/06/15 19:11:09.84 q1hBrkaN0
言語自体の是非についてならム板あたりでやって欲しいなぁ。

875:名無しさん@お腹いっぱい。
11/06/15 19:23:05.59 DNfS8KFj0
>>873
AHKは?

876:名無しさん@お腹いっぱい。
11/06/16 18:33:49.37 VwsA5JPn0
RecIEで記録していって、うまくいっていたのですが、ある一箇所で動かなくなってしまいました。
その部分の書かれている物を抽出してみたら、下記のように書かれている部分でした。

<a onclick="javascript:loadpage('/job/start.jsp');" href="javascript:void(0)"><span>スタート</span></a>

これはjavascriptと呼ばれるものでしょうか?
こういうものをマウスクリック以外で自動で押下して先のページに進むにはどうしたらいいでしょうか?
ググって、見よう見まねで応用してみたのですが、うまく機能するサンプルがありませんでした。
どうかお願いしますm(_ _)m。


877:名無しさん@お腹いっぱい。
11/06/16 19:19:53.71 nEU2InOi0
>>876
なんかのセキュリティ制限に引っかかってるんじゃない?
OSとIE何よ

878:名無しさん@お腹いっぱい。
11/06/16 20:06:08.70 VwsA5JPn0
>>877
ありがとうございます。
IEは8.0.7600と書かれています。
OSはWindows7 Professional です。
お願いします。


879:名無しさん@お腹いっぱい。
11/06/16 20:35:29.24 K8S7LB6t0
>>876
onclickだから多分、そのボタンのIDを探して
IE.Document.all.BUTTONID.Click()
ってやったらクリックできるかも。

allでだめな場合はFormのIDか番号も必要かも。


880:名無しさん@お腹いっぱい。
11/06/17 10:12:51.09 HostJxq00
flash上でドラッグ&ドロップを行いたいのですが、
BTN(LEFT,DOWN,~
BTN(LEFT,UP,~
では出来ませんでした。
実現可能な方法がありましたら教えてください

881:880
11/06/17 10:22:59.10 HostJxq00
ドロップ側の受け取りイベントが上手く発生しなかっただけみたいです
失礼しました

882:名無しさん@お腹いっぱい。
11/06/17 10:30:21.47 RK2DsXbm0
>>879
ありがとうございます。
IDといいますと、html上でのIDでしょうか?
このアンカー自体にはIDはふられてませんが、2階層上のLOGINという名前のIDのふられたDIVの中にある唯一のアンカ-なので、特定は可能だと思います。

いちおう、
IE.Document.all.LOGIN.Click()
で走らせましたが、当該の行で、
COM:error 例外が発生しました
と表示されて終了してしまいました。

ボタン自体にIDがない場合の書式はどうすればいいのでしょうか?
どうかお願いしますm(_ _)m

883:名無しさん@お腹いっぱい。
11/06/17 11:50:51.82 BQ8MrwPV0
>>882
DIVのIDは直接扱えないっぽいですよね。
単独では使えますけど。

GetElementByID()でDIVのIDからオブジェクトを取得し、
そのオブジェクトを元に
getchildnodesやGetNextElementなどでたどっていって<a>タグのオブジェクトを取得できれば、
aタグ.click() が実行できるかも。

ちなみにUWSCの標準関数ではタグを指定してソースを取得は出来ますけど
オブジェクトを取らないとClickできないので。


UWSC的にはブラウザのアクセス方法はやめてClkItemが早いかも。
ClkItem( HNDToID(IE.HWND), "スタート", CLK_ACC, , 番号1から )


884:名無しさん@お腹いっぱい。
11/06/17 18:44:23.49 lxZwA0Pt0
>>875
AutoHotKeyでもダメでした
ドライバレベルでフックしないとだめっぽさそうです

885:名無しさん@お腹いっぱい。
11/06/19 22:59:16.65 eQCK3OW/0
PowerShellの実行が複数行行けるから、EVALで同様に出来るかなと思ったけど無理だった。
関数として記述すればいいんだけどね。
それかファイルに吐き出してExec()か。


他アプリの操縦は別としてだけど
UWSCに変わるスクリプト言語としてBooってのもいいかも。

文法は6割がPythonと共通で、.net またはLinuxのMonoのアプリケーションだけど、
ランタイム自体はUWSC並に小さくてエディタで書いていけるらしい。

実行形態は対話形式スクリプト、スクリプトファイルの実行、コンパイルしてexe単体実行ができる。


最初のうちはHTMLをローカルで実行できるHTAがいいかなと思ったけど
JScriptかVBScriptなんだよね。どっちもあんまり・・
もちろん汎用的ではあるんだけどUWSC覚えたらUWSCの範囲でやってしまう。


886:名無しさん@お腹いっぱい。
11/06/20 02:36:37.81 DEpdX2Q90
「らしい」とか「みたいだけど」とかって言うヤツは信用しちゃならねってばっちゃが言ってた。

887:名無しさん@お腹いっぱい。
11/06/20 02:48:08.49 UtQuLi1d0
新規で覚えるなら
.netが必要ならば.net環境で作るよ…

888:名無しさん@お腹いっぱい。
11/06/20 23:27:44.43 z7NNg7kU0
タスクトレイのVolumeを右クリック後の再生デバイスを選択するにはどうしたらいいですか?



889:名無しさん@お腹いっぱい。
11/06/21 00:12:23.80 oVTX5Fts0
>>888
オーディオプロパティの調整とか表示されてるメニュー?

基本的にトップレベルにないと消えるメニューだから (A)とかで指定されたキーを KBD()で送信でもいいけど、
めくら操作したくないならウィンドウクラス"#32768"でGetIDすればいい。

メニュー Class:"#32768"
ダイアログ Class:"#32770"
ツールチップ Class:"tooltips_class32"


890:名無しさん@お腹いっぱい。
11/06/21 00:37:51.47 S+8VIifV0
>>889
有り難う御座います!
書き込んでからKBD()で行ける事に気が付きました…
タイトルないので指定出来ないと思って居ましたが
クラス名#32768でもそうやって指定すれば行けるんですね
一つ勉強になりました。


891:名無しさん@お腹いっぱい。
11/06/21 13:04:45.37 u0jvZuWG0
>>883
どうもありがとうございました。
ClkItemで代用し、一応動きはするのですが、
バックグラウンドでの動作はできないようでした。
どうしてもクリックと同時に最前面に出てきてしまいます。

IDの指定と、オブジェクトの取得は、スキルが必要なようです。
もしそれについての解説サイトがあれば、お教えいただければ幸いです。


892:名無しさん@お腹いっぱい。
11/06/22 08:27:35.93 wz2XRv7P0
1ステップ1ステップ小出しにしてねーで
そもそも何をやろうとしてんだよ。 糞が。

893:名無しさん@お腹いっぱい。
11/06/22 09:44:40.57 o+QMX4X/0
そんな事書いたら、オンラインゲーム必死だな( ´,_ゝ`)プッって笑われるだろーが!!

894:名無しさん@お腹いっぱい。
11/06/22 10:29:12.69 wz2XRv7P0
あー、そっかーーーーー。
そうだったんだーーー
そっかーーーーー ごーめーんーーーー >>891

895:名無しさん@お腹いっぱい。
11/06/22 10:40:02.94 Qo85tCH30
オンラインゲームでRMTして儲けたいからマクロ書いてください
ってこと?

896:名無しさん@お腹いっぱい。
11/06/25 15:22:20.33 e2nGd7v50
マウスやキーボード入力が一定時間なかったことを確認する方法はないですか?
スクリプト起動直後に今アイドリング状態なのか判定したい


897:名無しさん@お腹いっぱい。
11/06/25 16:22:27.74 dircKt8/0
>>896
getkeystate

898:名無しさん@お腹いっぱい。
11/06/28 04:11:54.59 kXJni/fc0
CHKIMG関数で質問です

検索範囲未指定時は画面全体が対象との認識であってますか?
また最小化時にチェックすることは可能ですか?

899:名無しさん@お腹いっぱい。
11/06/28 07:51:27.17 oMsiC+dA0
>>898に質問です

どうして試さないんですか?

900:名無しさん@お腹いっぱい。
11/06/29 15:56:24.05 rcowTlhM0
UWSCというマクロツールで ランダム質問をクリックしてから”役に立った” (下URL参照)をクリックするプログラムを作りたいのですが
うまくいきません。
URLリンク(detail.chiebukuro.yahoo.co.jp)
私の作ったプログラムはランダム質問までいくのですがそこからがいきません。 何が悪いのでしょうか?
とりあえず私の未完成プログラムを書きますね^^

皆さんの回答をお待ちしております
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true
IE.navigate("detail.chiebukuro.yahoo.co.jp/qa/rand.php")

REPEAT
sleep(0.5)
UNTIL !IE.busy AND IE.readystate = 4
ret = IELINK(IE,"役に立った!")

901:名無しさん@お腹いっぱい。
11/06/29 18:03:44.63 duIKIGLv0
バックグラウンドで動作するプロセスの起動確認をUWSCでしたいのですが、
どうすれば出来ますか?

タスクマネージャのプロセス一覧には表示されるけど、タスクバーには表示されないので、
GETALLWINでは取得できません。

ちなみにVBSでは以下の記述で使っていました。

Set objProcList = GetObject("winmgmts:").InstancesOf("win32_process")

For Each objProcess In objProcList

if objProcess.name = "aaa.exe" then
msgbox "aaa.exe は起動しています"
Exit For
end if
Next


902:名無しさん@お腹いっぱい。
11/06/29 18:29:42.27 deNe4CIU0
>>901
.length 個の.item(i) があるようです。

URLリンク(www3.bigcosmic.com)
for i= 0 to col.length-1
  objITEM = col.item(i)
  ifb objITEM.Name = "kansou" And objITEM.Value = strRADIO1[nNO]
    objITEM.Checked = True
    break
  endif
next

GETOLEITEMもあるっぽい
// c:\windows下のディレクトリ表示
fs = CreateOLEObj("Scripting.FileSystemObject")
gf = fs.GetFolder("c:\windows")
for i = 0 to GETOLEITEM(gf.SubFolders)-1 // コレクション取得
  print ALL_OLE_ITEM[i].name
next

結果だけが欲しければコピペをPOWERSHELLで処理するとか
あ、書式だいぶ違った。

qprocess | find "iexp" をDOSCMNDで実行して戻り値を見るとか
ただし、最後に改行がつくから面倒な場合もある。


903:名無しさん@お腹いっぱい。
11/06/29 21:20:55.86 DrTJUpW80
uwscファイルの修正を行っていたらわけがわからなくなってしまったので
もしよければ教えていただきたいと思い書き込みしました。

elseif CHKIMG("A.bmp", 0) then
x1 = G_IMG_X; y1 = G_IMG_Y;

質問1:G_IMG_Xとは画像のX座標のどの位置を指すのですか?(中心とか右端とか)
質問2:例えばA.bmpの中心座標x1からbだけずれた位置をxと定義する場合
どのようにx1 = G_IMG_X; y1 = G_IMG_Y;以降に書き加えればよいのでしょうか?
色々と調べてみたのですがわからなかったのでお手数おかけしますがご指導お願いします。


904:名無しさん@お腹いっぱい。
11/06/29 21:35:31.02 LB4seq1X0
この程度の事なら調べたら絶対どこかに載ってるだろ

905:名無しさん@お腹いっぱい。
11/06/29 21:38:50.36 D8kMG3Lx0
FUKIDASIを使うと発見場所をピンポイントで指してくれていいんだけどね

906:名無しさん@お腹いっぱい。
11/06/29 22:33:33.68 wC2OHX7t0
>>903
左上
G_IMG_X+b

907:名無しさん@お腹いっぱい。
11/06/29 23:11:49.90 DrTJUpW80
>>904->>906
ご指導ありがとうございました!!
特に>>906さんのヒントで修正できました!
わざわざお忙しい中教えてくれてありがとうございます!

908:名無しさん@お腹いっぱい。
11/06/29 23:15:59.86 bZrINL020
釣りさげさんw

909:名無しさん@お腹いっぱい。
11/06/29 23:28:28.31 DrTJUpW80
>>908
そうなんですww
恥ずかしい--;

910:名無しさん@お腹いっぱい。
11/06/29 23:36:29.67 bZrINL020
聞くは一時の恥と言いますしクレクレ言ってるより全然いいです

911:名無しさん@お腹いっぱい。
11/06/30 04:26:45.68 jnOygYoc0
>>902
サンクス、ずいぶん短くなった
if doscmd("qprocess | find <#DBL>aaa.exe<#DBL>") <>"" then msgbox("aaa.exe は起動しています")

912:名無しさん@お腹いっぱい。
11/06/30 12:59:42.54 KNK9iezw0
WebFlash上で該当画像が見つかったらクリック、見つからなかったらもう一度探す
ように動作させたいのですがどこを変えれば良いでしょうか

while True

if GETKEYSTATE(VK_ESC) then exit     // ESCキーを押すと終了させる


ifb CHKIMG("該当画像.bmp")      // 画面上に画像があった場合以下へ

x=G_IMG_X // 画像の座標をxへ代入
y=G_IMG_Y // 画像の座標をyへ代入

BTN(LEFT, CLICK, x, y, 80)   // 画像の場所を左クリック
endif

wend

913:名無しさん@お腹いっぱい。
11/06/30 14:18:35.54 w5XXpq2P0
見つかった場合ループ抜けるなら
endifの前にBREAKでいいんじゃないかな

もしくは

REPEAT
SLEEP(0.5)
UNTIL CHKIMG("画像.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_MIG_Y,)

こんな感じでも行けるかな。



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch