Порядок загрузки компьютера

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

Порядок загрузки компьютера

Сообщение klop086 » 31.01.2004 (Сб) 10:15

Уважаемые, помогите мне пожалуйста, вот то, что я не знаю как сделать:
1 Допустим я поставил свою программу в автозагрузку, как сделать так, чтобы она грузилась сразу после explorer.exe?

2 Как работает цикл в Visual Basic: В моей программе используется цикл, for q=1 to x
'текст того, что она делает
x=x+1
next q
перед циклом я задал х=4 - и моя программа делает не бесконечное количество оборотов на этом месте, а 3 - отсюда вывод - VB вычитает Х-1 - и эту разницу использует - Я Прав?
3 Пожалуйста приведите пример использования функции FindWindow
Заранее:lol: :lol: :lol:Благодарен

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 31.01.2004 (Сб) 10:20

3.

Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_SHOWNORMAL = 1
Const WM_CLOSE = &H10
Const gcClassnameMSWord = "OpusApp"
Const gcClassnameMSExcel = "XLMAIN"
Const gcClassnameMSIExplorer = "IEFrame"
Const gcClassnameMSVBasic = "wndclass_desked_gsk"
Const gcClassnameNotePad = "Notepad"
Const gcClassnameMyVBApp = "ThunderForm"
Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim WinWnd As Long, Ret As String, RetVal As Long, lpClassName As String
    'Ask for a Window title
    Ret = InputBox("Enter the exact window title:" + Chr$(13) + Chr$(10) + "Note: must be an exact match")
    'Search the window
    WinWnd = FindWindow(vbNullString, Ret)
    If WinWnd = 0 Then MsgBox "Couldn't find the window ...": Exit Sub
    'Show the window
    ShowWindow WinWnd, SW_SHOWNORMAL
    'Create a buffer
    lpClassName = Space(256)
    'retrieve the class name
    RetVal = GetClassName(WinWnd, lpClassName, 256)
    'Show the classname
    MsgBox "Classname: " + Left$(lpClassName, RetVal)
    'Post a message to the window to close itself
    PostMessage WinWnd, WM_CLOSE, 0&, 0&
End Sub

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.01.2004 (Сб) 10:25

1. Есть причина на это? :)
2. Границы цикла вычисляются один раз при инициализации цикла. Поэтому берётся первоначальное значение x, а что с иксом будет потом, уже никому не интересно.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 31.01.2004 (Сб) 10:28

1.
Как я понимаю, программа должна заработать после запуска explorer'а. Попробуй вот что:
Запускай программу когда хочешь, но в событии Form_Load проверяй, загружен ли explorer. И пока он не загружен, жди.
P.S. мне кажется, explorer всё равно первый загружается :roll:

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 31.01.2004 (Сб) 10:43

Amed - Вы меня не поняли.
Мне нужно, чтобы моя программа грузилась СРАЗУ после explorer и тормозила загрузку всего остального, как это сделать я и не знаю.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 31.01.2004 (Сб) 10:47

А, теперь задача ясна.

Но как осуществить, непонятно... Может, удалять ярлыки из Autorun?

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 31.01.2004 (Сб) 10:52

Amed
не понял - что даст удаление ярлыков из autorun?, Вы имеете в виду - сделать так - чтобы грузился только explorer и ничего более, так мне это и не надо - мне надо, что бы юсер ввёл пароль и загрузка продолжилась.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 31.01.2004 (Сб) 10:56

Вот! Идеальная постановка вопроса! :)
Сейчас будем думать...

P.S. Лучше вопросы сразу задавать в более развёрнутой форме, флуда меньше...

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 31.01.2004 (Сб) 20:28

Мне тоже инересно, как блокировать загрузку компа!!
Например для ввода пароля!!! А то XP и 2000 ставить не хоца!
Ну а в 98 и ME такого увы нет!!!!
Чтоб брательник не включал его!!!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.02.2004 (Вс) 7:22

Ну в биос пароль поставь :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.02.2004 (Вс) 10:48

... средствами VB :)

Каденов Мират
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 30.06.2003 (Пн) 9:28
Откуда: Kazahstan, U-Ka

Сообщение Каденов Мират » 01.02.2004 (Вс) 12:24

Извините, что глупость говорю, но может как-то можно прицепиться к explorer.exe, в смысле заразить? Или можно подменить собой, а настоящий файл переименовать в какой-нибудь 0001.exe и запускать после своей загрузки. Только тогда получается ПОСЛЕ, а не ДО.

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 02.02.2004 (Пн) 11:08

По поводу совета о поставке пароля на биос, мне нужно, штобы пароль стоял только на windows, т.к. мой комп разделён на 3 не связанных между собой участка, в каждом из них установлен свой windows.

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

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 03.02.2004 (Вт) 10:19

Хм - не хочет работать!
Я перенёс explorer.exe на другой диск, поставив на его место свой explorer, сама прога-то не затейливая: если введено верно - shell "d:\explorer.exe", если нет - то нет.

:arrow: перезагружаю, идёт загрузка, появляется фон, в неактивном ДескТопе, появляется моя прога, ввожу пароль - внизу появляется свёрнутая папка "Мои Документы" - и всё ни пуск, ни ярлыков - ничего!,
подскажите, пожалуйста где я не прав - я думаю, что он загрузил мою прогу и пошёл дальше, не дожидаясь, пока она завершится.
:?: Как мне остановить загрузку?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.02.2004 (Вт) 10:23

В реестре прописывается, какая прога является оболочкой. По дефолту это explorer. Если ты заменил на свой файл, то теперь твоя прога - оболочка. А всё, что она будет потом пускать, уже не будет иметь статус оболочки.
Да, и посмотри http://bbs.vbstreets.ru/viewtopic.php?t=5485
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 03.02.2004 (Вт) 10:47

Gserg
а где именно в реестре это прописывается?
(у меня windows Me).

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.02.2004 (Вт) 10:53

Сорри, протупил... Конечно не в реестре, а в system.ini строчка shell=explorer.exe в разделе Boot. А что там в Me, я не знаю, потому как бяка это, не нравится мне она...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 03.02.2004 (Вт) 11:21

вы не могли бы подсказать команду в ini, что бы загрузка остановилась, до выполнения какого-либо действия.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.02.2004 (Вт) 16:34

Не мог бы, в виду отсутствия таковой...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList