powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / автозагрузка не работает
8 сообщений из 8, страница 1 из 1
автозагрузка не работает
    #38442689
Клевер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в моей программе автозагрука
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
If Dir(WhS.SpecialFolders("StartUp") & "\destop.lnk") <> "" Then
        Else
        'Dim WshShell As Object 'начало объявлений к созданию ярлыка
        Dim sLinkPath As String
        Dim MyShortcut As Object
        Set WhS = CreateObject("WScript.Shell")
        sLinkPath = WhS.SpecialFolders("StartUp") 'конец объявлений к созданию ярлыка)
        Set MyShortcut = WhS.CreateShortcut(sLinkPath & "\destop.lnk") 'Установка и запись свойств ярлыка
        MyShortcut.TargetPath = WhS.ExpandEnvironmentStrings(WhS.SpecialFolders(16) & "\papka\proga.exe")
        MyShortcut.WorkingDirectory = WhS.ExpandEnvironmentStrings(WhS.SpecialFolders(16) & "\papka")
        MyShortcut.WindowStyle = 4
        MyShortcut.Save
        Set MyShortcut = Nothing
        End If

If SysInfo = "x86" Then
reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\proga.exe", WhS.SpecialFolders(16) & "\papka\proga.exe"
Else
reg.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\proga.exe", WhS.SpecialFolders(16) & "\papka\proga.exe"
End If

т.е. использую все способы автозагрузки, что знаю. при этом на 40% компьютеров автозагрузка не работает! с чем это может быть связано, какие есть идеи? или проблема в основной части кода?
...
Рейтинг: 0 / 0
автозагрузка не работает
    #38442691
Клевер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот второй способ полностью.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Set WhS = CreateObject("WScript.Shell")
Dim WshProEnv As Object
Set WshProEnv = WhS.Environment("SYSTEM")
Dim SysInfo As String
SysInfo = WshProEnv.Item("PROCESSOR_ARCHITECTURE")
Dim arrByte()   As Byte
Dim reg
Set reg = CreateObject("WScript.Shell")
If SysInfo = "x86" Then
reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\proga.exe", WhS.SpecialFolders(16) & "\papka\proga.exe"
Else
reg.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\proga.exe", WhS.SpecialFolders(16) & "\papka\proga.exe"
End If
Set reg = Nothing

на моём компе всё работает. от клиентов частые жалобы что программа работает хорошо, но не автозагружается
...
Рейтинг: 0 / 0
автозагрузка не работает
    #38442699
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клевер,

Сначала узнать какая ОС у клиентов. Если Win7 возможно что права пользователей ограничены, или UAC мешает программме. Потом например если Вы записываете в реестр значения, то у пользователей должны быть соответствующие разрешения, и ещё лучше в качестве диагностики попробовать прочитать значение - т.е. действительно ли записалось. Плюс если стоит антивирисное ПО - может тоже блокировать.

А уверены что путь действитетельно будет у клиента \papka\papka.exe и он не сменить путь?
...
Рейтинг: 0 / 0
автозагрузка не работает
    #38442738
Клевер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,

да, путь в любом случае такой, его изменить невозможно. а способ с помещением ярлыка в папку автозагрузки почему может не работать? мб поможете набросать код, чтобы проверить работоспособность всех систем(автозагрузки, в частности)? прямо доступа к компьютерам клиентов нет, но я могу отсылать exeшники
...
Рейтинг: 0 / 0
автозагрузка не работает
    #38442868
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клеверв моей программе автозагрука
Код: vbnet
1.
2.
3.
4.
5.
6.
...
If SysInfo = "x86" Then
reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\proga.exe", WhS.SpecialFolders(16) & "\papka\proga.exe"
Else
reg.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\proga.exe", WhS.SpecialFolders(16) & "\papka\proga.exe"
End If

т.е. использую все способы автозагрузки, что знаю. при этом на 40% компьютеров автозагрузка не работает! с чем это может быть связано, какие есть идеи?
или проблема в основной части кода

У тебя проблема не с кодом а с пониманием чего ты хочешь.
HKEY_CURRENT_USER -это автозагрузка только для текущего пользователя
HKLM -для всех пользователей
Лично я не понимаю логики такого разделения для x86 и x64
x64 не надо бояться. У тебя код 32-битный, он сам разберется куда писать в т.числе с SysWOW64

Потом что есть WhS.SpecialFolders(16)?
Во втором параметре у тебя должен стоять путь к exe программы.

А UAC будет ругаться если наделяешь прогу админскими правами.
...
Рейтинг: 0 / 0
автозагрузка не работает
    #38444107
Клевер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Лично я не понимаю логики такого разделения для x86 и x64 если винда XP, то автозагрузка для всех пользователей. если 7 - то для данного пользователя, тогда права админа не требуются. Дмитрий77У тебя код 32-битный, он сам разберется куда писать в т.числе с SysWOW64 тестил много раз. если не запускать вручную прогу как 32-хбитное приложение, полетят ошибки на 7й винде. Дмитрий77что есть WhS.SpecialFolders(16)? 15038374 путь до папки "документы"
видимо всё-таки дело не в автозагрузке. просто какая-то часть программы застревает на некоторых компах, зависает незаметно для пользователя и перестаёт работать. т.е. прога автозапускается и сразу падает. код очень длинный, я уже месяцы ищу, из-за чего прога может падать на взлёте. проблема в том, что у меня и парочки друзей всё работает отлично. это затрудняет поиск ошибки
...
Рейтинг: 0 / 0
автозагрузка не работает
    #38444286
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КлеверДмитрий77Лично я не понимаю логики такого разделения для x86 и x64 если винда XP, то автозагрузка для всех пользователей. если 7 - то для данного пользователя, тогда права админа не требуются.
А ты не думал, что
XP может быть x64
Win 7 может быть x86
Пользователь на XP не обязательно админ

Ты просто определись, автостарт "для всех" или "для текущего".
А при записи в HKLM по любому нужны права админа.
Если ты хочешь чтоб прога работала под "обычным пользователем", и при этом на Виста и выше не глючила из-за "виртуализации", то проге нужен манифест с AsInvoker.

Поищи по моим топикам, у меня там есть "как вызывать админа если надо" и как выглядит правильный манифест, инвариантный относительно XP и тех что выше.

Впрочем вот, чтоб не искал.

HKEY_LOCAL_MACHINE + AllUsers=FullControl либо как на ходу повысить права проги до админа?

Помогите с общим пониманием архитектуры программы, многопользовательская среда.
...
Рейтинг: 0 / 0
автозагрузка не работает
    #38444302
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще планировщик заданий для целей автозапуска использовать.

API планировщика задач? Как хотя бы узнать, существует ли задание с заданным именем?

Автозапуск+Иконка в трее+От имени администратора+UAC(Vista/Win7)

Но я так извращался с целью запускать при автостарте из-под админа и при этом обойти UAC-предупреждение.

Если в манифесте стоит AsInvoker и проге не нужны админские права, то думаю это излишества.

Что касается
>тестил много раз. если не запускать вручную прогу как 32-хбитное приложение, полетят ошибки на 7й винде.
надо играться
но для 32-битной проги должно быть не
"HKLM\Software\Microsoft\Windows\CurrentVersion\Run\proga.exe"
а
"HKLM\Software\ Wow6432Node \Microsoft\Windows\CurrentVersion\Run\proga.exe"
иначе она запустится не видя нужный Environment
В принципе если ты пишешь в реестр из 32-битной проги (например через API), то винды сами запихнут ключ в Wow6432Node.
А вот если скриптом, то может попасть не туда.
Там своеобразная "автоматика", но надо ее немного чувствовать.

Ставишь тестовую x64 семерку и играешься,
1) отвечаешь на вопрос "где должен лежать автозапуск", собственно я тебе ответил
2) добиваешься чтоб твой метод именно туда его и клал
пробуешь и т.д.. Иначе так и будет плавать.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / автозагрузка не работает
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]