UWSC 掲 示 板
投稿時に「証明書が不正です」と出る場合には、JavaScriptをオンにしてください
動作不具合での質問の場合には環境(OS,IEのバージョン等)の表記もしてください
タイトルは質問内容を表したものにしてください
ネットゲーム関係の質問はご遠慮ください

UWSCで出来る事 / ノレ
いくつかプログラムを作りたいと思っています。
少し調べたところ、自分は今までプログラミング言語はたくさんあるけど
どれもこれも違いは使いやすさ程度で出来る事に大した差は無いと思ってましたが
調べた所、一部の言語では
例えばインターネットにアクセスする事が出来ないというのが分かりました。
この事だけで自分が作ろうとしてる物に全く向いてない言語という物が存在すると初めて知りました。
そこで質問なのですが、自分がこれから作ろうとしてるプログラムはこのUWSCで作る事が出来るのかどうかを教えて頂けないでしょうか?
これを知らないと長い時間掛けて勉強しても途中で全く無駄になるので確認をしておきたいのです
一番作りたいプログラムは二つで

1
アマゾンのサイトにアクセスして予め用意していた単語をアマゾンで検索をかけ
検索結果の「中古品」の文字をクリックさせてそこから色々な会社が出してる値段が表示されますが
この全ての値段の平均値を求めそれをエクセル(エクセルが無理なら後でコピペして貼り付けるのでメモ帳、その他記録できるものなら何でも可)に貼り付けさせる作業を延々と繰り返すこと

2
株、FXのチャートを読み込んで記録させる事

No.3782 2017/04/23(Sun) 13:09:10

Re: UWSCで出来る事 / 俄プログラマー
出来ます。

http://www.uwsc.info/sample.html
ここを見れば出来ると思えるでしょう。

No.3783 2017/04/23(Sun) 14:06:17
検索マーク / 獅子唐
検索マークをクリックしたいのですが、上手くいきません。
どういう式を作ればよろしいでしょうか?


<button class="search-box__form__submit" onclick="ga('send', 'event', 'search', 'header_'+$('[name=select-form] option:selected').val()+'_search_click',$('#search_box_input').val());"><i class="fa fa-search"></i></button>

No.3761 2017/04/19(Wed) 15:49:31

Re: 検索マーク / 森
そのページに<button>が1つしか無ければ、これでOK
IESetData(IE,True,"TAG=button")

複数ある時は、第四引数で順番などを指定してください。

No.3770 2017/04/20(Thu) 13:28:55

Re: 検索マーク / 獅子唐
お返事遅れて申し訳ありません。

回答ありがとうございました。
早速試してみます。

No.3781 2017/04/23(Sun) 00:26:41
★ 手順書、プログラムの添削、リンク先文字、抜き出し出来ませんでした / ゆり
いつもお世話になっています。前回はお礼を言いそびれてしまいました、その節はありがとうございました。

本題です、手順通りにプログラムが進まず、困っております。

以下の流れのプログラムを作りたいと思っております。

【手順書】
あるAのサイトに行き、"22980"という表示名のリンクがあれば、飛ぶ
"注文者情報"という文字があれば、その文字の右、30文字をコピー
"備考"と"終了"に挟まれている、間の文字をコピー
PRINTにて、コピーしたものを表示。
Aのサイトに、"22980"という表示名のリンクがなくなるまで、繰り返す。

-------以下プログラム----------------

cnt = 0
IE = CreateOLEObj("InternetExplorer.Application") // IEを起動
IE.visible = True

id = GETID("Internet Explorer","IEFrame")
CtrlWin(id, MAX)                // IE最大化

While True
cnt = cnt + 1
fukidasi(cnt)                  
IE.navigate( "Aのサイト")      //URLへ飛ぶ

Sleep(2)
if IELink(IE,"22980",cnt) = false then break // "22980"という表示名のリンクを開く

Sleep(5)
H2 = IE.document.body.innerTEXT      // bodyを、H2とする

R2 = POS("注文者情報", H2)        // H2の中から、"注文者情報"という文字を探す、これをR2とする
if R2 then f1 = COPY( H2, R2+length("注文者情報"), 30 ) else f1 = "" // "注文者情報" があれば、30文字抜き出す、これをf1とする

W2 = BETWEENSTR(H2, "備考", "終了")    // "備考"と"終了"の間にある文字を、W2とする

PRINT "cnt=" + cnt + ", f1=" + f1 + ", W2=" + W2     // H2、R2、f1をPRINTにて、表示
Wend        // "22980"という表示名のリンクがなくなるまで、繰り返す

Procedure BusyWait(IE)
Repeat
Sleep(0.1)
Until !IE.busy AND IE.readystate=4    //読み込みを待つ
Fend

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

【現状】
私が指定する、Aのサイト(個人運営サイト、管理ページ、パスワード有り、保護された通信)では、"22980"というリンク先に飛んでも、そこにある、指定文字、"注文者情報"の横の文字を、変数に格納してくれませんでした。
"備考"と"終了"の間の文字も、同じように変数に格納してくれませんでした。
"22980"というリンク先に飛ぶ前の、Aのサイト内にある、文字を認識して、変数に格納して、PRINTにて表示します。

Aのサイトでは出来なかったので、他サイト(Bのサイト)にて置き換えて試してみたところ、Bのサイトでは同じプログラムで出来ました。

Aのサイトと、Bのサイトの違いは、ページの重さ、保護された通信(SSL)かどうか、くらいしか思いつかないのですが、力不足で解決出来ませんでした。どうして出来ないのでしょうか?

よろしければ、お力を貸して頂けると助かります。よろしくお願いします。

No.3755 2017/04/18(Tue) 15:29:41

Re: ★ 手順書、プログラムの添削、リンク先文字、抜き出し出来ませんでした / miles
更新待ちのSleep関数を

IE11にて画面更新後に操作(COM)ができない  #N45
http://www.uwsc.info/faq.html#N45

の更新待ち処理にする。

No.3778 2017/04/21(Fri) 10:00:43
SCKEY(ID,VK_DOWN)を回数指定して入力する方法 / ポップ
SCKEY(ID,VK_DOWN)をfor文とかで回数指定して入力する方法ないでしょうか?
No.3766 2017/04/19(Wed) 22:25:19

Re: SCKEY(ID,VK_DOWN)を回数指定して入力する方法 / 俄プログラマー
DL付属のヘルプファイルより

// インプットボックス
戻値 = INPUT( 表示メッセージ, [デフォルト値, パスワードフラグ, X, Y] ) 
引数
 表示メッセージ: インプットボックスに表示するメッセージ
 デフォルト値: デフォルトの値 として表示
 パスワードフラグ: TRUE にすると文字は全てアスタリスク表示 (デフォルト FALSE)
 X, Y: 表示位置 (デフォルトは中央、 -1,-1にて前回位置)
