![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите в Систем Инфо !! [D6, Win95/98, WinME, NT4, Win2k, WinXP]
SPeller © (2002-03-31 16:33:00)Нужна вот информация о системе пользователя. Подскажите, как можно раздобыть следующее:
- Название проца;
- Название видюхи;
- Объём видеопамяти;
- Имеющиеся в системе диски;
- Кол-во свободных системных ресурсов.
Прошу помочь, очень надо.
SPeller (2002-04-03 17:32:00) [21]>ДЕД МАСТДАЙ (03.04.02 17:28)
>Слушай SPeller может мне еще всю сисинфу написать а потом подписать ее "made by SPeller" ?
Я задал вопрос, причём тут "made by SPeller" ?? Нельзя чтоли нормально ответить ? Или это не форум ?
ДЕД МАСТДАЙ (2002-04-03 17:28:00) [22]Слушай SPeller может мне еще всю сисинфу написать а потом подписать ее "made by SPeller" ?
SPeller (2002-04-03 16:57:00) [23]ДЕД МАСТДАЙ
А мож про ресурсы чего-нить знаешь ?
ДЕД МАСТДАЙ (2002-04-03 16:38:00) [24]Народ вы хоть знаете что такое процессор, его команды? А про системную область биоса с адресса 0F000h слышали? Так вот вся инфа про процессор получаеться после команды CPUID с кодом 0F A2 что для Делфи будет $0F $A2 понятно? Значения CPUID зависит от значения регистра EAX. И в последствии возращает значения в ECX,EDX,EBX. Так это я начсет проца. Дальше начсет видокарты. Есть такое великолепное прерывание BIOS"a int 10h посвященное видеосервису, советую про него прочитать. Ну да ладно с ним. Про системное определение, нате пример:
procedure TForm1.button1click(Sender: TObject);
var
lpDisplayDevice: TDisplayDevice;
dwFlags: DWORD;
cc: DWORD;
begin
form1.memo1.Clear;
lpDisplayDevice.cb := sizeof(lpDisplayDevice);
dwFlags := 0;
cc:= 0;
while EnumDisplayDevices(nil, cc, lpDisplayDevice , dwFlags) do
begin
Inc(cc);
form1.memo1.lines.add(lpDisplayDevice.DeviceString);
end;
end;
И еще всем, скажите что это за програмаирование когда ты ипсользуешь компоненты? А, да никакое это не программирование а использование чужих идей!
SPeller (2002-04-03 15:12:00) [25]Но как-то ж можно, винда ведь как-то делает это и не важно какая она старая или новая, всё-равно определяет. Неужели никто незнает?
Donal_Graeme (2002-04-03 13:23:00) [26]через БИОС не знаю как... правда мне думается, что это нереально...
SPeller (2002-04-03 02:55:00) [27]>Poirot © (02.04.02 11:33)
Можешь на мыло скинуть этот определитель ?
>Donal_Graeme (02.04.02 11:51)
Рыться в реестре занятие не из приятных... А нельзя ли как-нибудь через биос, он-то верочно знает про видюху, или нет ?
SPeller (2002-04-02 11:13:00) [28]Donal_Graeme (02.04.02 10:09)
И как тогда определить какая из них сейчас стоит ?
Donal_Graeme (2002-04-02 10:09:00) [29]насчёт видео, я не уверен, но по-моему вовсе не обязательно, что наличие двух разделов (0001 и 0002, например) означает присутствие двух видеокарт. могут остаться старые разделы при смене видео.
Poirot (2002-04-02 07:18:00) [30]
> SPeller ©
1- если список логических дисков и CD(DVD)-ROM, FLOPPY - то ручками пробиваем по всем букавкам GetDriveType...
А вот если винтик хотите найти то поступаем тем же манером как и с видео, но учтите что в Вынь2К винтики в реестре упомянаются все, даже если вы подключили какой-то когда-то и потом убрали - он там.... а ручками удалить не получается - кричит....
2 - не знаю....
PS: Здесь в форуме был пример с выводом названия видюхи (помоему через АПИ)... Я что-то в рассылке не могу найти...
SPeller (2002-04-02 02:54:00) [31]А если несколько, то это 2 видюхи ? Тогда можно выбрать любую из них. И ещё ненайденные мною вопросы:
- Список дисков
- Почему функция GlobalMemoryStatus возвращает меньшее кол-во оперативки чем на самом деле ? Например для 160 т.е 167772160 байт она выдаёт 167239680, что равно 159,49 метров?
Donal_Graeme (2002-04-01 15:01:00) [32]бывает и несколько
SPeller (2002-04-01 11:06:00) [33]Спасибо и за этот пример. А в реестре один ключ 0000, 0001 или 0002 или их может быть одновременно несколько ? Если один, то вычислить его труда не составит.
Donal_Graeme (2002-04-01 10:26:00) [34]для видео - это только наброски.. эти функции работают, но не всегда... во-первых, в реестре может быть не указана данная информация, а во-вторых ключ в реестре может быть и 0001 и 0002 и т.п.
function GetVideoAdapterName: AnsiString;
var Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey ("System\CurrentControlSet\Services\Class\Display\0000", False);
Result := Reg.ReadString ("DriverDesc");
Reg.Free;
end;
function GetVideoMemory: DWord;
var Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey ("System\CurrentControlSet\Services\Class\Display\0000\Info", False);
Result := Reg.ReadInteger ("VideoMemory");
Reg.Free;
end;
SPeller (2002-04-01 08:21:00) [35]DC-AС
Спасибо. Но остались ещё вопросы:
- Название видюхи;
- Объём видеопамяти;
- Имеющиеся в системе диски;
DC-AC (2002-04-01 07:44:00) [36]LMDSysInfo из LMD-Tools
SPeller (2002-03-31 23:47:00) [37]Ну што, никто не знает что-ли ?
SPeller (2002-03-31 17:11:00) [38]И кол-во ресурсов тоже из реестра?
Song (2002-03-31 16:47:00) [39]Помнится мне, какой-то компонентик здесь ходил... А так - из реестра.