Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/36: Рейтинг темы: голосов - 36, средняя оценка - 4.64
 Аватар для nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 309

Убрать процесс из диспетчера задач

21.09.2011, 21:27. Показов 7994. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Пишу шуточную программку. Нужно:
1) отключить выключение программки комбинацией Alt+F4
2) убрать программку из Диспетчера задач
3) назначить выключение комбинацией Alt+X

(хочу добиться того чтобы ее нельзя было никак вырубить кроме моей комбинации и кнопки "Выход" на последней форме)))
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2011, 21:27
Ответы с готовыми решениями:

Возможно ли скрыть процесс от Диспетчера задач?
Думаю, что в названии вопрос уже понятен. Перерыл кучу форумов, искал исходники, но ничего к сожалению не нашел. Народ скажите,...

Как скрыть процесс от диспетчера задач
Как скрыть процесс от диспетчера задач (чтобы ее не было в процессах).

Как снять программу (процесс) с диспетчера задач?
Люди! Вопрос короткий. Возможно ли снять процесс (программу), как в диспетчере задач, с помощью VB 6.0. Если вы знаете, то помогите мне! ...

45
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
22.09.2011, 08:02
nitromiha, назови ее services.exe и диспетчер ее откажется вырубать. Разумеется, в альтернативных менеджерах процессов она умрет быстрее, чем ты успеешь прочитать свой ник справа налево.
Как не закрыть форму
Visual Basic
1
2
3
Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub
А насчет клавиш - я уж и позабыл, как это делать для комбинации
2
 Аватар для nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 309
25.09.2011, 02:24  [ТС]
И всетаки, как на счет выключения программки при помощи Alt+X?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
25.09.2011, 09:05
Цитата Сообщение от nitromiha Посмотреть сообщение
И всетаки, как на счет выключения программки при помощи Alt+X?
Поставить хук на клавиатуру.
Этот код в форму
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Form_Load()
   'хук на клавиатуру
    hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'Сеимаем хук при выгрузке формы
    UnhookWindowsHookEx hHook
End Sub
А этот код в модуль
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Const WH_KEYBOARD = 2
Public Const VK_SHIFT = &H10 ' если вдруг понадобиться shift
Public Const VK_RCONTROL = &HA3
' обьявляем нужные API
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public hHook As Long
Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    'Если хук установлен
    If idHook < 0 Then
        ' вызываем
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    Else
        'проверяем нажатие Правого ctrl + X
        If (GetKeyState(VK_RCONTROL) And &HF0000000) And wParam = Asc("X") Then
            ' Печатаем если нажато 
            Form1.Print "прав Ctrl + X нажали ..."
        End If
        'вызывем следующий хук
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    End If
End Function
После запуска кода нажимаем Правый Ctrl+X - на форме появиться соотв надпись. Вместо надписи можно из программы выход организовать.

Да, можно очень просто, если по 1-й клавише набирать определенное слово, к примеру end
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Form_KeyPress(KeyAscii As Integer)
Static A$
 
A$ = A$ & KeyAscii
Form1.Print A$ ' для контроля
If A$ = "101110100" Then ' клавиши последовательно end
End
End If
 
 
End Sub
1
 Аватар для nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 309
25.09.2011, 14:07  [ТС]
но меня интересует левый альт а не правый контрл))
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
25.09.2011, 15:41
Цитата Сообщение от nitromiha Посмотреть сообщение
но меня интересует левый альт а не правый контрл))
Ну замени VK_RCONTROL на VK_LMENU.
Что сложного-то?
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
25.09.2011, 16:30
Цитата Сообщение от nitromiha Посмотреть сообщение
левый альт
поставь в программу
Visual Basic
1
Public Const VK_LMENU= &H12
1
 Аватар для nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 309
25.09.2011, 22:30  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Поставить хук на клавиатуру.
Этот код в форму
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Form_Load()
   'хук на клавиатуру
    hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'Сеимаем хук при выгрузке формы
    UnhookWindowsHookEx hHook
End Sub
А этот код в модуль
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Const WH_KEYBOARD = 2
Public Const VK_SHIFT = &H10 ' если вдруг понадобиться shift
Public Const VK_RCONTROL = &HA3
' обьявляем нужные API
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public hHook As Long
Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    'Если хук установлен
    If idHook < 0 Then
        ' вызываем
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    Else
        'проверяем нажатие Правого ctrl + X
        If (GetKeyState(VK_RCONTROL) And &HF0000000) And wParam = Asc("X") Then
            ' Печатаем если нажато 
            Form1.Print "прав Ctrl + X нажали ..."
        End If
        'вызывем следующий хук
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    End If
End Function
После запуска кода нажимаем Правый Ctrl+X - на форме появиться соотв надпись. Вместо надписи можно из программы выход организовать.

Да, можно очень просто, если по 1-й клавише набирать определенное слово, к примеру end
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Form_KeyPress(KeyAscii As Integer)
Static A$
 
A$ = A$ & KeyAscii
Form1.Print A$ ' для контроля
If A$ = "101110100" Then ' клавиши последовательно end
End
End If
 
 
End Sub
я вставил в действие MsgBox ("Гы") и при нажатии альт икс меседжбокс выскакиваеи несколько раз.
Почему?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
25.09.2011, 22:44
Цитата Сообщение от nitromiha Посмотреть сообщение
при нажатии альт икс меседжбокс выскакиваеи несколько раз.
А если сделать так?
Visual Basic
1
If (GetAsyncKeyState(VK_LMENU)=-32767 And &HF0000000) And wParam = Asc("X") Then
0
 Аватар для nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 309
25.09.2011, 22:46  [ТС]
тогда ошибку выдает
я так понял, это вместо строки 16 вставить?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
25.09.2011, 23:25
Цитата Сообщение от nitromiha Посмотреть сообщение
тогда ошибку выдает
Ну естественно что нужно было задекларировать функцию GetAsyncKeyState().
И вставлять в место 17 строки.
1
 Аватар для nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 309
25.09.2011, 23:31  [ТС]
Объясните, пожалуйста, поподробней.
Чтото я не могу разобраться.
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
26.09.2011, 00:44
Цитата Сообщение от nitromiha Посмотреть сообщение
Объясните, пожалуйста, поподробней.
Нужно добавить в код.
Visual Basic
1
Declare Function GetAsyncKeyState Lib "user32" (ByVal Key As Long) As Integer

Не по теме:

Один из недостатков VB - нужно ручками декларировать WinAPI функции.:wall:
Мелкомягкие по непонятной причине переложили это на программистов, =-O создав большой геморрой, нет чтобы создать библиотеку с уже объявленными WinAPI функциями и тем самым существенно облегчив жизнь программистов.

1
26.09.2011, 09:34

Не по теме:

Цитата Сообщение от PB Посмотреть сообщение
нет чтобы создать библиотеку с уже объявленными WinAPI функциями и тем самым существенно облегчив жизнь программистов
VB.NET? ;)

1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
26.09.2011, 12:32
Цитата Сообщение от PB Посмотреть сообщение
А если сделать так?
Visual Basic
1
If (GetAsyncKeyState(VK_LMENU)=-32767 And &HF0000000) And wParam = Asc("X") Then
Нет, это не верно в принципе. Ну на будущее, раз вы таки решили приобщиться к VB - True возвращает вот такая конструкция
Visual Basic
1
(GetAsyncKeyState(vbKeyMenu) And &H8000)
Но проще GetAsyncKeyState так использовать:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Public Const WH_KEYBOARD = 2
Public Const VK_SHIFT = &H10 ' если вдруг понадобиться shift
Public Const VK_RCONTROL = &HA3
' обьявляем нужные API
Declare Function GetAsyncKeyState Lib "user32" (ByVal Key As Long) As Integer
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public hHook As Long
Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    'Если хук установлен
    If idHook < 0 Then
        ' вызываем
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    Else
        'проверяем нажатие Левого Alt + X
         If GetAsyncKeyState(vbKeyMenu) = -32768 And GetAsyncKeyState(vbKeyX) = -32768 Then
            ' Печатаем если нажато
            'Form1.Print "Alt + X нажали ..."
            MsgBox ("Вы нажали Alt + X")
        End If
        'End If
        
        'вызывем следующий хук
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    End If
End Function
1
PB
26.09.2011, 13:40

Не по теме:

Цитата Сообщение от Памирыч Посмотреть сообщение
VB.NET?
Там WinAPI тоже нужно самому объявлять.

1
 Аватар для nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 309
26.09.2011, 16:18  [ТС]
а как на счет
Цитата Сообщение от nitromiha Посмотреть сообщение
Здравствуйте. Пишу шуточную программку. Нужно:
1) отключить выключение программки комбинацией Alt+F4
2) убрать программку из Диспетчера задач
3)
?

И как добавить отслеживание еще одной комбинации (правый контрл + икс например)?

Добавлено через 16 минут
кстати, если вставить этот
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Public Const WH_KEYBOARD = 2
Public Const VK_SHIFT = &H10 ' если вдруг понадобиться shift
Public Const VK_RCONTROL = &HA3
' обьявляем нужные API
Declare Function GetAsyncKeyState Lib "user32" (ByVal Key As Long) As Integer
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public hHook As Long
Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    'Если хук установлен
    If idHook < 0 Then
        ' вызываем
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    Else
        'проверяем нажатие Левого Alt + X
         If GetAsyncKeyState(vbKeyMenu) = -32768 And GetAsyncKeyState(vbKeyX) = -32768 Then
            ' Печатаем если нажато
            'Form1.Print "Alt + X нажали ..."
            MsgBox ("Вы нажали Alt + X")
        End If
        'End If
        
        'вызывем следующий хук
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    End If
End Function
код - функция работает только до компиляции, если скомпилировать - не работает))
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
26.09.2011, 17:11
Можно проще - поставь это условие на событие таймера. Другую комбинацию тоже на событие таймера, всё получится.
Visual Basic
1
If GetAsyncKeyState(vbKeyMenu) = -32768 And GetAsyncKeyState(vbKeyX) = -32768 Then
По то, что бы не закрылась форма тебе уже сказали правильно Памирыч
Visual Basic
1
2
3
Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub
На счет диспетчера задач - ни как. Можно только замаскировать...
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
26.09.2011, 17:27
Цитата Сообщение от Pro_grammer Посмотреть сообщение
По то, что бы не закрылась форма тебе уже сказали правильно Памирыч
интересно где такую радость можно применить?? я так понял она вообще не закроется никогда?? только убирать с процесса или перезагрузка??
0
 Аватар для nitromiha
84 / 12 / 1
Регистрация: 24.01.2011
Сообщений: 309
26.09.2011, 17:51  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Можно только замаскировать...
а как?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2011, 17:51
Помогаю со студенческими работами здесь

Как спрятать процесс от диспетчера?
Ну вообщем... Когда жмешь контрл-альт-делит (в XP)в разделе Приложения висит моя прога. Как спрятать её?

Исходник того, как скрыть программу от диспетчера задач.
Исходняк пример того как встроить свою программу в поток напривер explorer'a.. Программ не видно из task mandger'a и во всех подобных...

Закрыть одну из двух книг и удалить ее из диспетчера задач
Подскажите не получается закрыть одну книгу из двух, в памяти постоянно висят две книги! делаю так не получается ...

Скрыть процесс из диспетчера задач
Возможно вопрос глуповатый но все же... Как программно скрыть программу в процессах? Но так что бы само окно не пропало... Просто что бы в...

Скрыть процесс с диспетчера задач
Здравствуйте! Возможно ли скрыть процесс в диспетчере задач?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru