秘密基地、どこに作った?

はじめまして。
vb6.0の開発をしている者です。

表題にもありますように、「&HFFFF」「&H1A」は何を指しているのでしょうか?

実際は以下のように記述しています。
l = SendMessage("&HFFFF", "&H1A", 0, "windows")

Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lparam As String) As Long

初歩的な質問で申し訳ないのですが、なかなかこれだ!という情報を見つけれずにいます。よろしくお願いします。

A 回答 (6件)

#3です。


質問者さんは16進数が分からない訳ではなく、APIに与えた引数の
意味を質問されているものと思います。

再掲ですが、&HFFFFはHWND_BROADCASTのことで、トップレベルの
ウィンドウ全体を指しています。&H1AはWM_WININICHANGEと言う
メッセージで、「Win.ini」が変更されたことを示します。
つまり、あるプロセスが「通常使うプリンタ」を変更する等、
win.ini(現在はレジストリだが、Windows3.1までは左記ファイル)を
更新したと言うことを他のトップレベル(親ウィンドウを持たない)
ウィンドウに通知しています。

通常はシンボル化して使います。
Const HWND_BROADCAST As Long = &HFFFF&
Const WM_WININICHANGE As Long = &H1A
特に&HFFFFは最後に&を付けないと-1になってしまい、本来の値の
65535になりません。-1でも良いのですが、厳密には異なります。

しかし、このメッセージを処理するウィンドウプロシージャを寡聞に
して見た事がありません。普通、印刷という行為は自動実行ではなく、
人間が明示的に操作するもので、機械的に同時期に異なるプリンタへ
印刷指令が出るようなことは考えられませんよね。それに、万一、
意図したものと違うプリンタに出力されても、やり直せば済む話
ですし・・・ あと、ウィンドウを持たないプロセスがこういう情報を
使うこともないわけではありません。
ということで、殆ど意味の無い行為です。(オマジナイ程度の気休め)

保守に責任が持てないのなら、削除することをお勧めします。
    • good
    • 0

VB2008しかできない初心者の僕です。


進数自体は理解してますか?
10進数は8,9,10で桁が変わりますよね。
16進数は9,a,b,c,d,e,f,10になります。
昔の機械語ではBD15とか462Bとか命令言語であったりしました。
あと、メモリの番地にも使われてましたね。
&H40BD番地の内容参照とか
この場合は&h40BD番地の中の値を意味します。
C++とかでは、今でもあるのかな?
ではでは。
    • good
    • 0

私も


・vb6.0でプログラムを組んでいて
・開発をしている
方からコンナ質問が出るとは。
ーー
&Hは16進表記を示す約束です。
10進に変えてみるとかは回答が出ているが、
別の面から書いてみる。
私の経験から(絶対全てのケースというわけではないが)
この16進を2進数ビット列にして保持してみたとき、左(または
右)から何番目のビットがONならこういう処理になる(する)・状態であるという設計図(決め)が言語ソフトの設計者によって決められている場合が多い。ビット位置ごとの意味づけである。
基礎的な(機械語で扱うような)システムになるほどそういう傾向が強い。昔はメモリの節約からだった。メモリもふんだんになった今後は、だんだん文字化が図られよう。しかしビット演算というのも便利な場合がある。
そして各ビットは独立していて、ONにするのは相互に制約なしである。
だからそういう場合は、ビット位置に意味づけした、その設計の解説を読まないとわからない。
この例1Aでは
右から2番目の状態などがON
右から4番目の状態などがON
右から5番目の状態などがON
その他はOFFで該当しないとか。
ーー
2進数 11010
16進化 =bin2dec(11010) 26
10進化 =bin2HEX(11010) 1A
16進を2進化 =Hex2bin("1A") 11010
いずれも使っているのはエクセル関数で。
    • good
    • 0

ココ見てね。


http://support.microsoft.com/kb/135387/ja
&HFFFF は HWND_BROADCAST、&H1A は WM_WININICHANGE のこと。

あと、VBでAPIのパラメータが文字列の場合、必ずByValが必要です。
よって、lparam As String は誤りで、ByVal lparam As String が
正しい。
恐らく、このSendMessageは不要のはずです。
    • good
    • 0

&Hは16進数の事、 FFは 16~2 = 256 です。


十進数 8.. 9.. 10.. 11.. 12..
16真数 &H08 &H09 &H0A &H0B
&H1A = 1*16^1+10 = 26(十進数)
&HFFFF = 15*16^3+15*16^2+15*16^1+15 = 65535(十進数)
    • good
    • 0

>、「&HFFFF」「&H1A」は何を指しているのでしょうか?



16進表記です

>vb6.0の開発をしている者です

ほんとですか???????????????????????????????????????????????????????????????????????????????????????????
1000000000000% あり得ない質問だと思うのですが?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A