メニューの実行内容について

飛翔さんによるランチャーテンプレのレポートの次の報告。

マニュアル機能は、ファイルが存在しないとエラーで落ちますよね...(^^;;)エラーメッセージを出すだけにとどめておいてもいいかも。

ランチャーテンプレ使用レポート (星屑制作記@やっぱりMovableType Vol.2)より引用

これについては、 HSP 標準の exec 命令を使っていたのですが、これでは、ファイルが見つからないときに、 HSP 側のエラーダイアログが出て終了されてしまうんですよね。これを回避するには、 exec 命令を行う前にファイルが存在するかを確認すればいいのですが・・・ URL の可能性もあるし、どうしようかと思っていたときに見つけたのが ShellExecuteEx API です。exec 命令にとってかわって、この API を使おうかなと。

ShellExecuteEx API の実験スクリプト。

#include "shell32.as"
#include "kernel32.as"

lpFile = "notepad"    // 開くファイル名
hInstApp = 0
// SHELLEXECUTEINFO構造体
dim shexec, 15
shexec. 0 = 60                          // cbSize
shexec. 1 = $00000400                   // fMask = SEE_MASK_FLAG_NO_UI
shexec. 2 = hWnd                        // hwnd
shexec. 3 = 0                           // lpVerb
shexec. 4 = varptr( lpFile )            // lpFile
shexec. 5 = 0                           // lpParameters
shexec. 6 = 0                           // lpDirectory
shexec. 7 = 5                           // nShow = SW_SHOW
shexec. 8 = varptr( hInstApp )          // hInstApp
shexec. 9 = 0                           // lpIDList
shexec.10 = 0                           // lpClass
shexec.11 = 0                           // hkeyClass
shexec.12 = 0                           // dwHotKey
shexec.13 = 0                           // hIcon / hMonitor
shexec.14 = 0                           // hProcess

ShellExecuteEx varptr( shexec )
GetLastError : ErrorCode = stat
if stat : mes "関数が成功しました" : else { mes "関数が失敗しました"
    mes "hInstApp:"+hInstApp
    mes "Error Code:"+ErrorCode
    sdim ErrorMessage, 256
    // $00001000 = FORMAT_MESSAGE_FROM_SYSTEM
    FormatMessage $00001000, 0, ErrorCode, 0, varptr( ErrorMessage ), 256, 0
    mes "Error Message:"+ErrorMessage
}

あと、メニューの実行内容についてですが、実行内容先で時間がかかっていると、なかなかリターンできないので、 PostMessage を使おうかな、と考えています。

余談ですが、今回スクリプトをHTML実体参照にエンコードするのに、エンコードマニアックスというwebツールを使ってみました。HTML実体参照・Base64・URLエンコード・MIME・uuencode・PHP Serialize・JavaScript・MD5・SHA1・unix passwd ひらがな・カタカナ・ローマ字・分かち書き、と一気に各種エンコードの結果を取得できるwebサービスです。とても便利です。

インフォメーション

公開日時
2007年6月20日 午後6時36分32秒
最終更新日時
2007年12月29日 午後1時58分56秒
カテゴリ
HSP