Страница: 1 |
Поделитесь примером: нужно временно отключить автозапуск CD (win98-XP), пока работает моя программа.
Вообще отключить/включить можно программно или через реестр. Первый вариан есть на С++, я его еще не переводил. Второй - через работу с реестром, элементарно реализуется на VB. Это HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer NoDriveAutoRun и NoDriveTypeAutoRun. К примеру, выставив NoDriveAutoRun в десятицчное 6 (двоичный код 0110), отключишь автозапуск дисков B и C. Т.о. При запуске программы отключай, при выгрузке - включай снова. Можешь, конечно, заморочиться и с сообщениями, но так проще. Манипуляции с реестром не пройдут без перезагрузки. >Можешь, конечно, заморочиться и с сообщениями Как раз с сообщениями и хочется замарочиться. На С и Дельфи это делается элементарно. Перехват сообщения QueryCancelAutoPlay и возврат ответа да/нет Вот на VB как ответ послать? Если знаешь как это реализовать на С, дельфи, так что не ужели нельзя того же проделать на VB ??? не верю... Да я ж не профи программист. Но инетом пользоваться умею: http://www.fawcette.com/vsm/2002_05/magazine/columns/qa/listing2.aspx Private Declare Function RegisterWindowMessage _ Lib "user32" Alias "RegisterWindowMessageA" _ (ByVal lpString As String) As Long Private Const RegMsg As String = _ "QueryCancelAutoPlay" Private m_RegMsg As Long Private Sub Check1_Click() With Check1 'Style = 1 - Graphical If .Value = vbChecked Then .Caption = "Release to Allow AutoPlay" Else .Caption = "Depress to Suppress AutoPlay" End If End With End Sub Private Sub Form_Load() Check1.Value = vbChecked ' Determine custom message value, and ' hook message stream of this form. m_RegMsg = RegisterWindowMessage(RegMsg) Call HookWindow(Me.hWnd, Me) End Sub Private Sub Form_Unload(Cancel As Integer) Call UnhookWindow(Me.hWnd) End Sub Friend Function WindowProc(hWnd As Long, _ msg As Long, wp As Long, lp As Long) As Long Dim Result As Long Select Case msg Case m_RegMsg ' QueryCancelAutoPlay ' TRUE: cancel AutoRun ' *must* be 1, not -1! ' FALSE: allow AutoRun Result = Check1.Value Case Else ' Pass along to default window procedure. Result = InvokeWindowProc( _ hWnd, msg, wp, lp) End Select ' Return desired result code to Windows. WindowProc = Result End Function Работает! Страница: 1 |
Вопрос: Disable CD AutoRun vb
Добавлено: 01.04.04 21:20
Автор вопроса: Sur | Web-сайт:
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #1
Добавлено: 02.04.04 11:44
Номер ответа: 2
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #2
Добавлено: 02.04.04 18:50
Номер ответа: 3
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #3
Добавлено: 02.04.04 20:27
Номер ответа: 4
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #4
Добавлено: 02.04.04 22:01
Номер ответа: 5
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #5
Добавлено: 03.09.06 18:37
Вот блин, окно должно быть обязательно в фокусе чтобы отрубить запуск компакта.
Что делать?