Получение Окна, которое скрыто или минимизировано

если вам разрешена библиотека панд, то

импортируйте панд как pd

df = pd.read_csv ("TipJoke.csv")

[ 114] df - это объект данных pandas, в котором вы можете выполнить несколько задач фильтрации в соответствии с вашими потребностями.

Например, если вы хотите получить данные для Шутки, вы можете отфильтровать их следующим образом:

print(df[df["Card"] == "Joke"])

Хотя я просто указываю вам направление, а не всю логику для вашего вопроса.

8
задан RichieHindle 6 May 2009 в 17:45
поделиться

2 ответа

API PrintWindow работает хорошо, я использую его для захвата миниатюр скрытых окон. Несмотря на название, оно отличается от WM_PRINT и WM_PRINTCLIENT, оно работает практически со всеми окнами, кроме окон Direct X / WPF.

Я добавил некоторый код (C #), но после просмотра того, как я использовал код, я понял, что окно на самом деле не скрыто, когда я фиксирую его растровое изображение, оно просто за пределами экрана, поэтому это может не сработать для вашего случая. Не могли бы вы показать окно за кадром, распечатать и снова спрятать его?

        public static Bitmap PrintWindow(IntPtr hwnd)
    {
        RECT rc;
        WinUserApi.GetWindowRect(hwnd, out rc);

        Bitmap bmp = new Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb);
        Graphics gfxBmp = Graphics.FromImage(bmp);
        IntPtr hdcBitmap = gfxBmp.GetHdc();
        bool succeeded = WinUserApi.PrintWindow(hwnd, hdcBitmap, 0);
        gfxBmp.ReleaseHdc(hdcBitmap);
        if (!succeeded)
        {
            gfxBmp.FillRectangle(new SolidBrush(Color.Gray), new Rectangle(Point.Empty, bmp.Size));
        }
        IntPtr hRgn = WinGdiApi.CreateRectRgn(0, 0, 0, 0);
        WinUserApi.GetWindowRgn(hwnd, hRgn);
        Region region = Region.FromHrgn(hRgn);
        if (!region.IsEmpty(gfxBmp))
        {
            gfxBmp.ExcludeClip(region);
            gfxBmp.Clear(Color.Transparent);
        }
        gfxBmp.Dispose();
        return bmp;
    }
6
ответ дан 5 December 2019 в 21:21
поделиться

Есть сообщения WM_PRINT и WM_PRINTCLIENT , которые можно отправлять в окно, что приводит к выводу его содержимого в HDC по вашему выбору.

Однако, они не идеальны: хотя стандартные элементы управления Win32 обрабатывают их правильно, любые пользовательские элементы управления в приложении могут этого не делать.

1
ответ дан 5 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: