Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1216710409
Dimich1978
2008-07-22 11:06
2008.08.24
Как открыть в Richedit кодированный rtf


3-1204262172
Kehnzo
2008-02-29 08:16
2008.08.24
Вопросы по DBGrid


1-1197112192
Ольга
2007-12-08 14:09
2008.08.24
Отображение XML в Memo


15-1215575271
AEN
2008-07-09 07:47
2008.08.24
Хочу сделать пробный сайт


15-1215089131
Kolan
2008-07-03 16:45
2008.08.24
Как управлять проектами?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский