Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Можно ли отключить


Автор: t3s 8.12.2004, 12:45
Если не сложно, подскажите. Надо полностью исключить возможность попасть в стартовое меню. Примеры, вроде этого:
Код

           procedure TForm1.Button1Click(Sender: TObject);
            var
              Rgn : hRgn;
            begin
              Rgn := CreateRectRgn(0, 0, 0, 0);
              SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWnd', nil),
                                                   0,
                                                  'Button',
                                                   nil),
                                                   Rgn,
                                                   true);
              EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil),
                                                   0,
                                                   'Button',
                                                   nil),
                                                   false);
            end;

делают "пуск" невидимым и недоступным при нажатии мышью, а вот как быть с клавиатурой, не знаю.

Автор: mntek 8.12.2004, 14:08
зарегистрируй горячую клавишу на win и на ctrl+esc:

BOOL RegisterHotKey(
HWND hWnd, // window to receive hot-key notification
int id, // identifier of hot key
UINT fsModifiers, // key-modifier flags - для win = MOD_WIN, для ctrl = MOD_CONTROL
UINT vk // virtual-key code для esc = VK_ESCAPE
);

Автор: t3s 9.12.2004, 15:00
Если я правильно понял, вы предлагаете просто переназначить главное меню на другую клавишу. К сожалению, это не решает проблему - меню все равно остается доступным (хоть и не по винкею). И обязательно ли использовать дельфи? - в реестре это нигде не правится?

Автор: mntek 9.12.2004, 15:09
не назначить меню на другую клавишу, а зарегистрировать клавиши, вызывающие меню на свое приложение. а если вдобавок к этому убрать кнопку пуск, то добраться до меню никак нельзя.
а про реестр - не знаю. это к мелкомягкимsmile

Автор: Girder 9.12.2004, 17:15
Останови поток... Качай вот ентот пример(OpenThread): http://forum.vingrad.ru/index.php?showtopic=21411&view=findpost&p=270051
и замени в нем TerminateProcess на SuspendThread

Автор: DIMONSOFT 29.12.2004, 16:27
В реестре нет способа убрать пуск НО можна убирать отдельные пункты (завершение работы, выполнить...)Если интересует такое могу дать примеры

Автор: Cetus 10.1.2005, 11:47
Если можешь, выкладывай

Автор: DIMONSOFT 10.1.2005, 15:24
Если вы хотите скрыть приложения из выпадающего меню кнопки Пуск из папки "C:\Documents and Settings\All Users\Главное меню\Программы, то включите этот параметр. Расположение: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer - NoCommonGroups:REG_DWORD
****************************
Этот параметр удалит папку последних открытых документов из меню "Пуск". Расположение: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer - NoRecentDocsMenu:REG_DWORD
***************************
Удаляет папки "Панель управления" и "Принтеры" из меню "Настройка". Обратите внимание: Удаление пунктов "Панель задач", "Панель управления" и "Принтеры" удалит полностью и само меню "Настройка". Установка этого ключа также удалит эти папки из окна "Мой компьютер". Этот параметр также может заретить комбинацию клавиш (Win + E). Расположение: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer - NoSetFolders:REG_DWORD
****************************
Удаляет команду "Завершение сеанса <Имя пользователя>" из меню "Пуск". Расположение: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer - NoLogOff:REG_DWORD
****************************
Включение этого параметра, удаляет пункт "Панель задач" в меню "Настройка" из меню "Пуск", и не дает пользователям изменять свойства Панели задач. Расположение: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer - NoSetTaskbar:REG_DWORD
*****************************
Этот параметр не дает пользователям запускать программы или процессы из меню "Пуск", удаляя этот пункт полностью.братите внимание: Если пользователь имеет доступ к командной строке МС-ДОС, он все равно сможет запускать любые программы. Расположение: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer - NoRun:REG_DWORD
****************************
Когда включен этот параметр команда 'Найти' будет удалена из меню "Пуск". После перезагрузки пункт Поиск исчезнет из меню кнопки Пуск, а также исчезнет команда Найти из контекстного меню кнопки Пуск при нажатии на нее правой кнопкой. Также не будет работать клавиша F3, используемая для поиска. Кроме того, в Проводнике не будет работать кнопка Поиск (хотя сама кнопка будет на месте). Расположение: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer - NoFind:REG_DWORD
******************************
Удаляет папку "Избранное" из меню "Пуск". Расположение: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer - NoFavoritesMenu:REG_DWORD
******************************
Выключить компьютер можно двумя способами: Используя команду Завершение работы меню кнопки Пуск, Открывая окно Завершение работы программы нажатием кнопок Ctrl+Alt+Del и нажимая кнопку Завершить работу. Windows позволяет запретить выключение этими способами для текущего пользователя. Кнопка Завершить работу в окне Завершение работы программы станет недоступной сразу же после изменения в реестре. После перезагрузки пункт Завершение работы исчезнет из меню кнопки Пуск. Это относится только к стандартным средствам Windows. Специальные программы или утилиты по-прежнему могут выключать компьютер. Расположение: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer - NoClose:REG_DWORD
*******************************
Вот и всё

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)