none
Problema com captura de tela após atualização do Windows 10 Pro Build 16299.X RRS feed

  • Pergunta

  • Olá, após o windows 10 pro atualizar para a versão 10.0.16299.X o meu código abaixo parou de funcionar:

    IntPtr = Process.GetProcessByName("memu")[0].MainWindowHandle;
    RECT rc;
    GetClientRect(hwnd, out rc);
    
    IntPtr hdcFrom = GetDC(hwnd);
    IntPtr hdcTo = CreateCompatibleDC(hdcFrom);
    
    int Width = rc.right;
    int Height = rc.bottom;
    
    Bitmap bmp = null;
    
    IntPtr hBitmap = CreateCompatibleBitmap(hdcFrom, Width, Height);
    if (hBitmap != IntPtr.Zero) {
       IntPtr hLocalBitmap = SelectObject(hdcTo, hBitmap);
    
       BitBlt(hdcTo, 0, 0, Width, Height, hdcFrom, 0, 0, CopyPixelOperation.SourceCopy);
       SelectObject(hdcTo, hLocalBitmap);
    
       DeleteDC(hdcTo);
       ReleaseDC(hwnd, hdcFrom);
    
       bmp = Image.FromHbitmap(hBitmap);
       DeleteObject(hBitmap);
       return bmp;
    }

    Em todas as outras versões do Windows o código funciona perfeitamente, tanto no Windows 10 1709, no Windows 10 Pro antes da build 16299, como no Windows 7, etc.

    Ele está agindo como se eu desativasse o "Aero Mode" do windows 7, está capturando a tela errada. Como isso só acontece nessa build específica do Windows 10 Pro, não sei se é um bug e deve ser reportado, ou se algo em específico mudou.

    Então, caso alguém conseguir me ajudar ficarei muito agradecido.

    Obrigado!

    sexta-feira, 22 de dezembro de 2017 12:49

Todas as Respostas

  • Olá,

    Esse código c++? se sim poderia mudar para o fórum de c++ ou se quiser eu movo para lá.

    att.

    sexta-feira, 22 de dezembro de 2017 16:11
    Moderador
  • Olá,

    Esse código c++? se sim poderia mudar para o fórum de c++ ou se quiser eu movo para lá.

    att.

    Não é C++, é um acesso a uma API do windows que acredito que seja da GDI32. 

    Temos alguns recursos que são limitados nativamente no .NET e as vezes precisamos acessar API's do Windows!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Senior Developer C#
    Development Leader at JAMSOFT Informática
    Microsoft Certified Professional
    Criador e Mantenedor do EntityFramework Core for Firebird
    Contribuidor do EntityFramework Core
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter


    sábado, 23 de dezembro de 2017 23:38
  • Olá,

    Esse código c++? se sim poderia mudar para o fórum de c++ ou se quiser eu movo para lá.

    att.

    Não, o código é em C#, mas o problema é relacionado na verdade com o Windows 10 Pro build 16299
    terça-feira, 26 de dezembro de 2017 23:09
  • Olá,

    Esse código c++? se sim poderia mudar para o fórum de c++ ou se quiser eu movo para lá.

    att.

    Não, o código é em C#, mas o problema é relacionado na verdade com o Windows 10 Pro build 16299

    Conseguiu algum progresso maozao?

    Dê uma olhada aqui se houve alteração para isso:

    https://docs.microsoft.com/en-us/windows/uwp/whats-new/windows-10-build-16299-api-diff


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    terça-feira, 26 de dezembro de 2017 23:38