C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[11]: ウィンドウハンドルHWND型の数値化


(過去ログ 134 を表示中)

[トピック内 16 記事 (1 - 16 表示)]  << 0 >>

■79025 / inTopicNo.1)  ウィンドウハンドルHWND型の数値化
  
□投稿者/ zatsudayoko (1回)-(2016/03/02(Wed) 23:10:39)

分類:[.NET 全般] 

C++の質問です。

ウィンドウハンドルHWND型を数値化する方法をご教授下さい。

何をしたいのかというと、VisualStudio付属のspy++を使用して、
色々な事をしています。

spy++の各ウィンドウの「ウィンドウ」文字列の右にウィンドウハンドルID?のような、
ウィンドウ毎に一意につけられたIDが表示されています。
このIDを取得したいのです。

なのでウィンドウハンドルHWND型を数値化出来れば、上記spy++のウィンドウハンドルID?
と同じ物を取得できると考えました。

よって、ウィンドウハンドルHWND型を数値化する方法をご教授下さい。
※もしかしたら目的と実施しようとしている事が間違っているかもしれません
※その場合は正しくウィンドウハンドルID?を取得できる方法をご教授下さい

引用返信 編集キー/
■79027 / inTopicNo.2)  Re[1]: ウィンドウハンドルHWND型の数値化
□投稿者/ WebSurfer (850回)-(2016/03/03(Thu) 03:22:13)
マルチポスト
http://qa.atmarkit.co.jp/q/9837
引用返信 編集キー/
■79028 / inTopicNo.3)  Re[2]: ウィンドウハンドルHWND型の数値化
□投稿者/ zatsudayoko (2回)-(2016/03/03(Thu) 08:32:20)
No79027 (WebSurfer さん) に返信
> マルチポスト
> http://qa.atmarkit.co.jp/q/9837

解決しました。

マルチポストを指摘する前に解決策を提示してくださいね。
引用返信 編集キー/
■79029 / inTopicNo.4)  Re[2]: ウィンドウハンドルHWND型の数値化
□投稿者/ 774RR (380回)-(2016/03/03(Thu) 08:45:45)
http://dixq.net/forum/viewtopic.php?f=3&t=17760
にて回答がついているけど別の解説を試みるテスト

HWND は WinDef.h にて定義があって結局のところ typedef struct HWND__ * HWND; となっている。
昔は単に typedef void * WHND; だった。
つまり ポインタ値の文字化 を行えば表示可能になる。
printf なら %p に渡せばよいし
std::basic_ostream なら単純に operator << でいいだろう。
他の方法で文字化してもまったく差し支えないけどさ。
引用返信 編集キー/
■79031 / inTopicNo.5)  Re[3]: ウィンドウハンドルHWND型の数値化
□投稿者/ WebSurfer (851回)-(2016/03/03(Thu) 10:47:11)
No79028 (zatsudayoko さん) に返信

> マルチポストを指摘する前に解決策を提示してくださいね。

あなたには先のスレッド、

http://bbs.wankuma.com/index.cgi?mode=al2&namber=78726

でもマルチポストを指摘し、

> マルチポストはここのようなコミュニティではまず歓迎されません。理由が
> 分からなければ「マルチポスト」をキーワードのにしてググって見てください。

とレスしましたが、それを無視して、しかもハンドル名まで変えて、マルチポスト
を続けているのはいかがなものですかね?

引用返信 編集キー/
■79032 / inTopicNo.6)  Re[3]: ウィンドウハンドルHWND型の数値化
□投稿者/ とっちゃん (331回)-(2016/03/03(Thu) 11:04:12)
すでに解決してるし、同じことの繰り返しになるけど、
わざわざあちこちで質問して回答を求めてるのでさらに(あまり)かぶらないように解説を試みるテスト

HWND は、DECLARE_HANDLE(HWND) と定義されています。

DECLARE_HANDLEはマクロで、下記のようになっています。

#ifdef STRICT
typedef void *HANDLE;
#if 0 && (_MSC_VER > 1000)
#define DECLARE_HANDLE(name) struct name##__; typedef struct name##__ *name
#else
#define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name
#endif
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif

ちなみに、段落ちしてないのは、Windows の定義の問題なので、気にしないでください。
実体は、windef.h にあります。

STRICT が定義されていない場合(VC++のデフォルトでは定義されません)では
DECLARE_HANDLEは、 typedef HANDLE で、その実体は、void* になります。
STRICTが定義されている場合は、構造体へのポインタとなるので
識別用に型を持っているという形になりますが、ポインタです。

さて、HWNDなどのハンドルの数値化ですが、STRICTがあってもなくても結局のところ、
アプリケーションの側から見る限りではただのポインタです。

