Консультация № 160156
11.02.2009, 04:17
0.00 руб.
0 12 1
Здравствуйте уважаемые эксперты! Пожалуйста помогите с проблемой. В командной строке или в пакетном (командном) файле нужно устроить так, чтобы компьютер сам активировал прописанную в командах комбинацию клавиш. Например чтобы сама активировалась клавиша <Enter>. Спасибо за внимание. Заранее благодарю.
<GekT0R>

Обсуждение

давно
Посетитель
7438
7205
11.02.2009, 09:25
общий
Полагаю, что для этого стандартных средств нет.
С другой стороны, проблема легко решается с помощью небольшой программки, которая отправляет в буфер клавиатуры заданный код.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
11.02.2009, 10:35
общий
вирусописателям бы такую программку - на руках бы вас носили :)
Неизвестный
12.02.2009, 04:45
общий
Уважаемые эксперты! Спасибо за ваше мнение. Однако хотелось бы узнать у вас еще одну не маловажную вещь - а именно нигде не могу найти полный список команд для командной строки и командных (bat) файлов. Если такая тема уже обсуждалась - просто напишите и я поищу в истории сайта. Еще раз спасибо.
С уважением <GekT0R>
давно
Посетитель
7438
7205
12.02.2009, 09:47
общий
А чего их искать-то?
Спросить у CMD командой HELP
По конкретной команде: HELP <команда>
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
13.02.2009, 04:39
общий
С уважением Лыскову Игорю Витальевичу. Спасибо за внимание к моей проблеме, но ваш подход крайне не верен, так как команда HELP выводит только самые используемые команды, кроме них же существует еще очю много команд, которые очень тяжело раскопать в интернете, даже в книгах не печатаются. С пасибо за участие.
Неизвестный
13.02.2009, 04:44
общий
У важаемые эксперты! У меня появились еще несколько вопросов на которые вы можете знать ответы. Возможно ли скрыть от глаз пользователя работу пакетного файла (он должен как минимум программно сворачиваться на панельзадач, в идеале вообще не отображаться)? И существует ли способ изменения пути нужного ярлыка на новый через пакетный файл? С уважением <GekT0R>.
Неизвестный
13.02.2009, 09:29
общий
Интересно, что это за скрытые команды такие?
Скрыть - возможно. Жаль, что подход Лыскова Игоря Витальевича неверен, и я не могу вам об этом написать используя этот подход. Другим способом даже не знаю как..
Способ создать ярлык существует, но только с использованием сторонних программ (если у пользователя на компьютере их нет, то невозможно).
давно
Модератор
137394
1850
13.02.2009, 14:17
общий
это ответ
Здравствуйте, Gekt0r!
Это может быть решено стандартными средствами Windows Script Host. (См. книгу А.Попов Windows Script Host для Windows 2000/XP СПБ 2003 Аннотацию можно посмотреть здесь, скачать именно это издание не нашёл)
Активизировав окно, в котором выполняется приложение Windows, можно из сценария сымитировать нажатие клавиш в этом окне.

Пример - вызов калькулятора и имитация нажатия клавиш. (списано из вышеуказанной книги). Заинтересуетесь - напишите, изложу подробнее.
Копируйте в блокноте текст скрипта, сохраняйте в файл с расширением .js Запускайте как любой исполнимый файл (доставлять в систему ничего не надо)


Приложение:
WshShell=WScript.CreateObject("WScript.Shell")

theCalculator = WshShell.Exec("calc"); // Запустим калькулятор
WScript.Sleep(3000); // Ждем 3 секунды
WshShell.AppActivate(theCalculator.ProcessID); // Активируем окно запущенного приложения
// WshShell.SendKeys("1{+}2~") // Пошлём 1 + 2 Enter

WshShell.SendKeys("1") // Пошлём 1
WScript.Sleep(3000); // Ждем 3 секунды

WshShell.SendKeys("{+}") // Пошлём +
WScript.Sleep(3000); // Ждем 3 секунды

WshShell.SendKeys("2") // Пошлём 2
WScript.Sleep(3000); // Ждем 3 секунды

WshShell.SendKeys("~") // Пошлём Enter

Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
давно
Модератор
137394
1850
13.02.2009, 15:38
общий
Возможно ли скрыть от глаз пользователя работу пакетного файла (он должен как минимум программно сворачиваться на панельзадач, в идеале вообще не отображаться)?
- возможно, и свернуть, и чтобы не отражался вообще (точно так же, как и в ответе, используя WSH). Я на такой вопрос пару раз уже отвечал и наверное в ответах это можно найти. (Полистайте мои ответы (кликните по нику Megaloman внизу этой реплики, внизу появившегося окна найдите Отправлено ответов - Посмотреть), где-то вопросов 70 тому назад). Радикальное решение - найдите книгу - там всё понятно и элементарно, редкая книга - все примеры работают без ошибок, опечатом очень немного.
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
давно
Модератор
137394
1850
13.02.2009, 19:49
общий
Цитата: Вопрос № 135101 Ответ № 221934 от Megaloman
Чтобы не было никакого окна, можно запустить DOS-программу из скрипта.
Копируйте приведенный текст скрипта, приведенного в приложении,
в файл с расширением VBS, например Tralala.vbs
Файлы с расширением VBS запускается как любой исполнимый файл, ничего дополнительно в систему доставлять не нужно (начиная с Win98, в Vista не знаю, но думаю, тоже должно быть)
Переменной Com_Strok необходимо присвоить в " " командную строку вызова DOS (и не обязательно DOS) программы

Если будете писать свой путь с русскими буквами, будьте уверены в правильной кодировке.
И помните, что пути с именами папок и файлов, содержащими пробелы, должны заключаться в кавычки "

Для примера приведена командная строка с вызовом xcopy для копирования файлов профиля пользователя в папку Copy на диске D:

При ответе использовал материалы к вопросу № 128054

Код:
Set WshShell = CreateObject("WScript.Shell") 

Com_Strok="xcopy ""%UserProfile%\*.*"" ""D:\Copy\%USERNAME%"" /s /y /D"

WshShell.Run Com_Strok, 0, False

' WshShell.Run Com_Strok, 1, False 'Чтобы окно было видно (если, например, требуется отладка)
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
14.02.2009, 04:51
общий
Выражаю огромную благодарность знатокам! Особо хотелось бы отметить эксперта под ником Megaloman. Этот человек действительно знает о чем пишет и вместо того чтобы ссылаться на кого-то или писать малоинтересные мнения он РЕАЛЬНО находит ответы и показывает примеры.
Лучший специалист вашего сайта - Megaloman. Также выражаю благодарность остальным специалистам, принимавшим участие в решении моей проблемы. Желаю всем удачи!
давно
Посетитель
7438
7205
14.02.2009, 06:01
общий
Я рад, что Вы на портале нашли решение своей проблемы.
Мини-форум для того и существует, чтобы уточнить вопрос, обсудить все мнения и выяснить, какое решение наилучшее...
Заходите еще. Удачи!
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа