#include "mod_wv2s.hsp" // webview2最小サンプル WV2Env 0, 0 env = stat if env { WV2Ctrl env, hwnd ctrl = stat if stat { WV2SetVisible ctrl, 1 WV2SetSize ctrl, 0, 0, ginfo_winx, ginfo_winy surl = "https://www.google.co.jp/" WV2Navigate ctrl, surl // view取得 (Hiroさんのサンプルに出てくるcurViewに相当するもの) prm = varptr(view) ComCall ctrl, 25/*"get_CoreWebView2"*/, prm, 1 } } onexit *ONEXIT_ oncmd gosub *EVENT_ExecuteScript, 0x9010 ; WV2HdlNew用の衝突しない番号を指定(0x8000〜0xBFFFまで) WV2HdlNew 2/*type:HW*/, hwnd, 0x9010 resNew_exec = stat ; ExecuteScriptするときに使用 // ExecuteScript用ウィンドウ作成 screen 1, 320,300, 12, ginfo_wx2+20, ginfo_wy1 objsize ginfo_sx, 20 button gosub "ExecuteScript", *BTN_EXEC bufRes="" : ysize = (ginfo_sy-20)/2 sdim bufExec, 1024 bufExec="document.body.style.backgroundColor=\"#abc\";\ndocument.documentElement.outerHTML;" mesbox bufExec, ginfo_sx,ysize, 5 mesbox bufRes, ginfo_sx,ysize, 4 : idMbRes = stat gsel 0 stop *BTN_EXEC if view == 0 : return // Unicode(utf-16)に変換 sdim bufTmp, (strlen(bufExec)+1)*2 cnvstow bufTmp, bufExec // ExecuteScript実行 prm = varptr(bufTmp), resNew_exec ComCall view, 29/*"ExecuteScript"*/, prm, 2 return // EVENT_ExecuteScript内で使用する関数 #uselib "kernel32.dll" #func lstrcpyW "lstrcpyW" wptr,wptr #func lstrlenW "lstrlenW" wptr #uselib "combase.dll" #func WindowsDeleteString "WindowsDeleteString" int *EVENT_ExecuteScript // 文字列を受け取る : Unicode(utf-16) sdim bufTmp, (lstrlenW(lparam)+1)*2 lstrcpyW varptr(bufTmp), lparam vBuf = cnvwtos(bufTmp) ; shift-jisに変換 gsel 1 objprm idMbRes, vBuf ; mesboxに表示 gsel 0 // 忘れずに受け取った文字列のメモリを解放 WindowsDeleteString lparam return *ONEXIT_ if view : ComDel view if ctrl : ComDel ctrl if env : ComDel env end
本当は、WV2HdlWait を使って oncmd 無しで出来るのではないかと予想しているのですが、使い方が分かりません(-_-;)