Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Кнопка "Пуск" Добавлено: 24.06.02 10:36  

Автор вопроса:  rooter
Подскажите пожалуйста, как программно заблокировать кнопку "Пуск" (т.е. чтобы при нажатии на клавиатуре не появлялось меню "Пуск"). Заранее благодарен...

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #1 Добавлено: 24.06.02 10:47

Сразу скажу, что практически это сделать очень сложно. Дело в том, что можно с легкостью, левой задней пякой, заблокировать саму кнопку Пуск от мышки, а вот меню с клавиатуры - фигушки. Придется попотеть. Там другой немного подход нужен От мышки все делается просто: берешь хэндл кнопки пуск и прото ставишь его свойство Enabled в False.

Примерно так:

Находим хэндл кнопки

lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString)

И посылем мессагу

Call EnableWindow(lHwnd&, CLng(Enabled))


Декларацию для EnableWindow найдешь в АПИ-гляделке.

 

Кстати, разблокировка действует по тому же принципу.

Ответить

Номер ответа: 2
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #2 Добавлено: 24.06.02 12:02

Слушай  можно заблокить все горячие клавиши винды и туды входит ПУСК

 можно спрятать пуск будет тыкойже эффект

 

 ;DIM sBt as long

sub form_load()

  sbt= FindWindow("Shell_TrayWnd","")

  sbt = FindWindowEx(sbt,0,"Button","")

 ShowWindow(sbt,0)

end sub

 Помойму так

Ответить

Номер ответа: 3
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #3 Добавлено: 24.06.02 12:16
Да с "Пуском" можно делать что хошь, хоть таскать по рабстолу, но вот только при нажатии на клаве Ctrl+Esc или WinButton (такое с окошком) всплывет менюшка, а этого то и не надобно. Кстати, ты знаешь, как этот WinButton блокануть?

Ответить

Номер ответа: 4
Автор ответа:
 root



Вопросов: 12
Ответов: 147
 Web-сайт: www.vbnet.ru
 Профиль | | #4
Добавлено: 24.06.02 13:22

 

 

Option Explicit
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Const SPI_SCREENSAVERRUNNING = 97
Private Sub Form_Load()
    Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, 0, 0)
    MsgBox "Нажмите-ка winkey или три кнопки!;-))"
End Sub

Ответить

Номер ответа: 5
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #5 Добавлено: 24.06.02 13:30

Какой ты хитрый!

Взял и обманул систему. Так не честно! Давай чистый способ!:)))) А ваще - молодец!

Ответить

Номер ответа: 6
Автор ответа:
 root



Вопросов: 12
Ответов: 147
 Web-сайт: www.vbnet.ru
 Профиль | | #6
Добавлено: 24.06.02 13:53

Честный способ;-) Вообще, мона поставить хук на клаву и _теоритически_ мочить нажатие всяких аккордов, винкеев и пр...

 

Если кого заинтересовал хук на клаву, вот пример :

 

'In a module
Public Const WH_KEYBOARD = 2
Public Const VK_SHIFT = &H10
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 is less than zero, no further processing is required
    If idHook < 0 Then
        'call the next hook
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    Else
        'check if SHIFT-S is pressed
        If (GetKeyState(VK_SHIFT) And &HF0000000) And wParam = Asc("S") Then
            'show the result
            Form1.Print "Shift-S pressed ..."
        End If
        'call the next hook
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    End If
End Function

'In a form, called Form1
Private Sub Form_Load()
    'KPD-Team 2000
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'set a keyboard hook
    hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'remove the windows-hook
    UnhookWindowsHookEx hHook
End Sub

Ответить

Номер ответа: 7
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #7 Добавлено: 12.03.06 21:09
Можно и проще-задисейблить или удалить окно кнопки пуск.Работает!Просто клик винкея вызывает эмуляцию клика на кнопке.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам