Просмотр полной версии : ShellExecute. спицифичное использование
El_HALYAVA_
04.04.2007, 01:13
Собственно в дельфи есть довольно неплохиее функции. К примеру такая как ShellExecute запускающая в вашей программе любую указанную. Так же там имеются некие HotKey. Знающие дельфи не могли бы вы помочь куском кода к примеру как мне релизовать ShellExecute по нажатию определённого хоткея в SW_HIDE автоматически, а по нажатию ещё одного хоткея на запущенный процесс аквтивировать SW_SHOW. т.е. запускаю свою прогу она ничего не запускает. жму к примеру ctrl+k запускается моя прога но она в скрытом режиме. нажимаю ctrl+shift+i она выходит из хайда.
Кто знает как это реализовать помогите плиз куском кода. Буду премного благодарен.
PS. яндекс курил нашёл пару примеров. только как их объеденить ещё не въехал...
эт тебе надо перехватывать нажатия клавиш. Юзай API-функции GetKeyState() и GetAsyncKeyState(). имхо самый простой вариант.
Кстате научишься юзать эти две функции - научишься делать кейлогер! Вот примеры использования этих функций (для кейлогера) на vb.
http://forum.antichat.ru/thread32885.html (там все очень подробно описано про сами функции и про то как перехватить нажатие)
Но язык тебе в данном случае не важен, т.к. это API и тебе нужно лишь поймать суть.
Еще можно юзать хуки, но это имхо сложнее.
P.S. если потребуется перевести какой участок кода из того примера на паскаль (delphi) скажи, попробуем помочь )
Собственно в дельфи есть довольно неплохиее функции. К примеру такая как ShellExecute запускающая в вашей программе любую указанную.
1. Это не дельфийская функция.
2. запускает что?
Так же там имеются некие HotKey. Знающие дельфи не могли бы вы помочь куском кода к примеру как мне релизовать ShellExecute по нажатию определённого хоткея в SW_HIDE автоматически, а по нажатию ещё одного хоткея на запущенный процесс аквтивировать SW_SHOW. т.е. запускаю свою прогу она ничего не запускает. жму к примеру ctrl+k запускается моя прога но она в скрытом режиме. нажимаю ctrl+shift+i она выходит из хайда.
Кто знает как это реализовать помогите плиз куском кода. Буду премного благодарен.
PS. яндекс курил нашёл пару примеров. только как их объеденить ещё не въехал...
1. Юзай глобальный хук.
2. Что за примеры, дай посмотреть?
Для этго те над писать думаю DLL'шник ищи статьи по написанию DLL)))типа глобальный hook)
[/QUOTE]Сообщение от El_HALYAVA_
Собственно в дельфи есть довольно неплохиее функции. К примеру такая как ShellExecute запускающая в вашей программе любую указанную.
Нет такой функции на дельфи есть похожая функция ExecuteFile()
допустим ExecuteFile('C:\Program.exe','','с:\',SW_SHOW);
вообщем напиши свой DLL на дельфи))ищи информацию о написании DLL там много есть и ненять особенно не надо просто меняешь хоткей и всавляешь ExecuteFile()
сорри))ShellExecute в дельфи тоже есть ))))))почти тож самое но ExecuteFile() лучше Применяя ее,
не надо следить за типом pchar, который используется-для передачи
строк, потому что наша функция ExecuteFile сама сделает необходимые
преобразования.))
В windows есть ShellExecute запускающая в вашей программе любую указанную.
Можно типа очень упрощенно:
var s:string;
begin
s:=hotkey1.Hint+#0; // Alt+A
RegisterHotKey(form1.Handle,GlobalAddAtom(@s[1]),MOD_ALT,byte('A'));
end;
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
begin
if msg.message=WM_HOTKEY
then begin
ShellExecute(………
end;
end;
Ну и читаем описание предложенных функций.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot