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

Matches.Item(0).Valueで取得したデータを配列に挿入する方法 / よっさん
for文を利用して正規表現でパターンて検索したデータを配列に順番にいれる方法ないでしょうか?
例えば、aというページで正規表現で一つのデータを取得してそれを配列に入れて、
次にbというページで正規表現でパターン検索して1つのデータを取得して配列にいれたいです。
どうかご教授頂けませんでしようか?

for i =1 to 3
//iページに接続
Public regvb=CREATEOLEOBJ("VBScript.RegExp")

文字列全体=test
Pattern="現在のページ\s/\s\d"

Matches=regvb_Execute(文字列全体, Pattern)
print Matches.Item(0).Value
next
//正規表現
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.3855 2017/05/03(Wed) 16:38:42

Re: Matches.Item(0).Valueで取得したデータを配列に挿入する方法 / 森
骨格だけですが、やりたいことはこんな感じ?
※質問に書かれている正規表現等は精査していません。

// 配列の変数宣言
dim data[3]

// 検索結果を配列に格納するループ
for i = 1 to 3
 data[i] = kensaku(文字列全体, Pattern)
next

// 検索結果を返す関数
function kensaku(文字列全体, Pattern)
 ここに検索のスクリプト
 result = Matches
fend

No.3863 2017/05/04(Thu) 09:56:04

Re: Matches.Item(0).Valueで取得したデータを配列に挿入する方法 / よっさん
森様、貴重な骨格ありがとうございます。やりたい事ができました。森様のコードかなり私にとっては貴重な有り難いコードでした。
No.3876 2017/05/06(Sat) 10:16:28
ファイルを開く方法 / ビギナー
指定したファイルを開くプログラムを書こうとしています。
何度変更してみても開くことができません。
inputにはC:\Users\〜からすべて入力しています。
どうすればいいのか教えてください。

MYPATH = INPUT("ファイルパス") //exeの指定
MYFILE = INPUT("ファイル") //ファイルの指定
exec(MYPATH + MYFAILE) //ファイルを開く

No.3872 2017/05/05(Fri) 20:01:56

Re: ファイルを開く方法 / K.Nagatani
多分で申し訳ありませんが
EXEC関数にてスペースを含んだパス、ファイルを実行する事が出来ない  #N24

No.3873 2017/05/05(Fri) 20:33:11

Re: ファイルを開く方法 / 森
MYPATH と MYFAILE の間にスペースが必要です。
さらに、FAQ #N24に書いてあるように、EXEC関数ではスペースを含める場合には"ダブルコーテーション"で括る必要があります。
http://www.uwsc.info/faq.html#N24

No.3874 2017/05/06(Sat) 07:37:21
(No Subject) / テニスじいさん
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)

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

// ボタン
//=============================================================

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

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)
Fend

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

//================小幡庭球======================
Procedure 小幡庭球(IE)
IE.document.getElementById("layoutChildBody:childForm:selectClscd ").click()
BusyWait(IE)
Fend

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

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

 しろまささま、ありがとうございました。今度は
ラヂオボタンの押し方がわかりません。たくさんあっていろいろ番号がふってあるようですが、どうして区別するのかわかりません。バカの一つ覚えのようにやっています。ちなみに、当該ボタンは次のように表記されています。度々で申し訳ないですが、お助けください。

<input type="radio" id="clscd" name="layoutChildBody:childForm:selectClscd" value="180" />

No.3846 2017/05/02(Tue) 22:46:39

Re: / miles
UWSCサンプルを参考にしてください。
(update 2017/04/16 になっていた)

Internet Explorer 上での文字設定、ボタンのクリック  #N33
http://www.uwsc.info/sample.html#N33

検証していませんが、
IESetData(IE,True,"layoutChildBody:childForm:selectClscd","180")
かな?

No.3853 2017/05/03(Wed) 09:41:32

Re: / テニスじいさん
ありがとうございました。IESetDataがこういうふうに使えるとは知りませんでした。助かりました。
なおタイトルを忘れていました。気をつけます。

No.3858 2017/05/03(Wed) 16:49:21
パラメーターについて質問です / しんじ
パラメータについて
0 = PARAM_STR[0]
MSGBOX("0")

1 = PARAM_STR[0]
MSGBOX("1")
...etc
このような感じで送られてきたパラメーターごとに処理を分けたいのですが
よくわかりませんわかる方いましたらよろしくお願いします

No.3835 2017/05/02(Tue) 05:05:15

Re: パラメーターについて質問です / 俄プログラマー
ヘルプファイルより

 // Select Selend 文
 SELECT 式
  CASE 式       // 数値でも文字でも変数でもOK
    処理
  [CASE 式, 式]    // ,カンマによる複数表記可
    処理
  [DEFAULT]      // デフォルト
    処理
 SELEND

No.3836 2017/05/02(Tue) 05:31:25

Re: パラメーターについて質問です / しんじ
ありがとうございます
No.3840 2017/05/02(Tue) 19:45:47

Re: パラメーターについて質問です / しんじ
すいませんやはりできないです
文の中にIFB GETKEYSTATE(TGL_IME)を入れてるのですがループかブロックをふさいでいると出ます
どうすればいいでしょうかbreakを使いましたがうまくいかないです

No.3841 2017/05/02(Tue) 21:29:21

Re: パラメーターについて質問です / 俄プログラマー
//私は超能力者ではないのでソースを提示して頂けないと答えようがないです。

SELECT PARAM_STR[0]
 CASE 0
  MSGBOX("0")
 CASE 1
  MSGBOX("1")
SELEND

No.3842 2017/05/02(Tue) 22:29:58

Re: パラメーターについて質問です / user
■処理をふりわける方法について。
サンプルです。
質問にある「0 = PARAM_STR[0]」って、ifbの中で使われているんですよね?
もしエラーになっている部分について目星がつくなら、そのあたりの行ごと引用したほうが、適切な回答が得られやすいと思います。よくわかんないなら、いったん全部なげてもよいかも。

p=input("入力してください")

select p
    case 1
        msgbox(1)
    case 2
        msgbox(2)
selend

//上と同じ 単純に割り振るなら、上のほうがわかりやすいかも。
ifb p=1 then
    msgbox(1)
elseif p=2
    msgbox(2)
endif

No.3844 2017/05/02(Tue) 22:34:44

Re: パラメーターについて質問です / user
■TGL_IMEについて
・Windowsは、通常アプリごとにIMEの状態を保持しています。メモ帳ではONだけど、エクセルではOFFとか(ただし、IMEによっては、全てのアプリで状態を共有する設定にもできるはず)
・GETKEYSTATE(TGL_IME)は、アクティブなウィンドウ(アプリ)のIMEの状態を拾うらしい。
http://uwsc.wpblog.jp/?p=129
※デバッガで試したけれど、半角全角キーでのトグルは拾えなかった(デバッガだからかも?)

//TGL_IMEのテスト
while true
    sleep(0.1)
    IFB GETKEYSTATE(TGL_IME) then
        break
    endif
wend
msgbox("IMEトグル?")

No.3845 2017/05/02(Tue) 22:46:23

Re: パラメーターについて質問です / しんじ
すいません失礼しました
以下がcaseの中に入れるコードです
LOCKHARD(TRUE)

GETTIME()
date = "" + G_TIME_MM2 + "月" + G_TIME_DD2 + "日"
time = "" + G_TIME_HH2 + "時" + G_TIME_NN2 + "分" + G_TIME_SS2 + "秒"


FSO = CreateOLEObj("Scripting.FileSystemObject")
IFB FSO.FolderExists("")
ELSE
folder_name =""
Doscmd("mkdir C:\" + folder_name)
ENDIF


x2=G_MOUSE_X
y2=G_MOUSE_Y

id1=GETID("0",)
id = GetId("")
CTRLWIN(id, SHOW)
CTRLWIN(id, ACTIVATE)
IFB (STATUS(id, ST_ACTIVE)="True")AND(STATUS(id1, ST_TITLE)="")AND(STATUS(id1, ST_ACTIVE)="False")

 title = STATUS(id, ST_TITLE)
 x = STATUS(id, ST_X)
 y = STATUS(id, ST_Y)
  X1=4+RANDOM(4)
 Y1=4+RANDOM(4)
fileID = FOPEN("", F_READ)
str = FGET(fileID, 1)
FCLOSE(fileID)
IFB (str="")

MMV(x,y)
  BTN(LEFT,CLICK)
for 回数 = 1 to 6
KBD(VK_BACK,CLICK)
next
If GETKEYSTATE(TGL_IME) Then KBD(VK_KANJI,CLICK)
fileID = FOPEN("", F_READ)
for i = 1 to FGET(fileID, -1)
 KBD(ASC(FGET(fileID,i)))
next
FCLOSE(fileID)
MMV(x, y)
k=(2)/10+(RANDOM(1))/10
 SLEEP(0+k)
BTN(LEFT,CLICK)

fileID = FOPEN("", F_READ or F_WRITE)
FPUT(fileID, date + " " + time + "")
FCLOSE(fileID)
LOCKHARD(FALSE)

ELSE

Sleep(0.3)
MMV(x, y)
  BTN(LEFT,CLICK)
Sleep(0.2)
 MMV(x,y)
  BTN(LEFT,CLICK)
Sleep(0.2)
MMV(x,y)
  BTN(LEFT,CLICK)
for 回数 = 1 to 6
KBD(VK_BACK,CLICK)
next
If GETKEYSTATE(TGL_IME) Then KBD(VK_KANJI,CLICK)
fileID = FOPEN("", F_READ)
for i = 1 to FGET(fileID, -1)
 KBD(ASC(FGET(fileID,i)))
next
FCLOSE(fileID)
MMV(x, y)
k=(2)/10+(RANDOM(1))/10
 SLEEP(0+k)
BTN(LEFT,CLICK)
 MMV(x2,y2)

fileID = FOPEN("", F_READ or F_WRITE)
FPUT(fileID, date + " " + time + ")
FCLOSE(fileID)
fileID = FOPEN("", F_WRITE)
FPUT(fileID, "")
FCLOSE(fileID)
LOCKHARD(FALSE)
ENDIF
ELSE


LOCKHARD(FALSE)
MMV(x2,y2)
ENDIF

No.3849 2017/05/03(Wed) 00:22:28

Re: パラメーターについて質問です / 俄プログラマー
最初の質問と内容が変わってきていますね。

>ループかブロックをふさいでいると出ます
提示されたソースでは出ないですね。
繰り返し処理の途中で条件分岐をちゃんと終えていますか?

while true

 if 〜〜

wend
 endif

などになっていませんか?


取りあえず気になったところだけ挙げておきます。

id1=GETID("0",)
id1=GETID("0")


FPUT(fileID, date + " " + time + ")
FPUT(fileID, date + " " + time + "")


エラーになっている周辺の処理を一旦別のテキストファイルにコピー(退避)しておいて
print "処理A"
などと適当にわかるような物に変えてみてください。
細かな処理はそのあと一つずつ追加して動作確認しながら進めてください。
先のスレでも書きましたが一度で一気に複雑な事をするのは止めましょう。
エラーが出ても訳が分からなくなるだけですよ。

No.3850 2017/05/03(Wed) 01:21:09

Re: パラメーターについて質問です / しんじ
If GETKEYSTATE(TGL_IME) Then KBD(VK_KANJI,CLICK)
この部分でふさいでいるとエラーが出ました
一番最初の質問に関しては解決はしたのですが
これはもともと一つ一つファイルに組み込んでいたもので
一つのファイルで管理できたらなと思いパラメータで分担処理をしようとしたところ
上記のようなエラーが出たため質問させていただきました次第でございます

No.3851 2017/05/03(Wed) 01:36:44
エクセルブック間でXLSETDATAを使って列の貼り付けをしたい。 / sen
いつもお世話になっております。
XLSETDATAを使って転記していたのですが、うまくいきません。
思い切って、エクセルのマクロを実行する形でやったら、簡単にできました。
しかし、XLSETDATAのやり方で試行錯誤を繰り返していたので、残念な思いもあります。
もし宜しければ、ご教授願います。


//@XLSETDATAを使用した場合 うまく動かない・・・A:Hまでならうまく動く
Excel = XLOPEN("C:\Nrb0000.CSV")
元 = XLGETDATA(Excel,"A:AQ")
XLCLOSE(Excel,TRUE)

Excel2 = XLOPEN("C:\ピポット転記売上明細.xlsm")
XLACTIVATE(Excel2, "明細")
XLSETDATA(Excel2,元,"A:AQ")
XLCLOSE(Excel2)


//Aエクセルのマクロを使った場合・・・うまく動く
DIM Excel2 = XLOPEN("C:\Nrb0000.CSV")
DIM Excel = XLOPEN("C:\ピポット転記売上明細.xlsm")
XLACTIVATE(Excel, "明細")
excel.run("転記")
XLCLOSE(Excel)

//エクセルマクロ
//Sub 転記()
// Application.DisplayAlerts = False
// Windows("Nrb0000.CSV").Activate
// Columns("A:AQ").Select
// Selection.Copy
// Windows("ピポット転記売上明細.xlsm").Activate
// Columns("A:AQ").Select
// ActiveSheet.Paste
//End Sub

No.3820 2017/04/30(Sun) 23:03:52

Re: エクセルブック間でXLSETDATAを使って列の貼り付けをしたい。 / しき
どの行でエラーになりますか?
私の環境では、A:AQはエラー A:J はOKでした
Excel2007 win7x64 PC core i5 メモリ8GB
データ量が大きいとエラーになるのでは?メモリー量依存かも

Excel = XLOPEN("C:\Nrb0000.CSV")
//元 = XLGETDATA(Excel,"A:AQ")   //エラー
//元 = XLGETDATA(Excel,"A:J")   //OK
//元 = XLGETDATA(Excel,"A:B")   //OK
元 = XLGETDATA(Excel,"A1:AQ4")  //OK

msgbox(length(元) +", "+ length(元[1])) //4, 43

No.3824 2017/05/01(Mon) 16:02:11

Re: エクセルブック間でXLSETDATAを使って列の貼り付けをしたい。 / sen
ありがとうございます。

元 = XLGETDATA(Excel,"A:AQ")
でエラーまずなります。

列を少なくすると、
XLACTIVATE(Excel2, "明細")
でなる時もあります。
この行を削除してうまくいく時もあります。

最後に、
XLSETDATA(Excel2,元,"A:AQ")
でなります。

システムは、
WINDOWS10 HOME64
EXCEL2016
I5-6400 2.7GHZ
8GB
です。

No.3831 2017/05/01(Mon) 22:56:53

Re: エクセルブック間でXLSETDATAを使って列の貼り付けをしたい。 / routa
行番号を忘れずに付けましょう。
元 = XLGETDATA(Excel,"A1:AQ5")
XLSETDATA(Excel2,元,"A1")

No.3832 2017/05/02(Tue) 00:11:46

Re: エクセルブック間でXLSETDATAを使って列の貼り付けをしたい。 / しき
Excelでマクロ実行してもエラーが起きます。
この方法を使うなら、範囲を狭くするしかないでしょう

//エクセルマクロ
Sub Macro1()
Set o_range = Range("A:AQ")
v = o_range.Value

MsgBox UBound(v)
End Sub

//エラー内容
実行時エラー '7':

メモリが不足しています。

No.3838 2017/05/02(Tue) 17:05:03

Re: エクセルブック間でXLSETDATAを使って列の貼り付けをしたい。 / sen
そうですか。
残念です。

取り敢えず、パターンAで動いているみたいなので、これで頑張ります。

初めて使ったuwscのxlopenとexcel.runの組合せは、ワクワクします。
僅か4行で二つのブックの操作をできるのは偉大で、これならスケジュール設定も可能だし、
フルパスは、以前教えて頂いたsendstr(0,param_str[0])で楽々、収得。
エクセルマクロは、自動記録です。

今まで、データベースから抽出されたcsvに対して計算して付け加えていましたが、
これなら、エクセルの関数もピポットテーブルも、作り込んだのを使い回せます。

xlopenとexcel.runの組合せで可能性無限大です。

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

No.3848 2017/05/02(Tue) 23:07:57
リンク先へ上手く行けない / RAM
IESETDATA(IE,TRUE,"TAG=IMG","○○○")

上記の式を使って、URLを貼っているのですが回してみるとそのページに飛ばず。

IE.document.links.item(○).click(○)

こちらの式を使ってみると、別のページへ飛び、これ以降の操作ができなくなってしまいます。


解決する方法はあるのでしょうか?

No.3795 2017/04/25(Tue) 12:33:51

Re: リンク先へ上手く行けない / stuncloud
> IESETDATA(IE,TRUE,"TAG=IMG","○○○")
"TAG=IMG" としてるからでは…?

> 別のページへ飛び、これ以降の操作ができなくなってしまいます。
変数IEと新しく開いたページが別物なんじゃないかなって気がします
IE2 = getactiveoleobj("InternetExplorer.Application", "新しく開いたページのタイトル")
として以降IE2で操作しましょう
(古い変数IE(とそこに表示してるページ)を使わないのであればそっちに上書きしちゃっても別に良いですよ)

No.3797 2017/04/25(Tue) 16:45:20

Re: リンク先へ上手く行けない / RAM
返信ありがとうございます。

その新しく開いたページがランダムの場合、ページのタイトルが確定しないのですが、どうすればよいでしょうか?
また、上書き方法がよくわからないので、そちらも合わせてお教えいただけるとありがたいです。

No.3800 2017/04/26(Wed) 00:53:16

Re: リンク先へ上手く行けない / しゅん
> その新しく開いたページがランダムの場合、ページのタイトルが確定しないのですが、どうすればよいでしょうか?
状況により最適な方法は異なります。
もうちょっと具体的に回答してもらえないと、回答はつかないと思いますよ。


> また、上書き方法がよくわからないので、そちらも合わせてお教えいただけるとありがたいです。

IE2 = getactiveoleobj("InternetExplorer.Application", "新しく開いたページのタイトル")
と書くのではなく
IE = getactiveoleobj("InternetExplorer.Application", "新しく開いたページのタイトル")
と書く、という意味です。
IEという変数の中身が、元のページから新しいページになります。

No.3801 2017/04/26(Wed) 09:15:40

Re: リンク先へ上手く行けない / RAM
返答ありがとうございます。

具体的ですか…一日置にそのリンク先のページが変わる、という感じだと伝わるでしょうか?

No.3814 2017/04/28(Fri) 19:09:21

Re: リンク先へ上手く行けない / しゅん
残念ながら私には伝わりません。

どこのページなのか具体的に言った方が良いと思いますが、、、それでも実際にあなたがやりたいことを具体的に表現しているとは限らなかったりもします。
難しいですね。

No.3821 2017/05/01(Mon) 08:53:08

Re: リンク先へ上手く行けない / RAM
説明不足で申し訳ありません。

IE2で新しく開いたタイトル(リンク先)がランダムの場合。
IE = getactiveoleobj("InternetExplorer.Application", "新しく開いたページのタイトル")

この式の「新しく開いたページのタイトル」が確定しない場合。

この場合はどうすればよいでしょうか?


このような文だと伝わるでしょうか?

No.3843 2017/05/02(Tue) 22:32:30
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


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


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