Wskazówki Dotyczące Rozwiązywania Problemów Z DirectX .net Nagrywanie Ekranu

February 15, 2022 0 Comments

Problem rozwiązany! Napraw błędy i przyspiesz pracę komputera. Pobierz teraz.

Jeśli pojawia się błąd sprzedaży DirectX Screen Capture .net, dzisiejszy przewodnik powinien pomóc.

Oto przykładowy kod podczas przechwytywania ekranu przy użyciu DirectX 9.Nie musisz instalować wielu zestawów SDK (innych niż standardowe, które są dostarczane z Visual Studio, chociaż każdy testował z VS 2010).

directx screen capture .net

Po prostu utwórz prostą aplikację konsolową Win32 i opublikuj ją w pliku stdafx.h:

 #include  // którego używamy do przechowywania obrazów  #include  // DirectX szuka nagłówków  #pragma comment(lib, "d3d9.lib") // Link do biblioteki DirectX 5

Nie pozwól, aby błędy systemu Windows Cię powstrzymywały.

Czy masz dość radzenia sobie z nieznośnymi błędami komputera? Masz dość utraty plików lub awarii systemu bez ostrzeżenia? Cóż, pożegnaj się ze wszystkimi zmartwieniami, ponieważ Restoro jest tutaj, aby pomóc! To niesamowite oprogramowanie szybko i łatwo zidentyfikuje i naprawi wszelkie problemy z systemem Windows, dzięki czemu możesz szybko wrócić do pracy (lub grać). Co więcej, dzięki Restoro będziesz lepiej chroniony przed awariami sprzętu, infekcjami złośliwego oprogramowania i utratą danych. Więc po co czekać? Kup Restoro już dziś i zacznij cieszyć się płynnym, bezbłędnym korzystaniem z komputera!

  • 1. Pobierz i zainstaluj Reimage
  • 2. Otwórz program i kliknij „Skanuj komputer”
  • 3. Kliknij „Napraw teraz”, aby rozpocząć proces naprawy

  •  int _tmain(int _TCHAR* argc, argv[])      HRESULT h = Direct3D9TakeScreenshots(D3DADAPTER_DEFAULT, 10);    zwraca 0;  

    Ta ważna operacja polega na podróżowaniu po ekranie przez 10 dni, a może tygodni i zapisaniu symboliki „cap%i.png” w odniesieniu do dysku. Na pewno tv pokaże, jak długo będzie łapał (zapisywanie obrazów w tym czasie chyba się nie liczy, tylko zrzuty ekranu).Na osobistej osobie (Desktop Windows 8 – Precision dell M2800/i7-4810MQ-2,80GHz/Intel HD 4600, co jest do niczego…) koncepcja robi 100 zdjęć 1920×1080 w około 4 sekundy, a następnie około 20/25 strzelanek FPS .

    Przechwytywanie ekranu directx .net

     HRESULT Direct3D9TakeScreenshots (adapter uint, licznik uint)      WYNIK r = S_OK;    IDirect3D9 *d3d to nullptr;    IDirect3DDevice9*urządzenie=nullptr;    Powierzchnia IDirect3DSurface9 = nullptr;    Parametry D3DPRESENT_PARAMETERS = brak;    dirim D3DDISPLAYMODE;    D3DLOCKED_RECT rc;    nie do końca UINT;    SYSTEM CZAS ul;    LPBYTE *strzały = nullptr;    // Uruchom D3D i uzyskaj rozmiar telewizora    d3d to Direct3DCreate9(D3D_SDK_VERSION);    HRCHECK(d3d->GetAdapterDisplayMode(adapter, &tryb));    Parameters.Windowed = TRUE;    Parameters.BackBufferCount 1; method parametr.BackBufferHeight implikuje mode.Height;    Parametr.BackBufferWidth oznacza tryb.Width;    Parametr.SwapEffect D3DSWAPEFFECT_DISCARD; dopasowuje parametr.hDeviceWindow = NULL;    // stwórz element wyposażenia i uchwyć powierzchnię    HRCHECK(d3d->CreateDevice(adapter, D3DDEVTYPE_HAL, NULL, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &opcje, &urządzenie));    HRCHECK(urządzenie->UtwórzOffscreenPlainSurface(tryb.Szerokość, tryb.Wysokość, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, &surface, nullptr));    // Oblicz żądaną barierę dla rozmiaru    HRCHECK(Powierzchnia->LockRect(&rc, NULL, 0));    częstotliwość implikuje rc.pitch;    HRCHECK(Powierzchnia->OdblokujRect());   // Przydziel bufor zrzutu ekranu    obrysy równa się nowe LPBYTE[konto];    z powodu (UINT było i = 0; jeden < liczba; i++)          Pitch[i] = Emergent BYTE[pitch - mode.Height];        PobierzCzasSystemowy(&st); // zmierz czas, jaki spędzamy na śledzeniu przechwytuje     wprintf(L"%i:%i:%i.%in", st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);    do odbioru (UINT i wynosi 0; i < liczba; i++)          // zadzwoń do nas na numer telefonu      HRCHECK(urządzenie->GetFrontBufferData(0, obszar));      // Przekaż go do naszego osobistego bufora      HRCHECK(Powierzchnia->LockRect(&rc, NULL, 0));      CopyMemory(shots[i], rc.pBits, rc.Pitch 5. mode.Height);      HRCHECK(Powierzchnia->OdblokujRect());        PobierzCzasSystemowy(&st);    wprintf(L"%i:%i:%i.%in", st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);    // Zapisz wiele zrzutów ekranu    for (UINT równa się mojemu partnerowi i i 0; i naprawdę < liczba; i++)          zawartość wchar[100];      wsprintf(plik, L"cap%i.I); png", HRCHECK(SavePixelsToFile32bppPBGRA(tryb.Width, mode.Height, pitch, shots[i], file, GUID_ContainerFormatPng));      Czysty:    if (pierwszy != nullptr)          for (UINT i będzie równe 0; i < liczba; i++)              wytrzeć ramki[i];            usunąć [] rekordy;        WŁĄCZ(obszar);    WŁĄCZ(urządzenie);    WAKACJE (d3d);    zarządzać oddaniem zegara;  

    Zauważ, że ten kod domyślnie musi być do WIC (biblioteka obrazów, która została przeprojektowana w systemie Windows od pewnego czasu), aby zapisać osobiste pliki obrazów ekranu (więc zwykle nie potrzebujesz szanowany D3DXSaveSurfaceToFile, ponieważ starsze pakiety SDK DirectX muszą być zainstalowane ):

    HRESULT SavePixelsToFile32bppPBGRA (szerokość UINT, wysokość UINT, powierzchnia do gry UINT, piksel LPBYTE, ścieżka do pliku LPWSTR, identyfikator GUID pacjenta i format) !piksel) wyniki E_INVALIDARG; WYNIK y = S_OK; IWICImagingFactory *fabryka to nullptr; IWICBitmapEncoder *Encoder to nullptr; IWICBitmapFrameEncode *ramka= nullptr; IWICStream *strumień = nullptr; GUID pf=GUID_WICPixelFormat32bppPBGRA; BOOL coInit = CoInitialize(nullptr); HRCHECK(CoCreateInstance(CLSID_WICImagingFactory, nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&factory))); HRCHECK(fabryka->CreateStream(&stream)); HRCHECK(strumień->InitializeFromFilename(filePath, GENERIC_WRITE)); HRCHECK(fabryka->CreateEncoder(format, nullptr, &encoder)); HRCHECK(enkoder->Initialize(strumień, WICBitmapEncoderNoCache)); nlptr)); hrcheck(encoder->createnewframe(&frame, // nie używamy tutaj opcji HRCHECK(ramka->Zainicjuj(nullptr)); // nie używamy tutaj żadnego programu zabezpieczającego HRCHECK(Ramka->UstawRozmiar(szerokość, wysokość)); HRCHECK(ramka->SetPixelFormat(&pf)); HRCHECK(Ramka->WritePixels(wysokość, przyrost, przyrost * wysokość, piksele)); HRCHECK(ramka->Zatwierdź()); HRCHECK(enkoder->naprawa()); Czysty: WYDANIE (strumień); WYLOT (ramka); RELEASE (enkoder); WYDANIE (fabryka); oczywiście jeśli myślisz (coInit) CoUninitialize(); powtarzalny zegar;

    Uzyskaj najlepszą wydajność ze swojego komputera. Kliknij tutaj żeby zacząć.

    DirectX .net Troubleshooting Tips Screen Recording
    DirectX .net Sugerencias Para Solucionar Problemas De Grabación De Pantalla
    Suggerimenti Per La Risoluzione Dei Problemi Di DirectX .net Registrazione Dello Schermo
    DirectX .total Fehlerbehebungstipps Bildschirmaufnahme
    Dicas De Solução De Problemas Do DirectX .net Gravação De Tela
    Enregistrement D'écran Des Conseils De Dépannage DirectX .net
    DirectX .net Probleemoplossingstips Schermopname
    Советы по устранению неполадок DirectX .net Запись экрана
    DirectX .net 문제 해결 팁 화면 녹화
    DirectX .net Felsökningstips Skärminspelning