tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^8: クリップボードに自動保存
投稿日: 2006/03/22(Wed) 22:07
投稿者POD
YASさんいろいろ調べてみた結果、CreateObject("Shell.Application").ToggleDesktop()とい
う1文でデ
スクトップ画面の表示ができるようです。但し、完全にデスクトップが表示される前にコピーがとられ

ようで毎回タイミングによりクリップボードにコピーされる画像が違ってしまいます。CreateObject
("Shell.Application").ToggleDesktop()の後にウェイトをかませる。もしくは完全にデスク
トップが表
示されるまで後の処理を行わないようにできればいいのですが......
なにぶんあまり経験がありませんのでこのようにしたらプログラミングがもっとすっきりする等のアド

イスがあればお願いします。


    Private Sub CheckBox5_MouseClick(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles CheckBox5.MouseClick

        If CheckBox5.Checked = True Then

            Dim WndState As FormWindowState = Me.WindowState
            Me.WindowState = FormWindowState.Minimized
            Me.ShowInTaskbar = False

            CreateObject("Shell.Application").ToggleDesktop()

            Dim ScreenSize As Size = Screen.PrimaryScreen.Bounds.Size
            Using Bmp As New Bitmap(ScreenSize.Width, ScreenSize.Height)
                Using G As Graphics = Graphics.FromImage(Bmp)
                    G.CopyFromScreen(0, 0, 0, 0, ScreenSize)
                    Clipboard.SetImage(Bmp)
                End Using
            End Using

            Dim iData As IDataObject = Clipboard.GetDataObject()
            'クリップボードにBMPファイルがあれば
            'WorkCopyPath="C:\WINDOWS\TEMP\DiskTop.jpeg"に保存
            If iData.GetDataPresent(DataFormats.Bitmap) Then
                Dim img As System.Drawing.Image = iData.GetData(DataFormats.Bitmap, True)
                'Jpeg 形式で保存
                img.Save(WorkCopyPath, System.Drawing.Imaging.ImageFormat.Jpeg)
            End If

            Me.WindowState = WndState
            Me.ShowInTaskbar = True

        End If

    End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。