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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■12501  Re[7]: データのチェックと登録について
□投稿者/ ミントチョコ -(2008/01/10(Thu) 15:30:05)
    No12500 (Mr.T さん) に返信

    たびたびありがとうございます。
    今回のは全て文字列なので「'」で囲むこととします。

    Parametersを利用する方法も勉強したいと思います。
記事No.12489 のレス /過去ログ27より / 関連記事表示
削除チェック/

■39565  Re[3]: PictureBoxを左右に往復するループ
□投稿者/ .SHO -(2009/08/11(Tue) 08:23:33)
    > If PictureBox1.Left = 0 Or PictureBox1.Left = Me.Width Then  '左右どちらかの端に到達したら移動方向を反転

    ↑ここが最初のコードと違う。
記事No.39496 のレス /過去ログ68より / 関連記事表示
削除チェック/

■41732  Re[2]: フォルダチェック
□投稿者/ ぬーちゃん -(2009/09/29(Tue) 13:44:26)
    No41720(774RR さん)に返信
    LIST.txtというファイルがあるかどうかをチェックしたいです。
    すみません、タイトルからもう間違えてました。
記事No.41714 のレス /過去ログ71より / 関連記事表示
削除チェック/

■57622  練習問題
□投稿者/ こな -(2011/03/07(Mon) 11:47:00)

    分類:[Java] 

    2011/03/07(Mon) 16:43:23 編集(投稿者)
    2011/03/07(Mon) 16:43:19 編集(投稿者)

    <pre><pre>ありがとうございました。</pre></pre>
親記事 /過去ログ96より / 関連記事表示
削除チェック/

■74447  直接のIWCコピー時計製造工場で
□投稿者/ IWC時計コピー -(2014/12/31(Wed) 11:57:49)
親記事 /過去ログ125より / 関連記事表示
削除チェック/

■99466  Re[6]: PrintWindowでChromeウインドウを取得する
□投稿者/ ぜん -(2022/04/14(Thu) 20:29:30)
    ありがとうございます。
    しかしやはりVBを使いたいと考えています。
    上記のサイトによると
    #if(_WIN32_WINNT >= 0x0603)
    #define PW_RENDERFULLCONTENT 0x00000002
    #endif /* _WIN32_WINNT >= 0x0603 */

    でうまくいくと書かれていると思うのですが、
    これってどこで使っているのでしょうか?

    また、DWM Thumbnail APIでもできそうなことが書かれてあるのですが
    これはどうやって使えば良いですか?
    検索してもいまいち使い方が分かりませんでした。
記事No.99458 のレス /過去ログ173より / 関連記事表示
削除チェック/

■99469  Re[7]: PrintWindowでChromeウインドウを取得する
□投稿者/ radian -(2022/04/15(Fri) 07:22:33)
    No99466 (ぜん さん) に返信
    > ありがとうございます。
    > しかしやはりVBを使いたいと考えています。
    > 上記のサイトによると
    > #if(_WIN32_WINNT >= 0x0603)
    > #define PW_RENDERFULLCONTENT 0x00000002
    > #endif /* _WIN32_WINNT >= 0x0603 */
    >
    > でうまくいくと書かれていると思うのですが、
    > これってどこで使っているのでしょうか?

    C++のヘッダで定義されてる内容だと思いますが。
    試しにPrintWindowのnFlagsに2指定してみたらキャプチャできたんで、やってみればよいのでは?
記事No.99458 のレス /過去ログ173より / 関連記事表示
削除チェック/

■99472  Re[1]: PrintWindowでChromeウインドウを取得する
□投稿者/ 魔界の仮面弁士 -(2022/04/15(Fri) 10:47:26)
    No99458 (ぜん さん) に返信
    > しかし、Chrome以外のウインドウだとうまくいくのですが
    > Chromeだけは、画像が真っ暗になってしまいます。

    対象のウィンドウは "Chrome_WidgetWin_1" クラスですか?


    No99466 (ぜん さん) に返信
    > また、DWM Thumbnail APIでもできそうなことが書かれてあるのですが
    > これはどうやって使えば良いですか?
    > 検索してもいまいち使い方が分かりませんでした。
    そうですか? 使い方の説明なら、すぐに出てきましたよ。
    使う関数もそう多くは無いですし。
    https://docs.microsoft.com/ja-jp/windows/win32/dwm/thumbnail-ovw


    Option Strict On
    Imports System.Runtime.InteropServices

    Public Class Form1
      Private ThumbnailId As IntPtr = IntPtr.Zero
      Private Function GetChromeHandle() As IntPtr
       Throw New NotImplementedException("取得対象の HWND を取得するコードをここに記述")
      End Function

      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Button1.Text = "描画開始"
      End Sub
      Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        If ThumbnailId <> IntPtr.Zero Then
          DwmUnregisterThumbnail(ThumbnailId)
          ThumbnailId = IntPtr.Zero
        End If
      End Sub

      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If ThumbnailId = IntPtr.Zero Then
          Dim chromeHandle As IntPtr = GetChromeHandle()
          DwmRegisterThumbnail(Me.Handle, chromeHandle, ThumbnailId)
          UpdateThumbnail()
          Button1.Text = $"描画停止:{ThumbnailId}"
        Else
          DwmUnregisterThumbnail(ThumbnailId)
          ThumbnailId = IntPtr.Zero
          Button1.Text = "描画開始"
        End If
      End Sub

      Private Sub UpdateThumbnail()
        If ThumbnailId <> IntPtr.Zero Then
          Dim rect = Me.RectangleToClient(PictureBox1.RectangleToScreen(PictureBox1.ClientRectangle))
          DwmUpdateThumbnailProperties(ThumbnailId, New DWM_THUMBNAIL_PROPERTIES(rect, False))
        End If
      End Sub


    #Region "DWM サムネイル API"
      Private Declare Auto Function DwmRegisterThumbnail Lib "dwmapi" (hwndDestination As IntPtr, hwndSource As IntPtr, <Out> ByRef phThumbnailId As IntPtr) As Integer
      Private Declare Auto Function DwmUpdateThumbnailProperties Lib "dwmapi" (hThumbnailId As IntPtr, <[In]> ptnProperties As DWM_THUMBNAIL_PROPERTIES) As Integer
      Private Declare Auto Function DwmUnregisterThumbnail Lib "dwmapi" (hThumbnailId As IntPtr) As Integer
      <StructLayout(LayoutKind.Sequential)>
      Public Structure RECT
        Public left As Integer, top As Integer, right As Integer, bottom As Integer
        Public Shared Widening Operator CType(r As RECT) As Rectangle
          Return Rectangle.FromLTRB(r.left, r.top, r.right, r.bottom)
        End Operator
        Public Shared Widening Operator CType(r As Rectangle) As RECT
          Return New RECT With {.left = r.Left, .top = r.Top, .right = r.Right, .bottom = r.Bottom}
        End Operator
      End Structure
      <Flags>
      Private Enum DWM_TNP As UInteger
        None = 0
        RectDestination = &H1UI
        RectSource = &H2UI
        Opacity = &H4UI
        Visible = &H8UI
        SourceClientAreaOnly = &H10UI
      End Enum
      <StructLayout(LayoutKind.Sequential)>
      Private Class DWM_THUMBNAIL_PROPERTIES
        Public dwFlags As DWM_TNP = DWM_TNP.None
        Public rcDestination As RECT
        Public rcSource As RECT
        Public opacity As Byte = 255
        <MarshalAs(UnmanagedType.Bool)> Public fVisible As Boolean = False
        <MarshalAs(UnmanagedType.Bool)> Public fSourceClientAreaOnly As Boolean = False
        Public Sub New()
        End Sub
        Public Sub New(destination As Rectangle, clientOnly As Boolean)
          dwFlags = DWM_TNP.RectDestination Or DWM_TNP.SourceClientAreaOnly
          rcDestination = destination
          fSourceClientAreaOnly = clientOnly
        End Sub
      End Class
    #End Region
    End Class
