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


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
0905
匿名希望dialog命令の致命的なエラーについて18解決


匿名希望

リンク

2024/9/5(Thu) 18:54:30|NO.102153

初の書き込みになります。もしサイトルールにあってなかったらごめんなさい。

では本題ですが、タイトル通りで、dialog命令で、
一部のインターネットショートカットファイルを読み込もうとすると、
致命的なエラーが発生しましたと止まります。

具体的には、一般的ブラウザが作るのは平気なのですが、
DMMPLAYERが作るのがダメな様です。

いくつかのネトゲを一元的に一つのランチャーで管理しようかと考え
まずはファイル登録からと思ったのですが、いきなり一行目で躓いてしまいました…。
もし原因や対処法が分かる方がいれば教えていただければ幸いです。



この記事に返信する


ABATBeliever

リンク

2024/9/5(Thu) 19:14:24|NO.102154

DMMPlayerのショートカットの形式が、たとえばローカルにあるとかかもしれません

dialog命令でlnkを読み込むということは、ファイルの場所を探してるんでしょうか?
たとえばexecで、ゲームのURLをブラウザで開くようにしたほうが早いかもしれません



匿名希望

リンク

2024/9/5(Thu) 19:53:19|NO.102155

早速の返信ありがとうございます。
インターネットショートカットファイルとは拡張子がURLで
LNKファイルとは違いますね。
ランチャー登録用にまずはファイル名等の情報を取得しようとしたら
エラーを出した感じです。
後場所も変えてみましたが、ダメでした。
ファイルにアクセスした瞬間に止まります。



名無し

リンク

2024/9/5(Thu) 20:19:05|NO.102156

エラーというのは「結果レポート」と言うのか「Error」の方か分かりませんが、
何れにしてもエラーの発生した行数と簡易的な理由が書いてあると思います。
前者なら一番下の行とその上の行、後者はエラーの行数と理由しか書いてません。例えば
「error 2:文法が間違っています (1行目)」
「#Error 6 in line 2」
のような感じ。後者のエラーはlineの後の数値が行数ですね。
これらを参考にすればエラーの原因と理由が何となくわかると思います。
エラー番号の内容については下記ページを参考してみてください。
https://www.onionsoft.net/hsp/v33/doclib/error.htm

よく分からない場合、同様のエラーを再現できるコードを極力短くまとめてここに掲載すると
理解の深い方々が原因を教えてくれたりします。
dialogが悪いと思ってるけど実は違ったとか、ちょっとした凡ミスだったとか色々あるので、
確認してみてください。



匿名希望

リンク

2024/9/5(Thu) 20:45:10|NO.102157

いえ、ですから、書いた通りエラー番号はなく
dialog命令でファイル選択した瞬間に
「致命的なエラーです」
というメッセージボックスが出ます。

おそらくではありますが、私のプログラムがどうこうというよりは、
HSP自体が内包するバグの気はします。



名無し

リンク

2024/9/5(Thu) 21:05:08|NO.102158

なるほどすみません。「致命的なエラーです」と表示されてたんですね。
だとしたら確かにプログラム側の問題とは限らないかもしれないですね。
どちらにしても確認できるコードがあると確認しやすくて助かるのですがどうでしょうか?

>dialog命令で、
>一部のインターネットショートカットファイルを読み込もうとすると、
>致命的なエラーが発生しました
という事ですので、こちらで確認してみました。
dialog "",16
mes refstr
上記コードを実行し、デスクトップに作成した「新規のインターネットショートカット.url」を
ダイアログで選んだのですが、特にエラーは出ませんでした。
上記.urlファイルは「https://google.com」を開くようにしているので、これが
>一般的ブラウザが作るのは平気なのですが
ということなんでしょうか?

>DMMPLAYERが作るのがダメな様です
の意図を自分ではつかみかねてるので、詳細教えて頂けると助かります



ABATBeliever

リンク

2024/9/5(Thu) 21:18:16|NO.102159

dialog命令でファイルを選択する意味ってあるんですかね?

移動先を変数にでも入れておけばいい訳で



#include "shell32.as" button "サイトA",*LoadA button "サイトB",*LoadB stop *LoadA ShellExecuteW 0, "open", "msedge", "https://hsp.tv/play/pforum.php?mode=all&num=100208", 0, 10 stop *LoadB ShellExecuteW 0, "open", "chrome", "https://learn.microsoft.com/ja-jp/windows/win32/api/shellapi/nf-shellapi-shellexecutew", 0, 10 stop



名無し

リンク

2024/9/5(Thu) 21:45:38|NO.102160

少し考えて察しが付きました。
>DMMPLAYERが作るのがダメ
というのは文字通りの「DMM Player」では無く、「DMMGamePlayer」の事ではないでしょうか?
DMMGamePlayerで何らかのゲームの「ショートカット作成」をして作られるゲームの.urlファイル。
これをHSPのdialog命令で読み込むと「致命的なエラーです」が表示されると。

という事だと思いDMMGamePlayerをインストールし、適当なゲームをダウンロード。
そして「ショートカット作成」し、NO.102158のコードでそのショートカットファイルを選択しましたが、
特にエラーは一切表示されず、ショートカットファイルのパスが表示されました。

以上の事から、DMMGamePlayerで作成された.urlファイルをdialogで読み込むことに問題は無く、
原因は他にあると考えます。ですので、際限ができるコードを提示頂きたいところですね。
先程も記載した通りですが、エラーの原因が想像している所とは一切関係ないところだった、
と言うのは割かしよくある話ですので。



匿名希望

リンク

2024/9/5(Thu) 22:48:54|NO.102161

>102159
いや、いちいちソース書き換えるんじゃなく、プログラム上で
登録ファイル変えたいので…。


>102160
はい、その通りです。
私が書いたのも基本的なそのコードで、
念のためコピーして実行してみましたが、やはり致命的なエラーが出ました…。
ちなみに、同じフォルダにおいてある別のファイルは普通に読み込めますし、
いくつかのDMMGamePlayerが生成するショートカットはすべてエラーがでました。
一応ゲームも書いておくと、コードギアスロストストーリーズ、
呪術廻戦ファントムパレード、陰の実力者になりたくて!マスターオブガーデンです
また、その生成したファイルは正常で他のエディタ等では内容が表示できます。
しかし、そちらでは問題なかったとすると、私の環境的な何かだったりするんでしょうかね。



名無し

リンク

2024/9/5(Thu) 23:08:33|NO.102162

コードギアス 反逆のルルーシュ ロストストーリーズ
陰の実力者になりたくて!マスターオブガーデン
呪術廻戦 ファントムパレード
以上3つをダウンロードしてショートカット作成、確認しましたがエラーは出ませんでした。
dialog "",16
mes refstr
たった2行のこのコードでもエラーが出ているのであれば 環境側に問題があるような気がします。

取り敢えずショートカットファイルを一度削除して再度作成したり、
HSPの再インストールをしてみてはどうでしょうか?
こちらの環境はHSP3.6で確認してます。
OSはWindows10で確認してますが、やたら古いとかMACとかだと動かないのかもしれません。
尤も、DMMGamePlayerの動作環境の問題もあるのでやたら古いOSという事は無いと思いますがね。



匿名希望

リンク

2024/9/6(Fri) 00:49:00|NO.102163

わざわざありがとうございます。
こっちでも一応HSP3.5、3.6、37betaで試してみたり
ショートカット作り直してみたりしましたが、やっぱりダメですね。
原因気にはなりますが、ちょっとお手上げです。



名無し

リンク

2024/9/6(Fri) 06:08:26|NO.102164

そうですか。OSはどうでしょうか?Windows10とか11ですか?
MACのパソコンでWindowsを使用する方法もあるようですが、
そういった環境ではHSPが上手く動作しない事もあるという話も聞きます。
複数台パソコンを所有しているなら別のパソコンで試すのも一つの手です。

ちなみに少し気になったのですが、
>念のためコピーして実行してみましたが
これは新規にファイルを作って提示したコード2行のみで実行した認識であってますか?
もし自分のコードに組み込んで実行していたのであれば2行のみのコードで試してみてください。
また、「dialog "",16」命令のすぐあとに「stop」を入れてみた場合どうなるでしょうか?

確認ですが、「致命的なエラーです」と言うエラーが出たとき、
エラー番号が無いのは分かりましたが、他には一切なにも記載がないのでしょうか?
通常実行中にエラーが発生した場合「Debug Windows」が表示されますがこちらは出ますか?
表示される場合、「全般」タブの下から2番目にある「refstr」を確認してください。
表示されない場合、エディタから「Debugウィンドゥ表示」を選択して実行し、確認してください。
選択したファイルのパスは正しく表示されてますか?

urlファイルの場所はデスクトップであってますか?
管理者権限が必要な場所とか、やたらと階層の深いところとか、パスが長すぎるとかないでしょうか?

自分に思いつく要因などはこの位でしょうか。
そもそもエラーを再現できるスクリプトについては触れられていませんが、
提示されないという事は提示できない若しくは難しいという事ですかね。



匿名希望

リンク

2024/9/6(Fri) 21:25:44|NO.102165

OSはwin11ですね。
ソースは難しいのではなく逆に簡単すぎるから書いてません。
最初に書いた通り一行しか書いてないので…。

dialog ,16
stop

ですね。

Debug Windowsのrefstrには止まった時点で何も入ってませんね。
場所はデスクトップで普段やってますし、c:\新しいフォルダ\も作ってやってみました。


そして昔のwin7を積んだPCで試したところ、やはりエラーが発生したのですが、
メッセージが「インターフェイスがサポートされていません」に変わってました。
これは調べてみたところ、windows起因のエラーのようなんですが、
これはこれで今ひとつ回避方法が分からないですね…。

解決はしてないですが、HSPの方では回避は難しいかもしれないので、
このスレッド解決にした方がいいですかね?



名無し

リンク

2024/9/6(Fri) 22:20:05|NO.102166

一行目で躓いたというのは最初の一歩でいきなりトラブったような、比喩表現かと思っていました。
文字通り一行目で躓いてたんですね。

「インターフェイスがサポートされていません」についても具体的かつ明快な解決法は謎ですね。
dialog命令でファイルを選択しただけで致命的なエラーと言うのは通常考えれないので、
何かしら環境の問題だとは思うのですがね。
例えばウイルス対策ソフトのような他のソフトに影響を及ぼすソフトが入っているとか、
OSの言語が日本じゃないとかみたいな特殊な状態になってるくらいしか思いつきませんね。

視点を変えてみます。
・「dialog ,16」ではなく、「dialog ,17」でもエラーは出ますか?
・「dialog」命令は使わず、「GetOpenFileName」を直接使用するとどうなるでしょう?
・恐らくエディタ上で「HSP実行」ボタン(F5キー入力)で実行してると思いますが、
 「実行ファイル自動作成」(CTRL+F9キー)を行い、作成したexeファイルで試してもエラーは出ますか?
・スクリプトの文字コードはsjisですか?
 試しに「#include "hsp3utf.as"」を1行目に入れもエラーになりますか?
・urlファイルはテキストエディタなどで開けますか?
 文字化けとか明らかにおかしいと思う点とかないでしょうか?

流石にネタ切れですね。取り敢えず試してみてください。
何もしないと絶対に解決する事はないですし物は試しです。

解決チェックについては質問者さん次第ではないかなと思います。
解決チェック入れると返答が来にくくなる気がしてますが、
質問者さんがもういいやと思われているなら解決でいいと思います。
まだ投稿から1日しか経過してないので、数日待ってみて解答こなさそうなら解決チェックするのもありですね。



TOMATO

リンク

2024/9/6(Fri) 23:30:35|NO.102167

手元の環境でも「致命的なエラー」が再現しました。
・Windows 11 Pro(23H2)
・DMM Game Player(ウマ娘)

なお、エラーメッセージを出しているのはHSP側ではなく、ファイル選択ダイアログ側のようです。
例えば、サクラエディタのファイル選択ダイアログ上で当該のURLファイルを開いても同じエラーが表示されました。

GetOpenFileNameA関数を直接読んでも同じ結果になる気がします…。



TOMATO

リンク

2024/9/6(Fri) 23:53:44|NO.102168

なお、手元の環境だとURLファイルが全滅…というわけではなく、
リンク先が dmmgameplayer:// のものはダメ、http:// や https:// であれば問題ない。
といった感じでした。



TOMATO

リンク

2024/9/7(Sat) 00:11:01|NO.102169

GetOpenFileNameA 関数を OFN_NODEREFERENCELINKS フラグを付与して起動すれば、
URLファイルのパスはとれそうでした。
https://learn.microsoft.com/ja-jp/windows/win32/api/commdlg/ns-commdlg-openfilenamea


// 参考元: // https://wiki.hsp.moe/%E5%B0%8F%E3%83%AF%E3%82%B6%EF%BC%8F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E9%81%B8%E6%8A%9E%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0.html #uselib "Comdlg32.DLL" #func GetOpenFileName "GetOpenFileNameA" int #define BUFSIZE 260 #define FILTERSIZE 512 #define ALLTYPE "ALL files (*.*)@*.*@" #define OFN_FILEMUSTEXIST $00001000 #define OFN_NODEREFERENCELINKS 0x00100000 mref bmscr , 67 dim ofn , 22 sdim aplFilter , FILTERSIZE+1 sdim usrFilter , FILTERSIZE+1 sdim filename , BUFSIZE+1 aplFilter = ALLTYPE + "@" usrFilter = "ユーザ選択フィルタ (*.*)@*.*@" + "@" repeat await 0 mutch=instr(aplFilter,start,"@") if mutch = -1 : break poke aplFilter , start + mutch , $00 start += mutch + 1 loop start = 0 repeat await 0 mutch=instr(usrFilter,start,"@") if mutch = -1 : break poke usrFilter , start + mutch , $00 start += mutch + 1 loop ofn.0 = 88 ; lStructSize ofn.1 = bmscr.13 ; hwndOwner ofn.2 = bmscr.14 ; hInstance ofn.3=varptr(aplFilter) ; lpstrFilter ofn.4=varptr(usrFilter) ; lpstrCustomFilter ofn.5 = FILTERSIZE ; nMaxCustFilter ofn.6 = 1 ; nFilterIndex ofn.7=varptr(filename) ; lpstrFile ofn.8 = BUFSIZE ; nMaxFile ofn.9 = 0 ; lpstrFileTitle ofn.10 = 0 ; nMaxFileTitle ofn.11 = 0 ; lpstrInitialDir ofn.12 = 0 ; lpstrTitle ofn.13 = OFN_FILEMUSTEXIST | OFN_NODEREFERENCELINKS ; Flags prm=varptr(ofn) GetOpenFileName prm if stat = 0{ dialog "失敗" , 0 , "終了確認" : end } mes filename stop



匿名希望

リンク

2024/9/7(Sat) 11:44:16|NO.102170

おおおお、読み込めました!
ありがとうございます。
正直、エラーの正確な原因とかこのスクリプトがやってる事とか全然理解していませんが(汗
おいおい調べていこうかと思います。
ほんと最初の一歩でこけて涙目だったので助かりました。



名無し

リンク

2024/9/7(Sat) 13:57:40|NO.102171

TOMATOさんありがとうございます
こっちで現象再現できないと別の手法試したり原因探るのも難しくお手上げでしたので助かりました。
質問者さんの環境でも対策方法で上手く行けて解決できたようで良かったです



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.102153への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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