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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0329
XOZブラウザ作成 Webページ保存偏3解決


XOZ

リンク

2007/3/29(Thu) 12:28:51|NO.6667


#define DIID_DWebBrowserEvents2 "{34A715A0-6587-11D0-924A-0020AFC7AC4D}" #define DISPID_COMMANDSTATECHANGE 105 #define DISPID_BEFORENAVIGATE2 250 #define DISPID_NAVIGATECOMPLETE2 252 #define DISPID_ONQUIT 253 #define DISPID_ONMENUBAR 256 #define DISPID_ONSTATUSBAR 257 #define DISPID_ONFULLSCREEN 258 #define DISPID_WINDOWSETLEFT 264 #define DISPID_WINDOWSETTOP 265 #define DISPID_WINDOWSETWIDTH 266 #define DISPID_WINDOWSETHEIGHT 267 #define DISPID_ONTHEATERMODE 260 cls 1 sdim url,512 url="http://www.google.co.jp/" ;ホームのアドレス objsize 600,24 pos 0,2:mes "URL:" pos 40,0:input url objsize 120,24 pos 520,24:button "移動",*wow pos 400,24:button "進む",*go_f pos 280,24:button "戻る",*go_b pos 160,24:button "このサイトを保存",*サイト保存 pos 0,48 axobj ie, "Shell.Explorer.2",640,480-48 num=stat comevent ie_event, ie, "{34A715A0-6587-11D0-924A-0020AFC7AC4D}",*event ; DIID_DWebBrowserEvents2 ie->"Navigate" url *main stop *event ; COMイベント処理 dispid = comevdisp(ie_event) if dispid = DISPID_BEFORENAVIGATE2 : gosub *OnBeforeNavigate if dispid = DISPID_NAVIGATECOMPLETE2 : gosub *OnNavigateComplete2 return *OnBeforeNavigate comevarg name,ie_event,1 objprm 0,name return *OnNavigateComplete2 pDoc = ie("Document") name = pDoc("Title") title name delcom pDoc return *wow ie->"Navigate" url goto *main *go_f ie->"GoForward" goto *main *go_b ie->"GoBack" goto *main *サイト保存 dialog "htm",17 #include "hspinet.as" netinit url=url files=refstr+".htm" neturl url netload files goto *wow stop
サンプルスプリクトにブラウザがあったのでまずはページ保存機能をつけることにしました。
一応作ってみたにですが、保存できなかったり、保存しても中身が変なことがあります。
どうすれば正常になるでしょうか



この記事に返信する


pizza

リンク

2007/3/30(Fri) 00:46:37|NO.6700

IPersistFileインターフェースのSaveメソッドで保存できるようです。



#define IID_IPersistFile "{0000010B-0000-0000-C000-000000000046}" #usecom IPersistFile IID_IPersistFile #comfunc IPersistFile_Save 6 int, int axobj ie, "Shell.Explorer.2" ie->"Navigate" "http://www.onionsoft.net/" repeat wait 1 if ie("Busy") == 0 : break loop dialog "", 17 if stat { sdim wPath, 260 // パスをunicodeに変換 cnvstow wPath, refstr pDoc = ie("Document") querycom pf, pDoc, IPersistFile // 保存 IPersistFile_Save pf, varptr(wPath), 0 delcom pf delcom pDoc } stop



XOZ

リンク

2007/3/30(Fri) 12:36:11|NO.6707

よく分かりませんが、確かに保存できてますね
ありがとうございました



pizza

リンク

2007/4/9(Mon) 23:53:03|NO.7217

時間が経っていますが、もっと簡単に出来たので。
(HSP側で文字列変換とインターフェースのクエリはやってくれました。)


#define IID_IPersistFile "{0000010B-0000-0000-C000-000000000046}" #usecom IPersistFile IID_IPersistFile #comfunc IPersistFile_Save 6 wstr, int axobj ie, "Shell.Explorer.2" ie->"Navigate" "http://www.onionsoft.net/" repeat wait 1 if ie("Busy") == 0 : break loop dialog "", 17 if stat { pDoc = ie("Document") IPersistFile_Save pDoc, refstr, 0 delcom pDoc } stop



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