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

IEcom操作で各タブを操作する方法 / 森プロ
下記のコードでやっているのですが、なかなかうまくいきません。何か良い方法ないでしょうか?

IE = GETACTIVEOLEOBJ("InternetExplorer.Application","タイトルA")
id1 = hndtoid(IE.hwnd)
BTN(LEFT,CLICK,672, 294,100)

SLEEP(3.0)
IE1 = GETACTIVEOLEOBJ("InternetExplorer.Application","タイトルB")
id2 = hndtoid(IE1.hwnd)
BTN(LEFT,CLICK,62, 294,100)
SLEEP(3.0)
IE2 = GETACTIVEOLEOBJ("InternetExplorer.Application","タイトルC")

No.3938 2017/05/11(Thu) 12:43:46

Re: IEcom操作で各タブを操作する方法 / koi
何がどううまくいかないのか記載のコードからは読み取れませんが
多分
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi&mode=pickup&no=3199
を参考にすれはいいのではないかと

No.3939 2017/05/11(Thu) 13:59:30
クリック後の全面ウィンドウのチェックボックスにチェックをつける方法 / よっさん
選択をクリックするとウィンドウが全面に表示され、チェックボックスが表示されます。
そのチェックボックスをチェックをつける方法ないでしょうか?選択ボタンを押した後、財務というボックスにチェックをつけたいです。今の自分の実力ではまったく分かりません。助けて頂けないでしょうか?

下記がそのページです。
http://www.r-agent.com/kensaku/syokusyu/ocpt1-03/

No.3932 2017/05/10(Wed) 20:47:04

Re: クリック後の全面ウィンドウのチェックボックスにチェックをつける方法 / K.Nagatani
財務単体のチェックボックスは無かったのですが・・・

Public IE
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.r-agent.com/kensaku/syokusyu/ocpt1-03/")
BusyWait(IE)
SLEEP(2)

FUKIDASI("チェックをOffにします。")
IESETDATA(IE,False,"jb_type_long_cd","")//Off
SLEEP(2)

FUKIDASI("チェックをOnにします。")
IESETDATA(IE,True,"jb_type_long_cd","")//On
SLEEP(2)

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

No.3934 2017/05/11(Thu) 09:02:20
複数のタブ / うちわ
UWSCで複数のタブを開いている場合に、IElinkで一つずつクリックしたいのですが上手くいきません。
初心者ですので、どうすればできるようになるのか詳しく教えていただきたいです。
よろしくお願いします。

No.3910 2017/05/08(Mon) 02:39:03

Re: 複数のタブ / 森
回答が付かないのは、質問内容があいまいだからですね。
何のタブ? リンクはどこに? どんなリンク? などなど
具体的にやりたいことが分りません。
上手くいっていないコードを公開するのは恥ずかしいと思いますが、最初は誰でもそうなので、気にせず自分で書いたコードを質問に載せると的確な回答が得やすくなりますよ!

No.3925 2017/05/09(Tue) 07:20:19

Re: 複数のタブ / うちわ
説明不足で大変申し訳ありません。

当方、どういうコードを載せれば相手方に伝わるのかわからなかったのです。
このような感じで載せれば伝わりますでしょうか?



IE.Navigate("XXXXX")
sleep(3)

IELink(IE,"XXXXX",)
IELink(IE,"XXXXX",2)
IELink(IE,"XXXXX",3)
IELink(IE,"XXXXX",4)
IELink(IE,"XXXXX",5)

status(GETID(GET_ACTIVE_WIN),st_title)
IE=GETACTIVEOLEOBJ("InternetExplorer.Application","新しく開いたページのタイトル")

IELink(IE,"XXXXX")

このスクリプトだと、一つ(最後の)のタブしかクリック
してくれません。
すべてのタブをクリックするにはどのようにすればいいのでしょうか
また、
sckey(IE, VK_CTRL,VK_SHIFT,VK_TAB)
を加えても変わりません。

またGET_ACTIVE_WINをGET_ALL_WINに変えても、結果は変わりませんでした。

No.3930 2017/05/10(Wed) 18:57:20
Excelに行を分けて書き込む方法 / 初心者
d = a + "<#CR>" + b + "<#CR>" + c

dをエクセルのA1に書き込むと

A1 a
  b
  c
A2
A3

と全部がA1に入りますが

