Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/88: Рейтинг темы: голосов - 88, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 8

Скрипт на нажатие клавиш

17.05.2018, 12:36. Показов 17595. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую! Пишу скрипт для нажатия клавиш клавиатуры. Скрипт ставлю на планировщик заданий Windows все работает если учотка не заблокирована. Но мне нужно проработка скрипта на заблокированой учетке. Прошу подсказки код привожу ниже))

PowerShell
1
2
3
4
5
6
7
8
$wshell = New-Object -ComObject WScript.Shell
$id = (gps bpwstart).id
$wshell.AppActivate($id)
start-sleep 1
$wshell.SendKeys("{ESC}")
Start-Sleep 5
$wshell.SendKeys("{ENTER}")
Start-Sleep 1
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.05.2018, 12:36
Ответы с готовыми решениями:

Нажатие клавиш вне формы (глобальный перехват сочетания клавиш)
Всем доброго времени суток! Задумал сделать значок раскладки клавы, но беда в том, что если потерян фокус приложения, то значок не...

Нажатие клавиш
Для движения объекта использую процедуру OnKeyPress, отдельно обрабатывая нажатие четырёх клавиш: wasd, септо движение вверх, влево,...

Нажатие клавиш в ТП
Как считать правильно нажатие стрелок? Почему программа стрелку вверх воспринимает как символ H ? Т.е. как бы код клавиша дает #80, но...

11
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
17.05.2018, 12:57
Sergey999, Я реализовывал подобную задачу, насколько я помню, единственным рабочим механизмом, для запуска приложения в сеансе другого пользователя, является использование WINAPI-метода CreateProcessAsUser.

Я выбрал 2-ух этапную реализацию
1. Системный сервис, который выполняет вызов CreateProcessAsUser(т.к. этот метод может работать только с маркером localsystem)
2. PS-скрипт который ищет нужные окна, и выполняет различные действия над ними ( процесс, который должен быть запущен как раз системным сервисом.)

Чисто гипотетически, можно не реализовывать системный сервис, а отталкиваться от планировщика, потому как задание из планировщика, тоже можно запустить с системными правами, что нужно именно для выполнения CreateProcessAsUser. Однако будет ли работать такой подход, не берусь утверждать.Это можно узнать либо эмпирическим путем, либо у знатоков системной структуры ОС
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 8
17.05.2018, 13:03  [ТС]
Мне нужно не от другого пользователя а от учетки которая вошла в систему и заблокировала сеанс
0
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
17.05.2018, 13:07
В принципе, если не нужно "чистое" решение, то можно воспользоваться утилитой PSEXEC, если я ничего не путаю, он тоже способен запускать приложения (процессы) в других сеансах
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 8
17.05.2018, 13:14  [ТС]
На планировщике два скрипта один запускает программу в 22:00 второму нужно закрыть в 08:00 утра.
0
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
17.05.2018, 13:15
Sergey999,
Мне нужно не от другого пользователя а от учетки которая вошла в систему и заблокировала сеанс
В этом случае у вас, скорее всего некорректно, настроено регламентное задание.
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 8
17.05.2018, 13:19  [ТС]
Если не блокировать сеанс и подвести время планировщика скрипт работает
0
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
17.05.2018, 13:21
Sergey999, Покажите скрин, настройки задания, которое не отрабатывает.
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 8
17.05.2018, 13:48  [ТС]
Скрин якой вкладки на планировщике их много?
0
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
17.05.2018, 13:56
Sergey999,

Также вполне возможно, проблема лежит в плоскости реализации объекта WshShell
При ситуации, когда нужная учетка заблокирована, ваш скрипт пытается активизировать фокус окна приложения, подозреваю, что это может не работать. Знатоки WshShell - подскажут точно.

В качестве альтернативы, вместо sendkeys, можете попробовать, ранее мной упомянутый WINAPI.
Конкретно FindWindowEx, SendMessage, для нахождения нужного окна и передачи ему сообщения.

Также предпочтительнее, использовать AUTOIT
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 8
17.05.2018, 14:24  [ТС]
Спасибо большое буду пробовать. Еще вопрос возможно подскажите реализацию скрипта на корректное закрытие программы кроме тупого убивания процесса?
0
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
17.05.2018, 14:40
Sergey999, Все тоже самое
FindWindowEx, SendMessage
При помощи FindWindowEx находится дескриптор окна нужного приложения.
При помощи, SendMessage отсылается команда, на закрытие окна.
Если при закрытии появляется, дополнительное окно, на подтверждение схема повторяется, находится дескриптор дополнительного окна, и отсылается команда.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.05.2018, 14:40
Помогаю со студенческими работами здесь

Нажатие клавиш
Как сделать что бы при нажатии кнопки "нажимались клавиши", ну то есть печаталось сообщение за меня. И можно ли это как то объединить с...

Нажатие клавиш
Всем привет!) Подскажите как запретить нажатие клавиш Ctrl, Alt и Win?? Заранее спасибо!)

Нажатие клавиш
Вобщем, нужна Ваша помощь товарищи гуру. Юзер моей программы должен выбирать окно любой другой программы, в котором спустя некоторые...

Нажатие клавиш
Надо чтобы при нажатии клавиш в WinForms на приложении увеличивалась переменная . что то типо пароля(в некоторых играх есть такое) если...

нажатие клавиш
Что можно использовать вместо getch() чтобы программа не ждала нажатия клавиши а проверяла была ли нажата клавиша (только не bioskey)


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru