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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
1012
execcmd.exe廃止後(あるいは既定で無効化など使いづらく)のexec命令のpath取得&実行2未解決


exec

リンク

2023/10/12(Thu) 21:44:25|NO.100208

exec命令で、任意のURLをブラウザに開かせる処理を書いていました
しかし、これだとcmd依存なのでWindows11のPowerShell置換環境で動かない懸念があります
他に方法はありますか?
長く動くコードにしたいのと、他にも事情があって、execで絶対パスとかは難しいです
「pathが通ってたらそのファイルで開く」方法が必要です

現状

exec ”cmd.exe /c start firefox ”+url (変数urlはURLが入った文字型です)



この記事に返信する


TOMATO

リンク

2023/10/12(Thu) 23:48:09|NO.100210

Windows 11 を使っていますが、cmd.exe は引き続き存在するので実行はできるかと。
コンソールアプリのデフォルトは Windows Terminal になっていますが、
Windows11のsystem32フォルダにはcmd.exeが存在しているので大丈夫だと思います。

なお、以下の方法でもいいかもしれません。


#include "shell32.as" #define SW_SHOWDEFAULT 10 args = "https://hsp.tv/" path = "firefox" ShellExecuteW 0, "open", path, args, 0, SW_SHOWDEFAULT



沢渡

リンク

2023/10/12(Thu) 23:48:11|NO.100211

たとえば、パスの通った場所にhsp3.htmを置いた場合、htmlファイルを規定のブラウザで開くのであれば、

exec "hsp3.htm",16
これだけで行けると思いますが、使うブラウザはFireFoxで固定なのでしょうか?
当方では以下のような方法で上手くできましたが、これで大丈夫でしょうか?

#include "shell32.as" #uselib "shlwapi.dll" #func PathFindOnPath "PathFindOnPathA" int,int //パスの通ったディレクトリから指定したファイルを検索 sdim full,260 tmp="hsp3.htm" memcpy full,tmp,strlen(tmp),0,0 PathFindOnPath varptr(full),0 if stat { ShellExecute hwnd,"open","firefox",full,0,1 //FireFoxで開く場合 }



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