Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Добавление в Автозагрузку (http://forum.oszone.net/showthread.php?t=330814)

DetFedot 27-10-2017 13:09 2773722

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

Iska 27-10-2017 14:14 2773740

Цитата:

Цитата DetFedot
чтобы батник добавил файл в автозагрузку »

Какой файл? И почему файл? Добавляют типично ярлык. В какую автозагрузку — пользовательскую или общую?

DetFedot 27-10-2017 17:24 2773788

Общую, exe какой я укажу по опредиленому пути.

Iska 27-10-2017 18:02 2773796

На 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 2773820

Цитата:

Цитата DetFedot
Общую, 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 2773827

echo off
copy "C:\Temp\virus.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup"

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

alpap 27-10-2017 20:53 2773837

Felix-rus53,
Цитата:

Цитата DetFedot
Общую »

Скрытый текст

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

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

Iska 28-10-2017 02:58 2773897

Цитата:

Цитата Felix-rus53
copy "C:\Temp\virus.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup"
шах и мат, программисты) »

  • не ярлык;
  • не в общую;
  • не на всех Windows.
Да-да — «шах и мат» :lol:.

Nordek 28-10-2017 11:20 2773937

Цитата:

Цитата Iska
  • не в общую;
  • не на всех 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 2773945

Nordek, именно потому у меня так:
Код:

        With WScript.CreateObject("WScript.Shell")
                With .CreateShortcut(objFSO.BuildPath(.SpecialFolders("AllUsersStartup"), objFSO.GetBaseName(strSourceFile) & ".lnk"))

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

DetFedot 28-10-2017 15:43 2773983

Кто может дать код какой добавит файл в автозагрузку regedit

Iska 28-10-2017 15:58 2773985

DetFedot, переведите это:
Цитата:

Цитата DetFedot
код какой добавит файл в автозагрузку regedit »

на русский, пожалуйста. Я, например, зараз могу представить себе не менее пяти вариантов расшифровки.

И сразу поясните, подходит ли Вам уже предложенный выше вариант.

Nordek 28-10-2017 22:09 2774043

Цитата:

Цитата Iska
именно потому у меня так:
Код:

        With WScript.CreateObject("WScript.Shell")
                With .CreateShortcut(objFSO.BuildPath(.SpecialFolders("AllUsersStartup"), objFSO.GetBaseName(strSourceFile) & ".lnk"))

»

Скрытый текст
Это видел.
В сообщении предложение представлено так, будто что-то интереснее сможешь предложить (Например вместо ...\Microsoft\Windows\Start Menu\Programs\Startup - какой-то такой путь, о котором не знаю).
Из сообщения без того понятно, что пользователь глупость предложил - при этом не подкрепив комментарием, какие следуют недоразумения.

+ Вас видимо задел сарказм (Это точно):
Цитата:

Цитата Felix-rus53
шах и мат, программисты) »

- Мне также показался глупым, особенно учитывая какая чушь была предложена:
Цитата:

Код:

copy "C:\Temp\virus.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup"





Цитата:

Цитата DetFedot
Кто может дать код какой добавит файл в автозагрузку 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 2774134

Цитата:

Цитата Nordek
+ Вас видимо задел сарказм (Это точно):
Цитата:

Цитата Felix-rus53
шах и мат, программисты) »

»

Глупость меня задела, коллега, глупость, совмещённая с апломбом. Ибо я не всегда терпим к воинствующей глупости. Где Вы там нашли сарказм — не знаю. С моей стороны — да, как раз таки он самый.


Время: 15:04.

Время: 15:04.
© OSzone.net 2001-