powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SendKeys шлёт пароль не туда.
19 сообщений из 19, страница 1 из 1
SendKeys шлёт пароль не туда.
    #34372760
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть VB-шная аппликация, которая запускает аксесные рипорты. Аксесная база запаролена. Моя программа посылает пароль через SendKeys. Вот примерный код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub Print_Access_Report(sRptName)

Dim ac As Access.Application
Dim strLvSendKeys As String
   
   Set ac = New Access.Application
   strLvSendKeys = strLcDatabasePas & "~"
   DoEvents
   SendKeys (strLvSendKeys)

   ac.OpenCurrentDatabase MyFile
   ac.Visible = True
   ac.DoCmd.RunMacro "Macro1"
   ac.DoCmd.OpenReport sRptName, acViewPreview
   ac.DoCmd.Maximize
   
End Sub

Это всё работает. Но проблема в том, что если запустить это и одновременно открыть что-нибудь другое, как Excel or Notepad, то иногда она тупо передаёт этот пароль прямо в эти посторонние аппликации и его можно прочитать! Кто-нибудь сталкивался с таким? Как этого избежать?
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34372900
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Увы, SendKeys не имеет параметра - "приложение" и посылает символы АКТИВНОМУ приложению! Соответственно, если последним, до вызова процедуры запущен Notepad, то пароль мы увидим в блокноте.

Решением данной проблемы может быть команда AppActivate "Microsoft Access", которая сделает активным приложение Microsoft Access. А что если будет открыта другая база?

ИМХО: SendKeys+Пароль=Алгоритм ненадежный и легко отслеживаемый.
Мой совет: Используй ConnectionString (SQL) для передачи пароля базе. Это всего одна строчка кода)))

Успехов!
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34375312
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedor,
огромное спасибо вам за ответ.
авторИспользуй ConnectionString (SQL) для передачи пароля базе.
Вррбще-то так и делаю во всей аппликации, но в этом конкретном месте такая дурацкая комбинация - надо ОТКРЫТЬ аксесные рипорты из VB. Вот как это реализовать другим образом, пока не придумала.
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34375337
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, пропустила ваше замечание по поводу AppActivate ! Сейчас буду искать.
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34375939
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИМХО: SendKeys+Пароль=Алгоритм ненадежный и легко отслеживаемый.

VipFedor, подумала, подумала и решила, что вы абсолютно правы. Налакякала нечто такое, прекрасно работает и нет опасности послать пароль в ложное место. Спасибо вам ещё раз.
Пришлось конечно ДАО подключать в проект для этого, чего не хотелось.
Может кто знает как в таком коде обойтись с АДО?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
   Static acc As Access.Application
   Dim db As DAO.Database
   Set acc = New Access.Application
   
   Set db = acc.DBEngine.OpenDatabase(MyFile, False, False, ";PWD=" & strLcDatabasePas & "")
   acc.OpenCurrentDatabase MyFile
   acc.DoCmd.RunMacro "Macro1"
   
   acc.DoCmd.OpenReport sRptName, acViewPreview
   acc.DoCmd.Maximize
   acc.Visible = True
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34375970
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мадамаПришлось конечно ДАО подключать в проект для этого, чего не хотелось. Вам самим подключать DAO было необязательно, просто объявите
Код: plaintext
Dim db As Object
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34375998
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge Gavrilov,
огромнейшее спасибо. Отключила ДАО, сделала с Object, прекрасно работает.
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34376022
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мадамаМожет кто знает как в таком коде обойтись с АДО?


Код для ADO в этом случае не сильно изменится:

Set objConn = CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Password="ТУТ_ПАРОЛЬ";Data
Source="ТУТ_ПУТЬ_К_БАЗЕ" + другие нужные параметры!
objConn.Open 'Ну и собственно подключаемся к базе данных:)

ИМХО: DAO - устарело и не актуально)
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34376047
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedor
ИМХО: DAO - устарело и не актуально)
Сеня, про зайцев - не актуально (С) :-)

Что ж сам-то Access до сих пор использует DAO?
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34376089
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Старый ворчун VipFedor
ИМХО: DAO - устарело и не актуально)
Сеня, про зайцев - не актуально (С) :-)

Что ж сам-то Access до сих пор использует DAO?

ИМХО (imho) — In My Humble Opinion (по моему скромному мнению). Есть ещё вариант imo, это когда говорящий не считает своё мнение скромным. Учим этикет)))

Сравнение работы DAO и ADO можно найти в Интернете! Ваше мнение может быть другим!
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34376092
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И в дополнение... Microsoft отказалось от развития технологии DAO. А технология ADO успешно развивается! Читаем: www.microsoft.com

Успехов!
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34376126
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedor Старый ворчун VipFedor
ИМХО: DAO - устарело и не актуально)
Сеня, про зайцев - не актуально (С) :-)

Что ж сам-то Access до сих пор использует DAO?

ИМХО (imho) — In My Humble Opinion (по моему скромному мнению). Есть ещё вариант imo, это когда говорящий не считает своё мнение скромным. Учим этикет)))
Спасибо, но я не просил вас это пояснять, я говорил несколько о другом.
VipFedor
Сравнение работы DAO и ADO можно найти в Интернете!
ценное наблюдение :-)
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34376128
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedorИ в дополнение... Microsoft отказалось от развития технологии DAO. А технология ADO успешно развивается! Читаем: www.microsoft.com

Отказ от развития не равен отказу от использования.
Обычно развивается то, что пока неразвито :-)
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34378372
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый ворчунЧто ж сам-то Access до сих пор использует DAO?
Потому что Access это епархия ДАО. А в VB проджекте уже его использовать не современно.
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34378569
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мадамаА в VB проджекте уже его использовать не современно.
Спасибо за поддержку. :)
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34378701
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пожалста :)
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34381055
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, тогда и сам VB использовать несовременно.
Раз уж мы такие принципиальные.
:))
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34381147
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мадама Старый ворчунЧто ж сам-то Access до сих пор использует DAO?
Потому что Access это епархия ДАО. А в VB проджекте уже его использовать не современно.А еще не гламурно и даже не готично =))
На самом деле DAO и Access изначально затачивались друг под друга, поэтому в приложениях, использующих mdb в качестве хранилища и требовательных к скорости, лучше использовать DAO, оно быстрее.
...
Рейтинг: 0 / 0
SendKeys шлёт пароль не туда.
    #34381195
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Letter_DНу, тогда и сам VB использовать несовременно.
Раз уж мы такие принципиальные.
:))
Конечно несовременно. Кто ж спорит. :)
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SendKeys шлёт пароль не туда.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]