![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
От чьего имени запущено приложение. [D6, Win2k, WinXP]
Alexey © (2004-04-01 10:48:00)Уважаемые мастера,
как узнать от чьего имени запущено приложение.
Заранее спасибо.
Alexey (2004-04-02 13:22:00) [1]Спасибо за помщь, все получилось.
Игорь Шевченко (2004-04-02 10:39:00) [2]
> OpenProcessToken(PID,TOKEN_QUERY,Token);
Внимательно читаем F1 по функции OpenProcessToken и видим, что первым параметром должен быть Handle процесса.
Для этого используем функцию OpenProcess
Wiz@rd (2004-04-02 10:32:00) [3]Удалено модератором
Alexey (2004-04-02 10:21:00) [4]Помогите разобраться, что не так.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type SID_AND_ATTRIBUTES = record
Sid: Pointer;
Attributes:DWORD ;
end;
type TOKEN_USER = record
SID_AND_ATTRIBUTES: DWORD;
end;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
TU: TOKEN_USER;
implementation
uses Procs;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
PID, Size: Dword;
Token: THandle;
begin
PID := FindProcess('delphi32.exe');
OpenProcessToken(PID,TOKEN_QUERY,Token);
Size:=SizeOf(TOKEN_USER);
if GetTokenInformation(Token,TokenUser,@TU,SizeOf(TOKEN_USER),Size) then
ShowMessage('Ok')
else
ShowMessage(IntToStr(GetLastError))
end;
end.
Дает код ошибки 6.
BiN (2004-04-02 09:41:00) [5]Wiz@rd © (02.04.04 00:06) [7]
Хм... у каких именно служб не определяется?
Wiz@rd (2004-04-02 00:06:00) [6]Тока таким образом хрен получишь user'a типа Local Service & Network Service - по крайней мере у меня не получалось - наверное тут OpenProcess даже с дебаг привелегиями процесс не открывает
Игорь Шевченко (2004-04-01 15:12:00) [7]BiN © (01.04.04 13:40)
Точно, ошибся, спасибо :)
Игорь Шевченко (2004-04-01 15:12:00) [8]+ GetTokenInformation
BiN (2004-04-01 13:40:00) [9]а точнее OpenProcessToken
Игорь Шевченко (2004-04-01 13:09:00) [10]GetProcessToken
Alexey (2004-04-01 10:57:00) [11]А для чужого процесса?
N170 (2004-04-01 10:55:00) [12]GetUserName() вам поможет.