В Windows можно включать библиотеку окон и использовать "Сон (0)"; спать программа. Это принимает значение, которое представляет миллисекунды.
Если Вы окна использования 10, существует OCR API. никакая потребность установить что-либо.
материал очень тверд разобраться в нем. документация была очень не легка работать с.
, Но я разобрался в нем.
Вот простая функция, которые используют механизм Windows 10 OCR API:
// For the Windows 10 OCR API
#include "winrt/Windows.Storage.Streams.h"
#include "winrt/Windows.Graphics.Imaging.h"
#include "winrt/Windows.Media.Ocr.h"
#include "winrt/Windows.Networking.Sockets.h"
#include "winrt/Windows.Globalization.h"
#pragma comment(lib, "pathcch")
#pragma comment(lib,"windowsapp.lib")
std::string ExtractTextFromImage(byte* pixels, int xSize, int ySize)
{
using namespace winrt;
Windows::Globalization::Language lang = Windows::Globalization::Language(L"en");
Windows::Media::Ocr::OcrEngine engine = Windows::Media::Ocr::OcrEngine::TryCreateFromLanguage(lang);
//OcrEngine engine = OcrEngine::TryCreateFromUserProfileLanguages();
int pixels_size = xSize * ySize * 4;
Windows::Storage::Streams::InMemoryRandomAccessStream stream = { 0 };
Windows::Storage::Streams::DataWriter writer(stream);
array_view<const byte> bytes(pixels, pixels + pixels_size);
writer.WriteBytes(winrt::array_view<const byte>(bytes));
Windows::Storage::Streams::IBuffer buffer = writer.DetachBuffer();
Windows::Graphics::Imaging::SoftwareBitmap bitmap = Windows::Graphics::Imaging::SoftwareBitmap::CreateCopyFromBuffer
(
buffer,
Windows::Graphics::Imaging::BitmapPixelFormat::Bgra8,
xSize,
ySize
);
Windows::Media::Ocr::OcrResult result = engine.RecognizeAsync(bitmap).get();
std::string output = winrt::to_string(result.Text());
bitmap.Close();
writer.Close();
return output;
}