Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кол - во запусков винды, Как узнать? 
:(
    Опции темы
sniron
Дата 29.4.2004, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 28.3.2004

Репутация: нет
Всего: нет



Кстати, спрашивал я у знакомых там говорят что AIDA 32 имеет функцию подсчета кол - во запусков винды. Я им сказал что бы они сомной поделились етой прогой, в ближайшие дни будет. Может быть у них AIDA чересчур свежая! rolleyes.gif
А про NetUserGetInfo можно подумать, p0s0l можешь дать исходник с этой функцией?
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 29.4.2004, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



А если, раз в автозапуск нельзя, сделать подсчет, привязавшись к другой программе, сидящей в автозапуске; типа вируса простого без размножения сделать...
PM   Вверх
p0s0l
Дата 29.4.2004, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



AIDA32 3.88 - всё перерыл опять, но нашел этого. Там есть специальный раздел "Операционная система" - в нем по-смыслу это должно быть, но там точно нет. Порывшись дальше в других разделах, нашел "Сервер->Пользователи" - в них есть то самое количество входов в систему (но не загрузок винды)...

Пример сделал - но не NetUserGetInfo, а NetUserEnum, чтобы сложить num_logons всех юзеров. Не пугайся, что много - это просто описание констант и функций вначале идет, т.к. в Delphi эти функции не прописаны...
Код
function NetUserEnum (servername: LPCWSTR;
                     level: DWORD;
                     filter: DWORD;
                     var bufptr: Pointer;
                     prefmaxlen: DWORD;
                     var entriesread: DWORD;
                     var totalentries: DWORD;
                     resume_handle: PDWORD) : DWORD; stdcall; external 'netapi32.dll';

function NetApiBufferFree(Buffer: Pointer) : DWORD; stdcall; external 'netapi32.dll';

type
USER_INFO_2 = record
   usri2_name: LPWSTR;
   usri2_password: LPWSTR;
   usri2_password_age: DWORD;
   usri2_priv: DWORD;
   usri2_home_dir: LPWSTR;
   usri2_comment: LPWSTR;
   usri2_flags: DWORD;
   usri2_script_path: LPWSTR;
   usri2_auth_flags: DWORD;
   usri2_full_name: LPWSTR;
   usri2_usr_comment: LPWSTR;
   usri2_parms: LPWSTR;
   usri2_workstations: LPWSTR;
   usri2_last_logon: DWORD;
   usri2_last_logoff: DWORD;
   usri2_acct_expires: DWORD;
   usri2_max_storage: DWORD;
   usri2_units_per_week: DWORD;
   usri2_logon_hours: PBYTE;
   usri2_bad_pw_count: DWORD;
   usri2_num_logons: DWORD;
   usri2_logon_server: LPWSTR;
   usri2_country_code: DWORD;
   usri2_code_page: DWORD;
 end;

const
 FILTER_TEMP_DUPLICATE_ACCOUNT       = $0001;
 FILTER_NORMAL_ACCOUNT               = $0002;
 FILTER_PROXY_ACCOUNT                = $0004;
 FILTER_INTERDOMAIN_TRUST_ACCOUNT    = $0008;
 FILTER_WORKSTATION_TRUST_ACCOUNT    = $0010;
 FILTER_SERVER_TRUST_ACCOUNT         = $0020;

 MAX_PREFERRED_LENGTH                = DWORD(-1);

 NERR_Success                        = 0;

function GetLogonCount : integer;
type USER_INFO_2_ARRAY = packed array [0..0] of USER_INFO_2;
var
 Buf : ^USER_INFO_2_ARRAY;
 Entries, Total : DWORD;
 i : integer;
begin
 Result := 0;
 NetUserEnum(nil,
             2,
             FILTER_NORMAL_ACCOUNT, // м.б. тут лучше 0...
             Pointer(Buf),
             MAX_PREFERRED_LENGTH,
             Entries,
             Total,
             nil);

 {$R-}
 for i := 0 to Entries-1 do Inc(Result, Buf^[i].usri2_num_logons);

 NetApiBufferFree(Buf);
end;

Само сложение находится в функции GetLogonCount. Пример вызова:
Код
MessageBox(0, PChar(IntToStr(GetLogonCount)), 'Logons', MB_ICONINFORMATION+MB_TASKMODAL);


P.S.: всё это дело в 9x виндах не прокатит...


--------------------
С уважением, г-н Посол.
PM   Вверх
sniron
Дата 30.4.2004, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 28.3.2004

Репутация: нет
Всего: нет



Короче, пишет что библиотека netapi32.dll:NetApiBufferFree не найдена т.е.:

"Файл связан с отсутсвующим компонентом netapi32.dll:NetApiBufferFree"

А потом пишет:

"Присоедененное к системе усторойство не работает"
Добавлено @ 00:34
Ой, извените, не увидел:
p0s0l: P.S.: всё это дело в 9x виндах не прокатит...

У меня как раз ME стоит. Печально. sad.gif
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.