как выполнить msconfig

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dorido
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 107
Зарегистрирован: 27.02.2005 (Вс) 17:10
Откуда: Angarsk

как выполнить msconfig

Сообщение dorido » 15.04.2005 (Пт) 13:47

как выполнить msconfig
напишите код

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 15.04.2005 (Пт) 13:52

Код: Выделить всё

Shell "C:\WINDOWS\PCHealth\HelpCtr\Binaries\msconfig.exe"

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 15.04.2005 (Пт) 18:42

Да просто
Код: Выделить всё
shell "msconfig.exe"


Зачем писать длиннее если можно написать короче? :)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 15.04.2005 (Пт) 21:47

2 kirrun
Потому что твой код работать не будет.

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 15.04.2005 (Пт) 21:50

хм.. странно.. и правда не работает...
А почему?
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 16.04.2005 (Сб) 7:17

хм.. странно.. и правда не работает...
А почему?

Потому что "C:\WINDOWS\PCHealth\HelpCtr\Binaries\" ,не является PATH папкой. А то что вы вводете в Пуск->Выполнить msconfig, то винда имеет дополнительную секцию(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths) где запоминает путь к ехе-шнику.
الفيجوال بيسك الرابح

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 16.04.2005 (Сб) 13:30

о.. ясно... учтем-сс..
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 17.04.2005 (Вс) 16:46

Код: Выделить всё

Dim WinPath as String

WinPath = EnVar$("windir")

If WinPath = "" then
    WinPath = IIf(Dir$("C:\Windows", vbDirectory) = "", "C:\Windows", "")
End If

If WinPath = "" then
    WinPath = IIf(Dir$("C:\Winnt", vbDirectory) = "", "C:\Windows", "")
End If

If WinPath <> "" then
    Shell WinPath & "\msconfig.exe"
End If


Примерно так.
На это не смотрите! Это не подпись!!!!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.04.2005 (Вс) 16:54

Что за глупость?
API GetWindowsDirectory
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.04.2005 (Вс) 16:58

Код: Выделить всё
Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
...
Dim ret As Long, L As Long, P As String
L = 255
P = String$(L, 0)
ret = GetWindowsDirectory(P, L)
If ret > L Then
  L = ret
  P = String$(L, 0)
  ret = GetWindowsDirectory(P, L)
End If
If ret = 0 Then
  MsgBox "ERROR!"
Else
  P = Left$(P, ret)
End If
Lasciate ogni speranza, voi ch'entrate.

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 17.04.2005 (Вс) 17:19

alibek писал(а):Что за глупость?
API GetWindowsDirectory

Обижаешь!
FAQ писал(а):В БЕЙСИКе есть одна ОЧЕНЬ полезная, но многими забытая функция Environ! Она возвращает имена и содержание всех переменных среды операционной системы!!! Так, например, чтобы получить директорию Windows, совсем не надо прибегать к API-функции GetWindowsDirectory!!!!!! А получить её можно так:
ABC = Environ ("windir")
И ВСЁ!
Но и это ещё не всё! Также можно получить следующие переменные:
ABC = Environ ("TMP") 'директория временных файлов TEMP
ABC = Environ ("BLASTER") 'координаты звуковой карты
ABC = Environ ("PATH") 'пути, объявленные в autoexec.bat
НО И ЭТО ВСЁ ЕЩЁ НЕ ВСЁ!!!!
Чтобы получить имя и значение переменной, в скобках вместо строки надо поставить номер переменной (или индекс?).
Вставьте следуюшую процедуру в окно Code, запустите проект, кликните на форме увидите список всех переменных и их значений!
Private Sub Form_Click()
'берём переменную и присваиваем ей единицу
m = 1
'запускаем цикл, который увеличивает переменную m каждый
'раз на единицу и подсовывает её функции Environ
Do
'присваеваем перменной EnvString возвращаемую переменную,
'соответсвующую номеру m
EnvString = Environ(m)
'печатаем переменную, соответствующую номеру m
Print Environ(m)
'переменную m увеличиваем на один
m = m + 1
'если переменная EnvString всё ещё не пустая - крутим дальше...
Loop Until EnvString = ""
End Sub
И теперь все, кто недолюбливает API-функции (по-моему их вообще мало, кто долюбливает :-)) могут пользоваться только этой строчкой!




Код: Выделить всё
Dim WinPath as String

WinPath = EnVirion("windir")

If WinPath = "" then
    WinPath = IIf(Dir$("C:\Windows", vbDirectory) = "", "C:\Windows", "")
End If

If WinPath = "" then
    WinPath = IIf(Dir$("C:\Winnt", vbDirectory) = "", "C:\Windows", "")
End If

If WinPath <> "" then
    Shell WinPath & "\msconfig.exe"
End If


(Наврал с Environ - было EnVar$)
На это не смотрите! Это не подпись!!!!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.04.2005 (Вс) 17:34

А ты знаешь, что Environ$() берет значения с переменных окружения? И что в общем случае, там совсем не обязательно будет переменная windir? В Windows 3.x ее точно нет, в Windows 95 вроде бы тоже. А во всех остальных Windows ее можно удалить.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.04.2005 (Вс) 17:36

И наконец, что даст твой код на моей машине? Я люблю ставить Windows XP в папку WINXP (и необязательно на диске C:)
Lasciate ogni speranza, voi ch'entrate.

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 17.04.2005 (Вс) 17:54

alibek писал(а):И наконец, что даст твой код на моей машине?

Я не утверждаю, что мой код правилен всегда и везде, и что это - единственное решение вопроса

alibek писал(а):Я люблю ставить Windows XP в папку WINXP (и необязательно на диске C:)


А проверить?
Можно использовать и GetWindowsDirectory и Environ параллельно

alibek писал(а):И что в общем случае, там совсем не обязательно будет переменная windir?

Значит можно рассматривать разные случаи
На это не смотрите! Это не подпись!!!!!!

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 17.04.2005 (Вс) 19:17

alibek писал(а):И наконец, что даст твой код на моей машине? Я люблю ставить Windows XP в папку WINXP (и необязательно на диске C:)


Как я понимаю, переменная windir содержит ИМЕННО ТОТ путь, куда У ТЕБЯ установлен мастдай.
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.04.2005 (Вс) 19:38

kirrun писал(а):Как я понимаю, переменная windir содержит ИМЕННО ТОТ путь, куда У ТЕБЯ установлен мастдай.

Не обязательно. См. выше.
Lasciate ogni speranza, voi ch'entrate.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 17.04.2005 (Вс) 20:11

alibek писал(а):
kirrun писал(а):Как я понимаю, переменная windir содержит ИМЕННО ТОТ путь, куда У ТЕБЯ установлен мастдай.

Не обязательно. См. выше.


А ты проверил?
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)


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

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

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

    TopList