A1 a
A2 b
A3 c

としたいです。

どうすればいいでしょうか。
よろしくお願いします

No.3859 2017/05/03(Wed) 18:46:26

Re: Excelに行を分けて書き込む方法 / 森
素直に1つずつ、A1にaを、A2にbを、A3にcを書き込むのが一番かと
No.3862 2017/05/04(Thu) 09:43:37

Re: Excelに行を分けて書き込む方法 / 初心者
ありがとうございます。
現状1つずつなところをどうにかまとめてから書き込む方法を探していたのですが
方法は無いということでよろしいでしょうか。

No.3864 2017/05/04(Thu) 11:15:58

Re: Excelに行を分けて書き込む方法 / 森
一発で記入するには配列を使います。

// エクセル起動
Excel = XLOPEN(, True)

// エクセルにデータを渡すための配列
dim data[3][1]

// 配列にデータをセット ※第1添字が行番号、第2添字が列番号
data[1][1] = "a"
data[2][1] = "b"
data[3][1] = "c"

// エクセルに記入する値を配列で渡す ※第3引数は先頭のセル番地
xlsetdata(excel , data , "A1" )

No.3865 2017/05/04(Thu) 12:46:08

Re: Excelに行を分けて書き込む方法 / 初心者
ありがとうございます。
FUNCTIONの中に入れた場合、次元数が合いませんと出てきます。
Result = slice(data)とすると動きましたが思うように縦に並んでくれません。
何か方法はありますでしょうか。


// エクセル起動
Excel = XLOPEN(, True)

// エクセルに記入する値を配列で渡す ※第3引数は先頭のセル番地
xlsetdata(excel , tes() , "A1" )


FUNCTION tes()

// エクセルにデータを渡すための配列
dim data[3][1]

// 配列にデータをセット ※第1添字が行番号、第2添字が列番号
data[1][1] = "a"
data[2][1] = "b"
data[3][1] = "c"

Result = data

Fend

No.3866 2017/05/04(Thu) 15:25:44

Re: Excelに行を分けて書き込む方法 / K.Nagatani
// データを渡すための配列
Public data[3,2]
// エクセル起動
Excel = XLOPEN(, True)

tes

// エクセルに記入する値を配列で渡す ※第3引数は先頭のセル番地
xlsetdata(excel , data , "A1" )


Procedure tes()
 // 配列にデータをセット ※第1添字が行番号、第2添字が列番号
 data[1][1] = "a"
 data[2][1] = "b"
 data[3][1] = "c"

 data[1,2] = "a2"
 data[2,2] = "b2"
 data[3,2] = "c2"
Fend

No.3870 2017/05/05(Fri) 14:47:48

Re: Excelに行を分けて書き込む方法 / 初心者
森さんK.Nagataniさんの助言を元に思うような処理ができました。
ありがとうございました。

No.3875 2017/05/06(Sat) 10:11:50

Re: Excelに行を分けて書き込む方法 / 森
// もう読んでないと思うけど、エクセルに行列入替えという便利な関数があるのを思い出したので再投稿します。
// これを使えば、通常横並びになる一次元配列を縦並びで記入することができます。

excel = xlopen(, true)

// 元データがカンマ区切りの場合
text = "a,b,c"
tmp = split(text , ",")
Excel.ActiveSheet.Range("A1:A3") = Excel.WorksheetFunction.Transpose(tmp)

// 元データが一次元配列の場合
dim array[] = 1,2,3
tmp = slice(array)
Excel.ActiveSheet.Range("B1:B3") = Excel.WorksheetFunction.Transpose(tmp)

No.3928 2017/05/09(Tue) 18:58:40

Re: Excelに行を分けて書き込む方法 / しろまさ
PasteSpecial を使えば文字列のままで処理できます。
列は<#TAB>連結、行は<#CR>連結、ループも使用しないので最速です。

Dim o_XL = CreateOLEObj("Excel.Application")
Dim o_WB = o_XL.WorkBooks.Add
o_XL.Visible = TRUE // 可視状態にする。

SendStr(0, "a<#CR>b<#CR>c")
o_WB.ActiveSheet.Range("B2").PasteSpecial

SendStr(0, "d<#TAB>e<#TAB>f")
o_WB.ActiveSheet.Range("D2").PasteSpecial

No.3929 2017/05/10(Wed) 13:19:18
optfinally / uwsc勉強中
option optfinally について教えてください。

option optfinallyの説明にある、「Try-Finally間で強制終了が発生した時にも必ず Finally部を実行する」の「強制終了」の定義が分かりません。

例えば、下記の場合、どう理解すればよいのでしょうか?(一例を記載しましたが、強制終了を理解するのに最適なのかはわかりません)


uwscのHELPを見ても、(失礼ながら)文言の定義が全く無く、理解ができないことが多いです。
(UWSCのHELP(H)をいつも見ています)
例えば、「強制終了」に関しても、UWSCの上段のくくりで、定義がなされているのでしょうか?


option optfinally
try
  処理1
  exit
finally
  処理2
endtry

No.3888 2017/05/06(Sat) 18:13:06

Re: optfinally / miles
> 「Try-Finally間で強制終了が発生した時にも必ず Finally部を実行する」の「強制終了」の定義が分かりません。

例えば、
 @タスクマネージャーでタスクの終了をしたとき。
 A自プログラムでexitexit(直ちにプログラムを終了)したとき。
 B他プログラムでCTRLWIN(id, CLOSE)されたとき。
option optfinally していれば、FINALLY部は実行されます。
(但し、sleepやmsgbox等があるとそこで終了します)

 Cexit
 DCTRLWIN(id, CLOSE2) // 終了(QUIT)
CやDなら option optfinally していなくても、FINALLY部は実行されます。

option optfinally
 TRY
  print "TRY処理"
  exitexit   // 直ちにプログラムを終了 但し、optfinally なら FINALLYへ
  exit    // FINALLYへ
 FINALLY
  print "FINALLY処理"
 ENDTRY

No.3900 2017/05/07(Sun) 10:27:22

Re: optfinally / uwsc勉強中
分かりやすくご回答ありがとうございます。


なお、この@〜Dはどこを見ればわかるのでしょうか?
milesさんご自身で試行錯誤されて確認された内容でしょうか?
それとも、「強制終了」といえば、@〜Dであることは自明なのでしょうか?

No.3904 2017/05/07(Sun) 18:11:16

Re: optfinally / miles
> uwscのHELPを見ても、(失礼ながら)文言の定義が全く無く、理解ができないことが多いです。
肝心な所を見落としていました。大変失礼しました。
もし、プログラムの初心者であれば、無理に理解することはないでしょう。
(例外処理に関することなので)

> なお、この@〜Dはどこを見ればわかるのでしょうか?
知っている範囲で回答したまでです。

> milesさんご自身で試行錯誤されて確認された内容でしょうか?
UWSCは、スクリプト言語で、記録して再生できるのですから
トライ&エラーでやっていけばいいでしょう。

> それとも、「強制終了」といえば、@〜Dであることは自明なのでしょうか?
わからない文言は少しずつ勉強していきましょう。
「UWSC 勉強」で検索したサイトを参考にするとか、
今回の質問であれば、
「option optfinally」とか「Try-Finally間で強制終了」で検索するとか、
掲示板の記事検索や過去ログ(〜2017/03/22)・検索ツールを使うとか、

ヘルプファイルを全部、理解する必要はないでしょう。
(わたしも理解していません)
まずは、わかる範囲でプログラムを組んだ方がたのしいと思いますよ。

No.3916 2017/05/08(Mon) 11:54:42

Re: optfinally / uwsc勉強中
有難うございます。
勉強します。

No.3921 2017/05/08(Mon) 22:23:33
bot操作 / pbot
ツイッター用のbotの操作を自動化できるかどうかについて質問させて頂きます。

デスクトップ上のファイルに保存してある画像やテキストを指定日時にツイートするように設定したいと思っています。
数日分なら手作業でできるのですが、数か月分投稿予約しようと思うと骨が折れてしまいます。
ただ投稿日時を少しずつずらしながら指定ファイルにあるデータを1つずつ毎回違ったものを選んでいく作業ができるかがよくわかりません。

コードに関してはまだ勉強始めたばかりですが、とりあえずできるかできないかがわからないと勉強をしても意味がないと思っています。
もしアドバイス頂けると大変ありがたいので、よろしければご返答よろしくお願いいたします。

No.3911 2017/05/08(Mon) 03:11:43

Re: bot操作 / しゅん
できますよ!(といって大丈夫な範囲かと思います)
どう組み立てるかが楽しいところなので、がんばってくださいね!

No.3914 2017/05/08(Mon) 10:00:53

Re: bot操作 / pbot
しゅん様、早速の返答ありがとうございます!!
botを自動化するbotはありそうでなかったのでできないかと思ってました。
頑張ってみます!

No.3917 2017/05/08(Mon) 14:32:13

Re: bot操作 / pbot
単純に悪用されやすいからみつかりにくいだけかもしれません(-_-;)
ただのフォロワー集めのメディア利用目的です。
グノシーとかいけば普通にありそうですけどね。まぁそんなコネなんか当然あるわけもなく...

No.3918 2017/05/08(Mon) 14:49:34
あらゆる状態で指定ブックに保存 / moco
バックグラウンドや最小化等どんな状態でも指定ブックに左詰めで記入して保存をさせたいです。
1.他のブックを開いているとそちらに記入してしまう。
2.バックグラウンドでは保存2回目以降は意図せずに表に出てきてしまう。
3.最小化状態では開き直さないと反映されていない。
全て解決できればありがたいですが致命的な1.だけでもどなたかご教授よろしくお願いいたします。

book = "C:\Users\U\Desktop\test.xlsx"

test = getid("test.xlsx - Excel","XLMAIN")

if test = -1
Excel = CreateOLEObj("Excel.Application")
Excel.displayAlerts = false
Excel.Visible = 0
Excel.WorkBooks.Open(FileName :=book, readOnly :=false)
endif

if test <> -1
EXCEL = GETACTIVEOLEOBJ("Excel.Application","test.xlsx")
endif

//EXCEL.Range("A1:A1000").Find(name).Select
y = 1
while EXCEL.ActiveCell.Offset[0,y].value <> ""
y = y + 1
wend

EXCEL.ActiveCell.Offset(0,y).value = 888

EXCEL.ActiveWorkbook.SaveAs(book)

No.3909 2017/05/07(Sun) 23:45:37

Re: あらゆる状態で指定ブックに保存 / しゅん
未確認ですみませんが、
1.は、「EXCEL.ActiveCell.Offset(0,y).value = 888」として入力するからです。
EXCELは、アプリケーション内に複数のブックを開け、そのブック内のシートのセルに書き込みます。
ActiveCellの場合、EXCELの変数で指定されたアプリケーションにあるアクティブなセル、すなわちフォーカスを持っているセルを対象にしています。
ActiveCellではなく、ブック・シート・セルを明示的に選択してやれば、期待動作になるはずです。
なお、Excel.WorkBooks.Openの戻り値がブックだった気がします。

2.は確認ダイアログですかね?
確認ダイアログ抑止方法があったような気もしますし、Saveのオプションがあったような気もします。

3.は、、、そうでしたっけ?
そんなはずはないと思っているのですが、、、ま、未確認です。

いずれにしても、UWSCではなくExcelマクロの話です。
Excelマクロに関して聞けるところの方が、回答が早いと思いますよ!

No.3913 2017/05/08(Mon) 09:38:53
地域を数字の大きい件数順に並び替える方法 / よっさん
数字と地域名を1セットとして大きい順番に並び替える方法ないでしょうか?配列のQSortを使えばできそうな感じがするのですが使い方がいまいちわかりません。良い方法ないでしょうか?

[元データ]
北信越:19件:中国:47件:海外:15件:関東:809件:


下記のようにしたいです。
関東:809件:中国:47件:北信越:19件:海外:15件:

No.3847 2017/05/02(Tue) 22:56:45

Re: 地域を数字の大きい件数順に並び替える方法 / 俄プログラマー
dim 件数[3]
dim エリア[3]

エリア[0]="北信越" ;件数[0]=19
エリア[1]="中国" ;件数[1]=47
エリア[2]="海外" ;件数[2]=15
エリア[3]="関東" ;件数[3]=809

QSort(件数, 1,エリア)
for i = 0 to 3
 print エリア[i] +":"+ 件数[i]
next

//////または
dim data[1][3]

data[0][0] = "北信越" ; data[1][0] = 19
data[0][1] = "中国" ; data[1][1] = 47
data[0][2] = "海外" ; data[1][2] = 15
data[0][3] = "関東" ; data[1][3] = 809

