C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
ログ内検索
キーワードを複数指定する場合は 半角スペース で区切ってください。
検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
[返信]をクリックすると返信ページへ移動します。
キーワード
/
検索条件
/
(AND)
(OR)
検索範囲
/
(現在のログ)
(全過去ログ)
(過去ログ1)
(過去ログ2)
(過去ログ3)
(過去ログ4)
(過去ログ5)
(過去ログ6)
(過去ログ7)
(過去ログ8)
(過去ログ9)
(過去ログ10)
(過去ログ11)
(過去ログ12)
(過去ログ13)
(過去ログ14)
(過去ログ15)
(過去ログ16)
(過去ログ17)
(過去ログ18)
(過去ログ19)
(過去ログ20)
(過去ログ21)
(過去ログ22)
(過去ログ23)
(過去ログ24)
(過去ログ25)
(過去ログ26)
(過去ログ27)
(過去ログ28)
(過去ログ29)
(過去ログ30)
(過去ログ31)
(過去ログ32)
(過去ログ33)
(過去ログ34)
(過去ログ35)
(過去ログ36)
(過去ログ37)
(過去ログ38)
(過去ログ39)
(過去ログ40)
(過去ログ41)
(過去ログ42)
(過去ログ43)
(過去ログ44)
(過去ログ45)
(過去ログ46)
(過去ログ47)
(過去ログ48)
(過去ログ49)
(過去ログ50)
(過去ログ51)
(過去ログ52)
(過去ログ53)
(過去ログ54)
(過去ログ55)
(過去ログ56)
(過去ログ57)
(過去ログ58)
(過去ログ59)
(過去ログ60)
(過去ログ61)
(過去ログ62)
(過去ログ63)
(過去ログ64)
(過去ログ65)
(過去ログ66)
(過去ログ67)
(過去ログ68)
(過去ログ69)
(過去ログ70)
(過去ログ71)
(過去ログ72)
(過去ログ73)
(過去ログ74)
(過去ログ75)
(過去ログ76)
(過去ログ77)
(過去ログ78)
(過去ログ79)
(過去ログ80)
(過去ログ81)
(過去ログ82)
(過去ログ83)
(過去ログ84)
(過去ログ85)
(過去ログ86)
(過去ログ87)
(過去ログ88)
(過去ログ89)
(過去ログ90)
(過去ログ91)
(過去ログ92)
(過去ログ93)
(過去ログ94)
(過去ログ95)
(過去ログ96)
(過去ログ97)
(過去ログ98)
(過去ログ99)
(過去ログ100)
(過去ログ101)
(過去ログ102)
(過去ログ103)
(過去ログ104)
(過去ログ105)
(過去ログ106)
(過去ログ107)
(過去ログ108)
(過去ログ109)
(過去ログ110)
(過去ログ111)
(過去ログ112)
(過去ログ113)
(過去ログ114)
(過去ログ115)
(過去ログ116)
(過去ログ117)
(過去ログ118)
(過去ログ119)
(過去ログ120)
(過去ログ121)
(過去ログ122)
(過去ログ123)
(過去ログ124)
(過去ログ125)
(過去ログ126)
(過去ログ127)
(過去ログ128)
(過去ログ129)
(過去ログ130)
(過去ログ131)
(過去ログ132)
(過去ログ133)
(過去ログ134)
(過去ログ135)
(過去ログ136)
(過去ログ137)
(過去ログ138)
(過去ログ139)
(過去ログ140)
(過去ログ141)
(過去ログ142)
(過去ログ143)
(過去ログ144)
(過去ログ145)
(過去ログ146)
(過去ログ147)
(過去ログ148)
(過去ログ149)
(過去ログ150)
(過去ログ151)
(過去ログ152)
(過去ログ153)
(過去ログ154)
(過去ログ155)
(過去ログ156)
(過去ログ157)
(過去ログ158)
(過去ログ159)
(過去ログ160)
(過去ログ161)
(過去ログ162)
(過去ログ163)
(過去ログ164)
(過去ログ165)
(過去ログ166)
(過去ログ167)
(過去ログ168)
(過去ログ169)
(過去ログ170)
(過去ログ171)
(過去ログ172)
(過去ログ173)
(過去ログ174)
(過去ログ175)
(過去ログ176)
(過去ログ177)
(過去ログ178)
(過去ログ179)
強調表示
/
ON
(自動リンクOFF)
結果表示件数
/
20件
30件
40件
50件
100件
記事No検索
/
ON
大文字と小文字を区別する
全過去ログを検索
ヒット / 29件
(21-29 を表示)
<<
0
|
1
>>
■99481
Re[5]: PrintWindowでChromeウインドウを取得する
□投稿者/ 魔界の仮面弁士 -
(2022/04/15(Fri) 20:48:01)
■
No99478
(ぜん さん) に返信
> nflagsにはPW_CLIENTONLYのオプションしかないように思えたのですが
> 他にオプションがあったのですね。
PrintWindow API は XP/2003 からの機能で、
PW_CLIENTONLY は Windows 8.1 で追加されたオプションですね。
現時点ではドキュメントに記載のない隠しフラグになります。
> オプションを使い分ければもっと良い動作ができるのではないかと思い
0 だとウィンドウ全体、
1 だとクライアント領域のみ(PW_CLIENTONLY)
2 がフルコンテキスト(PW_RENDERFULLCONTENT)のようですが、そのほかに
3 を渡すこともできるみたいですね。undocumented ゆえ詳細は不明ですが。
上記以外の値を渡した時は、当方環境では戻り値が FALSE となりました。
※エラー 87 (パラメーターが間違っています。)
記事No.99458 のレス /過去ログ173より /
関連記事表示
削除チェック/
■99483
Re[6]: PrintWindowでChromeウインドウを取得する
□投稿者/ 魔界の仮面弁士 -
(2022/04/15(Fri) 21:12:17)
2022/04/15(Fri) 21:13:57 編集(投稿者)
■
No99481
(魔界の仮面弁士) に追記
>>オプションを使い分ければもっと良い動作ができるのではないかと思い
> 0 だとウィンドウ全体、
> 1 だとクライアント領域のみ(PW_CLIENTONLY)
> 2 がフルコンテキスト(PW_RENDERFULLCONTENT)のようですが、そのほかに
> 3 を渡すこともできるみたいですね。undocumented ゆえ詳細は不明ですが。
https://docs.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-printwindow
によれば
By default, the entire window is copied.
既定ではウィンドウ全体がコピーされる。
とあり、PW_CLIENTONLY を指定した場合は
Only the client area of the window is copied to hdcBlt.
ウィンドウのクライアント領域のみがhdcBltにコピーされる。
とあることから、1 (PW_CLIENTONLY) だけでなく 0 も有効であると読み取ることができます。
2 (PW_RENDERFULLCONTENT) は、WinUser.h の記載から、
PrintWindow に渡せるのだと推察できますが、このフラグの意味は、
現時点において、明確に文書化されてはいないようです。
3 については、当方で実際に試してみたら動いた、という状況です。
メモ帳で試した場合、1 と 3 は、共に「クライアント領域」を描画しました。
Chrome の場合は、タイトルバー部にタブを重ねているので、
ウィンドウ全体の撮影なのかクライアント領域の撮影なのか区別し辛いですが
手元の環境では、2 と 3 の内容がほぼ同じになりました。
しかし、たまに違う結果になるウィンドウもありました。謎。
0 = 黒一色(0x000000)。稀に、左端と下端に、ビジュアル スタイルのウィンドウ枠が現れる事もある。
1 = 黒一色。
2 = 0 でウィンドウ枠が出ていた場合は、左端に黒い余白が入る。
3 = 2 を指定したようなズレは生じず、全体が綺麗に描画された。
記事No.99458 のレス /過去ログ173より /
関連記事表示
削除チェック/
■99485
Re[7]: PrintWindowでChromeウインドウを取得する
□投稿者/ 魔界の仮面弁士 -
(2022/04/15(Fri) 21:51:45)
■
No99483
(魔界の仮面弁士) に追記
> Chrome の場合は、タイトルバー部にタブを重ねているので、
> ウィンドウ全体の撮影なのかクライアント領域の撮影なのか区別し辛いですが
> 手元の環境では、2 と 3 の内容がほぼ同じになりました。
> しかし、たまに違う結果になるウィンドウもありました。謎。
>
> 0 = 黒一色(0x000000)。稀に、左端と下端に、ビジュアル スタイルのウィンドウ枠が現れる事もある。
> 1 = 黒一色。
> 2 = 0 でウィンドウ枠が出ていた場合は、左端に黒い余白が入る。
> 3 = 2 を指定したようなズレは生じず、全体が綺麗に描画された。
参考までに、フラグ 0〜4 に変化させて Chrome を撮影した結果を載せておきます。
前半は通常サイズのウィンドウで、後半は最小化されている状態で PrintWindow したものです。
https://www.vb-user.net/junk/replySamples/2022.04.15.21.45/PrintWindow.apng
※PNG アニメで保存しているので、IE 以外のブラウザで見てください。
記事No.99458 のレス / END /過去ログ173より /
関連記事表示
削除チェック/
■99480
Re[5]: PrintWindowでChromeウインドウを取得する
□投稿者/ ぜん -
(2022/04/15(Fri) 20:36:43)
https://jpdebug.com/p/117894
これを見ると
二つしかオプションなさそうですね。
どうもありがとうございました。
記事No.99458 のレス / END /過去ログ173より /
関連記事表示
削除チェック/
■99482
Re[6]: PrintWindowでChromeウインドウを取得する
□投稿者/ ぜん -
(2022/04/15(Fri) 20:53:50)
ありがとうございます。
気になっているのですが
オプション0と1って違うものなのでしょうか?
https://jpdebug.com/p/117894
このページでは
"Only the client area of the window is copied to hdcBlt. By default, the entire window is copied.")]
と書かれてありますが、
デフォルトの設定だと1を選んだとしてもウインドウ全体を取得することになるが、
何か設定するとクライアント領域のみを取得できるという意味なのでしょうか??
記事No.99458 のレス /過去ログ173より /
関連記事表示
削除チェック/
■99484
Re[7]: PrintWindowでChromeウインドウを取得する
□投稿者/ ぜん -
(2022/04/15(Fri) 21:40:22)
文書化されていないオプションが存在するのですね。
ユーザーがどうやって発見したのか気になりますね。
どうもありがとうございました。
記事No.99458 のレス / END /過去ログ173より /
関連記事表示
削除チェック/
■99486
Re[8]: PrintWindowでChromeウインドウを取得する
□投稿者/ ぜん -
(2022/04/15(Fri) 22:22:43)
2よりも謎の設定の3の方が
黒い枠が入らないのでベターということなのですね。
ちなみに2で撮った時の画像で左端に黒い帯が出るのはなぜなのでしょうか?
> 2 = 0 でウィンドウ枠が出ていた場合は、左端に黒い余白が入る。
ここのウインドウ枠が出ていた場合、
というのは別のウインドウがオーバーラップしていた場合という意味ですか?
記事No.99458 のレス /過去ログ173より /
関連記事表示
削除チェック/
■99506
Re[9]: PrintWindowでChromeウインドウを取得する
□投稿者/ 魔界の仮面弁士 -
(2022/04/20(Wed) 02:38:31)
■
No99486
(ぜん さん) に返信
> 2よりも謎の設定の3の方が
> 黒い枠が入らないのでベターということなのですね。
どうでしょうね。現時点では undocumented なので、ベターかどうかは誰も保証できないと思います。
try & error で、結果から自己判断するしかないところですが、そもそも再現手順すら明確ではなく…。
当方環境では、対 Chrome に「0」を指定した時に、ビジュアル スタイルのウィンドウ枠が現れる事があり、
その状況下においては、「2」よりも「3」の方が有効な結果が得られています。
しかし、同じ PC 上の Chrome でも、「0」でそのようなウィンドウ枠が出ないこともあり、
その場合は「2」と「3」に違いがみられません。
自分の環境の Chrome では、 2 と 3 が同じ結果になることの方が多かったですが、
先に書いたように、2 と 3 が違う結果になることもあるんですよね…。
また、Chrome ではなくメモ帳(notepad)を相手にした場合にはさらに状況が変わり、
「1」と「3」が同じ内容で、「2」とは異なる結果になっていたりもします。
謎ですね。
> ちなみに2で撮った時の画像で左端に黒い帯が出るのはなぜなのでしょうか?
先の動画でいうと、0 に映り込んだ枠線部に相当しているように見えますね。
https://www.vb-user.net/junk/replySamples/2022.04.15.21.45/PrintWindow.apng
>>2
= 0 でウィンドウ枠が出ていた場合は、左端に黒い余白が入る。
> ここのウインドウ枠が出ていた場合、
> というのは別のウインドウがオーバーラップしていた場合という意味ですか?
他のウィンドウとの重なり合わせは関係なかったですね。
枠が撮影される Chrome インスタンスと、
枠が撮影されない Chrome インスタンスの差は発見できませんでしたし、
どのように起動すると、その違いが生じるのかも現時点では不明です。
記事No.99458 のレス /過去ログ173より /
関連記事表示
削除チェック/
■99507
Re[10]: PrintWindowでChromeウインドウを取得する
□投稿者/ radian -
(2022/04/20(Wed) 09:07:24)
■
No99506
(魔界の仮面弁士 さん) に返信
> ■
No99486
(ぜん さん) に返信
>>2
よりも謎の設定の3の方が
>>黒い枠が入らないのでベターということなのですね。
>
> どうでしょうね。現時点では undocumented なので、ベターかどうかは誰も保証できないと思います。
> try & error で、結果から自己判断するしかないところですが、そもそも再現手順すら明確ではなく…。
テスト可能な特定PCでしか使わない前提ならいいんですが、
不特定多数に配布する前提だとドキュメントにもSDKのヘッダにも無いオプションを指定するのは
ちょっと怖い気はしますね。
記事No.99458 のレス /過去ログ173より /
関連記事表示
削除チェック/
<前の20件
<<
0
|
1
>>
パスワード/
-
Child Tree
-