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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
1228
UNGAパイプ付き実行について教えてください。4未解決


UNGA

リンク

2023/12/28(Thu) 09:33:25|NO.100934

パイプ付き実行について教えてください。
以下のコードを実行するとメモ帳が起動しますが、起動後の文字入力が変数bufに
格納されません。どのように直せばよいか教えていただければ幸いです。
OSはwindows10です。



    #include "hspext.as" sdim ln,4096 sdim buf,32000 pipeexec buf,"notepad.exe",1 if stat : dialog "実行できませんでした" : end mes "実行中..." repeat pipeget ln ; パイプの取得/更新 if stat=0 : break ; メモ帳終了ならループを抜ける wait 10 loop mes "実行完了..." mes buf //ここでメモ帳に入力された文字が表示されない stop



この記事に返信する


TOMATO

リンク

2023/12/28(Thu) 09:55:21|NO.100935

>以下のコードを実行するとメモ帳が起動しますが、起動後の文字入力が変数bufに
格納されません。
pipeexec はコンソールアプリ(黒い画面)のテキストを取得するものであって、
メモ帳のようなGUIアプリのテキストを取得するものではありません。

ヘルプにもきちんと書いてありますね。
>pipeexec命令は、おもにwin32コンソールアプリケーション(DOSプロンプトで動作する32bitアプリケーション)の実行を支援するための機能です。
https://docs.hsp.moe/3.6/reference/hspext/pipeexec/



TOMATO

リンク

2023/12/28(Thu) 10:02:50|NO.100936

あー、サンプルコードにメモ帳が入ってるのね…。
サンプルがあまりよくないコードですね。
https://docs.hsp.moe/3.6/reference/hspext/pipeget/



UNGA

リンク

2023/12/28(Thu) 12:42:05|NO.100938

何と、pipeexec buf,"notepad.exe",1 では駄目だったんですね。

コンソールアプリを起動するにはどうしたらいいのか教えていただけませんか?
notepad.exeのかわりにcmdと入れてみましたが、起動できませんでした。



TOMATO

リンク

2023/12/28(Thu) 16:35:48|NO.100939

>notepad.exeのかわりにcmdと入れてみましたが、起動できませんでした。

cmd を指定するのではなく、ipconfig や ping、netstat、tracert、tasklist などの
コンソールアプリの実行ファイルパスを指定するのが一般的な使い方です。
(cmd自体は、コンソールアプリを動作させるための実行ファイルなので、ダメじゃないかと)


#include "hspext.as" sdim ln,4096 sdim buf,32000 pipeexec buf,"ping 127.0.0.1",1 if stat : dialog "実行できませんでした" : end mes "実行中..." repeat pipeget ln ; パイプの取得/更新 if stat=0 : break ; メモ帳終了ならループを抜ける wait 10 loop mes "実行完了..." mes buf //ここでメモ帳に入力された文字が表示されない stop



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