[ 掲示板に戻る ]

過去ログ閲覧モード

ファイル操作と繰り返しの処理について / rin
テキストファイルからurlを読み出してスクリプトを実行したいのですが、うまくいきません。

また、IEを終了してから再度、繰り返す場合はProcedureかfunctionのどちらの
関数を使えばいいのかよくわかりません。

ご指導を宜しくお願い致します。

fileID = FOPEN("c:xxx\xxx\.txt", F_READ)
n = FGET(fileID, F_LINECOUNT)
FOR i = 1 TO n
url = FGET( fileID, i, 1 )
NEXT
FCLOSE(fileID)

IE.Navigate(url)
BusyWait(IE)

No.2624 2016/07/11(Mon) 14:12:11

Re: ファイル操作と繰り返しの処理について / 森

計算結果などの戻り値を必要としないので Procedure を使います。
-----------------------------------------------------------
// メインルーチン
fileID = FOPEN("c:xxx\xxx\.txt", F_READ)
n = FGET(fileID, F_LINECOUNT)
FOR i = 1 TO n
 url = FGET( fileID, i, 1 )
 browsing(url)
 sleep(2)  // IEが完全に終了する前に新しいIEを起動するとエラーが発生する
NEXT
FCLOSE(fileID)

// IEを新規で起動して指定URLを表示して終了
Procedure browsing(url)
 IE = CreateOLEObj("InternetExplorer.Application")
 IE.Visible = True
 IE.Navigate(url)
 BusyWait(IE)
 IE.Quit()
Fend

// IE表示待ち
Procedure BusyWait(ie)
 repeat
  Sleep(0.2)
 until (! ie.busy) and (ie.readyState=4)
Fend
-----------------------------------------------------------

ただ、この場合は新しくIEを起動し直さなくても良いのでは?
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
fileID = FOPEN("c:xxx\xxx\.txt", F_READ)
n = FGET(fileID, F_LINECOUNT)
FOR i = 1 TO n
 url = FGET( fileID, i, 1 )
 IE.Navigate(url)
 BusyWait(IE)
 sleep(2)
NEXT
FCLOSE(fileID)
IE.Quit()

// IE表示待ち
Procedure BusyWait(ie)
 repeat
  Sleep(0.2)
 until (! ie.busy) and (ie.readyState=4)
Fend

No.2639 2016/07/13(Wed) 16:33:16

Re: ファイル操作と繰り返しの処理について / rin
返信が遅くなりまして、申し訳ありません。

頂いたスクリプトにサイトのクリックを追加しましたら、

「play_click_site:関数が入れ子しているか、閉じていません。
procedure busywait(ie)」とエラーがででしまいました。

procedureの定義がよくわからないので教えて頂けませんでしょうか。

宜しくお願い致します。

// メインルーチン
fileID = FOPEN("c:xxx\xxx\.txt", F_READ)
n = FGET(fileID, F_LINECOUNT)
FOR i = 1 TO n
 url = FGET( fileID, i, 1 )
 browsing(url)
 sleep(2)  // IEが完全に終了する前に新しいIEを起動するとエラーが発生する
 // サイトのクリック
   PLAY_CLICK_SITE(IE,url,num)
NEXT
FCLOSE(fileID)


// サイトのクリック
PROCEDURE PLAY_CLICK_SITE(IE,url,num)

IE.document.forms[0].elements[0].click()
   ・ 
   ・
   ・

No.2644 2016/07/16(Sat) 18:58:15

Re: ファイル操作と繰り返しの処理について / 森
全スクリプトの提示が無いので、具体的な指摘はできませんが、不具合箇所はエラーメッセージの通りです。
すなわち、play_click_site:関数が入れ子しているか、閉じていないことが原因です。

また、procedureの定義がよくわからないとのことですが、
「ユーザー定義関数とは」とググってみて下さい、たくさん資料が出てくるはずです。
他の言語でも文法が違うだけで用途や使い方は同じです。

No.2645 2016/07/16(Sat) 23:30:48
開いているサイトのサイト名とURLをエクセルのA1、B1に入力する方法 / シスイ
開いているサイトのURLとサイト名を指定のエクセルのA1にサイト名、B1にURLを入力したいのですが、
A1にサイト名とURLが一緒に入ってしまいます。
A1にサイト名、B1にURLと入力する方法ないでしょうか?
下記のコードをでやっているのですが、A1に入ってしまいます。


IE = GETACTIVEOLEOBJ("InternetExplorer.Application")
IE.visible = True
tes1 = IE.document.title
tes2 = IE.document.URL
tes3 = tes1 + "<#TAB>" + tes2
SENDSTR(0,tes3)
SLEEP(1.0)
fid=fopen("C:\Users\aruke\Desktop\URL集.csv", f_read or f_write)  // ファイルオープン


tesu = GETSTR(0)
fput(fid,tesu,0,1) // 書き込み



fclose(fid)                  // ファイルクローズ(忘れずに)

No.2631 2016/07/12(Tue) 12:39:15

Re: 開いているサイトのサイト名とURLをエクセルのA1、B1に入力する方法 / sana
これでどうでしょう?

IE = GETACTIVEOLEOBJ("InternetExplorer.Application")
IE.visible = True
tes1 = IE.document.title
tes2 = IE.document.URL
SLEEP(1.0)
fid=fopen("C:\Users\aruke\Desktop\URL集.csv", f_read or f_write)  // ファイルオープン

fput(fid,tes1,1,1) // 書き込み
fput(fid,tes2,1,2)

fclose(fid)                  // ファイルクローズ(忘れずに)

No.2633 2016/07/12(Tue) 13:43:59

Re: 開いているサイトのサイト名とURLをエクセルのA1、B1に入力する方法 / 森
そもそもCSVファイルというのはエクセルで表示させたり編集したりもできますが、エクセルファイルではありません。
データをカンマで区切ったテキストファイルです。
※詳しくはググって調べて下さいね。

ですから、
tes3 = tes1 + "<#TAB>" + tes2
のように、データをタブで繋げた場合、カンマで区切られていないために、一つのデータとして扱われてしまいます。

カンマで区切れば良いので、
tes3 = tes1 + "," + tes2
と書くとOKです。

また、一旦クリップボードにコピーさせていますが不要ですし、
末尾に追記させる場合は、列行の指定も不要です。
fput(fid, tes3)

sanaさんが書かれているように、カンマで繋げず列位置指定で分けて追記することも一見できそうですが、残念ながら2行に分かれてしまいます。
fput(fid, tes1, 0, 1)
fput(fid, tes2, 0, 2)
※sanaさんの提示では常に1行目上書きになるので質問内容とは違った結果になります。
※fget(fid, F_LINECOUNT)で現在の行数を取得して書き込み行数を指定することも可能ですが、連続した2列だけなので、カンマで繋げたデータを追記させた方がシンプルでいいでしょう。

No.2637 2016/07/13(Wed) 16:00:17

Re: 開いているサイトのサイト名とURLをエクセルのA1、B1に入力する方法 / シスイ
sanaさん、できました。ありがとうございます。
No.2642 2016/07/13(Wed) 23:05:45

Re: 開いているサイトのサイト名とURLをエクセルのA1、B1に入力する方法 / シスイ
森さん、fput(fid, tes3)で、列行の指定で不要なんですね、知らなかったです。CSVのカンマ区きりで自分イメージ通りの処理ができました。
すごく勉強になりました、ありがとうございました。

No.2643 2016/07/13(Wed) 23:09:06
Java Access Bridge for Windows Operating Systemのインストールについて / たかすけ
Java Access Bridge for Windows Operating Systemのインストールについてヘルプの通りにやりたいのですが、ヘルプに記述のある「C:\Program Files (x86)\Java\jre7」フォルダーがありません。
windows10proです。
Javaアプリの操作に挑戦したいと思っています。
サポートお願いします。

No.2640 2016/07/13(Wed) 21:46:10
clkitemについて / sana
お世話になっております。

Web上に同じアイテム名のボタン「A」が2つ存在します。
(以下、A1とA2とさせていただきます)

ページを開いた瞬間、A1は画面上に表示されていますがA2はスクロールしないと見えません。

そこで、A2をスクロールしないで「clkitem」でクリックさせたいのですが、
clkitem(id,"A",clk_acc,2)としてもA2が反応してくれません。

スクロールをして、A1とA2が見えている状態で、
clkitem(id,"A",clk_leftclk)とすると、A2が反応します。

お手数ですが、ご教示お願い致します。

No.2621 2016/07/11(Mon) 13:37:54

Re: clkitemについて / sana
補足です。

clkitem(id,"A",clk_acc)とすると、A1がクリックされます。

No.2622 2016/07/11(Mon) 13:40:32

Re: clkitemについて / リキュール
clkitem(id,"A",clk_acc,,2)
ではどうですか?

No.2623 2016/07/11(Mon) 14:07:20

Re: clkitemについて / sana
ご連絡ありがとうございます。

clkitem(id,"A",clk_acc,,2)ですと、A1がクリックされてしまいます。

No.2625 2016/07/11(Mon) 15:32:55

Re: clkitemについて / 森
最近ではスクロールした量に応じて、必要な分だけjavascriptでHTMLソースを書き足していくサイトも多いです。
No.2638 2016/07/13(Wed) 16:20:25
毎行にsleepを挿入する / hiro
簡単に全ての行にsleepを挿入する事は出来るでしょうか?
UWSC DebuggerのTraceにチェックを入れると毎行辺りにsleepが入りますが、それと同じ事をUWSC単体でしたいと思っております。
もしくはUWSC Debuggerでスケジュール設定が出来れば、そちらでも大丈夫です。

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

No.2634 2016/07/12(Tue) 22:23:40

Re: 毎行にsleepを挿入する / 森
面白そうなので作ってみました。

スリープを挿入して実行させたいUWSファイルと同じフォルダに、
以下を、auto_insert_sleep.uwsというファイル名で保存して実行してください。

auto_insert_sleep.uws
-------------------------------------------------------
// 同フォルダ内のUWSファイルをすべて取得
dim uws_n = getdir(GET_CUR_DIR, "*.uws")

dim files[uws_n]
dim i = 0; j = 0;
while i < uws_n
 if GETDIR_FILES[i] <> "auto_insert_sleep.uws"
  files[j] = GETDIR_FILES[i]
  j = j + 1
 endif
 i = i + 1
wend

if i = 0
msgbox("同フォルダ内に処理対象のUWSファイルがありません。")
exitexit
endif

// 実行するスクリプトファイルを選択する
dim file_name = slctbox(SLCT_BTN or SLCT_STR, 0, "実行するスクリプトファイルを選択", files)

// 挿入したいスリープの秒数
dim sleep_time = input("挿入したいスリープの秒数", 1)

// 仮ファイル名
dim temporary_script = "temporary_script.uws"

// 元のスクリプトを全行取得
dim f = fopen(file_name)
dim script = fget(f, f_alltext)
fclose(f)

// 先頭行と末尾行の空白行を一括削除
script = trim(script)

// 途中の空白行を削除
while pos("<#CR><#CR>", script) > 0
 script = replace(script, "<#CR><#CR>", "<#CR>")
wend

// 改行を改行+スリープに置換(=スリープの挿入)
script = replace(script, "<#CR>", "<#CR>sleep(" + sleep_time + ")<#CR>")

// スリープを挿入したスクリプトを仮ファイルに保存
f = fopen(temporary_script, f_write)
fput(f, script)
fclose(f)

// 仮ファイルを実行
doscmd(temporary_script)

// 仮ファイルを削除
deletefile(temporary_script)
-------------------------------------------------------

【特記事項】
・空白行は無視するように作りましたが、コメント行は考慮していないのでスリープが挿入されます。
・_(アンダーバー)を使って行結合している行にもスリープを挿入するのでエラーになります。
・TEXTBLOCK内も1行ごとにスリープを挿入てしまいます。

No.2636 2016/07/13(Wed) 15:37:35
UWSCの自作関数で本文の変数を使いたいです。 / るる
UWSCの自作関数で本文の変数を使いたいです。
a=1
abc(2,3)

FUNCTION abc(b,c)
RESULT=a+b+c
FEND

FUNCTION abc(b,c) こちらをいじるのは可ですが、
abc(2,3) こちらは変更しないでほしいです。
どうすればよいでしょうか。
よろしくお願いいたします。

No.2627 2016/07/12(Tue) 07:08:18

Re: UWSCの自作関数で本文の変数を使いたいです。 / sana
これでどうでしょう?

Public a = 1
abc(2,3)

Function abc(b,c)
result = a + b + c
Fend

No.2628 2016/07/12(Tue) 09:04:48

Re: UWSCの自作関数で本文の変数を使いたいです。 / るる
できました。
ありがとうございます。

No.2630 2016/07/12(Tue) 10:21:35
IE documentについての質問 / カフェオレ
HTMLソース1

<iframe src="http://〜" class="question_frame" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" height="1500px" width="728px"></iframe>
<form action="http://〜" method="post" id="adtech-form" accept-charset="utf-8">
<input id="choice_62386" name="question_13311" value="その他" required="" type="radio">

HTMLソース2

<input type="radio" class="selq" name="q1" value="5">


上記のソースでIE documentを用いて、クリックすることは可能でしょうか?

ご回答、よろしくお願いします。



P.S.
別の質問にて回答をいただいたのですが、返信期限がきていたので返信することが出来ませんでした。
そちらの質問内容については、ひとまず解決しましたので、この場を借りてお礼を申し上げます。
ありがとうございました。

No.2602 2016/07/06(Wed) 23:44:55

Re: IE documentについての質問 / stuncloud
> <input id="choice_62386" name="question_13311" value="その他" required="" type="radio">
ie.document.getElementById('choice_62386').click()

> <input type="radio" class="selq" name="q1" value="5">
ie.document.querySelector('input[type="radio"][name="q1"][value="5"]').click()

ラジオボタンならIESETDATAでも出来ると思いますよ

No.2603 2016/07/07(Thu) 09:41:23

Re: IE documentについての質問 / カフェオレ
ありがとうございます。

いただいた式を試しましたが…

ie.document.getElementById('choice_62386').click()
こちらの式ではCOMエラーが表示され。

ie.document.querySelector('input[type="radio"][name="q1"][value="5"]').click()
こちらの式では式がおかしい or 型が合っていないと表示され、両方とも実行することが出来ませんでした。


なにかやり方を間違えてしまったのでしょうか?

No.2619 2016/07/09(Sat) 00:56:12

Re: IE documentについての質問 / stuncloud
すいません、どっちもシングルクォーテーションになってました

ie.document.getElementById("choice_62386").click()
ie.document.querySelector("input[type=<#DBL>radio<#DBL>][name=<#DBL>q1<#DBL>][value=<#DBL>5<#DBL>]").click()

こうですね

No.2620 2016/07/11(Mon) 09:41:37

Re: IE documentについての質問 / カフェオレ
ありがとうございます。


いただいた二つのスクリプトで再度実行してみましたが…下記のエラーが出てしまいました。


COM Error:Could not convert variant of type (null) into type (Dispathc)

色々調べてみましたが、私では解決できませんでした…。

このエラーについてのご回答、または解決策が載っているホームページがあれば教えていただけたら幸いです。

よろしくお願いします。

No.2626 2016/07/11(Mon) 21:06:28

Re: IE documentについての質問 / stuncloud
> ie.document.getElementById("choice_62386")
> ie.document.querySelector("input[type=<#DBL>radio<#DBL>][name=<#DBL>q1<#DBL>][value=<#DBL>5<#DBL>]")

それぞれが見つけられなかった(nullになっている)のでclick()しようとしてもエラーになっています
考えられるのはそれぞれのラジオボタンがframeやiframeの下(別のdocument)にある場合です

frameやiframe以下にアクセスする方法は過去ログにあるはずなので、そちらを参照してください
掲示板の下の方にある
> 過去ログ(〜2016/02/26)・検索ツール
というリンクからダウンロードできます

あとは、最初の回答にも書きましたがIESETDATAも試してみてください
たしかframeやiframeにも対応していたような気がするんですが

No.2629 2016/07/12(Tue) 09:43:08
mmvの待ち時間 / ぽてと
32bitと64bitのwindows7上で同じコードを動かしたのですが
mmvの動作に明らかな速度の違いが見られました。

待ち時間を5ミリ秒に設定していたのですが64bitの方が明らかに遅いのです。
64bitの方の待ち時間を1ミリ秒にしてみてもほとんど変化はみられませんでした。

ただ64bitの待ち時間を0ミリ秒にした所、劇的に動作が速くなりましたが、早すぎて実用に耐えません。

64bit上での動作は待ち時間の処理等で遅延が発生する物なのでしょうか?

No.2617 2016/07/08(Fri) 20:10:36

Re: mmvの待ち時間 / routa
Windowsのタイマー精度は15ms程度なのでそれより短い時間は
環境によりあまり期待できないでしょうね。

No.2618 2016/07/08(Fri) 23:16:30
配列の中を並び替えしたいです / mike
※掲示板の管理者さまへ
 この投稿の下に、同じ投稿があるので、削除をお願いします。




よろしくお願いします。

以下のようなアンケート結果があります。

15499票 ルフィ
8990票 ロロノア・ゾロ
11301票 ナミ
501票 ウソップ
9528票 サンジ
7786票 トニートニー・チョッパー
5624票 ニコ・ロビン
4325票 フランキー
1317票 ブルック

これを、票の多い順に並び替えがしたいです。


自分では配列に入れるところまではできました。

dim rank[]="15499票 ルフィ","8990票 ロロノア・ゾロ","11301票 ナミ","501票 ウソップ","9528票 サンジ","7786票 トニートニー・チョッパー","5624票 ニコ・ロビン","4325票 フランキー","1317票 ブルック"


この配列を、先頭から票の多い順に並べ替えたいのですがどうすればよいでしょうか?

↓このようにしたいです。
dim rank[]="15499票 ルフィ","11301票 ナミ","9528票 サンジ","8990票 ロロノア・ゾロ","7786票 トニートニー・チョッパー","5624票 ニコ・ロビン","4325票 フランキー","1317票 ブルック","501票 ウソップ"


QSORTで並べ替えができるようなのですが、説明を見てもよくわかりません。
varについても調べたのですが、これも説明を見てもピンときません。

表計算ソフトでもできるのですが、やりたいことは並び替えだけではないので、UWSCでやりたいです。


実際は、これよりもずっとキャラの数が多くて、手作業だときついです。

お知恵をお貸しください。
よろしくお願いします。

No.2609 2016/07/08(Fri) 09:11:08

Re: 配列の中を並び替えしたいです / stuncloud
> QSORTで並べ替えができるようなのですが
msgbox("QSORT前<#CR>" + join(rank, "<#CR>"))
qsort(rank, QSRT_NATURALD) // 並べ替える
msgbox("QSORT後<#CR>" + join(rank, "<#CR>"))

> この投稿の下に、同じ投稿があるので、削除をお願いします
掲示板の一番下のフォームからご自分で記事削除できますよ

No.2610 2016/07/08(Fri) 09:39:08

Re: 配列の中を並び替えしたいです / mike
stuncloudさん、ありがとうございます。

教えていただいたものですが、どうしてこうなるのか、全く理解できないという知識レベルです。すみません。


そのままやってみました。

dim rank[]="15499票 ルフィ","8990票 ロロノア・ゾロ","11301票 ナミ","501票 ウソップ","9528票 サンジ","7786票 トニートニー・チョッパー","5624票 ニコ・ロビン","4325票 フランキー","1317票 ブルック"

msgbox("QSORT前<#CR>" + join(rank, "<#CR>"))
qsort(rank, QSRT_NATURALD) // 並べ替える
msgbox("QSORT後<#CR>" + join(rank, "<#CR>"))


そうすると、「変数: QSRT_NATURALD が定義されていません」と表示されてしまいます。

どのようにすれば、並べ替えた配列にすることができますか。
コード自体が理解できないため、教えていただいたものに手を加えることができません。。


> 掲示板の一番下のフォームからご自分で記事削除できますよ

一応パスワードを設定したのですが、投稿時に再読み込みを何回かしたためか、投稿の編集・削除ができなくなってしまいました。
ですので、管理者さまに削除をお願いしています。

No.2611 2016/07/08(Fri) 12:51:12

Re: 配列の中を並び替えしたいです / stuncloud
>「変数: QSRT_NATURALD が定義されていません」
UWSC 5.1.1 で追加された定数です
それより前のバージョンでは使えません
最新版をダウンロードして試してみてくだい

No.2612 2016/07/08(Fri) 14:32:31

Re: 配列の中を並び替えしたいです / mike
知人と相談して考えてみました。

その間に返信までいただいて申し訳ないです。


stuncloudさんは、今回の場合の配列の並び替えではなく、QSORTの一般的な使い方を教えてくださったのですね。

やっと理解できました。


やっぱり、今回の場合の配列だと、簡単にできるものではないのですね。

No.2613 2016/07/08(Fri) 15:16:32

Re: 配列の中を並び替えしたいです / mike
stuncloudさん、ありがとうございました。
No.2614 2016/07/08(Fri) 15:19:24

Re: 配列の中を並び替えしたいです / stuncloud
> やっぱり、今回の場合の配列だと、簡単にできるものではないのですね。
いえ、今回の場合の話ですけど…?
QSRT_NATURALDによっておそらくご希望の通り数値が大きなものから順に並べ替えられるのを確認していますが、うまくいきませんでしたか?

No.2615 2016/07/08(Fri) 16:26:13

Re: 配列の中を並び替えしたいです / mike
お手数をおかけして大変申し訳ありません!

できました! あれだけ手間がかかっていた作業が一瞬でした・・・(涙)


最初、早くに返信くださっていたのに、レベルが低くてすみません。

stuncloudさんの技術がすごくて、いまだに、どうしてこれでうまくいくのか理解できませんが、
こんなド素人に何回も返信くださって、ご親切に感謝です。


stuncloudさんと、UWSCに感動しました。いや、まじです。

No.2616 2016/07/08(Fri) 17:12:15
最大化ボタンを押すとニコニコトップに飛ばされる、どうして? / すすむ
これで最大化ボタンを押す設定をすると
なぜかニコニコにトップ(http://www.nicovideo.jp/?header )に
飛ばされます。なぜなんでしようか?
どのように修正すればいいのか教えて下さい

ddddd.uws
----- はじまり -----------

//最大化ボタン画像を設定する ---------------

fol1 = "D:\cap\"

saidai = "最大化ボタン画像"

bmp = ".bmp"

saidaiP = fol1 + saidai + bmp

// -----------------------------


// グーグルクロームの起動
EXEC("D:\GoogleChromePortable\GoogleChromePortable.exe" )
cid = GETID("Google Chrome","Chrome_WidgetWin_1",-1)

SLEEP(0.1)

ACW(cid,710,275,980,720,500) // ブラウザの位置サイズ固定


// ソリテアのURLを開く(※ニコニコには事前にログインしたままの状態にしておく)
// SCKEY(gid,VK_F6)
SENDSTR(cid,"http://app.nicovideo.jp/watch/ap349",1,True)
SCKEY(cid,VK_RETURN)

SLEEP(5)

MOUSEORG(cid,MORG_DIRECT,MORG_FORE) // ブラウザをターゲットして相対位置

CTRLWIN( cid, ACTIVATE ) // ブラウザをアクティブ

//最大化ボタンを押す
repeat
Sai = CHKIMG(saidaiP,,ST_X,ST_Y,,,1)
SLEEP(0.5)
until Sai
BTN(LEFT,CLICK,G_IMG_X+10,G_IMG_Y+10,25) // 最大化ボタンを押す

SLEEP(0.5)
sai = CHKIMG(saidaiP,,ST_X,ST_Y,,,1)
while sai
BTN(LEFT,CLICK,G_IMG_X+10,G_IMG_Y+10,25) // 最大化ボタンを押す
SLEEP(0.5)
CTRLWIN( cid, ACTIVATE ) // ブラウザをアクティブ
sai = CHKIMG(saidaiP,,ST_X,ST_Y,,,1)
wend

---------- end ---------

No.2592 2016/07/03(Sun) 11:19:46

Re: 最大化ボタンを押すとニコニコトップに飛ばされる、どうして? / すすむ
補足 最大化ボタンは、ニコニコアプリ内の最大化ボタンです
ソリテアのゲームサービスを開始すると、右上の方に出てきます。
(サービス開始しないと出てきません)

No.2593 2016/07/03(Sun) 11:50:14

Re: 最大化ボタンを押すとニコニコトップに飛ばされる、どうして? / ある
原因はCHKIMGで使用する画像に問題があるように思います。画像と画面を見てないので推測ですが。

最大化はCtrlwin(cid,max)ではダメなんでしょうか?
あとブラウザ操作系はIEでCOM操作の方が確実な事が多いと思います。
どうしてもクロームで!という拘りがあるのでなければ…

No.2595 2016/07/03(Sun) 17:56:12

Re: 最大化ボタンを押すとニコニコトップに飛ばされる、どうして? / すすむ
返信ありがとうございます
>最大化はCtrlwin(cid,max)ではダメなんでしょうか?
ブラウザ全体の最大化はしたくいないのです

>画像と画面を見てないので推測ですが。
ちゃんと見てから返信して下さい。
何も見ないで適当に語られても、こちらは困ります

>どうしてもクロームで
どうしてもクロームでやりたいのです

No.2596 2016/07/03(Sun) 18:06:42

バグ、不具合の報告として補足します。 / すすむ
とりあえず、不具合、バグの報告として追記します。


最大化ボタン画像.bmp
www.fastpic.jp/images.php?file=8634927115.bmp

ブラウザのソリテア画面のキャプ
i.imgur.com/fpKTQg8.png



ddddd.uws
----- はじまり -----------

//最大化ボタン画像を設定する ---------------

fol1 = "D:\cap\"

saidai = "最大化ボタン画像"

bmp = ".bmp"

saidaiP = fol1 + saidai + bmp

// -----------------------------


// グーグルクロームの起動
EXEC("D:\GoogleChromePortable\GoogleChromePortable.exe" )
cid = GETID("Google Chrome","Chrome_WidgetWin_1",-1)

SLEEP(0.1)

ACW(cid,710,275,980,720,500) // ブラウザの位置サイズ固定


// ソリテアのURLを開く(※ニコニコには事前にログインしたままの状態にしておく)

SENDSTR(cid,"http://app.nicovideo.jp/watch/ap349",1,True)
SCKEY(cid,VK_RETURN)

SLEEP(5)

MOUSEORG(cid,MORG_DIRECT,MORG_FORE) // ブラウザをターゲットして相対位置

CTRLWIN( cid, ACTIVATE ) // ブラウザをアクティブ

//最大化ボタンを押す
repeat
Sai = CHKIMG(saidaiP,,ST_X,ST_Y,,,1)
SLEEP(0.5)
until Sai
BTN(LEFT,CLICK,G_IMG_X+10,G_IMG_Y+10,25) // 最大化ボタンを押す

---------- 終わり ---------



MOUSEORG(cid,MORG_DIRECT,MORG_FORE) の所を

MOUSEORG(cid,MORG_CLIENT,MORG_FORE) にすると安定したりする。


MORG_DIRECTにすると、なぜかChromeブラウザの一番左上の四角い画像の方を

クリックしてしまって、ニコニコのトップURL

( www.nicovideo.jp/?header )に飛ばされます

飛ばされたり飛ばされなかったり、PCの負荷や環境によって不安定です。

マウスカーソルがブラウザのどこかの画面クリックの位置にあったりすると

100% ニコニコのトップに飛ばされます。

No.2597 2016/07/04(Mon) 00:25:03

Re: 最大化ボタンを押すとニコニコトップに飛ばされる、どうして? / miles
下記のようにすれば、最大化がクリックできるかと...
(一応確認はしましたよ)

repeat
// Sai = CHKIMG(saidaiP,,ST_X,ST_Y,,,1)
 Sai = CHKIMG(saidaiP)
 SLEEP(0.5)
until Sai
// BTN(LEFT,CLICK,G_IMG_X+10,G_IMG_Y+10,25) // 最大化ボタンを押す
MOUSEORG(0) // スクリーン座標に戻す
BTN(LEFT,CLICK,G_IMG_X+10+STATUS(cid,ST_X),G_IMG_Y+10+STATUS(cid,ST_Y),25)

No.2599 2016/07/04(Mon) 11:50:58

Re: 最大化ボタンを押すとニコニコトップに飛ばされる、どうして? / ある
いえいえ、chkimgに使った画像がどんなものか確認のしようがないということですよ。
貼られてない以上、こちらで確認をすることは出来ませんでしたよね。伝わると思ったのですが、、、

No.2601 2016/07/04(Mon) 21:00:40

Re: 最大化ボタンを押すとニコニコトップに飛ばされる、どうして? / すすむ


> 最大化ボタン画像.bmp
> www.fastpic.jp/images.php?file=8634927115.bmp


返信遅れましたが、
ここに貼ってありますよ。
ちゃんと見て下さいね

No.2604 2016/07/08(Fri) 01:13:49

Re: 最大化ボタンを押すとニコニコトップに飛ばされる、どうして? / すすむ
>下記のようにすれば、最大化がクリックできるかと...
>(一応確認はしましたよ)
>repeat
>// Sai = CHKIMG(saidaiP,,ST_X,ST_Y,,,1)
> Sai = CHKIMG(saidaiP)
> SLEEP(0.5)
>until Sai
>// BTN(LEFT,CLICK,G_IMG_X+10,G_IMG_Y+10,25) // 最大化ボタンを押す
>MOUSEORG(0) // スクリーン座標に戻す
>BTN(LEFT,CLICK,G_IMG_X+10+STATUS(cid,ST_X),G_IMG_Y+10+STATUS(cid,ST_Y),25)


スクリーン座標に戻すのにMOUSEORG(0)という表現は初めて見ました
ありがとうございます。
なるべくならスクリーン座標という広大な範囲は使いたくないのですが
画像サムネイルを表示しただけで、誤検知する恐れもありますので
G_IMG_X+10+STATUS(cid,ST_X)という書き方も、参考になりました。ありがとうございます。
他の機会で使ってみようかと思います。

No.2605 2016/07/08(Fri) 01:19:43
全1170件 [ ページ : << 1 ... 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 ... 117 >> ]