戻値
 入力されたデータ
 (キャンセル時はEMPTY)

 ※ ファイルドロップによりファイル名の設定可 (複数選択時はタブにて結合される

No.3767 2017/04/20(Thu) 01:02:28

Re: SCKEY(ID,VK_DOWN)を回数指定して入力する方法 / 俄プログラマー
//単純な使用例
for i= 1 to input("回数を入力してください")
print i
next

No.3768 2017/04/20(Thu) 01:03:06

Re: SCKEY(ID,VK_DOWN)を回数指定して入力する方法 / 森
質問内容があいまいですね。
求めてるのは、こういうこと?

for i = 1 to 指定回数
 SCKEY(ID,VK_DOWN)
 sleep(0.2)
next

No.3771 2017/04/20(Thu) 13:47:02

Re: SCKEY(ID,VK_DOWN)を回数指定して入力する方法 / ポップ
質問があいまいですみませんでした。
for i =1 to 3とした場合にiが1の時は、sckey(id vk_down)を1回、iが2の時は、2回sckey(id vk_down)を入力する方法を探しています。質問があいまいで失礼しました。

No.3773 2017/04/20(Thu) 15:57:01

Re: SCKEY(ID,VK_DOWN)を回数指定して入力する方法 / koi
森さんが書いたのをちょっと拡張して
ループを2重にすればいいだけだと思いますが

for i = 1 to 指定回数
 for p = 1 to i
  SCKEY(ID,VK_DOWN)
  sleep(0.2)
 next

 他にやりたい処理
next

No.3774 2017/04/20(Thu) 17:00:14

Re: SCKEY(ID,VK_DOWN)を回数指定して入力する方法 / ポップ
俄プログラマー様、返信ありがとうございます。
質問があいまいですみませんでした。

No.3775 2017/04/20(Thu) 23:49:15

Re: SCKEY(ID,VK_DOWN)を回数指定して入力する方法 / ポップ
森様、返信ありがとうございます。
質問があいまいですみませんでした。

No.3776 2017/04/20(Thu) 23:50:57

Re: SCKEY(ID,VK_DOWN)を回数指定して入力する方法 / ポップ
koi様、返信ありがとうございます。
私が希望していた処理ができました。
forを2重でする発想がまったく思い浮かばなかったんです。

No.3777 2017/04/20(Thu) 23:52:46
IEのリンク数を取得したい / リキュール
以下の内容でFRMは2が表示されます。
IELink(IE,"新譜情報")で新しいタブが追加表示されます。
数年前までは動作していたような気がします。
Windous7PRo IE11 UWSC Ver5.3.0
よろしくお願いいたします。

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.teichiku.co.jp/karaoke/")
BusyWait()
IELink(IE,"新譜情報")
BusyWait()
FRM = IE.document.frames.length
print FRM
SUU = IE.document.frames[1].document.links.length //ここでエラーが出ます
print SUU

No.3762 2017/04/19(Wed) 17:40:28

Re: IEのリンク数を取得したい / 森
サイトの検証をしてないから違うかもですが、もしかしたらこれ?

IEの操作(DOM)にて、フレーム内の操作ができない  #N37
http://www.uwsc.info/faq.html#N37

フレームが別ドメインまたはプロトコルが違う場合には、セキュリティの為に DOMでの操作はできません。
しかし、UWSCのIE操作関連の関数であればアクセスができます。(Ver5.1.0以上)

No.3772 2017/04/20(Thu) 14:03:59
配列データの重複を削除したい / リキュール
DATA = "A"、"BB"、"A"、"CCC"、"D"
ARR = SPLIT(DATA,"、")
SUU = RESIZE(ARR) //0〜4 5個取得
print ARR[0] //"A"
print ARR[1] //"BB"
print ARR[2] //"A"
print ARR[3] //"CCC"
print ARR[4] //"D"
これを
print ARR[0] //"A"
print ARR[1] //"BB"
print ARR[2] //"CCC"
print ARR[3] //"D"
のように重複を取り除く方法があるでしょうか。
エクセルの行に書き出して重複行を削除方法以外で
よろしくお願いいたします。

No.3763 2017/04/19(Wed) 19:05:44

Re: 配列データの重複を削除したい / K.Nagatani
私は、HASHTBLを使ってます。
No.3764 2017/04/19(Wed) 19:39:12

Re: 配列データの重複を削除したい / リキュール
K.Nagatani さん、お世話になります。

HASHTBLを使って処理できました。
連想配列を使用するのは初めてですが、大変参考になりました。
ありがとうございました。

No.3769 2017/04/20(Thu) 07:11:53
正規表現で2つパターン指定して複数の検索結果を取得する方法 / ジンギスカン
2つパターン指定しても一つ目の<label for=<#DBL>A_\dL<#DBL>>(..*)<span、このパターンの結果しか取得できません。2つ目のパターンである<span class=<#DBL>number<#DBL> id=<#DBL>res3<#DBL>>(\d{1,3})</span> 件、この結果が取得できません。
コードの書き方が間違っているのでしょうか? |を使用して複数としているのですが。
今の自分ではできないので助けて頂けないでしょうか?

Public regvb=CREATEOLEOBJ("VBScript.RegExp")

//読込ファイル
fid="C:\Users\aruke\Desktop\a.html"

//書込ファイル
fid1="C:\Users\aruke\Desktop\da1.txt"


file = FOPEN(fid, F_READ)
file1 = FOPEN(fid1, F_READ or F_WRITE8)

文字列全体=fget(file,-2)
Pattern="<label for=<#DBL>A_\dL<#DBL>>(..*)<span | <span class=<#DBL>number<#DBL> id=<#DBL>res3<#DBL>>(\d{1,3})</span> 件"


Matches=regvb_Execute(文字列全体, Pattern)

for i = 0 to Matches.count-1
FPUT(file1, Matches.Item(i).SubMatches(0),i+1)
next
FPut(file1, Join(Split(FGet(file1, F_ALLTEXT), "<#CR>"), "<#CR>", TRUE), F_ALLTEXT)

FCLOSE(file)
FCLOSE(file1)


//正規表現
Function regvb_Execute(str, Pattern, IgnoreCase=TRUE, Global=TRUE)
regvb.IgnoreCase=IgnoreCase
regvb.Global=Global
regvb.Pattern=Pattern
Matches=regvb.Execute(str)
Result=Matches
Fend

No.3758 2017/04/19(Wed) 11:12:58

Re: 正規表現で2つパターン指定して複数の検索結果を取得する方法 / ジンギスカン
パターンをそれぞれ1つ指定、下記のようなコードであれば期待どおりの2つのパターン結果が取得できます。何か、簡潔にできるコードないでしょうか?
|でパターンを複数にしたら、複数の結果が取得できるという認識なのですが、うまくいきません。

Public regvb=CREATEOLEOBJ("VBScript.RegExp")

//読込ファイル
fid="C:\Users\aruke\Desktop\a.html"

//書込ファイル
fid1="C:\Users\aruke\Desktop\da1.txt"


file = FOPEN(fid, F_READ)
file1 = FOPEN(fid1, F_WRITE8)

文字列全体=fget(file,-2)
// Pattern="<label for=<#DBL>A_\dL<#DBL>>(..*)<span"

Pattern="<label for=<#DBL>A_\dL<#DBL>>(..*)<span "


// Pattern="<span class=<#DBL>number<#DBL> id=<#DBL>res3<#DBL>>(\d{1,3})</span> 件"

Matches=regvb_Execute(文字列全体, Pattern)

for i = 0 to Matches.count-1
FPUT(file1, Matches.Item(i).SubMatches(0),i+1)
next
FPut(file1, Join(Split(FGet(file1, F_ALLTEXT), "<#CR>"), "<#CR>", TRUE), F_ALLTEXT)

FCLOSE(file)
FCLOSE(file1)


Public regvb=CREATEOLEOBJ("VBScript.RegExp")

//読込ファイル
fid="C:\Users\aruke\Desktop\a.html"

//書込ファイル
fid1="C:\Users\aruke\Desktop\da1.txt"


file = FOPEN(fid, F_READ)
file1 = FOPEN(fid1, F_READ or F_WRITE8)

文字列全体=fget(file,-2)
// Pattern="<label for=<#DBL>A_\dL<#DBL>>(..*)<span | <span class=<#DBL>number<#DBL> id=<#DBL>res3<#DBL>>(\d{1,3})</span> 件"

Pattern="<span class=<#DBL>number<#DBL> id=<#DBL>res3<#DBL>>(\d{1,3})</span> 件"


// Pattern="<span class=<#DBL>number<#DBL> id=<#DBL>res3<#DBL>>(\d{1,3})</span> 件"

Matches=regvb_Execute(文字列全体, Pattern)

for i = 0 to Matches.count-1
FPUT(file1, Matches.Item(i).SubMatches(0))
next
FPut(file1, Join(Split(FGet(file1, F_ALLTEXT), "<#CR>"), "<#CR>", TRUE), F_ALLTEXT)

FCLOSE(file)
FCLOSE(file1)



//正規表現
Function regvb_Execute(str, Pattern, IgnoreCase=TRUE, Global=TRUE)
regvb.IgnoreCase=IgnoreCase
regvb.Global=Global
regvb.Pattern=Pattern
Matches=regvb.Execute(str)
Result=Matches
Fend

No.3759 2017/04/19(Wed) 11:16:33

Re: 正規表現で2つパターン指定して複数の検索結果を取得する方法 / しゅん
元の方法で正しく取得できていると思います。
手元の環境では、期待通りでした。

FPUTした結果をよく確認されていますでしょうか?
おそらく「(..*)」が問題かと思います。
「[^<\s]+」とかにすると良いと思います。(意味は調べてください)
最長一致・最短一致を勉強するのも良いと思います。

No.3760 2017/04/19(Wed) 13:15:27

Re: 正規表現で2つパターン指定して複数の検索結果を取得する方法 / ジンギスカン
しゅん様、返信ありがとうございます。
>「[^<\s]+」とかにすると良いと思います
一度調べてみます。
>最長一致・最短一致を勉強するのも良いと思います。
..*?をつけるのですね。

FPUT(file1, Matches.Item(i).SubMatches(i)にすると希望通り取得できました。
正規表現の一致のメカニズムを再度勉強し直します。

No.3765 2017/04/19(Wed) 20:33:24
UWSC Ver5.3.0 / umiumi
設定画面の低レベル記録に「バックグラウンドで実行できる形で記録」を付けた
Javaアプリの制御が出来なくなっていたのを修正
低レベル記録/再生にて 画面スケーリングが100%以外だとマウス位置がズレるのを修正
STOPフォームの位置が一時停止後に デフォルト位置に戻されるのを修正
SLCTBOX関数にて 位置指定に変数、式が使われているとNGなのを修正
MOUSEORG関数のMORG_DIRECT指定時 子オブジェクトがクリックされた時は KBD情報はそこに送るようにした
MOUSEORG関数のMORG_DIRECT指定時 Shift/Ctrl/Altが押されたままになる事があるのを修正
MOUSEORG関数のMORG_DIRECT指定時 マウスクリックの位置が正しくないパターンを修正
リモートデスクトップにて MOUSEORGのMORG_DIRECT指定時 Shift/Ctrl/AltがNGなのを修正
Pro版:
CREATEFORM関数にて FOM_FORMHIDE使用時に「閉じるボタン」が効かないのを修正

No.3740 2017/04/16(Sun) 03:03:23

Re: UWSC Ver5.3.0 / umiumi
>設定画面の低レベル記録に「バックグランドで実行できる形で記録」を付けた
WPF, UWPアプリ(Windows10の電卓等)はバックグランド実行できません
記録されるのはクライアント領域内のみです

>Javaアプリの制御が出来なくなっていたのを修正
Java Access Bridge のインストールは必要ありません (JRE Release7 Update6 以降付属)
JREは 32ビット版を使用してください

No.3744 2017/04/16(Sun) 03:20:40

Re: UWSC Ver5.3.0 / 山ちゃん
umiumi様、便利なUWSCを公開して頂きましてありがとうございます。
いつも便利に使用させて頂いています。

今回、Ver5.2.3からVer5.3.0へアップデートしたところエラーが発生するようですので報告させて頂きます。

内容
Ver5.3.0使用で
SLCTBOXにて項目を配列変数で渡すと(次元数が合いません)エラーが発生します。

検証コード
DIM select_item[] = "AAAA", "BBBB", "CCCC"
print SLCTBOX(SLCT_BTN, 0, "どれか選んでね", select_item)

使用環境
Windows 10 Pro Version 1607 / Version 1703 x64
UWSC Free版 Ver5.3.0

No.3751 2017/04/17(Mon) 16:44:28

Re: UWSC Ver5.3.0.1 / umiumi
2017/04/17 23:00 修正しました
SLCTBOX関数にて配列変数を使用した時にエラーが出るのを修正

No.3752 2017/04/17(Mon) 22:58:21

Re: UWSC Ver5.3.0 / ando
 umiumi様、バージョンアップお疲れ様です。いつも便利に使用させて頂いています。
 こちらの環境でもver5.2.3からver5.3.0.1へアップデートしたところ、slctbox()でエラーが発生するようになりましたのでご報告させて頂きます。

 環境: Windows 10 Pro ver1607 x64, UWSC Pro ver5.3.0.1

 以下を実行すると「変数: AAA が定義されていません」とエラーが表示されます。

print get_uwsc_ver // 5.301
hashtbl aaa
aaa["test"] = "bbb"
slctbox(slct_str, 0, "msg", aaa)

No.3753 2017/04/18(Tue) 07:46:57

Re: UWSC Ver5.3.0.2 / umiumi
2017/04/18 13:00 修正しました
SLCTBOX関数にて連想配列を使用した時にエラーが出るのを修正

No.3754 2017/04/18(Tue) 13:02:09

Re: UWSC Ver5.3.0 / 山ちゃん
umiumi様、素早い対応ありがとうございます。
Ver5.3.0.2にてエラーが解消されたことを確認しました。

No.3756 2017/04/18(Tue) 16:01:13

Re: UWSC Ver5.3.0 / ando
umiumi様、修正を確認しました。素早いご対応ありがとうございました。
No.3757 2017/04/19(Wed) 07:02:32
ツリーメニューのクリック / dodo
お世話になります。
例えば、掲示板サイトなどで、コメントを書いたとします。
コメント後、そのコメントの横にツリーメニューのアイコンがあり、それをクリックすると
現在の画面は遷移することなく、そのアイコンの真下に「投稿を削除」的なメニューが出て
それをクリックするとコメントが削除できるというようなものがあります。

この場合に、uwscで投稿を削除するを押したいのですが
CLKITEMで投稿を削除を引数に与えるだけではだめで、ツリーメニューのアイコンをクリックしてからそれをしないと動作しないことがわかりました。
ですが、ツリーメニューのアイコンのクリックの仕方がわからずご教授頂きたくお願い致します。

具体的には掲示板では以下のようなコードとなっています。
「icon/setting004.png」がツリーメニューのアイコンです。
これをクリックすると投稿を削除するメニューがすぐ下に表示されます。

<div class="widget"
data-widget-namespace="jp.aaa.community.pc.widget.bbs.comment.setting.popup"
data-trigger-element-selector=".JS_commentSettingTrigger"
data-popup-element-selector=".JS_commentSettingPopup"
data-click-allowed-element-selector=".JS_commentSettingTrigger">
<p class="COMMUNITY_cardBlockUserInfo__icon JS_commentSettingTrigger">
<img src="http://img.aaa.net/img/basic/icon/setting004.png" alt="設定" width="20" height="5" />
</p>
<ul class="COMMUNITY_dropdown COMMUNITY_cardBlockUserInfo--dropdown JS_commentSettingPopup" style="display:none;">

<li class="COMMUNITY_dropdown__item">
<a href="javascript:void(0);"
class="COMMUNITY_dropdown__linkScalable widget JS_deleteCommentPopupButton"
data-widget-namespace="jp.aaa.community.widget.comment.deletepopup"
data-community-id="5932670"
data-bbs-id="79636234"
data-comment-id="1483775608"
data-comment-number="1"
data-comment-body="コメント"
data-sender-name="コメント者"
data-closer-overlay-element-selector=".JS_deleteCommentPopupCloserLayer"
data-trigger-element-selector=".JS_deleteCommentPopupButton"
data-closer-element-selector=".JS_closeDeleteCommentPopupButton"
data-popup-element-selector=".JS_popupArea"
data-popup-position-align="windowCenter"
data-popup-position-valign="windowCenter"
data-z-index="101"
data-popup-template-id="comment_delete_popup"
>
<span class="COMMUNITY_dropdown__delete">投稿を削除</span>
</a>
</li>
</ul>
</div>

以上よろしくお願い致します。

No.3747 2017/04/16(Sun) 16:55:31

Re: ツリーメニューのクリック / 雅
その掲示板のURLは教えられないのでしょうか?
再現に時間がかかる場合回答はすぐには得られないですよ?
質問される側の立場も少しは考慮して頂きたいです。

No.3748 2017/04/17(Mon) 09:45:51

Re: ツリーメニューのクリック / dodo
雅さん
お世話になります。

具体的にはmixiのコミュニティのトピックスになります。
(どのコミュニティでも問題ありません)
mixiのコミュニティのトピックスは閲覧のみなら誰でもできるのですが
コメントを書込んだり、上述の投稿を削除するメニューを表示させるには無料の会員登録が必要となります。
もし動作確認頂けるなら会員登録が必要となりお手数をおかけすることになりますが、可能であればよろしくお願い致します。

No.3749 2017/04/17(Mon) 10:27:53

Re: ツリーメニューのクリック / dodo
雅さん
追記です。

上記のmixiのコミュニティのトピックスとは例えば以下のURLのものです。
会員であればここで動作を確認できるかと思います。
http://mixi.jp/view_bbs.pl?id=4865621&comm_id=673289

よろしくお願い致します。

No.3750 2017/04/17(Mon) 14:48:48
GETKEYSTATE(VK_LBUTTON)とG_MOUSE_X・G_MOUSE_Yについて / 始めたばかりです
Windows10
UWSC FREE 5.2.3.0

初めまして、UWSCを使用し始めたばかりですが、
勉強を兼ねて、ブラウザーの表示を自動更新するスクリプトを作成しています。

スクリプトの内容は、更新時間を入力し、
マウスでクリックした場所を、更新時間間隔でクリックするだけです。

下記にスクリプトを記述していますが、
まず、input関数で更新時間を入力し、OKボタンと押し
次に、クリックした場所をGETKEYSTATE(VK_LBUTTON)で記憶させ
指定した時間SLEEPし、同じ場所をBTNでクリックし続けるだけです。

ですが、実際に実行させると、input関数でOKボタンを押したクリックの値が
すでに有効とされ、クリックしたい場所を記憶することができません。

下記のスクリプトの、更新秒数設定のwhile文は実行されますが、
次のクリックポイント設定のwhile文は、
if GETKEYSTATE(VK_LBUTTON) = true          すでにTRUE
mouse_x = G_MOUSE_X; mouse_y = G_MOUSE_Y  input関数でOKボタンを押した値
になっています。
何か使用方法が間違っているのでしょうか?

ただ、更新秒数設定のロジックとクリックポイント設定のロジックを
入れ替えると機能的には正常に動きます。

今後、何かを作るときの為、使用方法が間違っているのか、
こういうのもなのか、教えて下さい。
よろしくお願いします。

------

//->更新秒数設定
While True
数 = input("更新秒数を入力してください","60")
ifb VAL(数) = ERR_VALUE
MsgBox("数値を入れてください")
Continue
endif
if chknum(数) = true
break
endif
wend
//<-更新秒数設定

//->クリックポイント設定
Fukidasi("クリックする場所を指定してださい")
while True
if GETKEYSTATE(VK_LBUTTON) = true
mouse_x = G_MOUSE_X
mouse_y = G_MOUSE_Y
id = GETID(GET_FROMPOINT_WIN)
win_title = STATUS(id, ST_TITLE)
win_class= STATUS(id, ST_CLASS)
win_x = STATUS(id, ST_X)
win_y = STATUS(id, ST_Y)
win_width = STATUS(id, ST_WIDTH)
win_height = STATUS(id, ST_HEIGHT)
break
endif
wend
sleep(3)
Fukidasi()

//<-クリックポイント設定

//->更新処理
While True
Fukidasi(win_title + " 自動更新中 " + 数 + "秒", mouse_x + 10, mouse_y + 5)
Sleep(数)
winID = GETID(win_title)
Ifb winID < 0 then
Fukidasi(win_title + " は起動されていません")
Sleep(5)
Fukidasi()
Else
ACW(winID,win_x,win_y,win_width,win_height,0)
BTN(LEFT,CLICK,mouse_x,mouse_y,200)
endif
Wend
//<-更新処理

No.3739 2017/04/15(Sat) 17:24:18

Re: GETKEYSTATE(VK_LBUTTON)とG_MOUSE_X・G_MOUSE_Yについて / miles
> 数 = input("更新秒数を入力してください","60")
のクリックが残っているので
> if GETKEYSTATE(VK_LBUTTON) = true
がそのまま通ってしまいます。
その前にクリア(読み捨て)しておく。

//->クリックポイント設定
Fukidasi("クリックする場所を指定してださい")
GETKEYSTATE(VK_LBUTTON) // VK_LBUTTONをクリア
while True
 if GETKEYSTATE(VK_LBUTTON) = true

No.3745 2017/04/16(Sun) 10:40:26

Re: GETKEYSTATE(VK_LBUTTON)とG_MOUSE_X・G_MOUSE_Yについて / 始めたばかりです
返信ありがとうございます。
思った通りの動きをしました。
クリアが、こういう方法だったのは気づきませんでした。
ありがとうございます。

No.3746 2017/04/16(Sun) 13:11:43


 過去ログ(〜2017/03/22)・検索ツール


以下のフォームに記事No.と投稿時のパスワードを入力すれば
投稿後に記事の編集や削除が行えます。
199/200件 [ ページ : << 1 ... 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 20 >> | 過去ログ ]