QSort(data[1], 1,data[0])
for i = 0 to 3
 print data[0][i] +":"+ data[1][i]
next

No.3852 2017/05/03(Wed) 01:45:51

Re: 地域を数字の大きい件数順に並び替える方法 / 森
連想配列を使った例です。
取っつきにくい連想配列ですが、一度理解できればとても便利ですよ。

// 連想配列の宣言
HASHTBL data

// データをセット
data["北信越"] = 19
data["中国"] = 47
data["海外"] = 15
data["関東"] = 809

// 値降順で取り出し
for i = (length(data) - 1) to 0 step -1
 print data[ i , HASH_KEY ] + ":" + data[ i , HASH_VAL ]
next

No.3854 2017/05/03(Wed) 09:54:06

Re: 地域を数字の大きい件数順に並び替える方法 / よっさん
俄プログラマー様、ご回答ありがとうございます。
QSortこういうふうに使うんですね、勉強になりましたありがとうございます。

No.3856 2017/05/03(Wed) 16:42:39

Re: 地域を数字の大きい件数順に並び替える方法 / よっさん
森様、ご回答ありがとうございます。
連想配列HASHTBLなかなかとっつきにくて重複の削除ぐらいしか使ったことなかったのですが、使いこなせるようにしていきたいです。

No.3857 2017/05/03(Wed) 16:47:23

Re: 地域を数字の大きい件数順に並び替える方法 / よっさん
森様が提示頂いたコード結果ですが、下記のようになりました。
数字の大きい順にならないです。


関東:809
海外:15
中国:47
北信越:19

No.3860 2017/05/04(Thu) 01:16:47

Re: 地域を数字の大きい件数順に並び替える方法 / 森
失礼しました、テストせずに載せたらダメですね^^;

// 連想配列の宣言
HASHTBL data = HASH_SORT // ※順列で読出す時にキーをソート

// 普通はエリアをキーにしたいところだけど、目的達成のために逆転の発想を!
data[19 ] = "北信越"
data[47 ] = "中国"
data[15 ] = "海外"
data[809] = "関東"

// 降順で取り出し
for i = (length(data) - 1) to 0 step -1
 print data[ i , HASH_VAL ] + ":" + data[ i , HASH_KEY ]
next

No.3861 2017/05/04(Thu) 08:24:41

Re: 地域を数字の大きい件数順に並び替える方法 / よっさん
森様、ありがとうございます。無事希望の処理ができました。
No.3877 2017/05/06(Sat) 10:18:40

Re: 地域を数字の大きい件数順に並び替える方法 / よっさん
もう一つ進んだ処理として配列データを連想配列に入れる方法がなかなかうまくいきません。
下記のコードでためしていますがソートがうまくいきません。
キーと値を配列にあてはめたらいけそうだと思ったのですができないです。
何がいけないでしょうか?

call C:\Users\aruke\Desktop\00_共通化.uws

file="C:\Users\aruke\Desktop\do.txt"

file1="C:\Users\aruke\Desktop\新.txt"

Dim res = COMMON.test_hairetu(file)
Dim res1 = COMMON.test_hairetu(file1)
// 連想配列の宣言
HASHTBL data = HASH_SORT // ※順列で読出す時にキーをソート

// 普通はエリアをキーにしたいところだけど、目的達成のために逆転の発想を!
data[res1[0]] = res[0]
data[res1[1]] = res[1]
data[res1[2]] = res[2]
data[res1[3]] = res[3]

// 降順で取り出し
for i = (length(data) - 1) to 0 step -1
 print data[ i , HASH_VAL ] + ":" + data[ i , HASH_KEY ]
next

// 配列1
// 154
// 3544
// 414
// 45

// 配列2
// 全国
// 北海道・東北
// 関東
// 東海


結果
東海:45
関東:414
北海道・東北:3544
全国:154

No.3890 2017/05/06(Sat) 19:58:11

Re: 地域を数字の大きい件数順に並び替える方法 / 森
最後の質問への直接の回答ではありませんが、私がさっきした回答に問題点があったので再投稿します。
[問題点1]同じ数量のエリアがあった場合に、後から配列に入れた方だけが出力される。
[問題点2]数量が文字型で判断されるために、10より2の方が大きいと判断される。

以下は、上記問題点を改善するための、連想配列を使った例です。
もはや連想配列っぽくありませんが、こんなやり方もあるという参考にしてください。

// 連想配列の宣言
HASHTBL data = HASH_SORT

// データを配列に
dim array_1[50]
i = 1
repeat
 wks = betweenstr("<#CR>" + data_1 + "<#CR>" , "<#CR>" , "<#CR>" , i , true)
 if wks <> ""
  // 地域名
  area = betweenstr(wks ,, ":")
  // 数量
  value = betweenstr(wks , ":" ,)
  // 数量を前方ゼロ埋めして10桁揃え
  value = format("0", 10 - length(value)) + value

  // 数量と地域を連結して連想配列に ※値の1はダミーなので何でも良い
  data[value + area] = 1
  i = i + 1
 endif
until wks = ""

// 降順で取り出し
for i = (length(data) - 1) to 0 step -1
 // 地域名
 area = copy(data[i , HASH_KEY ] , 11)
 // 数量
 value = copy(data[i , HASH_KEY ] , 1 , 10 )
 // 数量が文字型なので数値型に
 value = val(value)
 // 出力
 print area + ":" + value
next

// データ
// -------------------------------------
textblock data_1
全国:12
北海道・東北:1
関東:123
東海:12
endtextblock

No.3893 2017/05/06(Sat) 21:33:51

Re: 地域を数字の大きい件数順に並び替える方法 / 龍虎乱舞
森様、これはすごい貴重なコードありがとうございます。希望どおりの処理ができました。
uwscでは配列のソートは無理だと諦めていたのですが、無事できました。
このようなコードは今の自分の実力では絶対組めないのでじっくり勉強させて頂きます。

No.3908 2017/05/07(Sun) 22:29:46
偶数の順番に入れたいデータと奇数の順番に入れたいデータを統合する方法 / 龍虎乱舞
奇数ファイルと偶数ファイルのデータを1つファイルとして奇数ファイルのデータは奇数順に偶数ファイルのデータは偶数順に入力させる方法ないでしょうか?

//奇数ファイル13579
36、15、19

//偶数ファイル2468
88、51、90

したい処理
36、88、15、51、19、90

No.3891 2017/05/06(Sat) 20:32:40

Re: 偶数の順番に入れたいデータと奇数の順番に入れたいデータを統合する方法 / 森
いくつか考えられますが、同じループの中で奇数出力と偶数出力を順番にやってしまう方法が手っ取り早いと思います。

dim 奇数[] = 36,15,19
dim 偶数[] = 88,51,90

for i = 0 to 2
 print 奇数[i]
 print 偶数[i]
next

No.3897 2017/05/06(Sat) 23:17:08

Re: 偶数の順番に入れたいデータと奇数の順番に入れたいデータを統合する方法 / 龍虎乱舞
森様、回答ありがとうございます。
希望の処理ができました。感謝致します。

No.3907 2017/05/07(Sun) 22:26:31
やはりメッセージボタンが消えない / テニスじいさん
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
愛知(IE)

id="01068868"
paswd="Aich0075"

施設予約システムに入る(IE)

IESetData(IE,id,"layoutChildBody:childForm:userid")         // Id
IESetData(IE,paswd,"layoutChildBody:childForm:passwd") // 暗証番号

ログイン(IE)

    新規抽選(IE)


    小幡庭球(IE) //ラヂオボタン

    対象館一覧(IE)

    施設の決定(IE)

no=31
    日付の選択(IE,no)

面数(IE)

moji="cd"
    時間帯(IE,moji)

    申し込み確定(IE)
    
    利用目的(IE)

抽選内容の確認(IE)



//=============================================================

// ボタン doOnceFix

//=============================================================

// ======愛知ネットにはいる========

Procedure 愛知(ie)
IE.Navigate("https://www4.pref.aichi.jp/yoyaku/index.jsp")
BusyWait(ie)
Fend

//========施設予約システムに入る=================
Procedure 施設予約システムに入る(IE)
IE.navigate("javaScript: doSubmit('childForm', 'doLogin');" )
BusyWait(IE)
Fend

//================ログイン======================
Procedure ログイン(IE)
IE.document.getElementById("doLogin").click()
BusyWait(IE)
sleep(0.2)
Fend

//================新規抽選====================== goLotSerach
Procedure 新規抽選(IE)
IE.document.getElementById("goLotSerach").click()
BusyWait(IE)
sleep(0.2)

Fend

//================小幡庭球======================
Procedure 小幡庭球(IE)
IESetData(IE,True,"layoutChildBody:childForm:selectClscd","180")
BusyWait(IE)
Fend



//================対象館一覧を表示======================
Procedure 対象館一覧(IE)
IE.document.getElementById("doSearch").click()
BusyWait(IE)
Fend

//================施設の決定======================
Procedure 施設の決定(IE)
IE.document.getElementById("doAreaSet").click()
BusyWait(IE)
Fend

//================日付の選択======================
Procedure 日付の選択(IE,no)
if no=1 then ban="1"
if no=2 then ban="2"
if no=3 then ban="3"
if no=4 then ban="4"
if no=5 then ban="5"
if no=6 then ban="6"
if no=7 then ban="7"
if no=8 then ban="8"
if no=9 then ban="9"
if no=10 then ban="10"
if no=11 then ban="11"
if no=12 then ban="12"
if no=13 then ban="13"
if no=14 then ban="14"
if no=15 then ban="15"
if no=16 then ban="16"
if no=17 then ban="17"
if no=18 then ban="18"
if no=19 then ban="19"
if no=20 then ban="20"
if no=21 then ban="21"
if no=22 then ban="22"
if no=23 then ban="23"
if no=24 then ban="24"
if no=25 then ban="25"
if no=26 then ban="26"
if no=27 then ban="27"
if no=28 then ban="28"
if no=29 then ban="29"
if no=30 then ban="30"
if no=31 then ban="31"


id = GETID("抽選申込日時設定/ネットあいち施設予約システム - Internet Explorer", "IEFrame", -1)
SLEEP(0.2)
CLKITEM(id, ban, CLK_LINK)
BusyWait(ie)
Fend

//================面数====================== ここ
Procedure 面数(IE)
IESetData(IE,"2","layoutChildBody:childForm:selectFieldCnt")
BusyWait(IE)
Fend

//================
//========== 時間帯============

Procedure 時間帯(IE,moji)
nn=pos("a",moji)
if nn>0 then IESetData(IE,True,"layoutChildBody:childForm:lotEmptyStateListItemsItems:0:lotEmptyStateListItems--:0:chkKom-1")
nn=pos("b",moji)
if nn>0 then  IESetData(IE,True,"layoutChildBody:childForm:lotEmptyStateListItemsItems:0:lotEmptyStateListItems--:1:chkKom-1")
nn=pos("c",moji)
if nn>0 then IESetData(IE,True,"layoutChildBody:childForm:lotEmptyStateListItemsItems:0:lotEmptyStateListItems--:2:chkKom-1")
nn=pos("d",moji)
if nn>0 then IESetData(IE,True,"layoutChildBody:childForm:lotEmptyStateListItemsItems:0:lotEmptyStateListItems--:3:chkKom-1")
BusyWait(IE)
Fend

//================申し込み確定======================
Procedure 申し込み確定(IE)
IE.document.getElementById("doDateTimeSet").click()
BusyWait(IE)
sleep(0.2)
Fend

//================利用目的====================== ここ
Procedure 利用目的(IE)
 IESetData(IE,"硬式テニス","layoutChildBody:childForm:makeList")
 IESetData(IE,"19","layoutChildBody:childForm:applycnt")     //人数 
BusyWait(IE)
Fend

//================抽選内容の確認======================
Procedure 抽選内容の確認(IE)
 IE.document.getElementById("doConfirm").click()
 BusyWait(IE)
 sleep(0.2)
 //IE.document.getElementById("doOnceFix").click() //申し込み←原因はここです。
 //IEの操作(COM)にて、ダイアログが出ると動作が停止する  #N25
 //http://www.uwsc.info/faq.html#N25
 Thread PopupWin()
 IESETDATA(IE,True,"","抽選を申込む")
 BusyWait(IE)
 sleep(0.2)
 REPEAT
  SLEEP(0.2)
  ID = GetID("Web ページからのメッセージ","#32770")
 UNTIL ID > 0
 SLEEP(0.2)
 CLKITEM(ID,"OK", CLK_BTN) //メッセージにOKする
//clkitem(GetId("Webページからのメッセージ","Internet Explorer_TridentDlgFrame"), "OK", CLK_ACC) //メッセージにOKする
Fend

  Procedure PopupWin()
   id = Getid(, "#32770", -1)
   Sleep(1)
   Clkitem(id, "OK")
  Fend

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

//=================================

長谷様?  お世話になっております。
おっしゃるように、このようにしてみました。相変わらずです。Thread Popupwin() の位置はここで間違いないのでしょうか。

No.3896 2017/05/06(Sat) 22:39:44

Re: やはりメッセージボタンが消えない / K.Nagatani
ごめんなさい!間違ってました。
//================日付の選択======================
Procedure 日付の選択(IE,no)
ban = no //もしくは  ban = (no + "")このままでも、動作しました
id = GETID("抽選申込日時設定/ネットあいち施設予約システム - Internet Explorer", "IEFrame", -1)
SLEEP(0.2)
CLKITEM(id, ban, CLK_LINK)
BusyWait(ie)
Fend

//================抽選内容の確認======================
Procedure 抽選内容の確認(IE)
 IE.document.getElementById("doConfirm").click()
 BusyWait(IE)
 sleep(0.2)
 //IE.document.getElementById("doOnceFix").click() //申し込み←原因はここです。
 //IEの操作(COM)にて、ダイアログが出ると動作が停止する  #N25
 //http://www.uwsc.info/faq.html#N25
 Thread PopupWin()
 IESETDATA(IE,True,"","抽選を申込む")
 BusyWait(IE)
 sleep(0.2)
Fend

Procedure PopupWin()
  id = Getid(, "#32770", -1)
  Sleep(1)
  Check = Clkitem(id, "キャンセル",CLK_BTN)//ここを"OK"に
print Check
Fend

No.3898 2017/05/06(Sat) 23:38:41

Re: やはりメッセージボタンが消えない / テニスじいさん
お世話になっています。やはりダイアログが消えません。実際にはこのようにしました。
そしてprint Check はFalse のままです。よろしくご指導をお願いします。

 Procedure 抽選内容の確認(IE)
 IE.document.getElementById("doConfirm").click()
 BusyWait(IE)
 sleep(0.2)
 //IE.document.getElementById("doOnceFix").click() //申し込み←原因はここです。
 //IEの操作(COM)にて、ダイアログが出ると動作が停止する  #N25
 //http://www.uwsc.info/faq.html#N25
 Thread PopupWin()
 IESETDATA(IE,True,"","抽選を申込む")
 BusyWait(IE)
 sleep(0.2)
Fend
//-----------------
Procedure PopupWin()
  id = Getid(, "#32770", -1)
  Sleep(1)
  Check = Clkitem(id, "OK",CLK_BTN)//ここを"OK"に
print Check
Fend

No.3899 2017/05/07(Sun) 10:05:05

Re: やはりメッセージボタンが消えない / K.Nagatani
私は、"OK"を"キャンセル"で確認しましたが
Trueでした!可能性は"OK"全角かもしれませんね。
このポップアップが出たところでUWSCを停止させ
記録されてみては?

No.3901 2017/05/07(Sun) 10:28:30

Re: やはりメッセージボタンが消えない / K.Nagatani
私の環境ではTrueが返って来るので動作しているように見えますが・・・

//================抽選内容の確認======================
Procedure 抽選内容の確認(IE)
 IE.document.getElementById("doConfirm").click()
 BusyWait(IE)
 sleep(0.2)
 //IE.document.getElementById("doOnceFix").click() //申し込み←原因はここです。
 //IEの操作(COM)にて、ダイアログが出ると動作が停止する  #N25
 //http://www.uwsc.info/faq.html#N25
 Thread PopupWin("Web ページからのメッセージ")
 IESETDATA(IE,True,"","抽選を申込む")
 BusyWait(IE)
 sleep(0.2)
Fend

Procedure PopupWin(StrLine)
  id = GETID(StrLine, "#32770", -1)
  SLEEP(2)
  Check = CLKITEM(id, "OK", CLK_BTN)
print Check
Fend

No.3902 2017/05/07(Sun) 12:41:22

Re: やはりメッセージボタンが消えない / テニスじいさん
ありがとうございました。うまくいきました。最後のアドバイスが良かったと思います。助かりました。あとはエクセルのシートからコントロールするだけで出来上がります。
No.3903 2017/05/07(Sun) 14:10:00


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


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