Programm das die bmp erstellt
Code:
ic::con.setTitle(L"Bla bla");
HWND capture = FindWindow(0, L"Test");
while(true)
{
RECT rect;
GetWindowRect(capture, &rect);
size_t dx = 244;
size_t dy = 48;
BITMAPINFO info;
info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
info.bmiHeader.biWidth = dx;
info.bmiHeader.biHeight = dy;
info.bmiHeader.biPlanes = 1;
info.bmiHeader.biBitCount = 24;
info.bmiHeader.biCompression = BI_RGB;
info.bmiHeader.biSizeImage = 0;
info.bmiHeader.biXPelsPerMeter = 0;
info.bmiHeader.biYPelsPerMeter = 0;
info.bmiHeader.biClrUsed = 0;
info.bmiHeader.biClrImportant = 0;
HBITMAP bitmap = 0;
BYTE* memory = 0;
HDC device = GetDC(capture);
bitmap = CreateDIBSection(device, &info, DIB_RGB_COLORS, (void**)&memory, 0, 0);
ReleaseDC(capture, device);
HDC winDC = GetWindowDC(capture);
HDC memDC = CreateCompatibleDC(winDC);
SelectObject(memDC, bitmap);
BitBlt(memDC, 0, 0, dx, dy, winDC, 0, 0, SRCCOPY);
DeleteDC(memDC);
ReleaseDC(capture, winDC);
char *buffer = {"Npm.bmp"};
basic_ofstream<char> file(buffer, ios::binary);
BITMAPFILEHEADER fileHeader;
BITMAPINFOHEADER infoHeader;
fileHeader.bfType = 0x4d42;
fileHeader.bfSize = 0;
fileHeader.bfReserved1 = 0;
fileHeader.bfReserved2 = 0;
fileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
infoHeader.biSize = sizeof(infoHeader);
infoHeader.biWidth = dx;
infoHeader.biHeight = dy;
infoHeader.biPlanes = 1;
infoHeader.biBitCount = 24;
infoHeader.biCompression = BI_RGB;
infoHeader.biSizeImage = 0;
infoHeader.biXPelsPerMeter = 0;
infoHeader.biYPelsPerMeter = 0;
infoHeader.biClrUsed = 0;
infoHeader.biClrImportant = 0;
file.write((char*)&fileHeader, sizeof(fileHeader));
file.write((char*)&infoHeader, sizeof(infoHeader));
int wbytes = (((24*dx + 31) & (~31))/8);
int tbytes = (((24*dx + 31) & (~31))/8)*dy;
file.write((char*)memory, tbytes);
DeleteObject(bitmap);
bitmap = 0;
memory = 0;
Sleep(50);
}
Code vom Timer der Form, der es aktualisieren soll
Code:
private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) {
pictureBox1->Image = Image::FromFile("Npm.bmp");
}
e/ Ok, hab das Problem, das Bild wird zwar neugeladen, aber es wird von dem anderen Programm nicht aktualisiert daher bleibt das alte Bild, da es von der Form benutzt wird. Weiß wer dazu ne Lösung?