[ 掲示板に戻る ]

過去ログ閲覧モード

IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / nnn
サイトはこちらです。
https://trashmail.com/?lang=en

ログインボタンの要素はこちらです。
<button type="button" class="btn btn-primary" data-ng-click="logIn()">Sign in</button>

押したいのは「Address Manager」の「Sign in」です。

UWSCに付属のRecIEでログインボタンを押して動作を見てみましたが
IE.Navigate("https://trashmail.com/?lang=en&cmd=manager",0,"function constructor(){return this.constructor.apply(this,arguments)||null;}") // BUTTON: Sign in
と表示され、これをスクリプトに記載してもログインできませんでした。

画像認識でもよいと思ったのですが
IESETDATA、IELINKなどで直接操作する方法があれば教えてください。

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

No.2756 2016/08/15(Mon) 12:39:09

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / miles
// これでどうですか?
IESetData(IE, True, "TAG=BUTTON", "innerText=Sign in")

No.2757 2016/08/15(Mon) 22:12:46

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / nnn
miles様

ご回答ありがとうございます。
早速試してみたのですが、ログインボタンは押せないようでした。
他にもいろいろ試してみます。

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

No.2758 2016/08/15(Mon) 23:13:04

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / miles
// これではどうですか?
// ウインドウサイズにより入力画面(ログインボタン)が複数あるみたいです。
IESetData(IE, True, "TAG=BUTTON", "innerText=Sign in", 2)

// (案2) 入力画面が替わっても対応できそうです(直接操作していません)。
id = GETID("TrashMail - Disposable email addresses - Internet Explorer","IEFrame")
ClkItem(id, "Address Manager") // Address Managerをクリック
ClkItem(id, "Sign in")     // Sign inをクリック

No.2759 2016/08/16(Tue) 11:01:05

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / nnn
miles様

ご回答ありがとうございます。

早速教えていただいた2つの方法を試してみたのですが、ログインボタンは押せないようでした。
自分なりに考えて、ログインボタンの番号、CLKITEMの種別を変える以下の方法で試してみましたが
これもだめでした。
他にもいろいろ試してみます。
ありがとうございました。


id = GETID("TrashMail - Disposable email addresses - Internet Explorer","IEFrame")

CLKITEM(id, "Sign in")
CLKITEM(id, "Sign in", CLK_BTN )
CLKITEM(id, "Sign in", CLK_LIST )
CLKITEM(id, "Sign in", CLK_TAB )
CLKITEM(id, "Sign in", CLK_MENU )
CLKITEM(id, "Sign in", CLK_TREEVEW )
CLKITEM(id, "Sign in", CLK_LSTVEW )
CLKITEM(id, "Sign in", CLK_TOOLBAR )
CLKITEM(id, "Sign in", CLK_ACC )
IESetData(id, True, "TAG=BUTTON", "innerText=Sign in" )

for fn = 0 to 10
IESetData(IE, True, "TAG=BUTTON", "innerText=Sign in", fn )
ClkItem(id, "Sign in", true, fn )
CLKITEM(id, "Sign in", CLK_BTN,   true, fn )
CLKITEM(id, "Sign in", CLK_LIST,  true, fn )
CLKITEM(id, "Sign in", CLK_TAB,   true, fn )
CLKITEM(id, "Sign in", CLK_MENU,  true, fn )
CLKITEM(id, "Sign in", CLK_TREEVEW, true, fn )
CLKITEM(id, "Sign in", CLK_LSTVEW, true, fn )
CLKITEM(id, "Sign in", CLK_TOOLBAR, true, fn )
CLKITEM(id, "Sign in", CLK_ACC, true, fn )
next

No.2760 2016/08/16(Tue) 15:17:50

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / miles
(案2)では、
 ClkItem(id, "Address Manager")で「Address Manager」をクリックしてから
 ClkItem(id, "Sign in")で「Sign in」をクリックするのですが、
 「Address Manager」もクリックできないのですか?
 IE9でなく、IE11なので違うのかもしれません。

> <button type="button" class="btn btn-primary" data-ng-click="logIn()">Sign in</button>
(案3)
ie.document.querySelector("button[type=<#DBL>button<#DBL>][class=<#DBL>btn btn-primary<#DBL>][data-ng-click=<#DBL>logIn()<#DBL>]").click()

No.2762 2016/08/16(Tue) 16:20:37

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / nnn
miles様

https://trashmail.com/?lang=en」ですと、開いたときにすでに「Address Manager」が選択されているので、「https://trashmail.com」に変更して、教えていただいたスクリプトを実行したところ、「Address Manager」もクリックできませんでした。

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

No.2764 2016/08/16(Tue) 17:35:13

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / nnn
miles様

(案3)も試してみましたがクリックできませんでした。
miles様の環境では、今までの(案1)(案2)(案3)でクリックできたのでしょうか。
いろいろ案を考えていただき感謝いたします。

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

No.2767 2016/08/16(Tue) 17:52:47

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / miles
私の環境では、
https://trashmail.com/?lang=en」や「https://trashmail.com」でも「Quick」が選択されています。
(案1)(案2)(案3)でクリックできています。

(案1)(案2)(案3)の「Sign in」クリックで「Error! Login not registered or invalid password.」がでます。

うまくいかないときは、戻値も確認しています。
msgbox(ClkItem(id, "Address Manager"))  // TRUE(1):正常、 FALSE(0):処理不能 
msgbox(IESetData(IE, True, "TAG=BUTTON", "innerText=Sign in"))

(案4)
IE.document.forms[1].elements[4].click() // Sign inをクリック

No.2768 2016/08/16(Tue) 20:25:36

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / Nagatani
//Windows10 Explorer11 uwsc 5.2.2.0
//ごめんなさい。ユザー登録をしないで確認しました。
//環境によってはIESETDATAの8・9が変わるかもしれません。
//IE11ですが参考になれば・・・・・

/////////////////
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True

IE.Navigate("https://trashmail.com/?lang=en&cmd=manager")
BusyWait(ie)
SLEEP(2)

IESETDATA(IE,"USER_NAME","","",8)
SLEEP(2)

IESETDATA(IE,"PassWord","","",9)
SLEEP(2)
IESETDATA(IE,True,"","Sign in")


DEF_DLL SendMessageA(Hwnd, Long, Long, Dword): bool: user32
CONST WM_ACTIVATE = $06
Procedure BusyWait(ie)   // 更新待ち処理
 repeat
  Sleep(0.2)
 until (! ie.busy) and (ie.readyState=4)
 SendMessageA(ie.Hwnd, WM_ACTIVATE, 0, 0) // 更新直後に WM_ACTIVATEを送る事によりバックグランドでも操作可となる
Fend

No.2770 2016/08/17(Wed) 16:58:21

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / nnn
miles様

ご回答ありがとうございます。

>(案4)
>IE.document.forms[1].elements[4].click() // Sign inをクリック


こちらを試させていただきましたがログインボタンは押せませんでした。

>msgbox(ClkItem(id, "Address Manager"))  // TRUE(1):正常、 FALSE(0):処理不能 
>msgbox(IESetData(IE, True, "TAG=BUTTON", "innerText=Sign in"))


こちらで戻り値を確認しましたが、どちらも「0」となりました。

何度も答えていただき申し訳ございません。
よろしくお願いいたします。

No.2773 2016/08/17(Wed) 20:21:25

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / nnn
Nagatani様

ご回答ありがとうございます。

教えていただいた内容を試させていただきましたが、ログインボタンは押せませんでした。
USER_NAME、PassWordも入力できませんでした。

せっかく教えていただいたのに申し訳ございません。
ありがとうございました。

No.2774 2016/08/17(Wed) 20:28:12

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / リキュール
ログインボタンは以下で押せませんか?
IESetData(IE,True,"","innerText=Sign in",2) // BUTTON

No.2775 2016/08/17(Wed) 21:39:04

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / nnn
リキュール様

ご回答ありがとうございます。

>IESetData(IE,True,"","innerText=Sign in",2) // BUTTON

こちらでもログインボタンは押せませんでした。

せっかく教えていただいたのに申し訳ございません。
ありがとうございました。

No.2779 2016/08/18(Thu) 08:24:32

Re: IE9で開いたこちらのサイトのログインボタンをUWSCのスクリプトで押す方法を教えてください。 / nnn
ログインをせずに操作をする方法にいたしました。

今まで長い間ご回答いただいた方々ありがとうございました。

今後もよろしくお願いいたします。

No.2786 2016/08/20(Sat) 20:27:05
ワードプレスの本文にダイレクトにアクセスする方法 / シスイ
ワードプレスで記事を書く事がよくあるのですが、ワードプレスの本文にダイレクトにクリックして本文をすぐ書けるようにしたいのですが(スクリプト作成してショットカットキーでする予定)、なかなかうまくいきません。理由としては、本文のエリアの座標を取得してクリックはスクロールしている場所によって変わってきます。
下記のコードでweb記録して、下記までは判明しています。
何か良い方法はないでしょうか?

tesu = GETID(GET_ACTIVE_WIN)
title = STATUS(tesu, ST_TITLE) // タイトルを返す
IE = GETACTIVEOLEOBJ("InternetExplorer.Application",title)
IESetData(IE,"テキスト","content") // TEXTAREA 本文

No.2784 2016/08/19(Fri) 11:46:59
Range Check Error / SHINJIさん
以下のThread のところでRange Check Errorとなってしまいます


Thread IE_1(IE_homemate_explorer[1])

procedure IE_1(IE_homemate_explorer[1])
repeat
IE_homemate_explorer[1].Navigate("http://kinder.a-lot.jp/")
Busywait4(IE_homemate_explorer[1])
sleep(0.3)
if IE_homemate_explorer[1].document.url = "http://kinder.a-lot.jp/" then break
until false
fend

No.2778 2016/08/18(Thu) 08:20:55

Re: Range Check Error / しろまさ
procedure 以降の [1] を全て削除。
それと、Thread発行の後に待機処理がないとすぐに終了してしまうのはご存知?

No.2780 2016/08/18(Thu) 08:57:00

Re: Range Check Error / SHINJIさん
待機処理って何ですか(*'▽')??
No.2781 2016/08/18(Thu) 10:02:48

Re: Range Check Error / SHINJIさん
thread は難しそうなので今回は使わないことにしました。回答ありがとうございます。
No.2782 2016/08/18(Thu) 13:57:35
グローバルIPアドレスを取得したいのですが / たっち
表題の通りなのですが、宜しくお願い致します。
プライベートIPアドレスは取得できるですが、グローバルIPアドレスを取得するにはどのようにすれば良いのでしょうか?
宜しくお願い致します。

No.2776 2016/08/17(Wed) 22:36:47

Re: グローバルIPアドレスを取得したいのですが / リキュール
UWSCとは関係ありませんが、以下のURLで表示できます。
http://www.smiyasaka.com/grobalip.html
http://www.arearesearch.co.jp/learn/program/04.html
また、ルーターの設定画面からも取得できると思います。

No.2777 2016/08/17(Wed) 23:23:38
対応するselectがない / SHINJIさん
対応するselectが無い
〜行目: case slct_1

と出るのですがなぜでしょうか

function SLCT_week()

dim z[] = 0,0,0,0,0,0,0,0
SLCTBOX( SLCT_CHK, 0, "休園日を選んでください", "月","火","水","木","金","土","日","わからない")

CASE SLCT_1
z[0] = 1
CASE SLCT_2
z[1] = 1
CASE SLCT_3
z[2] = 1
CASE SLCT_4
z[3] = 1
CASE SLCT_5
z[4] = 1
CASE SLCT_6
z[5] = 1
CASE SLCT_7
z[6] = 1
CASE SLCT_8
z[7] = 1
SELEND
result = slice(z, 0, 7)
fend

No.2771 2016/08/17(Wed) 18:22:03

Re: 対応するselectがない / SHINJIさん
説明書のサンプルをみて、解決できました。
No.2772 2016/08/17(Wed) 18:34:50
HTMLソースを配列で処理 / ラム酒
テキストファイルにHTMLソースが記載されています。
これをHTMLファイルに書き換え、ブラウザ上の値(ソースではない)を全てクリップボードにコピーしたいと考えています。

上記の動作をhtmlファイルを新たに作らずに配列のようなもので処理する事は可能なのでしょうか。

No.2763 2016/08/16(Tue) 16:55:37

Re: HTMLソースを配列で処理 / stuncloud
htmlfileでいいのでは
IEをabout:blankで開いてdocument.writeしてもいいと思います

以下はhtmlfileの例です

fid = fopen("HTMLの書かれたテキストファイル.txt", F_READ)
html = fget(fid, F_ALLTEXT)
fclose(fid)

document = createoleobj("htmlfile")
document.write(html)

msgbox(document.body.innerText)

No.2766 2016/08/16(Tue) 17:48:00
ウィンドウAPIをuws用に変換するルール / 高知 森田
DEF_DLL SwapMouseButton(bSwap): Long: user32.DLL

Sub 左マウス用()

Dim Ret As Long
Ret = SwapMouseButton(True)

End Sub
うまく反応しましたが、基本的なルールを教えてください。

No.2761 2016/08/16(Tue) 15:32:23

Re: ウィンドウAPIをuws用に変換するルール / stuncloud
ヘルプより
>DEF_DLL 関数名(型, 型, ...): 戻り型: DLL名
> 型: int、long、bool、uint、hwnd、string、Wstring、float、double、word、dword、byte、char、pchar、Wchar、pWchar、boolean、longlong、Extended、SafeArray


