|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Написать программу на Delphi для тестирования и диагностики FDD
Помогите написать программу на Delphi для тестирования и диагностики FDD!!!!!!!!! Плиз!!!!!!
|
#2
|
||||
|
||||
Цитата:
Задайвате конкретные вопросы, а не общие, типа "Помогите написать программу", так как за вас никто писать программу не будет, ибо это никому это не надо. Если есть конкретная проблема - опишите ее (что вы проделали, что не получается и т.п.). ИНАЧЕ тема будет удалена. |
#3
|
|||
|
|||
Подскажите, PLS , как добраться "напрямую" к Fdd? WinApi....
Например, отметить определенный сектор на дискете как BAD, из под винды. Очень надо, курсач. |
#4
|
|||
|
|||
Спасибо за помощь
|
#5
|
|||
|
|||
Проблем а с ExitWindowsEx
Так как все таки программно выключить комп
функция ExitWindowsEx(EWX_REBOOT,1); делает только логофф (WINXP Sp2) а не перезагруку компа!!!! есть ещё один выход но он работает только в 9х семействах rundll32 shell32,SHExitWindowsEx 1 в NT пишет что ошибка загрузки!!! в модуле В си для того что бы вырубить комп надо получить привелегии!!! можно ли в дельфи получить их или как все таки программно вырубить комп!!! Помогите плиз |
#6
|
|||
|
|||
Продолжение
для перегрузки используем EWX_REBOOT
для выключения питания EWX_POWEROFF если нужно экстренно выключит/перегрузить комп, используем вышеуказаные влаги в сочетании с EWX_FORCE Второй параметр используется только в XP для указания причины перезагрузки. В NT/2000/XP для использования ExitWindowsEx необходимо иметь привелегию SE_SHUTDOWN_NAME, по умолчанию не установленную даже для администратора. Установить её можно нижеприведённым кодом. HANDLE hToken; TOKEN_PRIVILEGES* NewState; OpenProcessToken (GetCurrentProcess (), TOKEN_ADJUST_PRIVILEGES, &hToken); NewState = (TOKEN_PRIVILEGES*) malloc (sizeof (TOKEN_PRIVILEGES) + sizeof (LUID_AND_ATTRIBUTES)); NewState->PrivilegeCount = 1; LookupPrivilegeValue (NULL, SE_SHUTDOWN_NAME, &NewState->Privileges[0].Luid); NewState->Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges (hToken, FALSE, NewState, NULL, NULL, NULL); free (NewState); CloseHandle (hToken); Вот как мне переделать ето на Delphi в С работает на Ура!!!! |
#7
|
||||
|
||||
shutdown.exe -r -t 00 - перезагрузка
shutdown.exe -t 00 - выключение Кнопка "+" - весы в правом верхнем углу сообщения... |
#8
|
|||
|
|||
Люди. Это у меня глюки или последнее время так модно писать в топиках, по три разных вопроса?
|
#9
|
|||
|
|||
У тебя глюки, что это модно
Delphi - это лишь инструмент, а что ты сможешь создать при помощи этого инструмента, зависит исключительно от тебя. |
#10
|
||||
|
||||
Код:
... var ... ph: THandle; tp, prevst: TTokenPrivileges; rl: DWORD; ... begin OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph); LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid); tp.PrivilegeCount:= 1; tp.Privileges[0].Attributes:= 2; AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl); ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0); end; Программирование - это искусство и наш смысл жизни. |