截取特定应用程序的屏幕截图

user3197401

我正在尝试获取桌面中特定区域(应用程序)的屏幕截图。请检查此代码...

        try
        {
            //Process p = Process.Start("notepad");
            //Process p = Process.GetProcessById(11152);
            if (p == null)
                Console.WriteLine("Got Null");
            else
            {
            IntPtr h = p.Handle;
            SetForegroundWindow(h);
            ShowWindow(h, 9);
            Rect rect = new Rect();
            IntPtr error = GetWindowRect(p.MainWindowHandle, ref rect);
            while (error == (IntPtr)0)
            {
                error = GetWindowRect(p.MainWindowHandle, ref rect);
            }
            Thread.Sleep(2000);
            int width = rect.right - rect.left;
            int height = rect.bottom - rect.top;
            System.IO.FileStream fs = System.IO.File.Create(@"D:\snapshot.jpg");
            Bitmap bitmap = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
            Graphics.FromImage(bitmap).CopyFromScreen(rect.left, rect.top, 0, 0, new Size(width, height), CopyPixelOperation.SourceCopy);
            bitmap.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
            fs.Close();
            bitmap.Dispose();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }

我在这个方法之外有这个..

    [DllImport("user32.dll")]
    private static extern bool SetForegroundWindow(IntPtr hWnd);
    [DllImport("user32.dll")]
    private static extern bool IsIconic(IntPtr hWnd);
    [DllImport("user32.dll")]
    private static extern IntPtr GetForegroundWindow();
    [DllImport("user32.dll")]
    private static extern IntPtr ShowWindow(IntPtr hWnd, int nCmdShow);
    [DllImport("user32.dll")]
    public static extern IntPtr GetWindowRect(IntPtr hWnd, ref Rect rect);

    [StructLayout(LayoutKind.Sequential)]
    public struct Rect
    {
        public int left;
        public int top;
        public int right;
        public int bottom;
    }

当我尝试打开一个新的应用程序并尝试截取屏幕截图(例如本例中的记事本)时,它就像一个超级按钮。但是,当我尝试拍摄当前正在运行的应用程序(如任务管理器等)的屏幕截图时,它不起作用(我仍然得到一个黑色小矩形的图像)..请帮助我。

沙美尔

改变

IntPtr h = p.Handle;

IntPtr h = p.MainWindowHandle;

并检查。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从全屏Qt快速应用程序中截取屏幕截图

来自分类Dev

从全屏Qt快速应用程序中截取屏幕截图

来自分类Dev

如何截取dash、hud和应用程序菜单的屏幕截图?

来自分类Dev

使用 fastlane 截取我的 React-Native 应用程序的屏幕截图

来自分类Dev

如何在 ReactJS android 应用程序中以编程方式截取屏幕截图?

来自分类Dev

拍摄Mac上特定应用程序窗口的屏幕截图

来自分类Dev

拍摄Mac上特定应用程序窗口的屏幕截图

来自分类Dev

截取特定布局的屏幕截图

来自分类Dev

如何在android studio中截取屏幕截图或将我的片段应用程序保存为图像

来自分类Dev

如何在没有透明 CSD 边框的情况下截取 Gnome 应用程序的屏幕截图?

来自分类Dev

截取屏幕特定部分的屏幕截图

来自分类Dev

在全屏应用程序中防止屏幕截图(打印屏幕)

来自分类Dev

截取UIPickerView的屏幕截图

来自分类Dev

当我的应用程序位于前台时是否可以截取截图事件

来自分类Dev

C#拍摄WPF应用程序的屏幕截图

来自分类Dev

如何使用QTP拍摄应用程序的屏幕截图?

来自分类Dev

Android拍摄我的应用程序活动的屏幕截图

来自分类Dev

如何制作Tkinter应用程序的屏幕截图?

来自分类Dev

屏幕截图何时用于应用程序抽屉?

来自分类Dev

屏幕截图非活动的外部应用程序

来自分类Dev

通过shell脚本捕获终端应用程序的屏幕截图?

来自分类Dev

WinJS以编程方式获取应用程序的屏幕截图

来自分类Dev

C#拍摄WPF应用程序的屏幕截图

来自分类Dev

如何创建屏幕截图查看器应用程序?

来自分类Dev

无法在Android上运行的Kivy应用中截取屏幕截图

来自分类Dev

无法在Android上运行的Kivy应用中截取屏幕截图

来自分类Dev

cefpython截取当前html的屏幕截图(可选:特定元素)

来自分类Dev

Swift 3 - 如何截取特定 UITableView 行的屏幕截图

来自分类Dev

从Google Play商店获取应用程序详细信息,应用程序图标,应用程序屏幕截图

Related 相关文章

  1. 1

    从全屏Qt快速应用程序中截取屏幕截图

  2. 2

    从全屏Qt快速应用程序中截取屏幕截图

  3. 3

    如何截取dash、hud和应用程序菜单的屏幕截图?

  4. 4

    使用 fastlane 截取我的 React-Native 应用程序的屏幕截图

  5. 5

    如何在 ReactJS android 应用程序中以编程方式截取屏幕截图?

  6. 6

    拍摄Mac上特定应用程序窗口的屏幕截图

  7. 7

    拍摄Mac上特定应用程序窗口的屏幕截图

  8. 8

    截取特定布局的屏幕截图

  9. 9

    如何在android studio中截取屏幕截图或将我的片段应用程序保存为图像

  10. 10

    如何在没有透明 CSD 边框的情况下截取 Gnome 应用程序的屏幕截图?

  11. 11

    截取屏幕特定部分的屏幕截图

  12. 12

    在全屏应用程序中防止屏幕截图(打印屏幕)

  13. 13

    截取UIPickerView的屏幕截图

  14. 14

    当我的应用程序位于前台时是否可以截取截图事件

  15. 15

    C#拍摄WPF应用程序的屏幕截图

  16. 16

    如何使用QTP拍摄应用程序的屏幕截图?

  17. 17

    Android拍摄我的应用程序活动的屏幕截图

  18. 18

    如何制作Tkinter应用程序的屏幕截图?

  19. 19

    屏幕截图何时用于应用程序抽屉?

  20. 20

    屏幕截图非活动的外部应用程序

  21. 21

    通过shell脚本捕获终端应用程序的屏幕截图?

  22. 22

    WinJS以编程方式获取应用程序的屏幕截图

  23. 23

    C#拍摄WPF应用程序的屏幕截图

  24. 24

    如何创建屏幕截图查看器应用程序?

  25. 25

    无法在Android上运行的Kivy应用中截取屏幕截图

  26. 26

    无法在Android上运行的Kivy应用中截取屏幕截图

  27. 27

    cefpython截取当前html的屏幕截图(可选:特定元素)

  28. 28

    Swift 3 - 如何截取特定 UITableView 行的屏幕截图

  29. 29

    从Google Play商店获取应用程序详细信息,应用程序图标,应用程序屏幕截图

热门标签

归档