Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Внизто работает, то не работает. Не объясните почему? Найти похожие ветки
← →
Vlad Oshin © (2008-07-22 13:05) [0]Иммитирует нажатие принтскрина и вставку в paint.
Pain запускается, иногда в него вставляется, иногда нет, но в любом случае он сворачивается(?). В чем мб дело?
procedure TForm3.Button1Click(Sender: TObject);
var
H: hWnd;
PI: TProcessInformation;
SI: TStartupInfo;
procedure KDown(Key: byte); begin keybd_event(Key, 0, 0, 0); end;
procedure KUp(Key: byte); begin keybd_event(Key, 0, KEYEVENTF_KEYUP, 0); end;
begin
KDown(VK_SNAPSHOT);
KUp(VK_SNAPSHOT);
FillChar(SI, SizeOf(SI), 0);
SI.cb := SizeOf(SI);
if CreateProcess(nil, "mspaint.exe", nil, nil, False, 0, nil, nil, SI, PI) then
begin
WaitForInputIdle(PI.hProcess, INFINITE);
sleep(500); //все равно на всякий случай подождем
H := FindWindow(nil, "Безымянный - Paint");
if GetLastError<>0 then ShowMessage(SysErrorMessage(GetLastError));
SwitchToThisWindow(H,false); //>=Win2000, у меня ХР
if GetLastError<>0 then ShowMessage(SysErrorMessage(GetLastError));
sleep(100); //на всякий случай подождем
KDown(VK_CONTROL);
KDown(ord("V"));
// KUp(ord("V"));
KUp(VK_CONTROL);
end;
end;
← →
brother © (2008-07-22 13:16) [1]может нажатия клавиш не все доходят? или не в той последовательности?
← →
Rouse_ © (2008-07-22 13:23) [2]
SwitchToThisWindow(H, true);
← →
Anatoly Podgoretsky © (2008-07-22 13:28) [3]> Vlad Oshin (22.07.2008 13:05:00) [0]
А нафига это, что нельзя скопировать нужный RECT
← →
Vlad Oshin © (2008-07-22 13:30) [4]
> SwitchToThisWindow(H, true);
спасибо.
что заметил:
WaitForInputIdle(PI.hProcess, INFINITE);
sleep(500); //все равно на всякий случай подождем
если sleep(200), например, то пишет уже "Недопустимый дескриптор окна."
значит, не успевает создаться окно
WaitForInputIdle(PI.hProcess, INFINITE); получается не работает?
← →
Vlad Oshin © (2008-07-22 13:35) [5]
> А нафига это, что нельзя скопировать нужный RECT
да можно, так и делаю, а это просто упражняюсь
хотя можно и на ctrl+PrintScreen повесить.
Обычно дергают экран, потом что-то запускают на редактирование и туда вставляют.
← →
Anatoly Podgoretsky © (2008-07-22 13:41) [6]> Vlad Oshin (22.07.2008 13:35:05) [5]
Ну это меняет дело.
← →
clickmaker © (2008-07-22 14:24) [7]я бы искал по имени класса - MSPaintApp
← →
@!!ex © (2008-07-22 14:50) [8]Я бы делал снимок экрана ручками, сохранял во временный файл и паинту уже говорил его загрузить.
← →
Vlad Oshin © (2008-07-22 14:53) [9]
> Я бы делал снимок экрана ручками, сохранял во временный
> файл и паинту уже говорил его загрузить.
да, наверное, так умнее все же
← →
Anatoly Podgoretsky © (2008-07-22 15:23) [10]Это не умно, файл лишний.
← →
Vlad Oshin © (2008-07-22 15:35) [11]
> файл лишний.
тоже верно
оставим, как есть.
← →
Anatoly Podgoretsky © (2008-07-22 16:02) [12]Ну ты же говорил, что
> да можно, так и делаю, а это просто упражняюсь
А так или вручную, или копировать RECT
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.051 c