Окно!!! идить её...
Пользователи, просматривающие топик: 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 <> 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 (тильда) Где трабл???
|
|
|
RE: Окно!!! идить её... - 2007-08-16 16:27:15.256666
|
|
|
JTG
Сообщений: 1189
Оценки: 0
Присоединился: 2007-03-05 11:56:01.993333
|
коряво как-то… может в SetActiveWindow(); тоже надо form1.handle?
|
|
|
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);
я не правильно указую второй параметр… так как после события с нажатой кнопкой… форма не активизируется… а "фокус" остаётся на окне эксплорера… =(
|
|
|
RE: Окно!!! идить её... - 2007-08-16 17:38:50.206666
|
|
|
JTG
Сообщений: 1189
Оценки: 0
Присоединился: 2007-03-05 11:56:01.993333
|
ну пробуй shellexecute или createprocess в конце-концов. winexec устарела, тока если пару байт сэкономить надо в условиях нехватки места в коде - параметров мало
|
|
|
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);
|
|
|
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 <> false then GetKeyState возвращает значение клавиши, тогда когда оно еще не было прочитано главной функцией приложения, в VCL приложениях ты с помощью этой функции не сможешь ничего узнать, потому что все сообщения читаются и удаляются его функцией. Используй GetAsyncKeyState в таком случае. Но с помощью этих двух функций ты не сможешь узнать значения клавиш не в своем приложении, так как они возвращают значения только, когда фокус стоит в твоей программе. Чтобы получить нажатие клавиши в любой программе используй hotkey. А 192 - это что вообще за клавиша? Как параметр для функции используй любую константу из набора VK_LEFT, VK_F1 и т.д. И зачем так извращаться с StrToInt, функция прекрасно понимает числа. if vset <> false - какое запутанное условие, голова кругом идет.
|
|
|
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
|
|
|
RE: Окно!!! идить её... - 2007-08-17 19:44:53.013333
|
|
|
Yashin
Сообщений: 964
Оценки: 0
Присоединился: 2007-05-09 20:18:01.153333
|
А ничего - идея нравится. А 192- это что за клавиша?
|
|
|
RE: Окно!!! идить её... - 2007-08-18 17:46:46.736666
|
|
|
ANTIDEMON
Сообщений: 94
Оценки: 0
Присоединился: 2006-11-25 21:31:49.996666
|
192 - это тильда (` или ~) =)
|
|
|
|
|