PDA

Показать полную графическую версию : [решено] Добавление в папку автозагрузка - CMD/BAT


Страниц : 1 2 3 [4]

Iska
07-01-2018, 15:50
[Iska распевает на мотив «5 минут»]: «Вэ-Сэ-Ааааш, Вэ-Сэ-а-Аш…» ;).

На WSH:
Option Explicit

Dim arrFiles
Dim strFile


arrFiles = Array( _
"C:\Temp\Twain.log", _
"C:\Temp\Twain001.Mtx", _
"C:\Temp\Twunk001.MTX", _
"C:\Temp\Twunk002.MTX" _
)

WScript.Sleep 20 * 1000

With WScript.CreateObject("Scripting.FileSystemObject")
For Each strFile In arrFiles
If .FileExists(strFile) Then
.DeleteFile strFile, True
End If
Next
End With

WScript.Quit 0

А можно сделать и так, чтобы он не тупо стоял заданное время, а ожидал запуска процесса Event Manager. Или ожидал появления указанных файлов.

Nun-Nun
07-01-2018, 15:54
Nordek,

УРА!!! Наконец-то наш велосипед поехал! Всё работает, причём все три варианта:
1. Из ярлыка в "Пуск\Программы\Автозагрузка".
2. Из HKLM\Software\Microsoft\Windows\CurrentVersion\Run
3. Из HKCU\Software\Microsoft\Windows\CurrentVersion\Run

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"TwainTempDel"=hex(2):25,00,63,00,6f,00,6d,00,73,00,70,00,65,00,63,00,25,00,20,\
00,2f,00,63,00,20,00,73,00,74,00,61,00,72,00,74,00,20,00,2f,00,6d,00,69,00,\
6e,00,20,00,25,00,63,00,6f,00,6d,00,73,00,70,00,65,00,63,00,25,00,20,00,2f,\
00,63,00,20,00,70,00,69,00,6e,00,67,00,20,00,2d,00,6e,00,20,00,31,00,35,00,\
20,00,31,00,32,00,37,00,2e,00,30,00,2e,00,30,00,2e,00,31,00,20,00,5e,00,26,\
00,20,00,64,00,65,00,6c,00,20,00,43,00,3a,00,5c,00,54,00,65,00,6d,00,70,00,\
5c,00,54,00,77,00,61,00,69,00,6e,00,2e,00,6c,00,6f,00,67,00,20,00,43,00,3a,\
00,5c,00,54,00,65,00,6d,00,70,00,5c,00,54,00,77,00,61,00,69,00,6e,00,30,00,\
30,00,31,00,2e,00,4d,00,74,00,78,00,20,00,43,00,3a,00,5c,00,54,00,65,00,6d,\
00,70,00,5c,00,54,00,77,00,75,00,6e,00,6b,00,30,00,30,00,31,00,2e,00,4d,00,\
54,00,58,00,20,00,43,00,3a,00,5c,00,54,00,65,00,6d,00,70,00,5c,00,54,00,77,\
00,75,00,6e,00,6b,00,30,00,30,00,32,00,2e,00,4d,00,54,00,58,00,00,00


На WSH: »
Прошу прощения за чайниковость, WSH - это внешний файл, так же как и bat-ник?
А можно сделать и так, чтобы он не тупо стоял заданное время, а ожидал запуска процесса Event Manager. Или ожидал появления указанных файлов. »
В принципе такой вариант тоже будет интересен (теперь уже из "спортивного" интереса).

Iska
07-01-2018, 16:05
WSH - это внешний файл, так же как и bat-ник? »
Так точно!

В принципе такой вариант тоже будет интересен (теперь уже из "спортивного" интереса). »
Точное имя процесса Event Manager приведите.

Nordek
07-01-2018, 16:18
велосипед поехал »Когда-то этот велосипед мне нужен был в одной программе, выглядело это примерно так:
start cmd /c mode con:cols=60 lines=20 ^& Title Twain ^& ping -n 10 127.0.0.1 ^& cd C:\Temp ^& del Twain.log Twain001.Mtx Twunk001.MTX Twunk002.MTX

Nun-Nun
07-01-2018, 16:19
Точное имя процесса Event Manager приведите. »
EEventManager.exe
Прилагаю скрин, на всякий случай.

Nun-Nun
07-01-2018, 16:23
Когда-то этот велосипед мне нужен был в одной программе, выглядело это примерно так:
start cmd /c mode con:cols=60 lines=20 ^& Title Twain ^& ping -n 10 127.0.0.1 ^& cd C:\Temp ^& del Twain.log Twain001.Mtx Twunk001.MTX Twunk002.MTX »
Да это уже не велосипед, а целый квадромаран. :o

Iska
07-01-2018, 17:25
Когда-то этот велосипед мне нужен был в одной программе, выглядело это примерно так: »
Да это уже не велосипед, а целый квадромаран. »
К кому-то прилетала феечка ;).

Nun-Nun, в интернетах упоминается ещё пятый файл, Twunk003.mtx. У Вас он создаётся рядом с прочими?

Nun-Nun
07-01-2018, 17:44
Nun-Nun, в интернетах упоминается ещё пятый файл, Twunk003.mtx. У Вас он создаётся рядом с прочими?»
Нет.
К кому-то прилетала феечка »
Винапсара. :)

Iska
07-01-2018, 18:20
Не, не. Наша феечка та же, что и для танкистов, натягивающих слетевшую гусеницу :).

Iska
07-01-2018, 23:17
Nun-Nun, с ожиданием процесса:
Option Explicit

Dim strProcessName

Dim arrFiles
Dim strFile


strProcessName = "EEventManager.exe"

arrFiles = Array( _
"C:\Temp\Twain.log", _
"C:\Temp\Twain001.Mtx", _
"C:\Temp\Twunk001.MTX", _
"C:\Temp\Twunk002.MTX" _
)

With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
If .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & strProcessName & "'").Count = 0 Then
.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name = '" & strProcessName & "'").NextEvent

WScript.Sleep 2 * 1000
End If
End With

With WScript.CreateObject("Scripting.FileSystemObject")
For Each strFile In arrFiles
If .FileExists(strFile) Then
.DeleteFile strFile, True
End If
Next
End With

WScript.Quit 0

Nun-Nun
07-01-2018, 23:36
Iska,

В какой кодировке это должно быть сохранено?

Iska
08-01-2018, 08:32
Nun-Nun, ANSI/1251.

Nun-Nun
08-01-2018, 12:55
Iska,

Благодарю! Сохранил файл как vbs (или нужно было как vsh ?), проверил - всё работает.

Iska
08-01-2018, 14:33
Сохранил файл как vbs »
Да!

Nun-Nun, вот Вам ещё один обещанный выше вариант, со слежением за файлами:
Option Explicit

Dim objFSO

Dim arrFiles
Dim strFile


arrFiles = Array( _
"C:\Temp\Twain.log", _
"C:\Temp\Twain001.Mtx", _
"C:\Temp\Twunk001.MTX", _
"C:\Temp\Twunk002.MTX" _
)

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
For Each strFile In arrFiles
If Not objFSO.FileExists(strFile) Then
With .ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'CIM_DataFile' AND TargetInstance.Name = '" & Replace(strFile, "\", "\\") & "'").NextEvent
WScript.Sleep 2 * 1000
.TargetInstance.Delete
End With
Else
objFSO.DeleteFile strFile, True
End If
Next
End With

Set objFSO = Nothing

WScript.Quit 0

Кроме того, можно комбинировать идеи — например, сначала проверять существование/ждать появления процесса, затем начинать проверять существование/ждать появления файлов.

Nun-Nun
08-01-2018, 17:17
вот Вам ещё один обещанный выше вариант, со слежением за файлами: »
Проверил - работает. Благодарю!

Nun-Nun
10-01-2018, 08:20
В реестре под Win 10 не запускается вот такое:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"TC"="C:\\Total Commander\\Totalcmd.exe"
Кто-нибудь может подсказать в чём причина? На XP это работает.

Petya V4sechkin
10-01-2018, 09:07
Nun-Nun, если Total 32-битный, а система 64-битная, попробуйте сюда:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run

Nun-Nun
10-01-2018, 12:18
если Total 32-битный, а система 64-битная, попробуйте сюда:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run »
Благодарю! Так действительно работает! :)




© OSzone.net 2001-2012