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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0924
HSP内でブラウザを5解決


リンク

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

成功するとこうなります
https://i.imgur.com/2XFFozz.png



ねんねこ

リンク

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人ともありがとうございました。
感謝。



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