Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как запустить msconfig в Windows 7 x64?

Ответить
Настройки темы
[решено] Как запустить msconfig в Windows 7 x64?

Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: seriych
Дата: 30-07-2010
Вот скрипт, который должен запускать msconfig:
PHP код: Выделить весь код

#requireadmin


if @OSVersion "WIN_XP" Then
    ShellExecute 
"msconfig.exe")
ElseIf (@
OSVersion "WIN_VISTA") OR (@OSVersion "WIN_7"Then
    ShellExecute 
"msconfig.exe")
Else
    
MsgBox (64"""ОС " & @OSVersion " не поддерживается, настройте вручную")
EndIf
Exit 

Вроде ничего особенного, но не работает, если в семерке включен UAC. Пишет 'не удается найти "msconfig.exe"'. Пробовал вместо "msconfig.exe" другие варианты: @WindowsDir & "\System32\msconfig.exe" или "msconfig.exe", "", @WindowsDir & "\System32" - везде та же ошибка. Если вместо ShellExecute использовать Run, то вообще ничего не происходит. Если UAC выключен или ОС 32-битная, то любые приведенные варианты работают (и с ShellExecute, и с Run).
msconfig.exe в 64-х битной семерке лежит там же, где и в 32-х.
Что я делаю не так?

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©


Отправлено: 20:48, 30-07-2010

 

(*.*)


Сообщения: 36565
Благодарности: 6697

Профиль | Сайт | Отправить PM | Цитировать


Цитата seriych:
Вроде ничего особенного, но не работает, если в семерке включен UAC. »
Для запуска msconfig повышение прав не требуется.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 21:19, 30-07-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


Vadikan,
Это часть скрипта. Повышение прав мне нужно в других местах. Но если убрать #requireadmin, то в плане msconfig ничего не меняется. Та же ошибка "не удается найти"

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©


Отправлено: 21:46, 30-07-2010 | #3


Новый участник


Сообщения: 9
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата seriych:
Что я делаю не так? »
Проверьте, может там всё таки не лежит msconfig.exe

Отправлено: 22:20, 30-07-2010 | #4


Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


Лежит лежит. И прекрасно работает с выключенным UAC. С включенным UAC тоже работает, если запускать через консоль, через win+R, через батник (хоть по абсолютному пути, хоть просто msconfig)... А вот через AutoIt не запускается. Даже если в autoit скрипте вызываю батник, который только что работал при запуске напрямую, то в консоли пишет- файл не найден

Хотя не совсем так. Я тестировал с выключенным UAC на х32. Оказывается, на х64 и с выключенным таже история. Видимо, UAC тут ни при чем. Но как влияет битность, если пути одинаковы?
Вот пример запуска и свойства msconfig.exe:

Батник с текстом start "" "%WinDir%\System32\msconfig.exe" работает как надо. Но если запустить его из под Autoit, то уже не работает:


Кажется, я понял в чем проблема!
msconfig - 64-битное приложение, а генерируемый интерпритатором код- 32-х битный. А винда вроде из 32-битных приложений запускает только 32-битные. Вот и не запускается 64-битый msconfig. Только возникает вопрос: как все же запустить 64-битное приложение?

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©


Последний раз редактировалось seriych, 31-07-2010 в 00:04.


Отправлено: 23:11, 30-07-2010 | #5


Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


Проблема решена. Дело оказалось именно в битности. Нужно отключить перенаправление системных папок:
PHP код: Выделить весь код

$tValue DllStructCreate('dword')

If @
OSArch 'X64' Then
    DllCall
('kernel32.dll''int''Wow64DisableWow64FsRedirection''ptr'DllStructGetPtr($tValue))
EndIf
ShellExecute(@WindowsDir "\System32\msconfig.exe")
If @
OSArch 'X64' Then
    DllCall
('kernel32.dll''int''Wow64RevertWow64FsRedirection''ptr'DllStructGetPtr($tValue))
EndIf 

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©


Отправлено: 23:13, 02-08-2010 | #6


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


это все очень просто, действия:

сочетание клавиш windows+R , дальше прописываем msconfig

Отправлено: 14:16, 28-08-2011 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как запустить msconfig в Windows 7 x64?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - [решено] Как запустить CHKDSC при старте системы? Марсель Накопители (SSD, HDD, USB Flash) 13 29-01-2010 23:55
Ошибка при сохранении изменений в msconfig roksi Лечение систем от вредоносных программ 1 11-11-2009 13:28
Медиа - Отключение проверки диска при включенном autorun'е. CyraxZ Microsoft Windows 2000/XP 5 20-09-2008 17:04
Как запустить приложение при входе в интернет? SimSim Хочу все знать 10 13-12-2006 00:46
Тормоза TotalCommander в локалке при включенном инете warezhka84 Хочу все знать 2 03-09-2005 15:23




 
Переход