Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Управление системы через Wscript Shell - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 212»
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Управление системы через Wscript Shell (Макросы/Sub)
Управление системы через Wscript Shell
den45444 Дата: Среда, 10.08.2016, 05:49 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Прошу помочь в след.вопросе: есть макрос (см.ниже), который открывает проводник, находит нужный файл и выделяет его. После выделения нажимаем правой кнопкой, чтобы выбрать последующее действие с предлагаемого списка (например 6-й по списку "Создать ярлык"). Макрос работает, но после выделения он открывает выпадающий список не системы, а Экселя. Как можно прописать так, чтобы выпадающий список выходил именно системы, т.е. как на Рабочем столе мы выделяем какой-нибудь файл и нажимаем на правую кнопку для выбора каких либо действий.
[vba]
Код
Sub Файл_лист()
    Set wb1 = ActiveWorkbook
    P = wb1.Path
    On Error Resume Next
    CreateObject("wscript.shell").Run "explorer.exe /e,/select,""" & P & "\Файл.xlsx" & """", 1, True
    SendKeys "+{F10}"
End Sub
[/vba]
 
Ответить
СообщениеПрошу помочь в след.вопросе: есть макрос (см.ниже), который открывает проводник, находит нужный файл и выделяет его. После выделения нажимаем правой кнопкой, чтобы выбрать последующее действие с предлагаемого списка (например 6-й по списку "Создать ярлык"). Макрос работает, но после выделения он открывает выпадающий список не системы, а Экселя. Как можно прописать так, чтобы выпадающий список выходил именно системы, т.е. как на Рабочем столе мы выделяем какой-нибудь файл и нажимаем на правую кнопку для выбора каких либо действий.
[vba]
Код
Sub Файл_лист()
    Set wb1 = ActiveWorkbook
    P = wb1.Path
    On Error Resume Next
    CreateObject("wscript.shell").Run "explorer.exe /e,/select,""" & P & "\Файл.xlsx" & """", 1, True
    SendKeys "+{F10}"
End Sub
[/vba]

Автор - den45444
Дата добавления - 10.08.2016 в 05:49
Manyasha Дата: Среда, 10.08.2016, 10:41 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1590
Репутация: 669 ±
Замечаний: 0% ±

Excel 2007, 2010
den45444, у меня Ваш макрос работает, меню открывается системное
А зачем Вам это меню? Может сразу делать, что нужно?
Создавать ярлык можно так:
[vba]
Код
Sub t()
    Dim wshObj As Object
    Set wb1 = ActiveWorkbook
    P = wb1.Path
    Set wshObj = CreateObject("WScript.Shell").CreateShortcut(P & "\ярлык.lnk")
    wshObj.TargetPath = P & "\Файл.xlsx"
    wshObj.Save
End Sub
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеden45444, у меня Ваш макрос работает, меню открывается системное
А зачем Вам это меню? Может сразу делать, что нужно?
Создавать ярлык можно так:
[vba]
Код
Sub t()
    Dim wshObj As Object
    Set wb1 = ActiveWorkbook
    P = wb1.Path
    Set wshObj = CreateObject("WScript.Shell").CreateShortcut(P & "\ярлык.lnk")
    wshObj.TargetPath = P & "\Файл.xlsx"
    wshObj.Save
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 10.08.2016 в 10:41
den45444 Дата: Среда, 10.08.2016, 11:09 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha, Благодарю за ответ.
Создать ярлык - это просто пример. Вообще, нужно зашифровать или расшифровать файл системным образом. Сейчас при выделении файла и нажатии правой кнопкой выходит список: Открыть, Расположение файла, Печать, Изменить, Зашифровать, Расшифровать и т.п. Вот как раз мне нужны эти функции "Зашифровать и Расшифровать" и они по списку 5 и 6. Можно ли до них добраться?
 
Ответить
СообщениеManyasha, Благодарю за ответ.
Создать ярлык - это просто пример. Вообще, нужно зашифровать или расшифровать файл системным образом. Сейчас при выделении файла и нажатии правой кнопкой выходит список: Открыть, Расположение файла, Печать, Изменить, Зашифровать, Расшифровать и т.п. Вот как раз мне нужны эти функции "Зашифровать и Расшифровать" и они по списку 5 и 6. Можно ли до них добраться?

Автор - den45444
Дата добавления - 10.08.2016 в 11:09
den45444 Дата: Среда, 10.08.2016, 11:40 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha,
у меня Ваш макрос работает, меню открывается системное

А почему же у меня открывает меню Экселя? Странно
 
Ответить
СообщениеManyasha,
у меня Ваш макрос работает, меню открывается системное

А почему же у меня открывает меню Экселя? Странно

Автор - den45444
Дата добавления - 10.08.2016 в 11:40
SLAVICK Дата: Среда, 10.08.2016, 12:36 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 1849
Репутация: 614 ±
Замечаний: 0% ±

2007,2010,2013,2016
А почему же у меня открывает меню Экселя? Странно

Скорее всего - система не успевает активировать проводник.
Попробуйте добавить паузу:
[vba]
Код
Sub Файл_лист()
    Set wb1 = ActiveWorkbook
    P = wb1.Path
    On Error Resume Next
    CreateObject("wscript.shell").Run "explorer.exe /e,/select,""" & P & "\Файл.xlsx" & """", 1, True
    Application.Wait (Now + 5 / 86400)
    SendKeys "+{F10}"
End Sub
[/vba]
Здесь 5с - для теста - уменьшайте время если нужно. А вообще SendKeys - зло :D .


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
А почему же у меня открывает меню Экселя? Странно

Скорее всего - система не успевает активировать проводник.
Попробуйте добавить паузу:
[vba]
Код
Sub Файл_лист()
    Set wb1 = ActiveWorkbook
    P = wb1.Path
    On Error Resume Next
    CreateObject("wscript.shell").Run "explorer.exe /e,/select,""" & P & "\Файл.xlsx" & """", 1, True
    Application.Wait (Now + 5 / 86400)
    SendKeys "+{F10}"
End Sub
[/vba]
Здесь 5с - для теста - уменьшайте время если нужно. А вообще SendKeys - зло :D .

Автор - SLAVICK
Дата добавления - 10.08.2016 в 12:36
den45444 Дата: Среда, 10.08.2016, 13:17 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, Благодарю за ответ. Да, на самом деле не успевает активировать. Не знаете ли как выбрать с этого меню 5 или 6-ю строку?

А вообще SendKeys - зло

А есть другие методы?
 
Ответить
СообщениеSLAVICK, Благодарю за ответ. Да, на самом деле не успевает активировать. Не знаете ли как выбрать с этого меню 5 или 6-ю строку?

А вообще SendKeys - зло

А есть другие методы?

Автор - den45444
Дата добавления - 10.08.2016 в 13:17
den45444 Дата: Среда, 10.08.2016, 13:28 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Не знаете ли как выбрать с этого меню 5 или 6-ю строку?

С этим разобрался.
Вот код:
[vba]
Код
    CreateObject("wscript.shell").Run "explorer.exe /e,/select,""" & ActiveWorkbook.Path & "\Файл.xlsx" & """", 1, True
    Application.Wait (Now + 5 / 86400)
    SendKeys "+{F10}"
    SendKeys "{DOWN 5}"
    SendKeys "{ENTER}"
[/vba]
 
Ответить
Сообщение
Не знаете ли как выбрать с этого меню 5 или 6-ю строку?

С этим разобрался.
Вот код:
[vba]
Код
    CreateObject("wscript.shell").Run "explorer.exe /e,/select,""" & ActiveWorkbook.Path & "\Файл.xlsx" & """", 1, True
    Application.Wait (Now + 5 / 86400)
    SendKeys "+{F10}"
    SendKeys "{DOWN 5}"
    SendKeys "{ENTER}"
[/vba]

Автор - den45444
Дата добавления - 10.08.2016 в 13:28
SLAVICK Дата: Среда, 10.08.2016, 14:03 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 1849
Репутация: 614 ±
Замечаний: 0% ±

2007,2010,2013,2016
Не знаете ли как выбрать с этого меню 5 или 6-ю строку?

Вам нужно не пункт выбрать а произвести действие так?
Вот и нужно искать как зашифровать/расшифровать файл.
Посмотрите тут и тут - сильно не вникал в суть, поскольку файлы не шифровал пока.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
Не знаете ли как выбрать с этого меню 5 или 6-ю строку?

Вам нужно не пункт выбрать а произвести действие так?
Вот и нужно искать как зашифровать/расшифровать файл.
Посмотрите тут и тут - сильно не вникал в суть, поскольку файлы не шифровал пока.

Автор - SLAVICK
Дата добавления - 10.08.2016 в 14:03
den45444 Дата: Среда, 10.08.2016, 17:35 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, Благодарю за помощь. Вопрос решен, можно закрыть тему.
 
Ответить
СообщениеSLAVICK, Благодарю за помощь. Вопрос решен, можно закрыть тему.

Автор - den45444
Дата добавления - 10.08.2016 в 17:35
den45444 Дата: Среда, 10.08.2016, 21:25 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, кстати, не знаете как сделать, чтобы SendKeys не выполнялся до того, пока не завершится процесс открывания Проводника?
 
Ответить
СообщениеSLAVICK, кстати, не знаете как сделать, чтобы SendKeys не выполнялся до того, пока не завершится процесс открывания Проводника?

Автор - den45444
Дата добавления - 10.08.2016 в 21:25
SLAVICK Дата: Четверг, 11.08.2016, 10:19 | Сообщение № 11
Группа: Модераторы
Ранг: Старожил
Сообщений: 1849
Репутация: 614 ±
Замечаний: 0% ±

2007,2010,2013,2016
SLAVICK, кстати, не знаете как сделать, чтобы SendKeys не выполнялся до того, пока не завершится процесс открывания Проводника?

нет не знаю :( - поэтому и посоветовал Application.Wait.
Вам еще один совет - задавая вопрос - не задавайте конкретному форумчанину. Может кто-то другой знает - он ответит. А так Вы заранее ограничиваете круг помогающих.
По поводу:
SendKeys "+{F10}"
SendKeys "{DOWN 5}"
SendKeys "{ENTER}"

У меня это печатает файл - так и нужно?
Если да, то повторюсь:
SendKeys - зло .

лучше уже так(взял тут):
[vba]
Код
Option Explicit
Declare Function apiShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long
Public Sub PrintFile(ByVal strPathAndFilename As String)
    Call apiShellExecute(Application.hwnd, "print", strPathAndFilename, vbNullString, vbNullString, 0)
End Sub
Sub Test()
    PrintFile (ActiveWorkbook.Path & "?????.xlsm")
End Sub
[/vba]
почитать про этот метод можно тут


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
SLAVICK, кстати, не знаете как сделать, чтобы SendKeys не выполнялся до того, пока не завершится процесс открывания Проводника?

нет не знаю :( - поэтому и посоветовал Application.Wait.
Вам еще один совет - задавая вопрос - не задавайте конкретному форумчанину. Может кто-то другой знает - он ответит. А так Вы заранее ограничиваете круг помогающих.
По поводу:
SendKeys "+{F10}"
SendKeys "{DOWN 5}"
SendKeys "{ENTER}"

У меня это печатает файл - так и нужно?
Если да, то повторюсь:
SendKeys - зло .

лучше уже так(взял тут):
[vba]
Код
Option Explicit
Declare Function apiShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long
Public Sub PrintFile(ByVal strPathAndFilename As String)
    Call apiShellExecute(Application.hwnd, "print", strPathAndFilename, vbNullString, vbNullString, 0)
End Sub
Sub Test()
    PrintFile (ActiveWorkbook.Path & "?????.xlsm")
End Sub
[/vba]
почитать про этот метод можно тут

Автор - SLAVICK
Дата добавления - 11.08.2016 в 10:19
Gustav Дата: Четверг, 11.08.2016, 11:53 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1211
Репутация: 484 ±
Замечаний: 0% ±

начинал с Excel 4.0...
А почему же у меня открывает меню Экселя?

Потому что перед SendKeys надо выполнить AppActivate с именем окна (прямо текст заголовка), в которое будут посланы нажатия клавиш. Если окно еще не появилось, то нужно его подождать в бесконечном цикле с проверкой On Error.

Примерно, как у меня здесь.


Мой tip box - яд 41001663842605

Сообщение отредактировал Gustav - Четверг, 11.08.2016, 12:01
 
Ответить
Сообщение
А почему же у меня открывает меню Экселя?

Потому что перед SendKeys надо выполнить AppActivate с именем окна (прямо текст заголовка), в которое будут посланы нажатия клавиш. Если окно еще не появилось, то нужно его подождать в бесконечном цикле с проверкой On Error.

Примерно, как у меня здесь.

Автор - Gustav
Дата добавления - 11.08.2016 в 11:53
den45444 Дата: Четверг, 11.08.2016, 14:12 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, Печать тут не причем. У меня по списку другая функция.
 
Ответить
СообщениеSLAVICK, Печать тут не причем. У меня по списку другая функция.

Автор - den45444
Дата добавления - 11.08.2016 в 14:12
den45444 Дата: Четверг, 11.08.2016, 14:13 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav,
Примерно, как у меня здесь.

Благодарю за ссылку с примером. Как попробую на своем примеру, отпишусь.
 
Ответить
СообщениеGustav,
Примерно, как у меня здесь.

Благодарю за ссылку с примером. Как попробую на своем примеру, отпишусь.

Автор - den45444
Дата добавления - 11.08.2016 в 14:13
den45444 Дата: Четверг, 11.08.2016, 14:55 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, Что-то не получается правильно прописать. Не могли бы помочь?
 
Ответить
СообщениеGustav, Что-то не получается правильно прописать. Не могли бы помочь?

Автор - den45444
Дата добавления - 11.08.2016 в 14:55
Gustav Дата: Четверг, 11.08.2016, 16:28 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1211
Репутация: 484 ±
Замечаний: 0% ±

начинал с Excel 4.0...
Не могли бы помочь?

Ну, может, и мог бы, если бы видел в чём конкретно. Код - в студию!

Только без приватных консультаций, и, разумеется, помогать равноправно могут все участники дискуссии.


Мой tip box - яд 41001663842605
 
Ответить
Сообщение
Не могли бы помочь?

Ну, может, и мог бы, если бы видел в чём конкретно. Код - в студию!

Только без приватных консультаций, и, разумеется, помогать равноправно могут все участники дискуссии.

Автор - Gustav
Дата добавления - 11.08.2016 в 16:28
den45444 Дата: Четверг, 11.08.2016, 16:53 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Хорошо. Вот код:
[vba]
Код
Sub shifr()
    On Error Resume Next
    CreateObject("WScript.Shell").Run "explorer.exe /e,/select,""" & ActiveWorkbook.Path & "\Файл.xlsx" & """", 1, True 'открываем проводник (папку) активной книги и выделяем файл под названием "Файл"
    'Application.Wait (Now + 3 / 86400) 'Выдерживаем паузу в 3 сек.
SendKeys ("+{F10}") 'Нажатие на правую кнопку для вызова системного меню для данного файла
SendKeys ("{DOWN 5}") '5 раз нажимаем стрелку вниз
  SendKeys ("{ENTER}") 'и запускаем
End Sub
[/vba]


Сообщение отредактировал den45444 - Четверг, 11.08.2016, 16:57
 
Ответить
СообщениеХорошо. Вот код:
[vba]
Код
Sub shifr()
    On Error Resume Next
    CreateObject("WScript.Shell").Run "explorer.exe /e,/select,""" & ActiveWorkbook.Path & "\Файл.xlsx" & """", 1, True 'открываем проводник (папку) активной книги и выделяем файл под названием "Файл"
    'Application.Wait (Now + 3 / 86400) 'Выдерживаем паузу в 3 сек.
SendKeys ("+{F10}") 'Нажатие на правую кнопку для вызова системного меню для данного файла
SendKeys ("{DOWN 5}") '5 раз нажимаем стрелку вниз
  SendKeys ("{ENTER}") 'и запускаем
End Sub
[/vba]

Автор - den45444
Дата добавления - 11.08.2016 в 16:53
Gustav Дата: Пятница, 12.08.2016, 17:50 | Сообщение № 18
Группа: Друзья
Ранг: Старожил
Сообщений: 1211
Репутация: 484 ±
Замечаний: 0% ±

начинал с Excel 4.0...
Ну, я что-то соорудил, но это как-то всё очень нестабильно (срабатывает через раз, а то и через два)... Свое "решение" публикую, скорее, как подтверждение того, что я тоже ковырялся по теме. В своей версии, в виду отсутствия у меня в контекстном меню команды шифрования, я просто открываю окно свойств файла (последняя строка в контекстном меню):
[vba]
Код
Sub test123()
    
    Dim windowName As String
    
    windowName = Mid(ActiveWorkbook.Path, InStrRev(ActiveWorkbook.Path, "\") + 1) 'заголовок окна - имя папки после последнего слэша
    
    Shell "explorer.exe /e,/select,""" & ActiveWorkbook.Path & "\Файл.xlsx" & """", vbNormalFocus
    
    On Error Resume Next
    Do
        Err.Clear
        AppActivate windowName, True 'ожидаем появления нужного окна
    Loop Until Err = 0
    On Error GoTo 0
    
    'DoEvents
   
    AppActivate windowName, True 'и для надёжности еще раз его активируем
    Application.Wait Now + TimeSerial(0, 0, 3) 'Выдерживаем паузу в 3 сек.
    
    SendKeys "{ESC 5}", True 'несколько нажатий фиктивных клавиш (здесь ни на что не влияют) - типа "на случай непредвиденных потерь из буфера клавиатуры"
    
    Application.Wait Now + TimeSerial(0, 0, 1)
    SendKeys "+{F10}", True
    
    Application.Wait Now + TimeSerial(0, 0, 1)
    SendKeys "{UP}", True
    
    Application.Wait Now + TimeSerial(0, 0, 1)
    SendKeys "{ENTER}", True 'Контекстное меню - Стрелка вверх - "Свойства" файла - открываем
    
    Application.Wait Now + TimeSerial(0, 0, 2)
   
End Sub
[/vba]
ОСОБЫЕ УСЛОВИЯ:
1. перед запуском убедиться в отсутствии других окон Explorer.
2. во время предыдущего запуска Explorer вЫключить отображение области предварительного просмотра (по меню "Упорядочить \ Представление \ Область предпросмотра"). Как показывают тесты, система заметно "отвлекается" на эту область и может непредсказуемо повлиять на очередь нажатий клавиш, посланных SendKeys.


Мой tip box - яд 41001663842605
 
Ответить
СообщениеНу, я что-то соорудил, но это как-то всё очень нестабильно (срабатывает через раз, а то и через два)... Свое "решение" публикую, скорее, как подтверждение того, что я тоже ковырялся по теме. В своей версии, в виду отсутствия у меня в контекстном меню команды шифрования, я просто открываю окно свойств файла (последняя строка в контекстном меню):
[vba]
Код
Sub test123()
    
    Dim windowName As String
    
    windowName = Mid(ActiveWorkbook.Path, InStrRev(ActiveWorkbook.Path, "\") + 1) 'заголовок окна - имя папки после последнего слэша
    
    Shell "explorer.exe /e,/select,""" & ActiveWorkbook.Path & "\Файл.xlsx" & """", vbNormalFocus
    
    On Error Resume Next
    Do
        Err.Clear
        AppActivate windowName, True 'ожидаем появления нужного окна
    Loop Until Err = 0
    On Error GoTo 0
    
    'DoEvents
   
    AppActivate windowName, True 'и для надёжности еще раз его активируем
    Application.Wait Now + TimeSerial(0, 0, 3) 'Выдерживаем паузу в 3 сек.
    
    SendKeys "{ESC 5}", True 'несколько нажатий фиктивных клавиш (здесь ни на что не влияют) - типа "на случай непредвиденных потерь из буфера клавиатуры"
    
    Application.Wait Now + TimeSerial(0, 0, 1)
    SendKeys "+{F10}", True
    
    Application.Wait Now + TimeSerial(0, 0, 1)
    SendKeys "{UP}", True
    
    Application.Wait Now + TimeSerial(0, 0, 1)
    SendKeys "{ENTER}", True 'Контекстное меню - Стрелка вверх - "Свойства" файла - открываем
    
    Application.Wait Now + TimeSerial(0, 0, 2)
   
End Sub
[/vba]
ОСОБЫЕ УСЛОВИЯ:
1. перед запуском убедиться в отсутствии других окон Explorer.
2. во время предыдущего запуска Explorer вЫключить отображение области предварительного просмотра (по меню "Упорядочить \ Представление \ Область предпросмотра"). Как показывают тесты, система заметно "отвлекается" на эту область и может непредсказуемо повлиять на очередь нажатий клавиш, посланных SendKeys.

Автор - Gustav
Дата добавления - 12.08.2016 в 17:50
SLAVICK Дата: Пятница, 12.08.2016, 18:40 | Сообщение № 19
Группа: Модераторы
Ранг: Старожил
Сообщений: 1849
Репутация: 614 ±
Замечаний: 0% ±

2007,2010,2013,2016
ОСОБЫЕ УСЛОВИЯ:....

добавлю:
Еще поотключать ВСЕ программы, окна которых могут всплыть в самый неподходящий момент, а также НЕ двигать и НЕ клацать мышью, НЕ нажимать на клавиатуру и вообще лучше не дышать и т.д.... а то мало ли что :o :D :D :D .
В этой шутке лишь доля шутки.
Когда используете SendKeys
как-то всё очень нестабильно

Так что, если есть другие способы - лучше использовать их. SendKeys - нужно использовать если совсем уж ничего другого нельзя сделать.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
ОСОБЫЕ УСЛОВИЯ:....

добавлю:
Еще поотключать ВСЕ программы, окна которых могут всплыть в самый неподходящий момент, а также НЕ двигать и НЕ клацать мышью, НЕ нажимать на клавиатуру и вообще лучше не дышать и т.д.... а то мало ли что :o :D :D :D .
В этой шутке лишь доля шутки.
Когда используете SendKeys
как-то всё очень нестабильно

Так что, если есть другие способы - лучше использовать их. SendKeys - нужно использовать если совсем уж ничего другого нельзя сделать.

Автор - SLAVICK
Дата добавления - 12.08.2016 в 18:40
den45444 Дата: Понедельник, 15.08.2016, 18:23 | Сообщение № 20
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А кто-нибудь знает как через WinApi все это сделать?
 
Ответить
СообщениеА кто-нибудь знает как через WinApi все это сделать?

Автор - den45444
Дата добавления - 15.08.2016 в 18:23
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Управление системы через Wscript Shell (Макросы/Sub)
Страница 1 из 212»
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!