|
|
|
2021/9/24(Fri) 20:34:33|NO.93959
http://hsp.tv/play/pforum.php?mode=pastwch&num=30722 から
#include "hspext.as"
#define DIID_DWebBrowserEvents2 "{34A715A0-6587-11D0-924A-0020AFC7AC4D}"
#define DISPID_BEFORENAVIGATE2 250
#define DISPID_NEWWINDOW2 251
#define DISPID_NEWWINDOW3 273
axobj ie,"Shell.Explorer.2",640,480
comevent ie_event, ie, DIID_DWebBrowserEvents2,*event
url=" https://www.nicovideo.jp/watch/sm2057168"
ie->"Navigate" url,,,,""
stop
*event
; COMイベント処理
dispid = comevdisp(ie_event)
;if dispid = DISPID_NEWWINDOW2 : gosub *OnNewWindow2
if dispid = DISPID_NEWWINDOW3 : gosub *OnNewWindow3
;if dispid = DISPID_BEFORENAVIGATE2 : gosub *OnBeforeNavigate
return
*OnNewWindow3
comevarg Cancel, ie_event, 1, 2
comevarg _Url ,ie_event, 4 , 2
// 新しく開く先のURLをゲット
ptr=_Url("bstrptr")
dupptr newurl,ptr,512,2
url=cnvwtos(newurl)
delcom _Url
// ナビゲートキャンセル
Cancel("val") = 1
delcom Cancel
// ここから既定のブラウザを検出して開く
regkey 3,"http\\shell\\open\\command",0
if stat!=0:dialog "レジストリ読み取りエラー":return
sdim reg,256
getreg reg,"",1,256 //(既定)は""でOK
//以下ゴミとり
s=instr(reg,0,"\"")
if (s!=-1)&(s<2){// " があった場合。
e=instr(reg,s+1,"\"")
if e=-1:e=strlen(reg)
path=strmid(reg,s+1,e-s)
}else{
e=instr(reg,0," ")
path=strmid(reg,0,e)
}
exist path
if strsize=-1:dialog "取得失敗?":return
exec "\""+path+"\" "+url
return
これを使えばHSP内でブラウザを開けるのですが、
エラーが出てしまうのと、大きさが変更できません
| |
|
2021/9/25(Sat) 16:01:23|NO.93964
(再投稿)これでいいですかね...
画面の大きさを変更するのにはちょっと工夫が必要です...
画面の大きさ変更についてはこちらが参考になるかも...
http://hsp.tv/play/pforum.php?mode=pastwch&num=88715
#uselib "user32.dll"
// IEコンポーネントの設置 (by Kpan)
title "ブラウザ"
; IEコンポーネントの設置
axobj IE, "Shell.Explorer.2", ginfo(10)-8, ginfo(11)-30
a=""
screen 1,200,50
title "ブラウザ-URL指定"
input a,200,20
button "Enter",*navigate
gsel 0
stop
*navigate
url=a
; ページ移動
IE->"Navigate" url
|
|
2021/9/25(Sat) 16:01:49|NO.93965
|
|
2021/9/25(Sat) 16:04:20|NO.93966
でも、エラーは出るので、Yキー連打です。
|
|
2021/9/25(Sat) 17:46:24|NO.93967
GetWindowLongでウィンドウサイズ変更と最大化ができるようにし、
また、WM_SIZEを受け取った時に、ウィンドウサイズ変更に合わせて
ブラウザのサイズも変更するようにしました。
http://chokuto.ifdef.jp/urawaza/message/WM_SIZE.html
それから、こちら↓を参考に、
「IE("Silent") = 1」とすることでエラーが出ないようにしています。
http://hsp.tv/play/pforum.php?mode=pastwch&num=36672
#include "user32.as"
#include "hspext.as"
#define DIID_DWebBrowserEvents2 "{34A715A0-6587-11D0-924A-0020AFC7AC4D}"
#define DISPID_BEFORENAVIGATE2 250
#define DISPID_NEWWINDOW2 251
#define DISPID_NEWWINDOW3 273
//以下のパラメータを弄ればブラウザの表示位置を変更できます。
lm=0 //左マージン
um=0 //上マージン
rm=0 //右マージン
dm=0 //下マージン
screen 0,ginfo_dispx,ginfo_dispy,0,,,640,480
//ウィンドウをサイズ変更・最大化可能にする。
GetWindowLong hwnd,-16
SetWindowLong hwnd,-16,stat|0x40000|0x10000
w_red=lm+rm : h_red=um+dm
pos lm,um
axobj ie,"Shell.Explorer.2",limit(ginfo_winx-w_red,0),limit(ginfo_winy-h_red,0)
h_ax=objinfo(stat,2)
comevent ie_event, ie, DIID_DWebBrowserEvents2,*event
url="https://www.msn.com/ja-jp/"
IE("Silent") = 1 //参考:http://hsp.tv/play/pforum.php?mode=pastwch&num=36672
ie->"Navigate" url,,,,""
oncmd gosub *size,0x5 //WM_SIZE(ウィンドウサイズ変更時の割り込み)
stop
*size
if (wparam=0)|(wparam=2) {
winx=lparam&0xFFFF : winy=(lparam>>16)&0xFFFF
SetWindowPos h_ax,0,0,0,limit(winx-w_red,0),limit(winy-h_red),0x6 //ブラウザ部分のサイズを変更
}
return
*event
; COMイベント処理
dispid = comevdisp(ie_event)
;if dispid = DISPID_NEWWINDOW2 : gosub *OnNewWindow2
if dispid = DISPID_NEWWINDOW3 : gosub *OnNewWindow3
;if dispid = DISPID_BEFORENAVIGATE2 : gosub *OnBeforeNavigate
return
*OnNewWindow3
comevarg Cancel, ie_event, 1, 2
comevarg _Url ,ie_event, 4 , 2
// 新しく開く先のURLをゲット
ptr=_Url("bstrptr")
dupptr newurl,ptr,512,2
url=cnvwtos(newurl)
delcom _Url
// ナビゲートキャンセル
Cancel("val") = 1
delcom Cancel
// ここから既定のブラウザを検出して開く
regkey 3,"http\\shell\\open\\command",0
if stat!=0:dialog "レジストリ読み取りエラー":return
sdim reg,256
getreg reg,"",1,256 //(既定)は""でOK
//以下ゴミとり
s=instr(reg,0,"\"")
if (s!=-1)&(s<2){// " があった場合。
e=instr(reg,s+1,"\"")
if e=-1:e=strlen(reg)
path=strmid(reg,s+1,e-s)
}else{
e=instr(reg,0," ")
path=strmid(reg,0,e)
}
exist path
if strsize=-1:dialog "取得失敗?":return
exec "\""+path+"\" "+url
return
| |
|
2021/9/25(Sat) 23:42:31|NO.93972
2人ともありがとうございました。
感謝。
|
|