現在の C/C++ コンパイラなら、ポインタの数値化は
intptr_tやINT_PTR(数値としての具体性を求めない)、あるいは、uintptr_tやUINT_PTR(数値的な意味で前後を考慮したい)を
用います。

ちなみに、INT_PTR や UINT_PTR は、Windows の定義です。
intptr_t や uintptr_t は、標準ライブラリの定義です。

そのプログラムコードをどこで使うかによって、どちらを使うかや、ほかのソースコード等々も含めた
ソースの可搬性を考慮して決めればいいと思います。

このあたりになってくるとソースコードの文化(その人が影響を受ける集合体)の違いなので
好きなものを選んでいいと思いますよ。

具体的なキャストは、
HWND hwnd;
INT_PTR num = reinterpret_cast<INT_PTR>( hwnd );
という感じで行います。

数値になってしまえば、あとは、好きに扱えます。が、数値的な大小に意味はありません。
先に作った後から作ったもないと思います。

引用返信 編集キー/
■79040 / inTopicNo.7)  Re[4]: ウィンドウハンドルHWND型の数値化
□投稿者/ 中の人の知り合い (1回)-(2016/03/03(Thu) 14:15:47)
WebSurfer さん

わんくま掲示板ではマルチポストは禁止されていません。
#規約に明記されていませんが...

しかし、規約に
「皆さんの迷惑になりますので、意味のない投稿・煽るだけの投稿・荒らしは禁止です。」
と明記されています。

マルチポストが禁止されていないため、マルチポストを指摘するだけの投稿は「意味のない投稿」に該当しませんか?
せめて、何らかの回答を示すべきでしょう。


No79031 (WebSurfer さん) に返信
> ■No79028 (zatsudayoko さん) に返信
>
>>マルチポストを指摘する前に解決策を提示してくださいね。
>
> あなたには先のスレッド、
>
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=78726
>
> でもマルチポストを指摘し、
>
>>マルチポストはここのようなコミュニティではまず歓迎されません。理由が
>>分からなければ「マルチポスト」をキーワードのにしてググって見てください。
>
> とレスしましたが、それを無視して、しかもハンドル名まで変えて、マルチポスト
> を続けているのはいかがなものですかね?
>
引用返信 編集キー/
■79043 / inTopicNo.8)  Re[5]: ウィンドウハンドルHWND型の数値化
□投稿者/ WebSurfer (853回)-(2016/03/03(Thu) 16:05:12)
No79040 (中の人の知り合い さん) に返信

個人的にはマルチポストは絶対ダメとは思ってませんよ。

でも、やるなら (1) ポスト先を全部書いて、(2) 全てのポスト先でレスをきちっと
フォローして、(3) どこかで解決したら全てのポスト先にその旨書いて、(3) 解決
したポスト先の URL を書くぐらいのことはするべきでは?

> マルチポストが禁止されていないため、マルチポストを指摘するだけの投稿は「意味のない投稿」に該当しませんか?

上記の (1) にはなっていると思いますが? 私が気づいたポスト先だけでので
十分ではないとは思いますが。
引用返信 編集キー/
■79044 / inTopicNo.9)  Re[6]: ウィンドウハンドルHWND型の数値化
□投稿者/ 中の人の知り合い (2回)-(2016/03/03(Thu) 16:29:41)
WebSurfer さん

じゃあ、初めからそう書けばよかったと思いますよ。

「マルチポスト」
と一言書いてリンク先あげるだけではおっしゃる(1)〜(3)の意図は全く伝わりません。


No79043 (WebSurfer さん) に返信
> ■No79040 (中の人の知り合い さん) に返信
>
> 個人的にはマルチポストは絶対ダメとは思ってませんよ。
>
> でも、やるなら (1) ポスト先を全部書いて、(2) 全てのポスト先でレスをきちっと
> フォローして、(3) どこかで解決したら全てのポスト先にその旨書いて、(3) 解決
> したポスト先の URL を書くぐらいのことはするべきでは?
>
>>マルチポストが禁止されていないため、マルチポストを指摘するだけの投稿は「意味のない投稿」に該当しませんか?
>
> 上記の (1) にはなっていると思いますが? 私が気づいたポスト先だけでので
> 十分ではないとは思いますが。
引用返信 編集キー/
■79045 / inTopicNo.10)  Re[7]: ウィンドウハンドルHWND型の数値化
□投稿者/ WebSurfer (854回)-(2016/03/03(Thu) 16:41:50)
No79044 (中の人の知り合い さん) に返信
> WebSurfer さん
>
> じゃあ、初めからそう書けばよかったと思いますよ。
>
> 「マルチポスト」
> と一言書いてリンク先あげるだけではおっしゃる(1)〜(3)の意図は全く伝わりません。

質問者さんが最初にマルチポストした時に以下のレスをしています。

> マルチポストはここのようなコミュニティではまず歓迎されません。理由が
> 分からなければ「マルチポスト」をキーワードのにしてググって見てください。

