![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго времени суток! Уважаемые, нужна ваша помощь или дельный совет.
Написал небольшую программку которая показывает информацию о состоянии игрока в онлайн игре, но почему-то она не может подключиться к процессу игры. Т.е. она подключается, но только если ее запустить из под Delphi, то она работает отлично. А если запустить уже скомпилированную программу, то она не подключается. Хотя видно, что находит ID процесса. Может кто сталкивался с таким или просто знает в чем может быть проблема. Буду признателен вашим советам и помощи! Чтобы все было более наглядно, я записал видео: https://www.youtube.com/watch?v=fjZnavjs6AU |
|
#2
|
|||
|
|||
|
Все, всем спасибо за просмотр моей темы. Разобрался сам. Нужно было дать привилегии. Добавил функцию в код и все заработало.
Код:
function EnableDebugPrivilege(const Value: Boolean): Boolean;
const
SE_DEBUG_NAME = 'SeDebugPrivilege';
var
hToken: THandle;
tp: TOKEN_PRIVILEGES;
d: DWORD;
begin
Result := False;
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken) then
begin
tp.PrivilegeCount := 1;
LookupPrivilegeValue(nil, SE_DEBUG_NAME, tp.Privileges[0].Luid);
if Value then
tp.Privileges[0].Attributes := $00000002
else
tp.Privileges[0].Attributes := $80000000;
AdjustTokenPrivileges(hToken, False, tp, SizeOf(TOKEN_PRIVILEGES), nil, d);
if GetLastError = ERROR_SUCCESS then
begin
Result := True;
end;
CloseHandle(hToken);
end;
end; |
| Этот пользователь сказал Спасибо djanius за это полезное сообщение: | ||
Admin (17.10.2016)
| ||