|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.08.2008, 22:00 | #1 |
Пользователь
Регистрация: 09.05.2008
Сообщений: 40
|
Заставить работать Winlogon
Вопрос смешной - как заставить winlogon загрузить библиотеку(это сделано) и сделать так, чтобы через, допустим, 30 секунд показалось сообщение с текстом, которое будет зависеть от имени экспортной процедуры.
код, который не работает, но позволит понять что я хочу: Код:
dllname -- exper.dll logon -- show (showoncemore) - в этом случае виснет на 30 сек. winlogon (естественно ). А если передать в winlogon dllname -- exper.dll logon -- start - библиотека грузится, но ничего не происходит. ВСЕМ СПАСИБО Последний раз редактировалось Stilet; 21.08.2008 в 08:39. |
21.08.2008, 08:44 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
26.08.2008, 20:51 | #3 |
Пользователь
Регистрация: 09.05.2008
Сообщений: 40
|
Извини, что долго отвечал - мучил winlogon
Передаю просто - создю ключи в winlogon/notify/xxx, записываю два строковых параметра - dllname с параметром exper.dll и logon с параметром function_name (экспортная функция) |
18.09.2008, 16:47 | #4 |
Форумчанин
Регистрация: 05.10.2007
Сообщений: 478
|
Я думаю, использовать Sleep при загрузке Winlogon, не самая лучшая мысль.
Посмотри проверенные коды, причем(!), программы запускаются даже в безопасном режиме. Пишем DLL'ку: library Test; uses windows; procedure StartRegedit; var Stinfo: TStartupinfo; Prinfo: TProcessInformation; begin ZeroMemory(@Stinfo, SizeOf(Stinfo)); Stinfo.cb := SizeOf(Stinfo); Stinfo.lpDesktop := PChar('winsta0\default'); CreateProcess(nil, 'Regedit.exe', nil, nil, false, 0, nil, nil, Stinfo, Prinfo); end; exports StartRegedit; begin end. компилим, копируем её в System32. создаем и запускаем файл реестра: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows NT\CurrentVersion\Winlogon\Notify\R unTest] "Asynchronous"=dword:00000001 "Impersonate"=dword:00000000 "DllName"="Test.dll" "Logon"="StartRegedit" после перезагрузки, в любом режиме, запустится редактор реестра. Если в программе нет необходимости запускать визуальную оболочку, поступаем еще проще: library Test; uses Windows; begin WinExec('notepad',0); end. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows NT\CurrentVersion\Winlogon\Notify\R unTest] "Asynchronous"=dword:00000001 "DllName"="Test.dll" "Logoff"="WinlogonLogoffEvent" "Startup"="WinlogonStartupEvent " "Impersonate"=dword:00000000 "Asynchronous"=dword:00000001 И даже нет необходимости из Dll экспортировать функцию, программа отработает как надо. notepad-для примера, можно посмотреть, висит ли он в процессах. можно, к примеру, создать чего-либо: library Test; uses Windows; begin CreateDir('C:\TestDir); end. С уважением, Iron Monk. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Захват десктопа winlogon | drd | Общие вопросы C/C++ | 5 | 07.06.2011 15:15 |
как заставить работать макрос при определенном значении ячейки? | Град | Microsoft Office Excel | 5 | 30.05.2008 16:06 |
Как заставить работать php? | yourself | Помощь студентам | 9 | 20.05.2008 08:08 |
Как заставить работать dll ? | Volkogriz | Общие вопросы Delphi | 10 | 13.12.2007 10:24 |
Заставить работать Tservise до выключения Windows | Alter | Общие вопросы Delphi | 10 | 09.12.2007 21:39 |