記事No.99458 のレス /過去ログ173より / 関連記事表示
削除チェック/

■99474  Re[2]: PrintWindowでChromeウインドウを取得する
□投稿者/ 魔界の仮面弁士 -(2022/04/15(Fri) 13:40:07)
    2022/04/15(Fri) 13:53:51 編集(投稿者)

    No99472 (魔界の仮面弁士) に追記
    > ■No99466 (ぜん さん) に返信
    >>また、DWM Thumbnail APIでもできそうなことが書かれてあるのですが
    >>これはどうやって使えば良いですか?
    >>検索してもいまいち使い方が分かりませんでした。
    > そうですか? 使い方の説明なら、すぐに出てきましたよ。
    > 使う関数もそう多くは無いですし。

    すみません。質問の意図を勘違いしていました。


    サムネイルを取得したいわけではなく、あくまでも「スクリーンショット」が目的なので、
    恐らくはそれを画像として保存する必要があるのですよね。
    (クリップボードに送るのか、ファイルとして保持するのかはさておき)


    DWM でサムネイルを得る方法の場合、撮影対象のアプリは背面表示でも構いませんが、
    撮影結果は HDC でなく、トップレベルウィンドウの HWND を指定する方法であるため、
    そのサムネイルを、画像として直接保存する手段が無さそうですね…。

    二次転写でも構わないのであれば、Graphics.CopyFromScreen あるいは BitBlt で、
    サムネイルを再撮影するという手が一応あります。
    (二次転写ゆえ、サムネイルを表示中のウィンドウを可視状態にしておく必要あり)
    https://dobon.net/vb/dotnet/graphics/screencapture.html


    (1) 一瞬だけ前面に持ってきてから撮影する案
    (2) PrintWindow(hwnd, hdc, PW_RENDERFULLCONTENT) 案
    (3) Selenium 案(WebDriver の ITakesScreenshot インターフェイス)
    (4) DWM Thumbnail 後に二次転写案
記事No.99458 のレス /過去ログ173より / 関連記事表示
削除チェック/

■100902  テスト
□投稿者/ あ -(2022/11/21(Mon) 10:37:49)

    分類:[.NET 全般] 

    テスト
親記事 /過去ログ175より / 関連記事表示
削除チェック/

■101490  Re[4]: SQLServerのMERGE文のパフォーマンスについて
□投稿者/ KOZ -(2023/03/05(Sun) 14:37:41)
    2023/03/05(Sun) 14:38:19 編集(投稿者)

    No101487 (ぼぼ さん) に返信
    > 中間テーブルに10件更新
    > ◆DELETE→INSERT
    > @DELETE
    > A10件INSERT
    >
    > ◆MERGE
    > @全件UPDATE(削除フラグOFFとか)
    > A10件MERGE(実質x2)

    比較するとしたら、

    ◆DELETE→INSERT
    @ 10件分のキーを指定して DELETE
    A 10件INSERT

    ◆MERGE
    @ 10件MERGE

    では?

    No101488 (ぼぼ さん) に返信
    > すみません。Merge文ってそもそも2つのテーブルを比較して入れるんですね。

    CREATE TABLE HOGE(ITEM1 VARCHAR(2), ITEM2 VARCHAR(2))
    というテーブルがあったとして

    MERGE HOGE AS A
    USING (SELECT 1 AS DUMMY) AS B ON A.ITEM1 = 'A'
    WHEN MATCHED
    THEN UPDATE SET ITEM2 = 'C'
    WHEN NOT MATCHED BY TARGET
    THEN INSERT (ITEM1, ITEM2) VALUES ('A', 'B')

    のように書けます。
記事No.101484 のレス /過去ログ177より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -