318392 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

satocchiaブログ

satocchiaブログ

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

×

キーワードサーチ

▼キーワード検索

カレンダー

コメント新着

tomoZo@ Re:Pale Moon日本語化トラブル(06/06) はじめまして。 28.16.0でまたもや提供さ…
satocchia@ Re[1]:Pale Moon日本語化トラブル(06/06) zui_9さんへ 本日、確認しました。ようや…
zui_9@ Re:Pale Moon日本語化トラブル(06/06) 上記リンク「Githubのプロジェクト」の左…
わたなべ@ Re:powershellコンソール、見づらくありませんか?(08/26) 初めまして、この情報最高です! 背景を白…
y__@ Re:uwscでGUIフォーム(05/12) UWSC 仮掲示板から飛んできました。 HTAで…

ニューストピックス

2020.11.25
XML
カテゴリ:UWSC
inputにタイトルを表示する​の新バージョン。
前回はinputボックスだけを考えてみたけど、ほかのダイヤログも変えられないかなあと思って。

そこで、考えたのは一時UWSCファイルを作って呼び出してみてはどうか。
CallSub関数を作ってみたら、結構うまくいきました。
第二引数をtrueにすると、サブ側で
stdout(出力文字列)
を実行することで、呼び出し元に値(文字列オンリー)を返せます。

inputの使用例はこんな感じ

res=CallSub(sample,true)
msgbox( res )
textblock sample //サブプログラム
option DLGTITLE="入力してください" //ダイヤログタイトルの変更
stdout(input( "サブプログラムからの入力プロンプト","既定値",,60,60 ))
endtextblock

CallSubUwsc.uws
function CallSub( AllText, isFunction=false )
    fso=CreateOleObj("Scripting.FileSystemObject")
    repeat
        tmp=fso.GetTempName
        tempuws=Copy(tmp, 1, length(tmp)-4)+".uws"
        tempuws=fso.GetSpecialFolder(2) + "\" + tempuws
    until !fopen(tempuws, f_exists)
    if isFunction
        UWSText=AllText + "<#CR>" + stdout_uws
    else
        UWSText=AllText
    endif
    fd=fopen( tempuws, f_write16 )
    fput( fd, UWSText, f_alltext )
    fclose( fd )
    UWSCEXE=GET_UWSC_DIR+"\uwsc.exe"
    if isFunction
        result=doscmd(  UWSCEXE + " " + tempuws +"|more" )//このmoreを外すとなぜかエラーになります。ご注意を。
    else
        exec( UWSCEXE + " " + tempuws )
    endif
    deletefile(tempuws)
textblock stdout_uws
    procedure StdOut(text)
        with CreateOleObj("Scripting.FileSystemObject")
            .GetStandardStream( 2 ).WriteLine( text )
        endwith
    fend
endtextblock

fend





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2020.11.25 13:45:08
コメント(0) | コメントを書く
[UWSC] カテゴリの最新記事



© Rakuten Group, Inc.
X