PDA

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


DetFedot
27-10-2017, 13:09
Вcем привет!
Вопрос такой, нужно сделать так чтобы батник добавил файл в автозагрузку и работало на всех Windows xp-10

Iska
27-10-2017, 14:14
чтобы батник добавил файл в автозагрузку »
Какой файл? И почему файл? Добавляют типично ярлык. В какую автозагрузку — пользовательскую или общую?

DetFedot
27-10-2017, 17:24
Общую, exe какой я укажу по опредиленому пути.

Iska
27-10-2017, 18:02
На WSH:
Option Explicit

Dim strSourceFile

Dim objFSO


strSourceFile = "c:\Windows\Notepad.exe"

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

If objFSO.FileExists(strSourceFile) Then
With WScript.CreateObject("WScript.Shell")
With .CreateShortcut(objFSO.BuildPath(.SpecialFolders("AllUsersStartup"), objFSO.GetBaseName(strSourceFile) & ".lnk"))
.TargetPath = strSourceFile
.WorkingDirectory = objFSO.GetParentFolderName(strSourceFile)

.Save
End With
End With
Else
WScript.Echo "Source file [" & strSourceFile & "] not found."
WScript.Quit 1
End If

Set objFSO = Nothing

WScript.Quit 0

Казбек
27-10-2017, 19:15
Общую, exe какой я укажу по опредиленому пути. »

reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v YourApp /d "C:\Program Files\YourApp\YourApp.exe"

Felix-rus53
27-10-2017, 20:05
echo off
copy "C:\Temp\virus.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup"

шах и мат, программисты)

alpap
27-10-2017, 20:53
Felix-rus53,
Общую »

Папка "Автозагрузка"
Папка, в которой хранятся ярлыки для программ запускаемых после входа пользователя в систему. Ярлыки в эту папку могут добавляться программами при их установке или пользователем самостоятельно. Существует две папки ‐ общая для всех пользователей и индивидуальная для текущего пользователя. По умолчанию эти папки находятся здесь:
.. \Users\All Users\Microsoft\Windows\Start Menu\Programs\Startup ‐ это папка, программы из которой будут запускаться для всех пользователей компьютера.
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup ‐ это папка, программы из которой будут запускаться для текущего пользователя.
Посмотреть какие программы у вас запускаются таким способом можно открыв меню "Пуск ‐ Все программы ‐ Автозагрузка". Если вы создадите в этой папке ярлык для какой-то программы, она будет запускаться автоматически после входа пользователя в систему.

почитайте, подумайте, найдите отличия.

Iska
28-10-2017, 02:58
copy "C:\Temp\virus.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup"
шах и мат, программисты) »

не ярлык;
не в общую;
не на всех Windows.

Да-да — «шах и мат» :lol:.

Nordek
28-10-2017, 11:20
не в общую;
не на всех Windows.
»Оно и так:
%AllUsersProfile%\Microsoft\Windows\Start Menu\Programs\StartUp
или
%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp
не пойдёт для "всех Windows" т.е в том числе Windows XP - поскольку в Windows XP:
%AllUsersProfile%\Главное меню\Программы\Автозагрузка

В Windows 10 может проследовать до "Программы (%AllUsersProfile%\Главное меню\Программы)" по символьным ссылкам. На этом экскурсия закончится - поскольку в Programs только StartUp.

Iska
28-10-2017, 11:49
Nordek, именно потому у меня (http://forum.oszone.net/post-2773796.html#post2773796) так:
With WScript.CreateObject("WScript.Shell")
With .CreateShortcut(objFSO.BuildPath(.SpecialFolders("AllUsersStartup"), objFSO.GetBaseName(strSourceFile) & ".lnk"))

И это работает.

DetFedot
28-10-2017, 15:43
Кто может дать код какой добавит файл в автозагрузку regedit

Iska
28-10-2017, 15:58
DetFedot, переведите это:
код какой добавит файл в автозагрузку regedit »
на русский, пожалуйста. Я, например, зараз могу представить себе не менее пяти вариантов расшифровки.

И сразу поясните, подходит ли Вам уже предложенный выше вариант (http://forum.oszone.net/post-2773820.html#post2773820).

Nordek
28-10-2017, 22:09
именно потому у меня (http://forum.oszone.net/post-2773796.html#post2773796) так:
With WScript.CreateObject("WScript.Shell")
With .CreateShortcut(objFSO.BuildPath(.SpecialFolders("AllUsersStartup"), objFSO.GetBaseName(strSourceFile) & ".lnk"))
»Это видел.
В сообщении предложение представлено так, будто что-то интереснее сможешь предложить (Например вместо ...\Microsoft\Windows\Start Menu\Programs\Startup - какой-то такой путь, о котором не знаю).
Из сообщения (http://forum.oszone.net/post-2773827.html#post2773827) без того понятно, что пользователь глупость предложил - при этом не подкрепив комментарием, какие следуют недоразумения.

+ Вас видимо задел сарказм (Это точно):
шах и мат, программисты) »
- Мне также показался глупым, особенно учитывая какая чушь была предложена:
copy "C:\Temp\virus.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup"



Кто может дать код какой добавит файл в автозагрузку regedit »
Для текущего пользователя
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"7-Zip"="C:\\Program Files\\7-Zip\\7zFM.exe"

Для всех пользователей
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"7-Zip"="C:\\Program Files\\7-Zip\\7zFM.exe"


Также вместо Run - можно использовать RunOnce: Это позволит выполнить запуск один раз, после запись из подраздела RunOnce удалится.

Для текущего пользователя
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"7-Zip"="C:\\Program Files\\7-Zip\\7zFM.exe"

Для всех пользователей
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
"7-Zip"="C:\\Program Files\\7-Zip\\7zFM.exe"



Учитывая что вам нужен CMD/BAT, то:
Даже в интернет ненужно выходить за помощью - поскольку по reg add можно получить помощь на месте из командной строки:
reg add /?

Вывод:
reg add /?

REG ADD <имя_раздела> [/v <имя_параметра> | /ve] [/t <тип>] [/s <разделитель>]
[/d <данные>] [/f]
[/reg:32 | /reg:64]

имя_раздела [\\<компьютер>\]<раздел>

Компьютер — имя удаленного компьютера. Если оно опущено, то по
умолчанию используется локальный компьютер. На удаленном
компьютере доступны только корневые разделы HKLM и HKU.

Раздел — КОРЕНЬ\<подраздел>

КОРЕНЬ — [ HKLM | HKCU | HKCR | HKU | HKCC ]

Подраздел — полное имя подраздела реестра в указанном корневом разделе.

/v Имя параметра, добавляемого в выбранный раздел.

/ve Добавление параметра с пустым именем (по умолчанию) в этот раздел.

/t Тип данных
[ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ |
REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE ]
Если не указывается, то по умолчанию используется REG_SZ.

/s Символ, используемый в качестве разделителя данных для параметров
типа REG_MULTI_SZ. Если не указан, то в качестве разделителя
используется "\0".

/d Значение, присваиваемое добавляемому параметру реестра.

/f Принудительно перезаписывает существующую запись реестра без
запроса подтверждения.

/reg:32 Указывает, что к разделу реестра следует обращаться с помощью
представления для 32-разрядных приложений.

/reg:64 Указывает, что к разделу реестра следует обращаться с помощью
представления для 64-разрядных приложений.

Примеры:

REG ADD \\ABC\HKLM\Software\MyCo
Добавляет раздел HKLM\Software\MyCo на удаленном компьютере ABC

REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
Добавляет параметр (имя: Data, тип: REG_BINARY, данные: fe340ead)

REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
Добавляет параметр (имя: MRU, тип: REG_MULTI_SZ, данные: fax\0mail\0\0)

REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
Добавляет параметр (имя: Path, тип: REG_EXPAND_SZ, данные: %systemroot%)
Примечание. В расширяемой строке используйте знак вставки ( ^ )

Ориентируясь подсказкой - подставляете свои данные, например:

Для текущего пользователя Run
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "7-Zip" /t REG_SZ /d "C:\Program Files\7-Zip\7zFM.exe" /F

Для всех пользователей Run
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v "7-Zip" /t REG_SZ /d "C:\Program Files\7-Zip\7zFM.exe" /F


Для текущего пользователя RunOnce
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v "7-Zip" /t REG_SZ /d "C:\Program Files\7-Zip\7zFM.exe" /F

Для всех пользователей RunOnce
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v "7-Zip" /t REG_SZ /d "C:\Program Files\7-Zip\7zFM.exe" /F

ключ /f подавляет запрос перезаписи в том случае, если запись в реестре существует. Таким образом произойдёт принудительное внесение данных в реестр.

Это самые банальные примеры.
Очевидно.

Iska
29-10-2017, 15:35
+ Вас видимо задел сарказм (Это точно):
шах и мат, программисты) »»
Глупость меня задела, коллега, глупость, совмещённая с апломбом. Ибо я не всегда терпим к воинствующей глупости. Где Вы там нашли сарказм — не знаю. С моей стороны — да, как раз таки он самый.




© OSzone.net 2001-2012