Главная страница
    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
Время: 6.9 c
15-1214997047
Smile
2008-07-02 15:10
2008.08.24
:(


3-1204293385
Yurka
2008-02-29 16:56
2008.08.24
Суммирование полей с выбором


4-1194943868
Niki
2007-11-13 11:51
2008.08.24
ListBox


2-1216369728
Сергей
2008-07-18 12:28
2008.08.24
Как в DBGrid отменить выделение ячеек?


2-1216723921
Нов_и_чок
2008-07-22 14:52
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский