[ 掲示板に戻る ]

過去ログ閲覧モード

IEのボタンが押せない / テニスじいさん
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)


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

// ボタン

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

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

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.navigate("javaScript:input type="submit" id="doLogin" name="layoutChildBody:childForm:doLogin" )
BusyWait(IE)
Fend


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

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

ここに出てくるログインのボタンがおせません。 ソースではうしろに    というのがついていますが、これをどうしたものかもわかりません。javascriptは素人です。なんとか助けてください。よろしくおねがいします。

No.3830 2017/05/01(Mon) 21:30:19

Re: IEのボタンが押せない / しろまさ
//IE.navigate("javaScript:input ・・・

IE.document.getElementById("doLogin").click()
に変更。

No.3837 2017/05/02(Tue) 14:19:04

Re: IEのボタンが押せない / テニスじいさん
ありがとうございました。とりあえず一段クリアしました。助かりました。
No.3839 2017/05/02(Tue) 17:48:18
(No Subject) / しんじ
id1=GETID("1",)
id = GetId("2")
CTRLWIN(id, SHOW)
CTRLWIN(id, ACTIVATE)
IFB ((STATUS(id1, ST_ACTIVE)="False") OR (STATUS(id1, ST_TITLE)<>"")) AND (STATUS(id, ST_ACTIVE)="True")

(1がアクティブかまたは1というタイトルがないか)と(2がアクティブかどうか)
上記のことをやりたいのですができません
よろしければ回答よろしくお願いします

No.3828 2017/05/01(Mon) 18:35:08

Re: / 俄プログラマー
一度に全てやろうとせず1つずつ解決してみてください。

例1)1がアクティブなら「アクティブです」 そうでないなら「アクティブではないです」と表示させる

例2)1というタイトルがあれば「ある」 なければ「ない」と表示させる

これらをクリアしてから組み合わせてください。
なぜそうするかと言うと複雑な条件をより単純化させる事により問題点が見えてくるからです。

No.3829 2017/05/01(Mon) 18:40:15
フォームに数値を入れたい / テニスじいさん
https://www4.pref.aichi.jp/yoyaku/view/user/c039HomeIndex.html?te-uniquekey=15bc2f8dc39

上記のページの「ログインする」 を押して出てきたフォームにidとパスワードを入れたいのですが下記のようにやってもうまくいきません。以前はうまくいっていたのですが、その時にはフォームはありませんでした。


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

No.3825 2017/05/01(Mon) 16:54:35

Re: フォームに数値を入れたい / テニスじいさん
すみません。解決しました。
No.3826 2017/05/01(Mon) 17:23:14
2つのIEcomに接続した際に、それぞれIDを取得する方法 / ジンギスカン
現状、スレッドと通常の接続でIE接続してからid1=getid("Internet Explorer")でIDを取得しています。
GET_ACTIVE_WINやGET_FROMPOINT_WINも考えてみましたが、2つIEに接続するのでうまくIDを取得できないです。何か良い方法はないでしょうか?

THREAD ExecuteC()

FOR i = 1 TO 8 STEP 2 //1357

path="http://keaaaaaaaaaaaaaaaa"
TRY
   IE = CREATEOLEOBJ("InternetExplorer.Application")
  EXCEPT
   EXEC("C:\Program Files\Internet Explorer\iexplore.exe")
   IE = GETACTIVEOLEOBJ("InternetExplorer.Application")
  ENDTRY
IE.visible = true
RESULT = IE
IE.navigate(url)

SLEEP(0.5)
ClkItem(GetID("Windows", "#32770", 1), "OK")
ClkItem(GetID("Windows", "#32770", 1), "このページから移動")
ClkItem(GetID("Windows", "#32770", 1), "プログラムを終了します")
ClkItem(GetID("Windows", "#32770", 1), "プログラムを再起動します")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "OK")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "このページから移動")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "プログラムを終了します")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "プログラムを再起動します")
CONST TIME_OUT = 60
tm = Gettime()
REPEAT
SLEEP(1)
ifb Gettime() - tm > TIME_OUT
break
endif
UNTIL (! IE.BUSY) AND (IE.READYSTATE=4)
SLEEP(0.5)
//  id=getid("転職・求人情報- DODA - Internet Explorer","IEFrame")
id=getid("Internet Explorer")//GET_ACTIVE_WIN
ctrlwin(id, TOPNOACTV)
ACW(id,960,359,344,365,0)
SLEEP(0.5)
id1=getid("Internet Explorer")//GET_ACTIVE_WIN
ACW(id1,0,0,w,G_SCREEN_H)

文字列全体=IE.document.body.innerhtml

IE.quit

next


procedure ExecuteC()


path="http://keaaaaaaaaaaaaaaaa"
FOR i = 2 TO 8 STEP 2 //2468
TRY
   IE1 = CREATEOLEOBJ("InternetExplorer.Application")
  EXCEPT
   EXEC("C:\Program Files\Internet Explorer\iexplore.exe")
   IE1 = GETACTIVEOLEOBJ("InternetExplorer.Application")
  ENDTRY
IE1.visible = true

IE1.navigate(path)

SLEEP(0.5)
ClkItem(GetID("Windows", "#32770", 1), "OK")
ClkItem(GetID("Windows", "#32770", 1), "このページから移動")
ClkItem(GetID("Windows", "#32770", 1), "プログラムを終了します")
ClkItem(GetID("Windows", "#32770", 1), "プログラムを再起動します")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "OK")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "このページから移動")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "プログラムを終了します")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "プログラムを再起動します")
CONST TIME_OUT = 60
tm = Gettime()
REPEAT
SLEEP(1)
ifb Gettime() - tm > TIME_OUT
break
endif
UNTIL (! IE1.BUSY) AND (IE1.READYSTATE=4)
SLEEP(0.5)
//  id=getid("転職・求人情報- DODA - Internet Explorer","IEFrame")
id=getid("Internet Explorer")//GET_ACTIVE_WIN
ACW(id,w,0,w,G_SCREEN_H)
// ctrlwin(id, TOPNOACTV)
// ACW(id,960,359,344,365,0)
SLEEP(0.5)
IE1.quit
next
fend

No.3790 2017/04/24(Mon) 13:22:34

Re: 2つのIEcomに接続した際に、それぞれIDを取得する方法 / stuncloud
hndtoidを使います

id1 = hndtoid(ie1.hwnd)
id2 = hndtoid(ie2.hwnd)

No.3793 2017/04/24(Mon) 18:38:09

Re: 2つのIEcomに接続した際に、それぞれIDを取得する方法 / ジンギスカン
stuncloud様、回答ありがとうございます。
hndtoid利用で無事、ID操作できました。

No.3823 2017/05/01(Mon) 12:07:08
procedure内で配列ファイルの内容を取得してfor文で回し、指定のファイルに書込 / ジンギスカン
配列ファイルに東京<#CR>名古屋<#CR>大阪とあります。
procedure内で配列ファイルの内容を取得してfor文で回し、指定のファイルに書込をしたいのですが、1つ目の東京がすべて書込になってしまいます。下記のようなコードでスレッドを利用しています。


THREAD ExecuteC()


FOR y = 1 TO 8 STEP 2

path=url1+y+url2
Dim IE = COMMON.cre3(path)


文字列全体=IE.document.body.innerhtml

IE.quit
gettime()
現在の日付=G_TIME_YY+"/"+G_TIME_MM+"/"+G_TIME_DD

Public regvb=CREATEOLEOBJ("VBScript.RegExp")

//書込ファイル
fid1="C:\Users\aruke\Desktop\偶数.html"

file1 = FOPEN(fid1, F_READ or F_WRITE8)

Pattern="パターン名"

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

for i = 0 to Matches.count-1
FPUT(file1, res[count]+":"+Matches.Item(i).SubMatches(0))
next

FCLOSE(file1)
count=count+2
next

file1 = FOPEN(fid1, F_READ or F_WRITE8)
moji=fget(file1,-2)
moji = REPLACE(moji, "<#CR>", "")
fput(file1,moji,F_ALLTEXT)
fclose(file1)


procedure ExecuteC()

path="C:\Users\Desktop\配列ファイル"


fid = FOPEN(path,F_READ or F_WRITE)
list = FGET(fid,F_LINECOUNT) //---ファイル内の行数を返す
Dim アカウント[list] //---配列の宣言
count=1
for i = 0 to list-1
 アカウント[i] = FGET(fid,count) //---配列:アカウントに挿入
count=count+1
next
FCLOSE(fid)
res = slice(アカウント, 0, length(アカウント)-1)

FOR i = 3 TO 8 STEP 2 //357

path=url1+i

TRY
   IE1 = CREATEOLEOBJ("InternetExplorer.Application")
  EXCEPT
   EXEC("C:\Program Files\Internet Explorer\iexplore.exe")
   IE1 = GETACTIVEOLEOBJ("InternetExplorer.Application")
  ENDTRY
IE1.visible = true

IE1.navigate(path)

SLEEP(0.5)
ClkItem(GetID("Windows", "#32770", 1), "OK")
ClkItem(GetID("Windows", "#32770", 1), "このページから移動")
ClkItem(GetID("Windows", "#32770", 1), "プログラムを終了します")
ClkItem(GetID("Windows", "#32770", 1), "プログラムを再起動します")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "OK")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "このページから移動")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "プログラムを終了します")
ClkItem(GetID("ページからのメッセージ", "#32770", 1), "プログラムを再起動します")
CONST TIME_OUT = 60
tm = Gettime()
REPEAT
SLEEP(1)
ifb Gettime() - tm > TIME_OUT
break
endif
UNTIL (! IE1.BUSY) AND (IE1.READYSTATE=4)
SLEEP(0.5)


文字列全体=IE1.document.body.innerhtml


Public regvb=CREATEOLEOBJ("VBScript.RegExp")

//書込ファイル
fid11="C:\Users\aruke\Desktop\奇数.html"


file11 = FOPEN(fid11, F_READ or F_WRITE8)

Pattern="Pattern名"

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

count1=1

for i = 0 to Matches.count-1
FPUT(file11, res[count1]+":"+Matches.Item(i).SubMatches(0))
next

FCLOSE(file11)

count1=count1+2

NEXT     
fclose(file11)
fend

//正規表現
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.3822 2017/05/01(Mon) 12:05:29
(No Subject) / しんじ
fileID = FOPEN("sample.txt", F_READ)
str = FGET(fileID, 1)
KBD(VK_ + str)
str2 = FGET(fileID, 2)
KBD(VK_ + str2)
str3 = FGET(fileID, 3)
KBD(VK_ + str3)
str4 = FGET(fileID, 4)
KBD(VK_ + str4)
str5 = FGET(fileID, 5)
KBD(VK_ + str5)
FCLOSE(fileID)

TXT内容
H
E
L
L
O

原理的にはこのようなことをしたいのですが
どうすればいいかわかりません
よろしければご回答よろしくお願いします
コピペではなくKBDのようなクリックでお願いします

No.3816 2017/04/28(Fri) 21:05:42

Re: / 俄プログラマー
SLEEP(3) //必要に応じて

fileID = FOPEN("sample.txt", F_READ)
for i = 1 to FGET(fileID, -1)
 KBD(ASC(FGET(fileID,i)))
next
FCLOSE(fileID)

No.3817 2017/04/29(Sat) 02:04:41

Re: / しんじ
俄プログラマー様
ありがとうございます
私の願った通りの動きでした

No.3819 2017/04/29(Sat) 17:36:31
ポップアップが閉じれません。 / まりも
使用環境はwin10
IE11.106614393
を使用してIEでUWSCマクロを作っているのですが、
よくあるconfirmのポップアップが閉じれなくて困っています。

PROを使用していてデバッガを使っているのですが、
ポップアップが出ると固まります。

ポップアップは「Web ページからのメッセージ」で#32770の
よくあるやつなのです。

登録ボタンのようなものを押すと、確認としてポップアップが出るのですが、
UWSCがボタンを押した後、固まり。

実際のポップアップを押すと再度動きはじめます。

ポップアップのjavascriptは以下の内容でした。
function fnConfirm() {
var msg = "この内容で登録しても宜しいでしょうか?\n";
if(window.confirm(msg)){
return true;
}
return false;
}

UWSC抜粋
PRINT "check"
IESETDATA( IE,1,"subm")
PRINT "check2"

IESETDATA( IE,1,"subm")
でUWSCが固まり、画面のポップアップのキャンセルを押すと
PRINT "check02"が確認できます。

どのように対応できるか、お教えいただけませんでしょうか。
よろしくお願いいたします。

No.3812 2017/04/28(Fri) 13:44:58

Re: ポップアップが閉じれません。 / routa
FAQを見ましょう。
IEの操作(COM)にて、ダイアログが出ると動作が停止する  #N25

No.3815 2017/04/28(Fri) 20:09:55

Re: ポップアップが閉じれません。 / まりも
見落としていました。

早速ためしたところ問題なく動きました。

ありがとうございました。

No.3818 2017/04/29(Sat) 10:42:52
処理の分岐 / じぇす
画像Lを認識、1分間その画像を認識できれば処理A、1分以内に消えたら処理Bに移るようにするにはどのように書けばいいのでしょうか?
No.3810 2017/04/28(Fri) 06:28:40

Re: 処理の分岐 / しゅん
e=GETTIME()+60;WHILE (GETTIME()<e)*CHKIMG("画像L.bmp");WEND;MSGBOX("処理"+CHR(65+!CHKIMG("画像L.bmp")))


// すみません、上記は冗談です。
// 通常は、下のように書きます。
// 基本、自分で書いたスクリプトのない回答には答えない主義ですが、ちょっといたずらしたくなったもので、、、

DIM et = GETTIME() + 60
DIM ok = TRUE

WHILE (GETTIME() < et) AND ok
  ok = CHKIMG("画像L.bmp")
  SLEEP(1)
WEND

IFB ok THEN
  MSGBOX("処理A")
ELSE
  MSGBOX("処理B")
ENDIF

No.3811 2017/04/28(Fri) 12:05:53

Re: 処理の分岐 / じぇす
なるほど、ありがとうございます!
参考にして使います!

No.3813 2017/04/28(Fri) 13:56:22
自動実行(?) / ナベコウ
UWSC本体を閉じていても、FAIL not found となり、ファイル名の場所が記されるエラーメッセージが出てきますがそれが連続で5回も出てきて邪魔で仕方ありません。改善法お願いします…
No.3808 2017/04/27(Thu) 23:06:06

Re: 自動実行(?) / ナベコウ
すみませんやっぱり大丈夫です
No.3809 2017/04/27(Thu) 23:07:16
GETTIMEとIFBについて / ゲン
IFBを使い現在時刻が例えば7時なら実行しそうでない場合は実行しない
というものを作りたいのですがうまくいきません
GETTIME()
time = "" + G_TIME_HH2 + ":" + G_TIME_NN2
IFB (ここが不明)
MSGBOX("7時です")

ELSE

MSGBOX("7時ではありません")

ENDIF

指定時刻と現在時刻との比較の仕方がわかりません
よろしければ教えてくださいよろしくお願いします

No.3804 2017/04/26(Wed) 19:14:56

Re: GETTIMEとIFBについて / ゲン
比較時刻は複数存在する場合です
No.3805 2017/04/26(Wed) 19:24:22

Re: GETTIMEとIFBについて / koi
確認してません

他の部分の 処理内容によっては
その判定が何回も繰り返されて問題になる
とか言った話が出る可能性は考えられますが

ifB (time="07:00")   で判断できませんか?

No.3806 2017/04/26(Wed) 21:27:05

Re: GETTIMEとIFBについて / ゲン
なるほどありがとうございます
思った通りの操作ができました

No.3807 2017/04/27(Thu) 01:38:54
全940件 [ ページ : << 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 94 >> ]