Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как пользоваться функцией GetWindowplacement?


Василий ©   (2006-07-29 07:29:00) 

Доброго времени суток, Мастера.
Есть такой вопрос.
Мне нужно запустить внешнюю программу из моей. Скажем "Nc.exe". Но мне ее надо запустить в определенном месте.  Нашел хелпе что для этого надо пользоваться функцией Getwindowplacement. Но инфо очень мало.
Покажите пожалуйста, если не трудно, код программки которая запустила бы Nc.exe в координатах его верхнего левого края окна в 100,100 на экране.

Заранее благодарен.


Юрий Зотов   (2006-07-30 14:02:00) [1]

procedure TForm1.FormDblClick(Sender: TObject);
var
 H: Cardinal;
 R: TRect;
begin
 Caption := '';
 with TOpenDialog.Create(nil) do
 try
   if Execute and (WinExec(PChar(FileName), SW_SHOWDEFAULT) > 31) then
   begin
     Sleep(100);
     H := FindWindow('ConsoleWindowClass', PChar(FileName));
     if (H <> 0) and GetWindowRect(H, R) then
     begin
       OffsetRect(R, 100 - R.Left, 100 - R.Top);
       if SetWindowPos(H, 0, R.Left, R.Top, R.Right - R.Left, R.Bottom - Top, 0)
          and GetWindowRect(H, R) then
         Caption := Format('%s: Left = %d, Top = %d, Width = %d, Height = %d',
           [FileName, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top])
     end
   end
 finally
   Free
 end
end;

Разберите этот пример, пользуясь советом [3] для изучения использованных в нем функций WinAPI - все станет понятно.


PSPF2003   (2006-07-30 12:54:00) [2]

Пуск -> Все программы -> Borland Delphi 7 -> Help -> MS SDK Help Files -> Win32 SDK Reference  

Там вся информация расписана самым подробным образом.


Василий   (2006-07-30 12:49:00) [3]

PSPF2003 ©   (29.07.06 07:49) [1]

MS SDK

Прошу прощения, но не понял.
Может быть немного по подробнее.


PSPF2003   (2006-07-29 07:49:00) [4]

MS SDK


Наверх

Титульная страница Поиск, карта сайта Написать письмо