その時ググって調べてやり方を考えるとか、レスに対して「何故歓迎されないの
か?」とか聞けば違った展開になったと思いますが、無視してその後も何度もマ
ルチポストを繰り返す人には言っても意味はなさそうだと思いました。

これ以上このスレッドにノイズを増やしては何なので、もしマルチポストに関する
議論を続けたいのでしたら、別に新しいスレッドを立てていただくようお願いします。
引用返信 編集キー/
■79046 / inTopicNo.11)  Re[8]: ウィンドウハンドルHWND型の数値化
□投稿者/ 中の人の知り合い (3回)-(2016/03/03(Thu) 17:28:41)
WebSurfer さん

もう一度言います。

わんくま掲示板ではマルチポストは禁止されていません。

さらに、マルチポストする場合の方法も規定されていません。

WebSurferさんがやってらっしゃるのは単なる個人ルールの押しつけにすぎないと思いますよ。

なお、別スレにする方がノイズを増やすことになると思うので、別スレにはしません。
この議論を周知する必要もないと思いますので。

No79045 (WebSurfer さん) に返信
> ■No79044 (中の人の知り合い さん) に返信
>>WebSurfer さん
>>
>>じゃあ、初めからそう書けばよかったと思いますよ。
>>
>>「マルチポスト」
>>と一言書いてリンク先あげるだけではおっしゃる(1)〜(3)の意図は全く伝わりません。
>
> 質問者さんが最初にマルチポストした時に以下のレスをしています。
>
>>マルチポストはここのようなコミュニティではまず歓迎されません。理由が
>>分からなければ「マルチポスト」をキーワードのにしてググって見てください。
>
> その時ググって調べてやり方を考えるとか、レスに対して「何故歓迎されないの
> か?」とか聞けば違った展開になったと思いますが、無視してその後も何度もマ
> ルチポストを繰り返す人には言っても意味はなさそうだと思いました。
>
> これ以上このスレッドにノイズを増やしては何なので、もしマルチポストに関する
> 議論を続けたいのでしたら、別に新しいスレッドを立てていただくようお願いします。
引用返信 編集キー/
■79047 / inTopicNo.12)  Re[9]: ウィンドウハンドルHWND型の数値化
□投稿者/ なちゃ (109回)-(2016/03/03(Thu) 19:07:15)
WebSurferさんは何を言っても気に入らなければ聞く耳持たない人なので何を言っても無駄でしょうね。
他人には、掲示板を私物化するなと何度も言っておきながら、自分が自分のルールを押しつけるのは私物化とは思ってないんでしょう。

ノイズとか言い出すのもただ黙らせたいだけでしょう。
仕方なくスレッド作ってもきれいに無視されるだけですし。
自分の書き込みはノイズではなく他人の書き込みは気に入らなければノイズ扱い、ずっとそんなのですし。

この人に他人のマナーをとやかく言う資格などありませんし、そもそもここではルール違反でもない。
ちょっと私もマルチポストの一言だけの書きこみはどうかと思ってたけど、どうせ無視されるだけなのでほうっていましたが、私も概ね同意見です。

他人を中傷するようなことを書き、それに対する抗議と謝罪要求はノイズ扱いして別スレッドたてることを強要し、仕方なくたてても完全に無視し続けてるどうしようもないWebSurferさん、もうこのままのつもりですか?
引用返信 編集キー/
■79048 / inTopicNo.13)  Re[10]: ウィンドウハンドルHWND型の数値化
□投稿者/ なちゃ (110回)-(2016/03/03(Thu) 19:15:24)
他人に対しては自分の質問などに数時間反応がないだけで、無視するのは何か理由があるのですか?とか回答できない理由があるのですか?とかどういうつもりですか?とかいつもいつも執拗に追求しておいて自分はこれだ。
どうやったらこうなるんだろう。
引用返信 編集キー/
■79051 / inTopicNo.14)  Re[9]: ウィンドウハンドルHWND型の数値化
□投稿者/ 中の人の知り合い (4回)-(2016/03/03(Thu) 21:54:01)
WebSurfer さん

くどくて申し訳ないですが、誤解のないようにまとめさせてください。

1. わんくま掲示板ではマルチポストは禁止されていません。

10年近く前に管理者の中さんがわんくま掲示板の指針的なものをまとめた投稿をしています。残念ながら、その後にサーバー障害があったため、その投稿は失われてしまいましたが、その中に以下のような一文が含まれていました。
「マルチポスト禁止」と指摘すること禁止。

当時あまりにも画期的な一言だったので、鮮明に覚えています。

そうした指針は規約にはまとめられていませんし、古い話ですからWebSurfer さんがご存知なくて致し方ありませんし、そこを責めるつもりは毛頭ありません。
本掲示板の管理者は掲示板が荒れないよう、初心者が質問しやすいよう、皆が気持ち良く利用できるようといったところに最も重きを置いて運営されていることをご理解ください。

2.マルチポストする際のマナーについて

WebSurfer さんのおっしゃるように、
> でも、やるなら (1) ポスト先を全部書いて、(2) 全てのポスト先でレスをきちっと
> フォローして、(3) どこかで解決したら全てのポスト先にその旨書いて、(3) 解決
> したポスト先の URL を書くぐらいのことはするべきでは?

というのは理想だと私も思います。
しかし、マルチポストが禁止されていない以上、これらの理想を強制することは誰もできませんし、強制すること自体がわんくま掲示板においては重大なマナー違反です。

ググればマルチポスト先は簡単に判明するわけですし、後で同じ問題を抱えた人にとってもググればマルチポスト先は簡単に見つかるでしょうから、これらの対応は必須ではないとも言えます。
マルチポストされる方は往々にして早く解を得たいがためにそうしているのでしょうから、そうした手間をかける余裕がない方も多いと思います。

もし、WebSurfer さんがそれでもマルチポストの理想形を追求なさりたいのであれば、スレ主にそうしたマナーを強制するのではなく、ご自身でマルチポスト先と解答を参考として貼れば良いのではないでしょうか?
そうすればスレ主も以降はそうしようという気持ちが芽生えるかもしれません。

何れにしても個人的なマナーを他人に強制するのはスレが荒れるだけですし、重ねて言いますが、わんくま掲示板では重大なマナー違反です。

なお、この記事に対するWebSurfer さんからのお返事も強制いたしません。

ゆるふわがモットーのわんくま同盟ですから、みんな穏やかにいきましょうよ。

No79046 (中の人の知り合い さん) に返信
> WebSurfer さん
>
> もう一度言います。
>
> わんくま掲示板ではマルチポストは禁止されていません。
>
> さらに、マルチポストする場合の方法も規定されていません。
>
> WebSurferさんがやってらっしゃるのは単なる個人ルールの押しつけにすぎないと思いますよ。
>
> なお、別スレにする方がノイズを増やすことになると思うので、別スレにはしません。
> この議論を周知する必要もないと思いますので。
>
> ■No79045 (WebSurfer さん) に返信
>>■No79044 (中の人の知り合い さん) に返信
> >>WebSurfer さん
> >>
> >>じゃあ、初めからそう書けばよかったと思いますよ。
> >>
> >>「マルチポスト」
> >>と一言書いてリンク先あげるだけではおっしゃる(1)〜(3)の意図は全く伝わりません。
>>
>>質問者さんが最初にマルチポストした時に以下のレスをしています。
>>
> >>マルチポストはここのようなコミュニティではまず歓迎されません。理由が
> >>分からなければ「マルチポスト」をキーワードのにしてググって見てください。
>>
>>その時ググって調べてやり方を考えるとか、レスに対して「何故歓迎されないの
>>か?」とか聞けば違った展開になったと思いますが、無視してその後も何度もマ
>>ルチポストを繰り返す人には言っても意味はなさそうだと思いました。
>>
>>これ以上このスレッドにノイズを増やしては何なので、もしマルチポストに関する
>>議論を続けたいのでしたら、別に新しいスレッドを立てていただくようお願いします。
引用返信 編集キー/
■79055 / inTopicNo.15)  Re[10]: ウィンドウハンドルHWND型の数値化
□投稿者/ 774RR (381回)-(2016/03/04(Fri) 08:55:20)
>■79028
>□投稿者/ zatsudayoko (2回)-(2016/03/03(Thu) 08:32:20)
>■No79027 (WebSurfer さん) に返信
>> マルチポスト
>> http://qa.atmarkit.co.jp/q/9837
>
>解決しました。
>
>マルチポストを指摘する前に解決策を提示してくださいね。

マルチポストする側がこういうこと逝っちゃうのは重大なマナー違反だと思うがな。
「お客様は神様です」を客側が逝っちゃってるに等しい。

まあオイラならマルチポスト見つけたら回答する気なくなるし
(今回は dixq さんで既に答えがついていたのであえて書き込んだわけだが)
それを知った上でマルチするなら、そりゃ投稿者の判断だから何も言わないよ。

# @IT さんのところは当該質問がトップページに出ないな・・・削除されているわけではなさそう。

引用返信 編集キー/
■79056 / inTopicNo.16)  Re[11]: ウィンドウハンドルHWND型の数値化
□投稿者/ shu (826回)-(2016/03/04(Fri) 09:19:30)
No79055 (774RR さん) に返信

> # @IT さんのところは当該質問がトップページに出ないな・・・削除されているわけではなさそう。
@ITのQA掲示板はマイナス評価されると目立たなくなる仕様なのでトップに出ていないものと思われます。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -