Post by Andrei Protasovitski
Доброго здоров'я!
Post by Serguey Potapov
Post by Andrei Protasovitski
А ще можна відключити стандартні сполучення клавіш, і тоді користувач
буде взагалі нічого зайвого не зможе зробити. У тому числі викликати вікно
БД по F11.
Можна, звичайно, ну а я як тоді ввійду якщо що? ;)
Зробив так - зручно і красиво.
Є форма "Про програму." - там на. ну скажімо картинку, на ДБА-клік
вішаємо заборона Shft і F11 і ін.
а на який нитка інший контрол вішаєш зняття захисту.
Треба віддати прогу - ДБА-клікнув, захист спрацював і віддав спокійно,
впевнений. що ніякої Адвансед користувач не полізе і не накоїть справ в БД.
Віктор
Нижче - код захисту і расзащіти.
Може не працювати, якщо не підключити якусь нитку важливу бібліотеку. У мене
їх підключено> 10 шт і яка з них відповідає за код нижче - не пам'ятаю вже,
сорри. Ну, дай бог - запрацює
'------------------------------------------------- --------------------------
-----
Public Sub SetStartupProperties_Disabled ()
'ЗАБОРОНУ
ChangeProperty "StartUpForm", dbText, "Zastava" 'Стартова
форма
ChangeProperty "StartUpMenuBar", dbText, "Tt_MainMenu" 'Ім'я панелі
меню, яке буде використовуватися за замовчуванням
ChangeProperty "StartupShortcutMenuBar", dbText, "SortFilterExport"
'Ім'я контекстного меню, яке буде використовуватися за замовчуванням
ChangeProperty "StartupShowDBWindow", dbBoolean, False 'Вікно БД
ChangeProperty "StartupShowStatusBar", dbBoolean, True 'Рядок
стану - хай буде
ChangeProperty "AllowBuiltinToolbars", dbBoolean, False 'Висновок
вбудованих панелей інструментів
ChangeProperty "AllowFullMenus", dbBoolean, False 'Повну
систему вбудованих меню при запуску
ChangeProperty "AllowBreakIntoCode", dbBoolean, False 'Кнопка
налагодження
ChangeProperty "AllowSpecialKeys", dbBoolean, False 'Спеціальні
клавіші
ChangeProperty "AllowBypassKey", dbBoolean, False 'Режим
запуску програми з натиснутою SHIFT
ChangeProperty "AllowShortcutMenus", dbBoolean, False 'Висновок
контекстних меню
'ChangeProperty "AutoCompact", dbBoolean, True' Сжимать
при закритті
MsgBox "під час наступного запуску захист буде включена!", VbExclamation
End Sub
'------------------------------------------------- --------------------------
-----
Public Sub SetStartupProperties_Enabled ()
'ДОЗВІЛ
DeleteProperty "StartupForm" 'Стартова
форма
DeleteProperty "StartUpMenuBar" 'Ім'я панелі
меню, яке буде використовуватися за замовчуванням
DeleteProperty "StartupShortcutMenuBar" 'Ім'я
контекстного меню, яке буде використовуватися за замовчуванням
ChangeProperty "StartupShowDBWindow", dbBoolean, False 'Вікно БД
(False-Чи не виводити)
ChangeProperty "StartupShowStatusBar", dbBoolean, True 'Рядок
стану
ChangeProperty "AllowBuiltinToolbars", dbBoolean, True 'Вбудовані
панелі інструментів
ChangeProperty "AllowFullMenus", dbBoolean, True 'Повна
система вбудованих меню при запуску
ChangeProperty "AllowBreakIntoCode", dbBoolean, True 'Кнопка
Налагодження.
ChangeProperty "AllowSpecialKeys", dbBoolean, True 'Спеціальні
клавіші.
ChangeProperty "AllowBypassKey", dbBoolean, True 'Режим
запуску програми з натиснутою SHIFT
ChangeProperty "AllowShortcutMenus", dbBoolean, True 'Висновок
контекстних меню
'ChangeProperty "AutoCompact", dbBoolean, False' Сжимать
при закритті
MsgBox "під час наступного запуску захист буде вимкнена!", VbExclamation
End Sub
DeleteProperty = False
Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties.Delete (strPropName)
DeleteProperty = True
Set dbs = Nothing
Change_Bye:
Exit Function
Change_Err:
Resume Change_Bye
End Function
'------------------------------------------------- --------------------------
-----
Public Function CheckProperty (strPropName As String) As Variant
Dim dbs As Database, prp As Property
On Error GoTo Check_Err
Set dbs = CurrentDb
CheckProperty = dbs.Properties (strPropName)
Set dbs = Nothing
Check_Bye:
Exit Function
Check_Err:
CheckProperty = False
Resume Check_Bye
End Function
'------------------------------------------------- --------------------------
-----
Public Function ChangeProperty (strPropName As String, varPropType As
Variant, varPropValue As Variant) As Boolean
Dim dbs As Database, prp As Property
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties (strPropName) = varPropValue
ChangeProperty = True
Set dbs = Nothing
Change_Err:
If Err = conPropNotFoundError Then 'Властивість, не знайдено.
Set prp = dbs.CreateProperty (strPropName, varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' Невідома помилка.
ChangeProperty = False
'MsgBoxErr "ChangeProperty"
Resume Change_Bye
End If
End Function
'------------------------------------------------- --------------------------
-----
SP> Якщо я правильно зрозумів - в параметрах запуску потрібно прибрати меню і
SP> стандартні панелі управління Access.
Ваащето неа. Я мав на увазі прибрати кнопки згортання, розгортання,
закриття головного вікна АКСЕС. А це ми так знаємо :)))
SP> Я роблю ще й приховування вікна бази даних і автозапуск якоїсь форми
SP> (напр. Форми login). І тоді користувачеві (якщо тільки він не знає про
кнопочку
SP> Shift) проблематично скористатися стандартними засобами управління
SP> базою. А тільки те, що я дозволив.
SP> А хто знає про кнопочку Shift - тому по руках, по руках. )))
Post by Vitaly Tkachenko
Ваащето неа. Я мав на увазі прибрати кнопки згортання, розгортання,
закриття головного вікна АКСЕС. А це ми так знаємо :)))
Упс. сорри. А ось тут я не знаю. (
А можна запитати навіщо така потреба? Мож воно і мені треба.
Post by Vitaly Tkachenko
Ваащето неа. Я мав на увазі прибрати кнопки згортання,
розгортання, закриття головного вікна АКСЕС. А це ми так знаємо
:)))
SP> Упс. сорри. А ось тут я не знаю. (
SP> А можна запитати навіщо така потреба? Мож воно і мені треба.
Канеша можна - це для інформаційного табло клієнтів. Ось приходить людина
в оффис. А тут в холі стоїть інформаційне табло. Тільки табло (тобто екран
з "під" мишею;) З клави по сему він все одно нічо не зробить, а от по
хрестику ткне, і давай лазити по компу, проги запускати? залишиться тільки
якусь нитку аркаду проінсталіть туди;)))) Буде міні-гейм клуб :))
Так ось серйозно: форму максимізує, всі панелі і меню прибираю, головне вікно
теж максимізує, панель завдань в винде можна подкоцнуть, а ось сабжевие
кнопки не прибираються :))). вірніше: (((
За ідеєю, в глибокій системі вінди можна змінити тип вікна, або події
перехопити і скасувати. hWnd головного вікна дістається - значить, можна.
Так, закриття я ще можу перехопити і скасувати, а ось згортання,
розгортання головного вікна -.
Post by Vitaly Tkachenko
Так, закриття я ще можу перехопити і скасувати, а ось згортання,
розгортання головного вікна -.
Ага. ясно. Hе, мені таке поки не загрожує. )
Бажаю удачі все одно.
Post by Vitaly Tkachenko
Ваащето неа. Я мав на увазі прибрати кнопки згортання, розгортання,
закриття головного вікна АКСЕС. А це ми так знаємо :)))
Ідея така.
Перша форма - спливаюча,
у форми немає заголовка (в св-вах форми тип кордону - ніякий)
розгортаєш форму на весь екран
виходить, що щось схоже.
Я пробував давно, для закінченого пріложденія цілком нічого виглядає.
А взагалі, конкретно про акесний кнопки - здається бачив в книзі
"Аccess - Корпоративні програми". Але вже не пам'ятаю, на жаль.
Книга продається і пребагато рекомендована мною до використання.
Пренаімегаполезнейшая книга (2 томи) була для мене, поки вчився.