> DEF_DLL SwapMouseButton(bSwap): Long: user32.DLL
()の中は変数名ではなくて、変数の型を書きます

def_dll SwapMouseButton(bool):bool:user32.dll

if SwapMouseButton(TRUE) then
 msgbox("マウスボタンを反転しました")
else
 msgbox("マウスボタンを反転出来ませんでした")
endif

こんな感じですね
戻り型もboolで良いようです
https://msdn.microsoft.com/ja-jp/library/cc411214.aspx

No.2765 2016/08/16(Tue) 17:39:33
IE11にて画面更新後のCOM操作について / ma
ヘルプにて
IE11にて画面更新後に操作(COM)ができない  #N45
  IE11 では一度アクティブ状態にする必要があります。
  ので画面更新の後に IEに対して WM_ACTIVATE を送り操作可能にします。
とあるのですがコードをそのまま使ってもその後のCOM操作にはいたりませんでした。

環境はUWSC522 Win10 IE11 です。

皆さんどのように対処されてますか、
新たに更新画面を捕えなおす方法などもあれば教えていただきたいです。

環境上 IEの互換表示やエンタープライズモードなど使用できません。

No.2754 2016/08/14(Sun) 23:43:18

Re: IE11にて画面更新後のCOM操作について / stuncloud
> COM操作にはいたりませんでした。
がどういう状況なのかわからないとなんとも言えません
なにがどうできないのか具体的にお願いします
(出来れば現象が再現できる最小のコードの提示があると良いです)

関係あるかわかりませんがnavigate()後にie.documentにアクセス出来ない場合があるのでそういう時はgetactiveoleobjし直しますね

try
 ie.document
except
 ie = getactiveoleobj("InternetExplorer.Application")
endtry

No.2755 2016/08/15(Mon) 09:44:02
メモ帳開いているか判定して、バックグラウンドで貼付けする方法 / タカハシ
メモ帳の開いているか判定して、開いている時は、メモ帳に貼付けを、開いていない時は、メモ帳を開いて貼付けという処理をしたいのですができません。どこが間違っているのでしょうか?


[コード]

id = GETID("メモ帳")

Ifb id =1 then 
// メモ帳にabc
MOUSEORG(GETCTLHND(id,"edit"), 2)
tes = GETSTR(0)
SENDSTR(id,tes)

Else id = -1 then
id = EXEC("NOTEPAD")
// メモ帳にabc
id = GETID("メモ帳")
MOUSEORG(GETCTLHND(id,"edit"), 2)
tes = GETSTR(0)
SENDSTR(id,tes)

endif

No.2749 2016/08/14(Sun) 11:05:51

Re: メモ帳開いているか判定して、バックグラウンドで貼付けする方法 / miles
id = GETID("メモ帳")

// Ifb id =1 then  <--- id が 1以外の場合もある
Ifb id <> -1 then
 // メモ帳にabc
 MOUSEORG(GETCTLHND(id,"edit"), 2)
 tes = GETSTR(0)
 SENDSTR(id,tes)

// Else id = -1 then <--- ここがエラー
//             (1)Elseの後に式(id=-1)は書けない
//             (2)または、Elseifにする
Else
 id = EXEC("NOTEPAD")
 // メモ帳にabc
 id = GETID("メモ帳")
 MOUSEORG(GETCTLHND(id,"edit"), 2)
 tes = GETSTR(0)
 SENDSTR(id,tes)

endif

// 下記のように重複部分を少なくした方がベターです。

id = GETID("メモ帳")

If id = -1 then id = EXEC("NOTEPAD")
// メモ帳にabc
MOUSEORG(GETCTLHND(id,"edit"), 2)
tes = GETSTR(0)
SENDSTR(id,tes)

No.2750 2016/08/14(Sun) 12:04:26

Re: メモ帳開いているか判定して、バックグラウンドで貼付けする方法 / タカハシ
miles様、ありがとうございます。無事したい処理ができました。基礎からもう一度勉強したいと思います。
No.2753 2016/08/14(Sun) 19:32:12
規則的な文字列の一部分を取得して加工する方法 / シスイ
すべて選択
テーブルの名前
最終変更者
最終変更日
1詳細を追加表示a会社名
集 | ショートコードを表示 | コピー | エクスポート | 削除 | プレビュー
詳細を追加表示a会社名tumiage1tumiage12016年8月9日
2詳細を追加表示b会社名
集 | ショートコードを表示 | コピー | エクスポート | 削除 | プレビュー
詳細を追加表示b会社名tumiage1tumiage12016年8月9日
3詳細を追加表示c会社名
集 | ショートコードを表示 | コピー | エクスポート | 削除 | プレビュー
詳細を追加表示c会社名 tumiage1tumiage12016年8月9日
詳細を追加表示人材ドラフトtumiage1tumiage12016年8月10日
すべて選択
テーブルの名前
最終変更者
最終変更日


上記の文字列を”1詳細を追加表示a会社名”の”1”と”a会社名”、”2詳細を追加表示b会社名”の”2”と”b会社名”、”3詳細を追加表示c会社名”の”3”と”c会社名”を取得して、[table id= /]に数字を入れる方法を考えているのですが、分かりませんお知恵をお貸し頂けないでしょうか?

下記のコードから、Pos、copy関数を使えばできそうな感じがするんですが、いまいちコードの組み立てが分かりません。

id = GETID(GET_ACTIVE_WIN)
SCKEY(id,VK_Ctrl,a,VK_Ctrl,c)
tes = GETSTR(0)


やりたい事が下記のように取り出したいです。
a会社名 [table id=1 /]
b会社名 [table id=2 /]
c会社名 [table id=3 /]

No.2745 2016/08/13(Sat) 21:56:17

Re: 規則的な文字列の一部分を取得して加工する方法 / Liners
TEXTBLOCK data
すべて選択
テーブルの名前
最終変更者
最終変更日
1詳細を追加表示a会社名
集 | ショートコードを表示 | コピー | エクスポート | 削除 | プレビュー
詳細を追加表示a会社名tumiage1tumiage12016年8月9日
2詳細を追加表示b会社名
集 | ショートコードを表示 | コピー | エクスポート | 削除 | プレビュー
詳細を追加表示b会社名tumiage1tumiage12016年8月9日
3詳細を追加表示c会社名
集 | ショートコードを表示 | コピー | エクスポート | 削除 | プレビュー
詳細を追加表示c会社名 tumiage1tumiage12016年8月9日
詳細を追加表示人材ドラフトtumiage1tumiage12016年8月10日
すべて選択
テーブルの名前
最終変更者
最終変更
ENDTEXTBLOCK

uni = "詳細を追加表示"
text = split(data, "<#cr>")

for i = 0 to length(text)-1
  str = text[i]
  if pos(uni, str) <=1 then continue
  s = split(replace(str, uni, " "))
  print s[1] + " [table id=" + s[0] + "/]"
next

sleep(10)

No.2746 2016/08/14(Sun) 01:30:07

Re: 規則的な文字列の一部分を取得して加工する方法 / シスイ
Liners様、すごい、感謝です。したい処理が一瞬でできました。ありがとうございました。
No.2747 2016/08/14(Sun) 06:08:30

Re: 規則的な文字列の一部分を取得して加工する方法 / シスイ
s = split(replace(str, uni, " "))のSの変数に入っているデータをエクセルにA1からA30に順次データを入力したいのですができません。
下記のコードでしても何も入力されません何が間違っているのでしょうか?


BTN(LEFT,CLICK,773, 362,100)
tesu = GETID(GET_ACTIVE_WIN)
title = STATUS(tesu, ST_TITLE) // タイトルを返す
IE = GETACTIVEOLEOBJ("InternetExplorer.Application",title)


tesu1 = SENDSTR(0, IE.document.body.innerTEXT)
tesu2 = GETSTR(0)

uni = "詳細を追加表示"
text = split(tesu2, "<#cr>")
PATH = "エクセルファイル.xlsx"
Excel = XLOPEN(PATH)
XLACTIVATE( Excel, "表データ完成")

for i = 0 to length(text)-1
  str = text[i]
  if pos(uni, str) <=1 then continue
  s = split(replace(str, uni, " "))
SLEEP(2.0)
XLSETDATA( Excel, s[1] + " [table id=" + s[0] + "/]", "A" + i, "表データ完成")

next

sleep(10)

No.2748 2016/08/14(Sun) 09:35:16

Re: 規則的な文字列の一部分を取得して加工する方法 / Liners
XLSETDATA( Excel, s[1] + " [table id=" + s[0] + "/]", "A" + i, , "表データ完成") // ,忘れ?[未検証]
No.2751 2016/08/14(Sun) 16:21:08

Re: 規則的な文字列の一部分を取得して加工する方法 / シスイ
Liners様 できました ,忘れでした何度も助けて頂きありがとうございました。
No.2752 2016/08/14(Sun) 19:30:45
全796件 [ ページ : << 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 80 >> ]