Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Окно!!! идить её...

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Окно!!! идить её...
Имя
Сообщение << Старые топики   Новые топики >>
Окно!!! идить её... - 2007-08-16 16:04:01.850000   
ANTIDEMON

Сообщений: 94
Оценки: 0
Присоединился: 2006-11-25 21:31:49.996666
Здрасте..
такая вот проблемка
вызываю Окно Эксплорера функцией
WinExec('explorer c:\',1);
в результати … окно становится актиивны.. НО
мне надо чтоб моя форма была активной… хотя бы после нажатия ОПРЕДЕЛЁННОЙ кнопки… я так реализовал

if GetKeyState(StrToInt('192'))=0 then begin if vset &lt;&gt; false then begin Edit1.Text:=''; Form1.Show; Form1.SetFocus; SetForeGroundWindow(Form1.Handle); ShowWindow(Form1.Handle, SW_RESTORE); SetActiveWindow(Application.Handle); BringWindowToTop(Form1.Handle); GetForegroundWindow; всё это счастье впихнул в Таймер…

Но окно едить её отказывается быть активным после нажатия клавиши с кодом 192 (тильда)


Где трабл???
Post #: 1
RE: Окно!!! идить её... - 2007-08-16 16:27:15.256666   
JTG

Сообщений: 1189
Оценки: 0
Присоединился: 2007-03-05 11:56:01.993333
коряво как-то…
может в SetActiveWindow(); тоже надо form1.handle?
Post #: 2
RE: Окно!!! идить её... - 2007-08-16 17:28:23.076666   
ANTIDEMON

Сообщений: 94
Оценки: 0
Присоединился: 2006-11-25 21:31:49.996666
да всёравно как то не..
у меня существует подозрение что при
WinExec('explorer c:\',1); //онже WinExec('explorer c:\',SW_SHOWNORMAL); я не правильно указую второй параметр…
так как после события с нажатой кнопкой… форма не активизируется… а "фокус" остаётся на окне эксплорера…
=(
Post #: 3
RE: Окно!!! идить её... - 2007-08-16 17:38:50.206666   
JTG

Сообщений: 1189
Оценки: 0
Присоединился: 2007-03-05 11:56:01.993333
ну пробуй shellexecute или createprocess в конце-концов.

winexec устарела, тока если пару байт сэкономить надо в условиях нехватки места в коде - параметров мало
Post #: 4
RE: Окно!!! идить её... - 2007-08-16 21:31:31.480000   
De}{is

Сообщений: 137
Оценки: 0
Присоединился: 2005-11-22 11:21:42
 ShellExecute(0,"open","C:\\",NULL,NULL,SW_SHOWNOACTIVATE);
Post #: 5
RE: Окно!!! идить её... - 2007-08-17 00:01:11.253333   
Yashin

Сообщений: 964
Оценки: 0
Присоединился: 2007-05-09 20:18:01.153333
quote:

if GetKeyState(StrToInt('192'))=0 then
begin
if vset &lt;&gt; false then

GetKeyState возвращает значение клавиши, тогда когда оно еще не было прочитано главной функцией приложения, в VCL приложениях ты с помощью этой функции не сможешь ничего узнать, потому что все сообщения читаются и удаляются его функцией. Используй GetAsyncKeyState в таком случае. Но с помощью этих двух функций ты не сможешь узнать значения клавиш не в своем приложении, так как они возвращают значения только, когда фокус стоит в твоей программе. Чтобы получить нажатие клавиши в любой программе используй hotkey.
А 192 - это что вообще за клавиша? Как параметр для функции используй любую константу из набора VK_LEFT, VK_F1 и т.д. И зачем так извращаться с StrToInt, функция прекрасно понимает числа. if vset <> false - какое запутанное условие, голова кругом идет.
Post #: 6
RE: Окно!!! идить её... - 2007-08-17 13:44:04.346666   
ANTIDEMON

Сообщений: 94
Оценки: 0
Присоединился: 2006-11-25 21:31:49.996666
так… даю полный исходник… c EXEшкой =)
http://share.lealta.ru/file.php?file=e90cb2b29e41351689b42e3aeedf9e35
Post #: 7
RE: Окно!!! идить её... - 2007-08-17 19:44:53.013333   
Yashin

Сообщений: 964
Оценки: 0
Присоединился: 2007-05-09 20:18:01.153333
А ничего - идея нравится. А 192- это что за клавиша?
Post #: 8
RE: Окно!!! идить её... - 2007-08-18 17:46:46.736666   
ANTIDEMON

Сообщений: 94
Оценки: 0
Присоединился: 2006-11-25 21:31:49.996666
192 - это тильда (` или ~) =)
Post #: 9
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Окно!!! идить её...







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.