Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

Управление притером через WinSpool (WinXP)   Найти похожие ветки 

 
--olg-   (2003-10-03 09:53) [0]

Пытаюсь управлять принтером через WinSpool (WinXP).
Функция WinSpool.SetPrinter возвращает ERROR_ACCESS_DENIED.
Что делать?


 
N169   (2003-10-03 10:54) [1]

ERROR_ACCESS_DENIED
Access is denied.

(Возможно, пользователю с данными привелегиями не дозволено выполнять такую операцию.)


 
--olg-   (2003-10-06 08:37) [2]

Данную операцию делаю под правами администратора.


 
--olg-   (2003-10-06 08:43) [3]

В Инете нашел следующий модуль, задаю привелегии SeDebugPrivilege все равно не получается.

{ **** UBPFD *********** by delphibase.endimus.ru ****
>> Получение дополнительных привилегий под НТ

В принципе и так все понятно - задаеш название привилегии и если это возможно, то система их тебе дает

Зависимости: uses Windows, SysUtils;
Автор: Денис, LiquidStorm_HSS@yahoo.com, Lviv
Copyright: by LiquidStorm, HomeSoftStudios(tm) aka Denis L.
Дата: 9 августа 2003 г.
**************************************************** }

unit NTPrivelegsU;
////////////////////////////////////////////////////////////////////////
// //
// NT Defined Privileges //
// //
////////////////////////////////////////////////////////////////////////

interface
uses Windows, SysUtils;

const SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege";
const SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege";
const SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege";
const SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege";
const SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege";
const SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege";
const SE_TCB_NAME = "SeTcbPrivilege";
const SE_SECURITY_NAME = "SeSecurityPrivilege";
const SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege";
const SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege";
const SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege";
const SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege";
const SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege";
const SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege";
const SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege";
const SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege";
const SE_BACKUP_NAME = "SeBackupPrivilege";
const SE_RESTORE_NAME = "SeRestorePrivilege";
const SE_SHUTDOWN_NAME = "SeShutdownPrivilege";
const SE_DEBUG_NAME = "SeDebugPrivilege";
const SE_AUDIT_NAME = "SeAuditPrivilege";
const SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege";
const SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege";
const SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege";

function AdjustPriviliges(const PrivelegStr: String) : Bool; forward;

implementation

function AdjustPriviliges(const PrivelegStr: String) : Bool;
var
hTok : THandle;
tp : TTokenPrivileges;
begin
Result := False;
// Get the current process token handle so we can get privilege.
if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hTok) then
try
// Get the LUID for privilege.
if LookupPrivilegeValue(nil,PChar(PrivelegStr), tp.Privileges[0].Luid) then
begin
tp.PrivilegeCount := 1; // one privilege to set
tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
// Get privilege for this process.
Result := AdjustTokenPrivileges(hTok, False, tp, 0, PTokenPrivileges(nil)^, PDWord(nil)^)
end
finally
// Cannot test the return value of AdjustTokenPrivileges.
if (GetLastError <> ERROR_SUCCESS) then
raise Exception.Create("AdjustTokenPrivileges enable failed");
CloseHandle(hTok)
end
else raise Exception.Create("OpenProcessToken failed");
end;

end.



Страницы: 1 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.007 c
6-36782
MegaVolt
2003-10-14 17:35
2003.12.12
Как определить есть ли компутер за конкретным IP?


1-36650
Blamyr
2003-11-30 23:04
2003.12.12
Длина текста


3-36503
Danilas
2003-11-21 18:23
2003.12.12
Пишу такой текст: datamodule2.Query4.Fields


3-36550
rosl
2003-11-13 08:27
2003.12.12
запрос sql


4-36892
Mantic0re
2003-10-17 01:19
2003.12.12
Глупая проблема с ToolBar..





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский