Главная страница
    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.039 c
1-1197018990
Rav
2007-12-07 12:16
2008.08.24
Как преобразовать TField.DisplayWidth в ListView.Column[x].Width?


15-1214401508
Поросенок Винни-Пух
2008-06-25 17:45
2008.08.24
А помните, как многие здесь ржали над парадоксальным?


2-1216632103
Оксана Вл.
2008-07-21 13:21
2008.08.24
Курсор в таблице


6-1191913609
Motzart_Motzart
2007-10-09 11:06
2008.08.24
Модем


2-1216712194
Оксана Вл.
2008-07-22 11:36
2008.08.24
StringGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский