ПредишенСледващото

Представете си глупав потребител е седнал, сякаш нищо не безпрецедентна мъдро вече от известно време се опитва да създадете документ в Microsoft Word'e, но изведнъж през прозореца започва да галопира бясно по екрана, неприлични съобщения се показват в заглавната част, тя е сведена до минимум, тя се развива, непрекъснато се променя размерите си, но в крайна сметка изчезва напълно, като далеч в забвение целия текст, който е изпълнен с толкова трудности lameryuga. и ако е така себе си във всеки един момент може да доведе всяка програма. впечатления от това, ще останат за дълго време.

С цел да се направи нещо повече от всеки прозорец, първо трябва да се справя, т.е. своята позиция в паметта. За да направите това, използвайте функцията FindWindow. Тя има нужда да се уточни само два параметъра: първи клас на желания прозорец, след това си титла. Е, с водещи проблеми като цяло, не е - ние можем да го видя, но как да се дефинира клас. защото то е скрито от гласа на потребителя. В действителност, ние може да посочва само заглавието на прозореца, а вместо това постави клас нула.

За да започнете, изпълнете стандартната програма "Notepad" - и това, което виждаме? В Notepad, върху заглавната лента на името на текущия файл се проследяват. Първоначално, защото файл не е в употреба, заглавната част на ноутбука изглежда по следния начин: "Без заглавие - Notepad". Ние ще се опитаме да се намери на този критерий, прозореца на Notepad. Тя ще изглежда така:

Както можем да видим от кода, ако програмата ни ще намерите Notepad прозорец, ще видите съобщение, посочващо, че тази.

След това опитайте да се движи този прозорец

Отново откриваме една тетрадка. Дръжката поставен в променлива клас HWND [От английски дръжка прозорец - дръжка на прозореца]. На следващо място, ние използваме функцията SetWindowPos за да зададете позиция. Както трябва да се уточни параметрите:

Ако тази функция е успешен, той се връща ненулева стойност. Е, сега можем да се движим и да промените размера на прозорците на други хора. За да промените заглавието на прозореца напишете следния код:

setwindowtext функции е необходимо да уточнят само два параметъра: дръжката вдясно от прозореца и новата стойност на заглавната си част. Тук по принцип е всичко!

Има и друга интересна функция ShowWindow, която ви позволява да скриете или покажете прозореца. Използвайте го, за да бъде така.

В скоби посочват първото превишаване как точно искаме прозореца, за да се присмиват, а след това, което искаме да правим с нея. Както може да се посочи като възможни действия:

  • SW_HIDE Скрива прозореца и активира друг.
  • SW_MAXIMIZE Прозорецът заема целия екран.
  • SW_MINIMIZE Прозорецът се намалява.
  • SW_RESTORE се активира и показва прозорец. Ако прозорецът е внедрен или минимизира - възстановява оригиналния размер и позиция.
  • SW_SHOW се активира и показва прозорец с първоначалния си размер и позиция.
  • Активира SW_SHOWDEFAULT до настройките в структурата на STARTUPINFO, който беше приет на строителя на заявлението за процес стартира необходимата програма.
  • SW_SHOWMAXIMIZED прозорец продукция в разширена форма.
  • SW_SHOWMINIMIZED изход прозорец като икона в лентата на задачите.
  • SW_SHOWMINNOACTIVE показване на прозореца в кратък формуляр от в лентата на задачите и не изразяват, да го фокуса, т.е. прозорец, който преди това е бил активен остава активно все още.
  • SW_SHOWNA Показва прозорец в текущото му състояние. В активния прозорец остава активно все още.
  • SW_SHOWNOACTIVATE Показва прозореца в последната си позиция и последния използван размер. В активния прозорец остава активно все още.
  • SW_SHOWNORMAL изход прозорец. Ако тя се разпадна или разгърнати - възстановява първоначалния си размер и позиция

Но сложността на действието се крие във факта, че Notepad заглавие следи текущото име на файла и да използвате стойността на "Untitled - Notepad" ние не можем винаги. . (Още повече, че това не е само в случай на бележника, но има начин :. Защото FindWindow функцията за намиране на прозореца посочваме не само заглавието на прозореца, който искате, но колкото повече класа си Какъв е изходът може да се каже, заглавието на прозореца, виждаме, а след това, което знаем. този момент - клас прозорец може в действителност да се намери и с малко усилия.!

В Delphi пакет включва специален инструмент за проследяване на всички активни процеси, той се нарича WinSight32. Тук ние ще го използвате. Пусни го, ровят в списъка на процесите, за линията, където се показва текущото заглавие на прозореца, който искате, като например Notepad гледам, и от лявата страна на тази линия в скоби ще намерите името на класа на прозореца. За преносим компютър това би било "Notepad". Сега, знаейки името на класа на прозореца, можем да пренапишем полето за търсене, по следния начин:

Сега ние сме вместо заглавието на прозореца показва стойността на нула, се игнорира тази опция.

Има и друг чудесен начин за изпращане на команди oknam.- функция PostMessage. S, колкото е необходимо да се уточни параметрите:

  • Дръжка до прозореца, който се изпраща съобщението, или от следните стойности:
    • HWND_BROADCAST съобщение ще бъде изпратено до всички прозорци на горното ниво на системата, включително и неактивните и невидими прозорци припокрива прозорец и изскачащи-прозореца, но съобщението не ще бъде изпратен на детето [дете] прозорци.
    • NULL държи като функция PostThreadMessage с параметър dwThreadId премина към него.
  • изпраща съобщение
  • Първият параметър на съобщението
  • Вторият параметър на съобщението

Например, ако изпратите съобщение wm_quit тетрадка - прозорецът ще се затвори без показване на съобщения, за необходимостта да се спаси!

Подкрепете проекта - споделете линка, благодаря!