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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0305
初めての投稿sendmsgを使い、inputで数値だけの入力9解決


初めての投稿

リンク

2015/3/5(Thu) 19:08:42|NO.67704

sendmsgを使い、inputで数値だけを入力したいです。
パスワードを入力する時、文字列を「*」に変換するソースは見つけましたが、
数値のみを入力する方法がわかりません。
恐らくですが、ES_NUMBER/$2000を使うのだろうと考えております。

sendmsgを使わないソースは発見しました。


#uselib "user32.dll" #cfunc GetWindowLong "GetWindowLongA" sptr, sptr #func SetWindowLong "SetWindowLongA" sptr, sptr, sptr buf="" input buf hInput = objinfo(stat, 2) SetWindowLong hInput, $FFFFFFF0, GetWindowLong(hInput, $FFFFFFF0)|$00002000 button "出力", *out stop *out dialog buf

sendmsgでは、どの様な書き方になるのかどなたかお教え頂けませんか



この記事に返信する


ht_ask

リンク

2015/3/5(Thu) 19:09:34|NO.67705

ES_NUMBERはウィンドウスタイルですから、
ウィンドウメッセージの送信であるsendmsgを介して設定されるものではありませんよ。



初めての投稿

リンク

2015/3/5(Thu) 19:15:13|NO.67706

お早くお返事ありがとうございます。
sendmsgでは出来ないと言う事ですね
勘違いしておりました。

"user32.dll"を使わず、inputを数値のみに出来れば満足なのですが、

他に方法はありませんか



kanahiron

リンク

2015/3/5(Thu) 19:18:06|NO.67707

user32.dllを使いたくない理由はあるのでしょうか
別に実行ファイルに同梱する必要はありませんよ

回答ですが、自分はその方法はわかりません すみません



kanahiron

リンク

2015/3/5(Thu) 19:22:19|NO.67708

ちなみにHSPのinput自体、user32.dllで提供されているmessageboxを使っていますよ
https://msdn.microsoft.com/ja-jp/library/cc410914.aspx



tds12

リンク

2015/3/5(Thu) 19:31:06|NO.67709

>user32.dllで提供されているmessagebox
messageboxはdialog命令の方で、
inputの方は、CreateWindowExですよ。



ht_ask

リンク

2015/3/5(Thu) 19:32:48|NO.67710

kanahironさんのおっしゃる通りで、user32をはじめとするWin32APIのDLLは
デフォルトでWindowsにインストールされているので実行ファイル単体で動作します。
ちなみにsendmsgも内部的にはSendMessage関数をコールしていて、user32.dllを使っています。
だいたい全ての命令がWin32APIによって実装されているわけです。



tds12

リンク

2015/3/5(Thu) 19:42:57|NO.67711

このようにすれば可能です。

//BMSCRを取得(これが必要) mref BMSCR, 67 //サイズ指定 objsize 100, 50, 60 //スタイルを変更 //$50000000と必要なスタイルをorする BMSCR(70) = $50000000 | $2000 //input作成 buf = "" input buf // デフォルトへ戻す BMSCR(70) = $50000000
自由に使って良いことを明示します。



kanahiron

リンク

2015/3/5(Thu) 19:47:15|NO.67712

あ Messageboxじゃなかった
恥ずかし…(´・ω・`)

そして標準命令だけでできるんですね…



初めての投稿

リンク

2015/3/6(Fri) 03:39:50|NO.67717

皆様ありがとうございました。
最初に書いた方法でやっていこうと思います。

大変勉強になりました。
これにて解決とさせて頂きます



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