![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не пойму... Что не так в этом коде? [D6, Win2k]
Cosinus © (2005-01-17 18:52:00)
program SCR_SV_ON;
uses WinTypes, WinProcs, Messages;
var
MN_HNDL:HWND;
begin
MHNDL:= GetCurrentProcess();
SendMessage(MHNDL,WM_SYSCOMMAND,SC_SCREENSAVE,1);
end.
Вместо простого перехода к ScreenSaver-у экран начинает бешенно моргать, такое ощущение, что он почти входит в него и тут же, поймав еще раз это сообщение, начинает все заново. Через разное кол-во времени (от 5-ти сек до минуты) входит моргание прекращается - он в скринсайвере...
Если я подключаю forms и вместоGetCurrentProcess();используюApplication.Handle, то все нормально.
Sumor (2005-01-18 00:31:00) [1]Не надо окон дополнительно создавать.
Возьми GetActiveWindow или по FindWindow найди себе что-нибудь и ему пошли это сообщение.
Kerk (2005-01-17 20:06:00) [2]
> QForms
хм.. может стоит Forms?
да. ты правильно понимаешь.
Cosinus (2005-01-17 19:35:00) [3]
> Kerk ©
Мдя-я-я...
Но используяTApplication, я начинаю использоватьQForms, чего не хочется. То есть видимо придется создать окно ручками, а потом посылать сообщение.
Правильно ли я понимаю, что в итоге должно получиться что то вроде =>
NEW_WIN:=CreateWindow(...);
if NEW_WIN<>nil then
begin
SendMessage(NEW_WIN,...);
DestroyWindow(NEW_WIN,...);
end;
???
Kerk (2005-01-17 19:20:00) [4]Прежде чем получить хендл окно, надо это окно создать. Или создаешь его руками, или используешь TApplication.
Kerk (2005-01-17 19:19:00) [5]Cosinus © (17.01.05 19:05) [5]
Application.Handle ты правильно использовал. Только это не хендл приложения, а хендл окна, которое внутри класса TApplication сидит.
Cosinus (2005-01-17 19:05:00) [6]Не то...
Какую команду использовать. Простите.
Kerk (2005-01-17 19:04:00) [7]Cosinus © (17.01.05 19:03) [3]
А как в таком случае получить Handle приложения?
чивоооо!??!?!?
Cosinus (2005-01-17 19:03:00) [8]У-у-упс... Понял.
А как в таком случае получить Handle приложения?
MBo (2005-01-17 18:57:00) [9]в этом коде не так... ладно, про то, то между рулем и креслом водителя, пропущу...
SendMessage посылается ОКНУ, а не дескриптору процесса
Anton_K (2005-01-17 18:55:00) [10]В SendMessage надо handle окна, а не процесса передавать.