Как стартовать программой до загрузки Рабочего стола в WIN98

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

Как стартовать программой до загрузки Рабочего стола в WIN98

Сообщение SSecurity » 02.02.2004 (Пн) 2:30

привет всем, вопрос прост до невозможности, в теме он задан.

Условия:
- это не просто изменение в СИСТЕМ.ИНИ, иначе по завершению работы программы не грузится далее РС и панель управления с таском.
- это не изменение реестра, поскольку там запуск идт после загрузки эксплорера.
- и ето не изменение ЕХЕ ветви реестра, с проведением запуска всех програм через Нашу прогу. Иначе, система не доступна, по причине отсутствия системы.
- и уж тем более не выключение, путем снятия провода питания.
- ПРОГРАММА ДОЛЖНА быть VB-шной.

Вроде всё ясно, но как реализовать?
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

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

Сообщение Amed » 02.02.2004 (Пн) 4:18


SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 02.02.2004 (Пн) 9:11

Спасибо, но ета тема была полностью мной скопированна ещё в те времена когда сам её начинал. Ни один из методов не позволяет стартануть до РАБОЧЕГО СТОЛА. Либо он не грузится (РС), либо возникает интересная ситуация когда ты спрашиваешь пароль у пользователя а он давно в твоей системе :)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.02.2004 (Пн) 9:52

Хм..... интересно что разумеется под "запуском рабочего стола" ;)

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

Сообщение Amed » 02.02.2004 (Пн) 10:01

ИМХО запуск explorer.exe, т.к. он и есть "Рабочий стол" :)

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.02.2004 (Пн) 12:48

Ха!

Ну так до него грузятся только дрова и больше ничего :)

Это не сфера влияния ВБ - дрова писать.

Единственное что могу посоветовать - написать прогу, прописать ее как Shell а из нее запускать потом Exploer.

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 02.02.2004 (Пн) 15:47

RayShade писал(а):Ха!
Ну так до него грузятся только дрова и больше ничего :)
Это не сфера влияния ВБ - дрова писать.
Единственное что могу посоветовать - написать прогу, прописать ее как Shell а из нее запускать потом Exploer.

дело в том, что если прописать в качестве shell другую программу, то после этого, если запустить Explorer.exe, запустится проводник с содержимым "Моего компьютера", а процесс рабочего стола (и всего прилагающегося) создан не будет... хотя... я могу ошибаться...
нет, не ошибаюсь... именно так и есть.
сам пользуюсь оболочкой LiteStep. соответственно она прописана у меня как shell. только что вышел из нее и через Диспетчер задачь запустил Explorer.exe - выскочил проводник с содержимым диска E:
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

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

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

2 в своей программе добавь функцию что при загрузке отменяеться рабочий стол и таск бар ( скрываются )

? как это сделать?

Dagobert
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 141
Зарегистрирован: 21.12.2002 (Сб) 6:48
Откуда: Russia

Сообщение Dagobert » 04.02.2004 (Ср) 11:39

Если хочешь скрыть рабочий стол, можешь развернуть форму на весь экран (BorderStyle = None).
Насчёт TaskBar не помню точно, по-моему его класс Shell_TrayWnd. Поищи по классу через FindWindowEx, а потом спрячь (ShowWindow)

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

Сообщение klop086 » 04.02.2004 (Ср) 12:01

я тут подумал, можно спрятать всё гораздо проще - "сделать Alt+Print Screen" в начале загрузки, и сделать этот рисунок фоном моеё формы, а форму соответственно развернуть на весь экран, и сделать, чтобы её нельзя было свернуть и заблочить alt+tab и вообще все стандартные функции.
Но, может кто подскажет
:?: 1 как програмно сделать alt+print screen
:?: 2 запретить клавишу Win
Сначала подумай, потом помолчи.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 05.02.2004 (Чт) 0:07

а проще наверно прописать свою программу в реестре в разделе .exefiles так, чтобы все программы пускались через свою собственную структуру .... так как енто будет в ВИН98, то используя нехитрую функцию можно спрятать прогу от ДИСПЕЙЧЕРА ПРОГРАММ, а любой доступ определять в соответствии с введеными паролем и логином. тока вот юзер сможет поудалять всё да и скажет пару ласковых :)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 05.02.2004 (Чт) 0:16

Ещё одна мысль.
Делал программу, типа стартуем так, что ФОРМА МАКСИМАЛЬНА, и как фон получается, если сверху попытаться вывести новую форму, она не выводится ..... такая вот нехорошая, может тока у меня конечно, но тем не менее.
Как вариант можно сделать интерпритацию системы. Т.е. допустим надо пользователю разрешить тока вордом пользоваться. Ни и разместить в своей программе аналог РС на котором тока иконка Ворда, или список доступных программ.

Остается такие проблемы как
- убить ПУСК.
- даже в Ворде мложно снести систему виндовс (например, открываем "Открыть..." выбираем, все файлы и удаляем, что нам не нравится) :)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

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

Сообщение klop086 » 05.02.2004 (Чт) 10:04

SSecurity писал(а):Ещё одна мысль.
Как вариант можно сделать интерпритацию системы. Т.е. допустим надо пользователю разрешить тока вордом пользоваться. Ни и разместить в своей программе аналог РС на котором тока иконка Ворда, или список доступных программ.

Остается такие проблемы как
- убить ПУСК.
- даже в Ворде мложно снести систему виндовс (например, открываем "Открыть..." выбираем, все файлы и удаляем, что нам не нравится) :)

Не понял - как можно провести эту интерпритацию, и вторую проблемму тоже...

а убить пуск - эт можно, только останется горячая финская клавиша Win, которую надо заблочить???
Код: Выделить всё
Const SWP_HIDEWINDOW = &H80
Const SWP_SHOWWINDOW = &H40
Const GW_CHILD = 5
Const GW_HWNDNEXT = 2
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Dim tWnd As Long, bWnd As Long, sSave As String * 250
Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net

    'This code will hide the Start-button
    'Find the taskbar's handle
    tWnd = FindWindow("Shell_traywnd", vbNullString)
    'Search for a child window
    bWnd = GetWindow(tWnd, GW_CHILD)
    Do
        'get the child window's classname
        GetClassName bWnd, sSave, 250
        'We have the handle of the Start button If the classname is 'button'
        If LCase(Left$(sSave, 6)) = "button" Then Exit Do
        'Search the next child
        bWnd = GetWindow(bWnd, GW_HWNDNEXT)
    Loop
    'Hide the start button
    SetWindowPos bWnd, 0, 0, 0, 0, 0, SWP_HIDEWINDOW
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'Show the start button
    SetWindowPos bWnd, 0, 0, 0, 0, 0, SWP_SHOWWINDOW
End Sub
Сначала подумай, потом помолчи.

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

Сообщение alibek » 05.02.2004 (Чт) 11:17

Где-то дока была о всех способах загрузки программ и порядке их загрузки, надо бы поискать.
А в общих чертах это так:
До shell'а грузиться Run из HKLM.
Потом грузится HKCU\Software\Microsoft\Windows\CurrentVersion\RunService(Ex), но это в Win9x

В NT-системах до logon'а загружаются службы.
Lasciate ogni speranza, voi ch'entrate.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.02.2004 (Пт) 0:13

под "интерпритацию системы" я имел в виду следующее:
Когда мы заблочили рабочий стол своей программой, надо же пользователю к прогам добираться, если ему разрешить юзать ЭКСПЛОРЕР. боюсь без ведома "АДМИНА" ключевые файлы пропадут.
Хотя выход безусловно есть ... сегодня сидел на работе и игрался в ВБ .... программно находл на диске папки и делал их невидимыми (vbFileAttrebute = 18 ), затем эксплорер пускал ... там их не видно было .... потому как ОПЦИИ видимости папок отключены были ... (включить их из проводника... наверняка можно или низя) ... но зверь простой там в принапи ничего не найдет, кроме того что нужно нам, т.е. того, что мы оставили не скрытым.

А всё что в системе новое - можно просто запрещать запускать.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.02.2004 (Пт) 0:21

alibek писал(а):А в общих чертах это так:
До shell'а грузиться Run из HKLM.
Потом грузится HKCU\Software\Microsoft\Windows\CurrentVersion\RunService(Ex), но это в Win9x


Это весьма полезно, потому как можно прогу вписать, но ведь загрузка прекратится на программе твоей(в ожидании окончания процесса выгрузки программы) или параллельно начнет грузится РС???
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

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

Сообщение klop086 » 06.02.2004 (Пт) 14:59

Ssecurity - я тоже хотел бы это узнать. Т.К. если просто заменять explorer моей прогой и делать на него ссылку в ней, то windows просто грузит мою прогу и продолжает загрузку :?: (не ждёт, пока она закончит своё выполнение).
Сначала подумай, потом помолчи.

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

Сообщение klop086 » 07.02.2004 (Сб) 22:47

Хочется поподробнее - после вставки в реестр (в это место HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionMan...)
Windows Me подождёт её (проги) завершения или нет?
Сначала подумай, потом помолчи.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 10.02.2004 (Вт) 2:11

Рульно-кульно .... эксперементы имеют свои плоды и похоже то винда меня имеет то я её :) ... результаты испытаний - 5 сносов WIN98; 2 - WIN2000; 2 дня без интернета, апгрейд памяти, и похоже повреждение винта, пока на гарантии снесу-ка его типа поменять :)

Я тут способ придумал. Чтобы голову не ломать моджно заставить зверя авторизоваться уже и после загрузки РС

Реализация: Клиент-Сервер
Описание:
1. Стартует винда, загружается программка например "MyProg.exe" с ключем "/password".
назначение:
- проверить запущен ли сервер"server.exe" если нет, то запустить его;
- отправить серверу пару логин-пароль;
- отключиться.
2. Сервер "server.exe" хранит в себе информацию о пользователе и о программах, разрешаемых ему.
Он:
- принимает запрос по TCP-IP от "MyProg.exe" на локальный порт.
- определяет вид работы
а) авторизация
б) проверка прав доступа к файловой системе
- при выявлении попытки повторной авторизации перезагружает систему.
- авторизовав юзера, записывает себе данные локалные переменные и хранит до окончания работы.
- ведет лог всех запросов и авторизаций.
- обрабатывает запрос на доступ.
- сверяет запрос на программу с полученным из БД (по ехе-файлам) записями и в зависимости от того есть ли права на запуск или нет, принимает решение. (новые проги по отсутствию в БД не принимаются к запуску, даже на уровне установки).
3. Приложение "MyProg.exe" является проводником и при обычном запуске лишь передает серверу командную строку (нормальная работа) а сервер принимает решениечто делать пользователю. а если сервер не запущен, то усе прошло детство .... рестарт :)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 27.02.2004 (Пт) 15:15

Sync писал(а):Скрыть иконки на рабочем столе[url]
http://vbnet.ru/faq/showtopic.asp?id=87[/url]
заблокировать кнопку ПУСК
http://vbnet.ru/faq/showtopic.asp?id=92
скрыть taskbar
http://www.sources.ru/vb/system/hiding_showing_taskbar.shtml

читаем налетаем :arrow: :arrow: :arrow:

Я извеняюсь... Но вот когда используешь Скрытие иконок на Рабочем столе. То если зделать двойноё клик мышью по Рабочему Столу, то вылезает СТАРТ Меню! И вылезает, даже если скрвть еще и Taskbar!
Помогите скрыть Desktop, так чтобы менюшка не вылезала после двойного клика, очень нужно имменно так!

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 28.02.2004 (Сб) 1:01

ну не знаю ... наверно можно просто ... не грузить винду ...
и ужет ам поппытаться авторизовать:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

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

Сообщение klop086 » 28.02.2004 (Сб) 16:12

А если эту прогу в autoexec.bat прописать - он будет ждать её завершения?
Сначала подумай, потом помолчи.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 29.02.2004 (Вс) 0:29

да будет но под досом%)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Tamahawk
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 03.02.2004 (Вт) 22:11

Сообщение Tamahawk » 03.03.2004 (Ср) 21:23

В ХРюше Я могу стартовать прогой до рабочего стола, но надо ли тебе

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 04.03.2004 (Чт) 0:17

а надо бы под 98й...
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

След.

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

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

Сейчас этот форум просматривают: SemrushBot и гости: 4

    TopList  
cron