![]() |
#9 |
Участник
|
Ожидание спёрто из табакса, оригинальный автор кода - самый одобряемый пользователь этого форума
X++: void captureForm(FormName name) { Image image = new Image(); Args args = new Args(name); FormRun formRun = new FormRun(args); int i; DLLFunction peekMessage; DLLFunction TranslateMessage; DLLFunction dispatchMessage; Binary msg = new Binary(30); DLL user32; ; user32 = new DLL('USER32'); peekMessage = new DLLFunction(user32, 'PeekMessageA'); TranslateMessage= new DLLFunction(user32, 'TranslateMessage'); dispatchMessage = new DLLFunction(user32, 'DispatchMessageA'); peekMessage.arg(ExtTypes::POINTER, ExtTypes::DWORD, ExtTypes::DWORD, ExtTypes::DWORD, ExtTypes::DWORD); peekMessage.returns(ExtTypes::DWord); TranslateMessage.arg(ExtTypes::Pointer); TranslateMessage.returns(ExtTypes::DWORD); dispatchMessage.arg(ExtTypes::Pointer); dispatchMessage.returns(ExtTypes::DWord); // Open and show the form formRun.init(); formRun.run(); for (i=1;i<=20;i++) if (peekMessage.call(msg, 0, 0, 0, 1)) { TranslateMessage.call(msg); dispatchMessage.call(msg); } // Take a screenshoot of the form image.captureWindow(formRun.hWnd()); image.saveType(ImageSaveType::JPG); // reduce the colors (bits/pixel) //image.reduceColorOctree(FALSE,256); //image.reduceColorOctree(256); // Save it as bitmap image.saveImage(element.getSaveName(name)); } |
|