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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0619
IEのURLが変わらない7解決


リンク

2011/6/19(Sun) 14:20:42|NO.39728

IEのページが変わってもURLが変わらないので誰か助けてください。
現時点のスクリプトを全部貼ります

#uselib "gdi32.dll" #cfunc CreateDC "CreateDCA" sptr,sptr,sptr,int #func DeleteDC "DeleteDC" int #func BitBlt "BitBlt" int,int,int,int,int,int,int,int,int #define NULL 0 #define SRCCOPY 0x00CC0020 #define CAPTUREBLT 0x40000000 #include "obj.as" #uselib "user32" #func MoveWindow "MoveWindow" int,int,int,int,int,int #func SetWindowLongA "SetWindowLongA" int, int, int #cfunc GetWindowLongA "GetWindowLongA" int, int #usecom IOleInPlaceActiveObject "{00000117-0000-0000-C000-000000000046}" #comfunc IOIPAO_TranslateAccelerator 5 int #module #uselib "user32" #func GetClientRect "GetClientRect" int, int #func SetWindowLong "SetWindowLongA" int, int, int #func SetParent "SetParent" int, int #uselib "gdi32" #cfunc GetStockObject "GetStockObject" int #deffunc CreateTab int p1, int p2, int p3, int p4 winobj "systabcontrol32", "", , $52000000 | p4, p1, p2 hTab = objinfo(stat, 2) sendmsg hTab, $30, GetStockObject(17) TabID = p3 if TabID = 0 : TabID = 1 dim rect, 4 return hTab #deffunc InsertTab str p2 pszText = p2 : tcitem = 1, 0, 0, varptr(pszText) sendmsg hTab, $1307, TabItem, varptr(tcitem) GetClientRect hTab, varptr(rect) sendmsg hTab, $1328, , varptr(rect) bgscr TabID + TabItem, rect.2 - rect.0, rect.3 - rect.1, 2, rect.0, rect.1 SetWindowLong hwnd, -16, $40000000 SetParent hwnd, hTab TabItem++ return #global screen , ginfo(20),ginfo(21),,,,700,500 SetWindowLongA hwnd, -16, GetWindowLongA( hwnd, -16 ) | $10000 | $40000 syscolor 15 : boxf pos 0,0 CreateTab ginfo(20),ginfo(21), 1 hTabControl = stat title"CUBE Browser" FileName = "add.ini" ; ファイル名 exist FileName : if (strsize = -1) { ; FileNameを検索 notesel BUF noteadd ADD,0,1 ; 0行目にSETの内容を追加 notesave FileName ; FileNameとして保存 noteunsel } notesel BUF noteload FileName noteget add,0 noteunsel InsertTab "" tab_a=""+add objsize 30,20 pos 0,0:button "←",*go_b pos 30,0:button "→",*go_f objsize 60,20 pos 120,0:button "Home",*go_home pos 60,0:button "Refresh",*go_rel pos 400,0:button"Move",*navigate pos 460,0:button"Captcha",*Captcha pos 520,0:button"Setting",*Setting pos 0,24 axobj iean,"Shell.Explorer.2",ginfo_winx,ginfo_winy-24 ieean=stat iean->"Navigate" tab_a repeat if iean("Busy") = 0 : break wait 10 loop // URL取得 pos 200,0 sdim url,1000 doc = iean("Document") url = doc("URL") input url, 200, 22 querycom ioipao, iean, IOleInPlaceActiveObject gsel :MoveWindow hTabControl, 0, 0, ginfo(12), ginfo(13), 1 gsel 1, 1 gsel oncmd gosub *wm_size,$05 onkey gosub *key *onloadfin stop *key if(wparam = 0x08)|(wparam = 0x21)|(wparam = 0x22)|((wparam >= 0x25)&(wparam <= 0x28)){return} MSG = 0,$100,wparam,lparam,0,0,0 IOIPAO_TranslateAccelerator ioipao, varptr(MSG) return *wm_size gsel MoveWindow hTabControl, 0, 0, ginfo(12), ginfo(13), 1 prms = ginfo(12),ginfo(13),0,0 gsel 0:gx=ginfo(12):gy=ginfo(13):gsel 1 MoveWindow objinfo(ieean,2), 0, 24, gx-5, gy-24-24, 1 return *go_home iean->"Navigate" tab_a:goto *onloadfin *go_f iean->"GoForward":goto *onloadfin *go_b iean->"GoBack":goto *onloadfin *go_rel iean->"Refresh2" 3:goto *onloadfin *OnClose gsel 0,-1 delcom iean end *navigate if url = "" :goto *onloadfin ; ページ移動 iean->"Navigate" url goto *onloadfin *Setting screen 2,300,400,8,200,400 pos 20,0:mes"HP URL" pos 20,20:input add, 200, 22 pos 235,375:button"Save",*secret stop *secret notesel BUF noteadd ADD,0,1 ; 0行目にSETの内容を追加 notesave FileName ; FileNameとして保存 noteunsel gsel 2,-1 stop *Captcha ; デスクトップ画面のサイズでバッファ画面を作成 sx = ginfo_dispx : sy = ginfo_dispy buffer 2, sx, sy ; デスクトップ画面のデバイスコンテキスト取得 hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL) ; デスクトップ画面の画像をコピー BitBlt hdc, 0, 0, sx, sy, hdcScreen, 0, 0, SRCCOPY | CAPTUREBLT ; デバイスコンテキスト削除 DeleteDC hdcScreen ; ビットマップファイルとして保存 gsel 0, 1 : dialog "bmp", 17 if stat { gsel 2 : bmpsave refstr } gsel 2,-1 stop
add.iniファイルはHPのアドレスが書かれています。
さまざまなものを取り込んでいるので凄くぐちゃぐちゃです。
指摘、アドバイス、とりあえず何処をどうすべきか等教えてください。
できれば不要な部分を指摘などしていただけると嬉しいです。
個人的URLさえ変わってくれればいいので。



この記事に返信する


とおりすがり

リンク

2011/6/19(Sun) 15:18:21|NO.39732

わあ見にくい。
凄くぐちゃぐちゃだと分かってるならまず見やすく整理してみてください。
別に煽りとかじゃなく、見やすく整理するだけで原因が解るということも多いです。



リンク

2011/6/19(Sun) 15:53:43|NO.39734

結構みやすくなったかな;

#uselib "gdi32.dll" #cfunc CreateDC "CreateDCA" sptr,sptr,sptr,int #func DeleteDC "DeleteDC" int #func BitBlt "BitBlt" int,int,int,int,int,int,int,int,int #define NULL 0 #define SRCCOPY 0x00CC0020 #define CAPTUREBLT 0x40000000 #include "obj.as" #uselib "user32" #func MoveWindow "MoveWindow" int,int,int,int,int,int #func SetWindowLongA "SetWindowLongA" int, int, int #cfunc GetWindowLongA "GetWindowLongA" int, int #usecom IOleInPlaceActiveObject "{00000117-0000-0000-C000-000000000046}" #comfunc IOIPAO_TranslateAccelerator 5 int #module #uselib "user32" #func GetClientRect "GetClientRect" int, int #func SetWindowLong "SetWindowLongA" int, int, int #func SetParent "SetParent" int, int #uselib "gdi32" #cfunc GetStockObject "GetStockObject" int #deffunc CreateTab int p1, int p2, int p3, int p4 winobj "systabcontrol32", "", , $52000000 | p4, p1, p2 hTab = objinfo(stat, 2) sendmsg hTab, $30, GetStockObject(17) TabID = p3 if TabID = 0 : TabID = 1 dim rect, 4 return hTab #deffunc InsertTab str p2 pszText = p2 : tcitem = 1, 0, 0, varptr(pszText) sendmsg hTab, $1307, TabItem, varptr(tcitem) GetClientRect hTab, varptr(rect) sendmsg hTab, $1328, , varptr(rect) bgscr TabID + TabItem, rect.2 - rect.0, rect.3 - rect.1, 2, rect.0, rect.1 SetWindowLong hwnd, -16, $40000000 SetParent hwnd, hTab TabItem++ return #global screen , ginfo(20),ginfo(21),,,,700,500 SetWindowLongA hwnd, -16, GetWindowLongA( hwnd, -16 ) | $10000 | $40000 syscolor 15 : boxf pos 0,0 CreateTab ginfo(20),ginfo(21), 1 hTabControl = stat title"CUBE Browser" FileName = "add.ini" ; ファイル名 exist FileName : if (strsize = -1) { ; FileNameを検索 notesel BUF noteadd ADD,0,1 ; 0行目にSETの内容を追加 notesave FileName ; FileNameとして保存 noteunsel } notesel BUF noteload FileName noteget add,0 noteunsel InsertTab "" tab_a=""+add objsize 30,20 pos 0,0:button "←",*go_b pos 30,0:button "→",*go_f objsize 60,20 pos 120,0:button "Home",*go_home pos 60,0:button "Refresh",*go_rel pos 400,0:button"Move",*navigate pos 460,0:button"Captcha",*Captcha pos 520,0:button"Setting",*Setting pos 0,24 axobj iean,"Shell.Explorer.2",ginfo_winx,ginfo_winy-24 ieean=stat iean->"Navigate" tab_a repeat if iean("Busy") = 0 : break wait 10 loop // URL取得 pos 200,0 sdim url,1000 doc = iean("Document") url = doc("URL") input url, 200, 22 querycom ioipao, iean, IOleInPlaceActiveObject gsel :MoveWindow hTabControl, 0, 0, ginfo(12), ginfo(13), 1 gsel 1, 1 gsel oncmd gosub *wm_size,$05 onkey gosub *key *onloadfin stop *key if(wparam = 0x08)|(wparam = 0x21)|(wparam = 0x22)|((wparam >= 0x25)&(wparam <= 0x28)){return} MSG = 0,$100,wparam,lparam,0,0,0 IOIPAO_TranslateAccelerator ioipao, varptr(MSG) return *wm_size gsel MoveWindow hTabControl, 0, 0, ginfo(12), ginfo(13), 1 prms = ginfo(12),ginfo(13),0,0 gsel 0:gx=ginfo(12):gy=ginfo(13):gsel 1 MoveWindow objinfo(ieean,2), 0, 24, gx-5, gy-24-24, 1 return *go_home iean->"Navigate" tab_a:goto *onloadfin *go_f iean->"GoForward":goto *onloadfin *go_b iean->"GoBack":goto *onloadfin *go_rel iean->"Refresh2" 3:goto *onloadfin *OnClose gsel 0,-1 delcom iean end *navigate if url = "" :goto *onloadfin ; ページ移動 iean->"Navigate" url goto *onloadfin *Setting screen 2,300,400,8,200,400 pos 20,0:mes"HP URL" pos 20,20:input add, 200, 22 pos 235,375:button"Save",*secret stop *secret notesel BUF noteadd ADD,0,1 ; 0行目にSETの内容を追加 notesave FileName ; FileNameとして保存 noteunsel gsel 2,-1 stop *Captcha ; デスクトップ画面のサイズでバッファ画面を作成 sx = ginfo_dispx : sy = ginfo_dispy buffer 2, sx, sy ; デスクトップ画面のデバイスコンテキスト取得 hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL) ; デスクトップ画面の画像をコピー BitBlt hdc, 0, 0, sx, sy, hdcScreen, 0, 0, SRCCOPY | CAPTUREBLT ; デバイスコンテキスト削除 DeleteDC hdcScreen ; ビットマップファイルとして保存 gsel 0, 1 : dialog "bmp", 17 if stat { gsel 2 : bmpsave refstr } gsel 2,-1 stop



ORZ

リンク

2011/6/19(Sun) 16:04:12|NO.39735

いんでんと
こめんと
かいぎょう



木村

リンク

2011/6/19(Sun) 20:44:58|NO.39746


/*モジュール内の変数*/ ;―――――――――――――――――――――――――――――――――――― ; hTab : クラス名sytabcontrol32のウィンドウのハンドル番号 ; TabID : 不明 ; rect : GetClientRect命令の結果を受け取る為の変数 ; pszText : InsertTab命令の引数p2にポインタを与える為の変数 ; tcitem : ウィンドウメッセージ$1307に与えるiparam値のポインタ? ; TabItem : ウィンドウメッセージ$1307に与えるwparam値 ;   ※rect,pszText,tcitemはInserTab命令のローカル変数でもよさそう ;   ※ウィンドウメッセージ$1307と$1328、ついでに$05って何ですか? ;―――――――――――――――――――――――――――――――――――― /*グローバル領域の変数*/ ;―――――――――――――――――――――――――――――――――――― ; hTabControl : CreateTab命令で作った物のハンドル番号 ; FileName : "add.ini"って何だろう? ; BUF : "add.ini"の内容(メモリーノートパット命令用) ; ADD(add) : BUFから取得した1行、乃至BUFに編入する1行 ; tab_a : 不明、ラベル*go_homeで使用されている ; iean : クラス名Shell.Explorer.2のCOMオブジェクト型変数 ; ieean : ieanのオブジェクトID ; doc : =iean("Document") ; url : =doc("URL") ; ioipao : IOIPAO_TranslateAccelerator命令に渡す引数 ; MSG : IOIPAO_TranslateAccelerator命令に渡す引数 ; prms : 代入されているだけの変数、無くて良いんじゃないのかな ; gx,gy : ウィンドウID0番のクライアント領域サイズ ; sx,sy : ディスプレイの解像度 ; hdcScreen : 不明 ;   ※COMオブジェクトは全く分からないのでこれが限界、ごめんなさい ;――――――――――――――――――――――――――――――――――――
 とりあえず、モジュール内の6変数について意味合いを分析してみました。他の方の参考になれば幸いです。
 後、少し怖い点が一つ。

/*スクリプトの一部抽出*/ pos 20,20:input add, 200, 22 //ここでは[add] pos 235,375:button"Save",*secret stop *secret notesel BUF noteadd ADD,0,1 ; 0行目にSETの内容を追加 //ここでは[ADD]
 念の為確認したいのですが、[add]と[ADD]は同じ変数として扱っていますか?HSPは原則として大文字と小文字を区別しないので、もし[add]と[ADD]を別変数のつもりで扱っているのであればエラーの原因になり得ます。



リンク

2011/6/20(Mon) 15:53:06|NO.39765

・addとADDは一緒です。
・add.iniはホームページアドレスです。
・tab_aはタブです複数ありましたが不具合で消しました。(デザインが良いので残しています)



とおりすがり

リンク

2011/6/20(Mon) 20:07:32|NO.39770

inputボックスの内容を変更するには objprm を使用します。
objprm にはオブジェクトidを与える必要があるので、input ボックスを作成時にidを取得しておいてください。


input url, 200, 22 inputid = stat

input ボックスの内容を変更するのは簡単です。
まず、IEのページが変わる際に、新しいページのアドレスを取得してください。
そのあとはこんな感じです。


url = "http://あたらしいページのアドレス" objprm inputid, url

IEコンポーネントが表示しているページのアドレスを取得する方法は、たぶんご自分で見つけられると思います。



リンク

2011/6/23(Thu) 13:55:36|NO.39820

できました!!皆さんありがとうございました。



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