Показать полную графическую версию : автоматическое открытие программы
mihanklinov@vk
27-04-2013, 16:20
Нужно создать BAT, открывающий программу при открытии папки.
На пакетных файлах — это невозможно в принципе. На скриптах — в Windows XP и выше это так же невозможно. На AutoIt или других ЯВУ можно написать приложение, следящее за окнами Проводника, отлавливающее появление окна/смену заголовка на потребный и запускающее Ваше приложение.
Какова глобальная цель такого действа?
mihanklinov@vk, вирус пишете?
Нашёл у себя в коллекции VBScript:
set WshShell = WScript.CreateObject("WScript.Shell")
KEY = true
do while KEY
if WshShell.AppActivate("Имя папки") then
WriteWord()
KEY = false
end if
WScript.Sleep 1000
loop
function WriteWord()
WSHShell.Run("%SystemRoot%\system32\notepad.exe")
end function
В примере после запуска скрипа при открытии в любом месте компьютера любой папки с именем "Имя папки" запустится "Блокнот"
При желании генерацию и запуск скрипта можно вставить и в BAT-файл.
Лучше так:
Option Explicit
With WScript.CreateObject("WScript.Shell")
Do
WScript.Sleep 100
Loop Until .AppActivate("Имя папки")
.Run "%SystemRoot%\system32\notepad.exe"
End With
WScript.Quit 0
Но отнюдь не:
В примере после запуска скрипа при открытии в любом месте компьютера любой папки с именем "Имя папки" запустится "Блокнот" »
А «в примере после запуска скрипта при открытии в любом месте компьютера» любого приложения, чей заголовок не только совпадает, но так же начинается, либо оканчивается на «Имя папки» — «запустится «Блокнот»:
The AppActivate method returns a Boolean value that identifies whether the procedure call is successful. This method changes the focus to the named application or window, but it does not affect whether it is maximized or minimized. Focus moves from the activated application window when the user takes action to change the focus (or closes the window).
In determining which application to activate, the specified title is compared to the title string of each running application. If no exact match exists, any application whose title string begins with title is activated. If an application still cannot be found, any application whose title string ends with title is activated. If more than one instance of the application named by title exists, one instance is arbitrarily activated.
Iska, да, я зто знаю, но не стал уточнять, так как "играться" будут с конкретной папкой. Занимательно также, что если вместо "Имя папки" вписать "Блокнот", то при открытии любого файла в "Блокноте" будет открываться и второй, "чистый", "Блокнот", так как заголовок окна у "Блокнота" всегда оканчивается на " — Блокнот".
Georgio, ну, дык, и я про то же.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.