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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0930
うひょプロンプトを表示させたい5解決


うひょ

リンク

2006/9/30(Sat) 21:39:22|NO.2746

こんばんは。
今、プロンプト(アドレスバーに「JavaScript:void(prompt("",""))」と打ち込むと出るやつ)
を表示したいと思い、調べています。
Windows APIで実現できないかと思い、MessageBox関数を調べてみましたが、
さすがに違うようでした。どうすれば表示できるでしょうか。
お願いします。



この記事に返信する


Irisawa

リンク

2006/10/1(Sun) 10:32:39|NO.2758

WindowオブジェクトにexecScriptという任意の文字列をスクリプトとして実行させる
メソッド(eval?)があるようです。


axobj ie, "Shell.Explorer.2", 0, 0 ie->"Navigate" "about:blank" pDoc = ie("Document") parntWin = pDoc("parentWindow") parntWin->"execScript" "alert();" stop

上記のサンプルの動作保証はしませんが。



うひょ

リンク

2006/10/1(Sun) 11:23:12|NO.2760

すみません。質問の仕方が悪かったみたいです。
IEのスクリプトを実行したいのではなく、
プログラム本体でプロンプトを表示したいということです。



ゆちボン

リンク

2006/10/1(Sun) 18:56:56|NO.2776

>プログラム本体でプロンプトを表示したいということです。
それだと、自分でwindowから作らないといけないと思います。


*prompt moji2="" ;ウィンドウを作る screen 1,300,100,4 ;文字表示 pos 10,10 font "",12 mes moji ;オブジェクトのサイズ objsize 100 ;入力 pos 10,24 input moji2,250,20 ;OK,キャンセルを作る。 pos 10,50 button "OK(&O)" pos 110,50 button "CANSEL(&C)", stop

原型までをちょっと作ってみました。あとはがんばってください。



Irisawa

リンク

2006/10/1(Sun) 22:44:32|NO.2784

> IEのスクリプトを実行したいのではなく、
> プログラム本体でプロンプトを表示したいということです。

えっと、JavaScript(JScript)のpromptならこれでできると思います。


axobj ie, "Shell.Explorer.2", 0, 0 ie->"Navigate" "about:blank" pDoc = ie("Document") parntWin = pDoc("parentWindow") parntWin->"execScript" "prompt('メッセージ', '入力文字');" stop

ただ、値の取得とかどうするんでしょう。(^^ゞ
あれはコモンダイアログではなくIEに内蔵されているダイアログリソースだと思うので
探してみたのですがダイアログリソースの入っているDLLは見つかりませんでした。



うひょ

リンク

2006/10/4(Wed) 22:54:41|NO.2854

皆さん、ありがとうございます。
プログラム本体だけでやるには、やはり原型から作るしかないんですね。
ということで、関数化してみました。どうでしょうか。
一応、期待した動作通りに動いたので、解決にしておきます。

#module #define global ctype prompt(%1,%2=0) _prompt(%1,%2) #defcfunc _prompt str message,int strmode,local mpos,local mid ;prompt(p1[,p2]) p1:表示するメッセージメッセージ p2:モード(0なら数値、1なら文字列、省略:0) mysel=0 ;mysel 0なら未選択、1ならOK、2ならCANSEL mid=ginfo(2) ;現在アクティブのウィンドウID(後で元に戻すため) screen 26,400,150 if strmode:myvar="" pos 10,10 color mes message pos 10,ginfo(23)+10 objsize 300 input myvar mpos = ginfo(23)+10 pos 10,mpos objsize 100 button gosub "OK(&O)",*_prompt_ok pos 120,mpos button gosub "CANSEL(&C)",*_prompt_cansel repeat gsel 26,1 wait 5 if mysel{ mref stt,64 if mysel=1:stt=0 if mysel=2:stt=1 break } loop gsel 26,-1 if mid>0:gsel mid,1 return str(myvar) *_prompt_ok mysel=1 return *_prompt_cansel mysel=2 return #global



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