HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
1217
ゆとりhtml内をリアルタイム監視したい10解決


ゆとり

リンク

2013/12/17(Tue) 19:42:15|NO.58784


#uselib "user32.dll" #func WindowFromPoint "WindowFromPoint" sptr,sptr #func GetClassName "GetClassNameA" int,var,int #cfunc RegisterWindowMessage "RegisterWindowMessageA" sptr #func SendMessageTimeout "SendMessageTimeoutA" int,int,int,int,int,int,int #uselib "oleacc.dll" #uselib "oleacc.dll" #func ObjectFromLresult "ObjectFromLresult" int,int,int,int #uselib "OLE32.DLL" #func CLSIDFromString "CLSIDFromString" wstr,int #define IID_IHTMLDocument "{626FC520-A41E-11CF-A731-00A0C9082637}" dim tGUID,4 sdim szName, 256 input szName,300,20 repeat WindowFromPoint ginfo_mx,ginfo_my : hw=stat GetClassName hw,szName, 256 if szName="Internet Explorer_Server"{break} wait 10 loop ms = RegisterWindowMessage ("WM_HTML_GETOBJECT") #define SMTO_ABORTIFHUNG $00000002 SendMessageTimeOut hw,ms,0,0,SMTO_ABORTIFHUNG,1000,varptr(lRes) CLSIDFromString IID_IHTMLDocument,varptr(tGUID) newcom pDoc ObjectFromLresult lRes,varptr(tGUID),0,varptr(pDoc) a = pDoc("getElementById","get") b = a("getElementsByTagName", "input") c = b("item", 0) objprm 0, c("value") delcom c delcom b delcom a delcom pDoc
これは
>http://15qm.com/?act=sevin&inm=di
このサイトを開いてからexeを起動し、マウスをそのIEに合わせると
このサイトにあるinput内の文字がexeに表示されると言う感じです。

ただ、このサイトを開かないとexeを開いてもエラー起きてしまいます
a = pDoc("getElementById","get")

こいつがあるかないかを監視し、無ければ何もしない。 あれば取得。 という風にしたいのですが、可能でしょうか?



この記事に返信する


tula

リンク

2013/12/17(Tue) 21:02:56|NO.58787

varuseで調べれられたと思います。



ゆとり

リンク

2013/12/17(Tue) 21:51:55|NO.58789

if (varuse(pDoc)=0){
goto *aa }
で試してみたのですが、やはりページ移動するとエラー起こしてしまいます><
何か方法があるんですかね・・



tula

リンク

2013/12/17(Tue) 22:28:00|NO.58791


a = pDoc("getElementById","get") if varuse(a)==0:〜



ゆとり

リンク

2013/12/17(Tue) 22:42:35|NO.58792

やはりそれでもエラーしますね。。。

不可能・・なのかなw



tula

リンク

2013/12/18(Wed) 03:56:12|NO.58794

単にあなたが根本的に理解していないだけのような気がします。
以下で一応動作すると思います。
本当はタイトルやURLを調べて対象サイトかどうかをチェックしたり
読み込みが完了しているかのチェックもしないとだめですが。

#uselib "user32.dll" #func WindowFromPoint "WindowFromPoint" sptr,sptr #func GetClassName "GetClassNameA" int,var,int #cfunc RegisterWindowMessage "RegisterWindowMessageA" sptr #func SendMessageTimeout "SendMessageTimeoutA" int,int,int,int,int,int,int #uselib "oleacc.dll" #uselib "oleacc.dll" #func ObjectFromLresult "ObjectFromLresult" int,int,int,int #uselib "OLE32.DLL" #func CLSIDFromString "CLSIDFromString" wstr,int #define IID_IHTMLDocument "{626FC520-A41E-11CF-A731-00A0C9082637}" dim tGUID,4 sdim szName, 256 input szName,300,20 *@ repeat wait 10 WindowFromPoint ginfo_mx,ginfo_my : hw=stat GetClassName hw,szName, 256 if szName="Internet Explorer_Server"{break} loop ms = RegisterWindowMessage ("WM_HTML_GETOBJECT") #define SMTO_ABORTIFHUNG $00000002 SendMessageTimeOut hw,ms,0,0,SMTO_ABORTIFHUNG,1000,varptr(lRes) CLSIDFromString IID_IHTMLDocument,varptr(tGUID) newcom pDoc ObjectFromLresult lRes,varptr(tGUID),0,varptr(pDoc) a = pDoc("getElementById","get") if varuse(a)==0:goto *@b b = a("getElementsByTagName", "input") c = b("item", 0) objprm 0, c("value") delcom c delcom b delcom a delcom pDoc



ゆとり

リンク

2013/12/18(Wed) 20:30:01|NO.58798

ご返答ありがとうございます。
#uselib "user32.dll"
#func WindowFromPoint "WindowFromPoint" sptr,sptr #func GetClassName "GetClassNameA" int,var,int #cfunc RegisterWindowMessage "RegisterWindowMessageA" sptr #func SendMessageTimeout "SendMessageTimeoutA" int,int,int,int,int,int,int #uselib "oleacc.dll" #uselib "oleacc.dll" #func ObjectFromLresult "ObjectFromLresult" int,int,int,int #uselib "OLE32.DLL" #func CLSIDFromString "CLSIDFromString" wstr,int #define IID_IHTMLDocument "{626FC520-A41E-11CF-A731-00A0C9082637}" dim tGUID,4 sdim szName, 256 input szName,300,20 *aaaa repeat wait 10 WindowFromPoint ginfo_mx,ginfo_my : hw=stat GetClassName hw,szName, 256 if szName="Internet Explorer_Server"{break} loop ms = RegisterWindowMessage ("WM_HTML_GETOBJECT") #define SMTO_ABORTIFHUNG $00000002 SendMessageTimeOut hw,ms,0,0,SMTO_ABORTIFHUNG,1000,varptr(lRes) CLSIDFromString IID_IHTMLDocument,varptr(tGUID) newcom pDoc ObjectFromLresult lRes,varptr(tGUID),0,varptr(pDoc) a = pDoc("getElementById","get") if varuse(a)==0:goto *aaaa b = a("getElementsByTagName", "input") c = b("item", 0) objprm 0, c("value") delcom c delcom b delcom a delcom pDoc goto *aaaa

上記のソースを利用させてもらったところ 
私にはやはり ”変数の変換に失敗しました。”
とでてしまいます・・
a = pDoc("getElementById","get")
ちょうどこの部分ですね。。

なぜでしょう。。
無知で申し訳ないです。。



tula

リンク

2013/12/18(Wed) 21:59:21|NO.58799

エラーが出る状況はどういうときですか。



ゆとり

リンク

2013/12/18(Wed) 22:42:38|NO.58800

ほかのページでexeを起動し、マウスをIEに合したときですねw



tula

リンク

2013/12/18(Wed) 22:56:26|NO.58801

IEのバージョンにより動作が違うのかも。
これでどうでしょうか。

#uselib "user32.dll" #func WindowFromPoint "WindowFromPoint" sptr,sptr #func GetClassName "GetClassNameA" int,var,int #cfunc RegisterWindowMessage "RegisterWindowMessageA" sptr #func SendMessageTimeout "SendMessageTimeoutA" int,int,int,int,int,int,int #uselib "oleacc.dll" #uselib "oleacc.dll" #func ObjectFromLresult "ObjectFromLresult" int,int,int,int #uselib "OLE32.DLL" #func CLSIDFromString "CLSIDFromString" wstr,int #define IID_IHTMLDocument "{626FC520-A41E-11CF-A731-00A0C9082637}" dim tGUID,4 sdim szName, 256 input szName,300,20 *@ repeat wait 10 WindowFromPoint ginfo_mx,ginfo_my : hw=stat GetClassName hw,szName, 256 if szName="Internet Explorer_Server"{break} loop ms = RegisterWindowMessage ("WM_HTML_GETOBJECT") #define SMTO_ABORTIFHUNG $00000002 SendMessageTimeOut hw,ms,0,0,SMTO_ABORTIFHUNG,1000,varptr(lRes) CLSIDFromString IID_IHTMLDocument,varptr(tGUID) newcom pDoc ObjectFromLresult lRes,varptr(tGUID),0,varptr(pDoc) if pDoc("title")!="クイックメール(メール確認)":goto *@b if pDoc("ReadyState")!="complete" :goto *@b a = pDoc("getElementById","get") if varuse(a)==0:goto *@b b = a("getElementsByTagName", "input") c = b("item", 0) objprm 0, c("value") delcom c delcom b delcom a delcom pDoc



ゆとり

リンク

2013/12/18(Wed) 23:14:20|NO.58802

確かにこのソースだといけましたw
やっぱり、タイトルやらの取得をしないといけないんですねw

とりあえずは解決です!
またわからないことがあれば尋近々尋ねることがあるとおもいますw



ONION software Copyright 1997-2018(c) All rights reserved.