こんにちわ。1案ですがPowerShell経由で取得するとかどうでしょうか?
#module
#include "hspext.as"
; 配列に緯度、経度を返す。
; タイムアウト(10秒)、エラーでstat 0
#deffunc getLocation array _loc
gps = "Add-Type -AssemblyName System.Device;"
gps += "$GeoWatcher = New-Object System.Device.Location.GeoCoordinateWatcher;"
gps += "$GeoWatcher.Start();"
gps += "for($i=0; $i -lt 10; $i++) {"
gps += " if('Ready' -eq $GeoWatcher.Status) {"
gps += " $Loc = $GeoWatcher.Position.Location;"
gps += " 'SUCCESS';"
gps += " $Loc.Latitude;"
gps += " $Loc.Longitude;"
gps += " break;"
gps += " }"
gps += " Start-Sleep 1;"
gps += "}"
gps += "$GeoWatcher.Dispose();"
ddim _loc, 2: sdim buf, 32000 : sdim ln, 4096
pipeexec buf, "powershell "+gps : if stat : return 0
repeat : pipeget ln : if stat == 0 { break } : wait 1 : loop
notesel buf
noteget res, 0
if "SUCCESS" = res {
noteget res, 1 : _loc.0 = double(res)
noteget res, 2 : _loc.1 = double(res)
noteunsel
return 1
} else {
noteunsel
return 0
}
return 0
#global
getLocation location
if stat {
mes "緯度: " + location.0
mes "経度: " + location.1
exec strf("https://www.google.co.jp/maps/place/%s,%s", location.0, location.1), 16
} else {
mes "位置情報サービスが有効ではありません。Windowsの設定でアプリがアクセス出来るようにオンにして下さい。"
}
stop