Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];




Вниз

Удалить директорию в NT и перезагрузка в NT 


Алекс1   (2001-12-18 10:16) [0]

Доброго времени суток.

Есть две проблемы:
- удаления уже пустой директории в NT. Если создал, а затем удалил, то все работает. Если хочешь удалить уже существующую, то не удаляет, ни RMDir ни RemoveDir.
- перезагрузка в NT. Проходит по команде ExitWindowsEx, но эффекта никакого.

Подскажите, пожалуйста



panov   (2001-12-18 10:29) [1]

Для удаления каталогов и файлов в NT должны быть соответствующие привилегии.

"- перезагрузка в NT. Проходит по команде ExitWindowsEx, но эффекта никакого."

А какой должен быть эффект?



Алекс1   (2001-12-18 12:37) [2]

Должна быть перезагрузка!!! По крайней мере я так думал.
А как задать привелегии в программе, не подскажите?
Буду очень признателен. В NT вхожу как админ.



panov   (2001-12-18 13:36) [3]

Для удаления каталога на NTFS нужно быть его владельцем(как правило)...



Tosov   (2001-12-18 23:22) [4]

Для удаления каталога нужны права (которые в большинстве случаев, как сказал panov (18.12.01 13:36) есть у создателя/владельца каталога.

Выключение компа ( http://delphi.xonix.ru/faq/system/shutdown01.shtml )


procedure shutdown;
var
hToken:THandle;
tkp,PrevState:_TOKEN_PRIVILEGES;
k:DWORD;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken);

// Получаем LUID для привилегии "SeShutdownPrivilege".
LookupPrivilegeValue(nil, "SeShutdownPrivilege", tkp.Privileges[0].Luid);
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;

// Добавляем привилегию к нашему процессу
AdjustTokenPrivileges(hToken, FALSE, tkp, SizeOf(PrevState), PrevState, k);
ExitWindowsEx(EWX_FORCE+EWX_SHUTDOWN,0);
end;








Алекс1   (2001-12-20 10:10) [5]

Спасибо огромное за ответ по выключению.
Не подскажите, а как получить права на каталог, ведь я захожу как админ, и создавал каталоги то-же я, но ранее? А удалить их не могу.
Заранее спасибо.



panov   (2001-12-20 14:02) [6]

Мой компьютер -> <Диск> -> <Каталог> -> <Свойства> -> <Владелец>



Tosov   (2001-12-20 23:25) [7]

А может ты не пустой каталог удаляешь?? (Права по моему здесь непричем)



Алекс1   (2001-12-24 17:01) [8]

Таких свойств у директории как (Владелец) у меня в 2000-нике почему-то нет ???
Мой компьютер -> <Диск> -> <Каталог> -> <Свойства> -> <Владелец>

А каталог я точно пустой удаляю (точнее хочу это сделать). Сам создал поработал с файлами там, а затем нужно удалить. Но времени проходит много, так что прога по нескольку раз успевает перегружаться. А вот если сразу в одном запуске создаю и удаляю то работает!!!
Вот такая блин вечная молодость.

Спасибо за ответы.



Алекс1   (2001-12-24 17:07) [9]

Да чуть не забыл.
Выключение по прежнему не работает, зато позволяет хоть LogOff делать.



Tosov   (2001-12-24 23:43) [10]

Таких свойств у директории как (Владелец) у меня в 2000-нике почему-то нет ???
Св-ва папки(правой кнопкой мыши)-Безопастность-Дополнительно-Владелец

Выключение по прежнему не работает, зато позволяет хоть LogOff делать..

Советую переустановить винду :-) или делиться кодом (особенно кодом удаления папки)




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.015 c
6-79409           Дима                  2001-12-07 19:07  2002.02.25  
МАС адрес


14-79460          False_Delirium        2002-01-05 06:48  2002.02.25  
Головой думать нужно...:)..или пища для размышления...


3-79298           Л.Ге                  2002-01-29 12:44  2002.02.25  
IB - поддержка массивов?


14-79472          michael_B             2002-01-05 15:09  2002.02.25  
Хочу стильно оформить свою программу


7-79492           ANDREY196             2001-11-18 23:37  2002.02.25  
Как мне получить изображение с TV-карты