Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
1

Обращение к форме Excel с имитацией нажатия клавиш

29.01.2017, 17:22. Показов 582. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При открытии файла Excel, этим кодом
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub Открыть() 'Путь к папке с программой
Dim N, n1 As String
Dim strPath As String
N = CurrentProject.Path 'Путь к папке с программой
n1 = CurrentDb.Name 'Путь к базе
strPath = N & "" & "Выборка Табеля.xlsm" 'Задаём путь к открываемому файлу
'Открываем файл
On Error Resume Next
Shell "Excel.exe """ & strPath & """", vbMaximizedFocus
End Sub
в этом файле запускается макрос при открытии, открывающий форму, для ввода пользователя и пароля. На кнопке прописана проверка и если все условия соблюдены, то нужные листы открываются и запускается ряд макросов.

Вопрос. Можно ли обратится к форме открытого файла Excel, из Access? Нужно выделить поле на форме, ввести туда пароль
и нажать кнопку! Или можно это решить как то по другому? Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2017, 17:22
Ответы с готовыми решениями:

Отлов нажатия клавиш на форме
Отлавливались нажатия на клавиши на форме (Handles Me.KeyDown). После добавления на форму...

Перехват калавиши с имитацией нажатия
//--------------------------------------------------------------------------- #include <vcl.h>...

C# Отслеживание нажатия двух клавиш на форме
Пишу приложение управления машинкой по WIFi. и вот застрял на том что не знаю как отследить нажатие...

Обработчик нажатия клавиш в не активной форме
Доброго времени суток.https://www.cyberforum.ru/csharp-net/thread687082.html вот ссылка которая...

4
10473 / 5459 / 1375
Регистрация: 05.10.2016
Сообщений: 15,480
29.01.2017, 18:41 2
Цитата Сообщение от Виктор Михалыч Посмотреть сообщение
Нужно выделить поле на форме, ввести туда пароль
и нажать кнопку!
Вот такого я точно пока не делал! - ммм - не умею (но думаю что вполне возможно).

Открытие через "Shell" - вам точно такого сделать не даст.
в VBA - автоматтизация прложений MSO идёт обычно через объект Application.
И дальше - полный контроль.
2
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
29.01.2017, 18:58 3
Цитата Сообщение от Виктор Михалыч Посмотреть сообщение
Вопрос. Можно ли обратится к форме открытого файла Excel, из Access? Нужно выделить поле на форме, ввести туда пароль
и нажать кнопку! Или можно это решить как то по другому?
Если форма модальная, то не так просто. Модальная форма не позволит что-либо сделать. И надо видимо перебирать процессы, находить нужный файл, искать в нем форму, узнать HWND текстбокса и только тогда записать в него пароль. Вообщем это лучше спросить у вбашников, ексельщиков.

Если же форма не модальная, то как уже сказал Eugene-LS, можно через автоматизацию. Вместо шелла примерно такой код, считая конечно, что форма открывается автоматом при загрузке ексель-файла
Visual Basic
1
2
3
4
5
6
7
8
9
10
    Dim app As Object, wrk As Object
    Set app = CreateObject("excel.application")
    app.Visible = True
    Set wrk = app.workbooks.Open("C:\путь\имяфайла.xlsm")
    Do Until True
        If Not app.UserForm1.IsVisible Then
            DoEvents
        End If
    Loop
    SendKeys "МойПароль"
2
280 / 136 / 23
Регистрация: 08.01.2014
Сообщений: 635
29.01.2017, 19:06  [ТС] 4
Буду пробовать. Спасибо!
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
29.01.2017, 19:12 5
Цикл
Visual Basic
1
2
3
4
5
    Do While True
        If Not app.UserForm1.IsVisible Then
            DoEvents
        End If
    Loop
лишний. Тем более, что он ошибочный. Вместо него надо несколько дуэвентсов
Visual Basic
1
DoEvents: DoEvents: DoEvents: DoEvents: DoEvents
1
29.01.2017, 19:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2017, 19:12
Помогаю со студенческими работами здесь

Отключение системного звука нажатия клавиш в форме
Доброго времени суток! Подскажите пожалуйста код! Вот у меня есть форма(Form1), по нажатию...

Как объяснить форме, что надо игнорировать нажатия некоторых клавиш?
Подскажите плис. 3 дня и 3 ночи объясняю форме чтобы она на 'Таб' не реагировала. :) Имеется форма...

Не ловятся нажатия клавиш, если на форме активен хоть один элемент
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)...

Перехватчик клавиш + эмуляция нажатия клавиш
Здравствуйте! Срочно нужна помощь! Моя программа работает в фоновом режиме. Мне нужно: 1) чтобы...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru