Программа не стартует в автозагрузке (подписана)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Gasparini
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 06.09.2012 (Чт) 14:42

Программа не стартует в автозагрузке (подписана)

Сообщение Gasparini » 06.09.2012 (Чт) 14:54

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

Есть собственное приложение написанное на VB6.
Прописано в реестре в автозагрузке. В стандартной ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.

При включенном UAC на Windows 7 / Vista не стартует из автозагрузки.
При выключенном UAC, нормально запускается.

Узнал, что его нужно подписать цифровой подписью, чтобы стартовало при включенном UAC.
Приобретена цифровая подпись Thawte Code Signing и оно подписано.
В свойствах написано "Сертификат действителен" и утилита SigCheck говорит о том, что приложение подписано.

Но тем не менее, результат не изменился.

Закралось подозрение, что в Manifest-е, что-то криво.
В Mainfest-е приложения прописано это:

Код: Выделить всё
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="Test.Application" type="win32" />
<description>
Test Application
</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" />
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='requireAdministrator' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>


Не подскажите, что может быть не так в Manifest-е или где-то еще подводные камни?

Gasparini
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 06.09.2012 (Чт) 14:42

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Gasparini » 06.09.2012 (Чт) 17:19

Добавлю:

1) Остальные приложения (QIP, Hamachi и.т.д.) преспокойно лежат в той же ветке реестра и запускаются.
2) Если моё приложение кинуть в другое место автозагрузки (например в папку автозагрузки), то результат тот же самый - нулевой.
3) Если из Manifest-а убрать ветку <security>, то приложение запускается, но без прав администратора, а они-то как раз нужны.

Уже голова кругом если честно.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Инфо

Сообщение Qwertiy » 06.09.2012 (Чт) 19:58

Для запуска с правами администратора можно использовать планировщик. Но есть побочные эффекты.

Gasparini
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 06.09.2012 (Чт) 14:42

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Gasparini » 06.09.2012 (Чт) 21:04

А какие побочные эффекты не могли бы уточнить?

И неужели лишь планировщик поможет? :( Зачем же тогда все эти манифесты вроде requireAdministrator...

Gasparini
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 06.09.2012 (Чт) 14:42

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Gasparini » 07.09.2012 (Пт) 21:01

Реализовал через планировщик в случае если ОС виста и выше.

Qwertiy, хотелось бы узнать какие побочные эффекты вы имели ввиду?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 07.09.2012 (Пт) 22:12

Gasparini писал(а):И неужели лишь планировщик поможет? :( Зачем же тогда все эти манифесты вроде requireAdministrator...

Я просто сказал, что такой вариант возможен.

Gasparini писал(а):А какие побочные эффекты не могли бы уточнить?

Из самого заметного:
1. По умолчанию программа прерывается, если система считает её зависшей. Но это можно настроить.
2. Программа исчезает при длительном отсутствии пользователя за компьютером. Запись в логе - переход на питание от батарей, что странно для стационарного компа. Избавиться от этого мне не удалось. По крайней мере, для PuntoSwitcher'а. С VS2010 давно такого не видел, но раньше было. Скорее всего, это тоже настраивается как-то, если не ошибаюсь, пытался использовать подобные настройки и для PuntoSwitcher'а, но он с ними вообще не запускался.
3. Есть подозрение, что это отрицательно сказывается на производительности. Хотя, абсолютно не факт. Вполне возможно, что причина в чём-то другом.

Gasparini
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 06.09.2012 (Чт) 14:42

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Gasparini » 08.09.2012 (Сб) 9:59

Qwertiy писал(а):Я просто сказал, что такой вариант возможен.

К сожалению никакие игры с Manifest-ом не помогли, перепробовал практически все варианты.
UAC каким-то только ему понятным образом не считал должным запускать её в автозагрузке или запускал, но с порезанными правами, хотя учетная запись в группе администраторов находится, Windows 7 практически с нуля установленный, т.е. настройки системы стандартные.

С учетом, что моей программе обязательно нужны права администратора, то другие рекомендовали делать либо службой (от чего я по ряду причин отказался) либо, как вы сказали через планировщик.
Qwertiy писал(а):1. По умолчанию программа прерывается, если система считает её зависшей. Но это можно настроить.

Кажется эта настройка называется - AllowHardTerminate. Если выставлено в False, то не будет делать принудительную остановку задачи, если она не прекращается по запросу.
Qwertiy писал(а):2. Программа исчезает при длительном отсутствии пользователя за компьютером. Запись в логе - переход на питание от батарей, что странно для стационарного компа. Избавиться от этого мне не удалось. По крайней мере, для PuntoSwitcher'а. С VS2010 давно такого не видел, но раньше было. Скорее всего, это тоже настраивается как-то, если не ошибаюсь, пытался использовать подобные настройки и для PuntoSwitcher'а, но он с ними вообще не запускался.

Да, это настраивается.
Настройка называется - StopIfGoingOnBatteries. Если выставлено в False, то не будет останавливать при переходе на питание от батарей.
Qwertiy писал(а):3. Есть подозрение, что это отрицательно сказывается на производительности. Хотя, абсолютно не факт. Вполне возможно, что причина в чём-то другом.

Да чё-то не заметил такого.
А так может вам по некоторым настройкам информация полезной окажется :)

Gasparini
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 06.09.2012 (Чт) 14:42

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Gasparini » 08.09.2012 (Сб) 13:14

Qwertiy писал(а):3. Есть подозрение, что это отрицательно сказывается на производительности. Хотя, абсолютно не факт. Вполне возможно, что причина в чём-то другом.

Чхорт.
На другой машине с семеркой (64) зависает наглухо, на всех остальных работает нормально.
У вас нет каких-либо дополнительных данных, мыслей или наблюдений по этому поводу?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 08.09.2012 (Сб) 13:46

Gasparini писал(а):На другой машине с семеркой (64) зависает наглухо, на всех остальных работает нормально.

А если запустить руками с подтверждением прав, то не зависает?

Gasparini писал(а):У вас нет каких-либо дополнительных данных, мыслей или наблюдений по этому поводу?

Нет. Сам хотел бы знать...

Gasparini
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 06.09.2012 (Чт) 14:42

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Gasparini » 09.09.2012 (Вс) 22:34

Qwertiy писал(а):Нет. Сам хотел бы знать...

Понял почему отклик и производительность приложения ниже при запуске через планировщик задач.
Оказывается, что планировщик по-умолчанию ставит запускаемому процессу низкий приоритет.
Так что в принципе вопрос решен.
Надеюсь кому-то будет полезно знать.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 09.09.2012 (Вс) 23:10

Gasparini писал(а):Оказывается, что планировщик по-умолчанию ставит запускаемому процессу низкий приоритет.

Это настраивается или надо менять руками (ну или программно ;))?

Gasparini
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 06.09.2012 (Чт) 14:42

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Gasparini » 10.09.2012 (Пн) 9:49

Qwertiy писал(а):Это настраивается или надо менять руками (ну или программно ;))?

Ну лично я, покопавшись в MSDN, не нашел параметра установки приоритета в планировщике (может плохо искал).
Поэтому просто при запуске сам себе программой ставил нормальный приоритет.
Тем самым проблема была решена, всё прекрасно работает.

ark
Бывалый
Бывалый
 
Сообщения: 216
Зарегистрирован: 18.07.2011 (Пн) 0:57

Re: Программа не стартует в автозагрузке (подписана)

Сообщение ark » 10.09.2012 (Пн) 11:14

А манифест отдельный или встроенный в ресурсы?

Gasparini
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 06.09.2012 (Чт) 14:42

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Gasparini » 11.09.2012 (Вт) 10:13

Встроенный в ресурсы

ark
Бывалый
Бывалый
 
Сообщения: 216
Зарегистрирован: 18.07.2011 (Пн) 0:57

Re: Программа не стартует в автозагрузке (подписана)

Сообщение ark » 11.09.2012 (Вт) 10:25

Хм. У меня была обратная ситуация - текстовый манифест на Win7х64 не работал, пока не добавил в ресурсы. Может, попробовать добавить текстовый? Кроме того, что ещё приходит в голову - попробовать понизить версию в режиме совместимости до ХР (через свойства или через тот же манифест)

Gasparini
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 06.09.2012 (Чт) 14:42

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Gasparini » 11.09.2012 (Вт) 10:41

ark писал(а):Хм. У меня была обратная ситуация - текстовый манифест на Win7х64 не работал, пока не добавил в ресурсы. Может, попробовать добавить текстовый? Кроме того, что ещё приходит в голову - попробовать понизить версию в режиме совместимости до ХР (через свойства или через тот же манифест)

Извините, это вы вообще к чему?

ark
Бывалый
Бывалый
 
Сообщения: 216
Зарегистрирован: 18.07.2011 (Пн) 0:57

Re: Программа не стартует в автозагрузке (подписана)

Сообщение ark » 11.09.2012 (Вт) 12:17

Gasparini писал(а):Извините, это вы вообще к чему?
К начальному вопросу о манифесте и Win7/Vista. Если устраивает вариант с планировщиком - сорри, хотя ИМХО это все-таки несколько через Владивосток. Я экспериментировал с манифестом для VB6 IDE на Win7x64 - получилось, надо иметь И текстовый И встроенный манифесты. При поисках в сети обнаружил людей с похожими проблемами. У MS ничего внятного не нашел.

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: Программа не стартует в автозагрузке (подписана)

Сообщение pronto » 12.09.2012 (Ср) 13:24

[оффтоп]
Владивосток теперь синоним слова «жопа» :?
[/оффтоп]
O, sancta simplicitas!

ark
Бывалый
Бывалый
 
Сообщения: 216
Зарегистрирован: 18.07.2011 (Пн) 0:57

Re: Программа не стартует в автозагрузке (подписана)

Сообщение ark » 13.09.2012 (Чт) 2:34

У каждого свои ассоциации в соответсвии с наклонностями...

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: Программа не стартует в автозагрузке (подписана)

Сообщение pronto » 13.09.2012 (Чт) 7:51

Ark, если ты в танке, то знай, что делать что-то «через жопу» — это устоявшееся словосочетание. Оно означает делать что-то не правильно. Устоявшегося выражения делать что-то «через Владивосток» я не знаяю. Поэтому мне не понятно, почему ты заменил слово «жопа» на «Владивосток»? Тем самым ты оскорбил всех владивостокцев, и меня в том числе.
O, sancta simplicitas!

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 13.09.2012 (Чт) 7:56

pronto писал(а):Устоявшегося выражения делать что-то «через Владивосток» я не знаяю.

«Делать [что-то] через [любое отдалённое место (город, страна и т. д.)]» - делать не оптимально, использовать более сложный (и длинный путь), когда есть простой и короткий. Мне обычно встречалось «через Москву» и «через Америку». Странно, что ты ничего такого никогда не слышал.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Программа не стартует в автозагрузке (подписана)

Сообщение iGrok » 13.09.2012 (Чт) 15:14

Продолжая оффтоп - у нас вполне в ходу вариант "через Магадан".
label:
cli
jmp label

Sam777e
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 157
Зарегистрирован: 16.09.2010 (Чт) 4:33

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Sam777e » 14.09.2012 (Пт) 9:49

Предлагаю политкорректный конструктив
чесать левое ухо правой рукой [ или ногой ]. :)
Здоровья и удачи

ark
Бывалый
Бывалый
 
Сообщения: 216
Зарегистрирован: 18.07.2011 (Пн) 0:57

Re: Программа не стартует в автозагрузке (подписана)

Сообщение ark » 14.09.2012 (Пт) 12:37

Я сам из Владивостока и выражение это за 4 года жизни в Ленинграде (sic) слышал от воспитанных жителей второй столицы гораздо чаще анатомических подробностей

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Программа не стартует в автозагрузке (подписана)

Сообщение Хакер » 14.09.2012 (Пт) 13:52

Прекращаем оффтопик.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 71

    TopList