Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать количество памяти видеокарты????


Страницы:   1 2

gektorrr ©   (2006-04-16 15:32:00) 

Как узнать количество памяти видеокарты???? весь инет облазил,ну нигде нет????


ancara   (2006-05-10 10:44:00) [1]

в TotalVM хранится значение, соответствующее полному объему видеопамяти,
в FreeVM - значение, соответствующее объему свободной.


gektorrr   (2006-05-06 20:04:00) [2]

Sorry, заело......


gektorrr   (2006-05-05 23:59:00) [3]

Program GetVideoRAM теперь работает, выводит правильно........но почему-то при повторном вызове зависает и выдает ошибку:
Project Project1.exe raised exception class EAccessVioletion with message 'Access violation at adress 004058DE in module'Project1.exe'.Read of address 0104ffE8'.
Что не так?????

А программа ancara ©   (25.04.06 16:39) [13] запускается, но никакого результата нне выводит, а тут в чем проблема?????


gektorrr   (2006-05-05 23:53:00) [4]

Program GetVideoRAM теперь работает, выводит правильно........но почему-то при повторном вызове зависает и выдает ошибку:
Project Project1.exe raised exception class EAccessVioletion with message 'Access violation at adress 004058DE in module'Project1.exe'.Read of address 0104ffE8'.
Что не так?????

А программа ancara ©   (25.04.06 16:39) [13] запускается, но никакого результата нне выводит, а тут в чем проблема?????


gektorrr   (2006-05-05 23:53:00) [5]

Program GetVideoRAM теперь работает, выводит правильно........но почему-то при повторном вызове зависает и выдает ошибку:
Project Project1.exe raised exception class EAccessVioletion with message 'Access violation at adress 004058DE in module'Project1.exe'.Read of address 0104ffE8'.
Что не так?????

А программа ancara ©   (25.04.06 16:39) [13] запускается, но никакого результата нне выводит, а тут в чем проблема?????


gektorrr   (2006-05-05 23:51:00) [6]

Program GetVideoRAM теперь работает, выводит правильно........но почему-то при повторном вызове зависает и выдает ошибку:
Project Project1.exe raised exception class EAccessVioletion with message 'Access violation at adress 004058DE in module'Project1.exe'.Read of address 0104ffE8'.
Что не так?????

А программа ancara ©   (25.04.06 16:39) [13] запускается, но никакого результата нне выводит, а тут в чем проблема?????


gektorrr   (2006-05-05 23:51:00) [7]

Program GetVideoRAM теперь работает, выводит правильно........но почему-то при повторном вызове зависает и выдает ошибку:
Project Project1.exe raised exception class EAccessVioletion with message 'Access violation at adress 004058DE in module'Project1.exe'.Read of address 0104ffE8'.
Что не так?????

А программа ancara ©   (25.04.06 16:39) [13] запускается, но никакого результата нне выводит, а тут в чем проблема?????


n0name   (2006-05-05 16:25:00) [8]


IWbemServices = interface(IUnknown)
 ['{9556DC99-828C-11CF-A37E-00AA003240C7}']
 function OpenNamespace(strNamespace: TBStr; lFlags: DWORD; pCtx: PIWbemContext; ppWorkingNamespace: PPIWbemServices;
  ppResult: PPIWbemCallResult): HRESULT; stdcall;
 function CancelAsyncCall(pSink: PIWbemObjectSink): HRESULT; stdcall;
 function QueryObjectSink(lFlags: DWORD; ppResponseHandler: PPIWbemObjectSink): HRESULT; stdcall;
 function GetObject(strObjectPath: TBStr; lFlags: DWORD; pCtx: PIWbemContext; ppObject: PPIWbemClassObject;
  ppCallResult: PPIWbemCallResult): HRESULT; stdcall;
 function GetObjectAsync(strObjectPath: TBStr; lFlags: DWORD; pCtx: PIWbemContext; pResponseHandler: PIWbemObjectSink): HRESULT; stdcall;
 function PutClass(pObject: PIWbemClassObject; lFlags: DWORD; pCtx: PIWbemContext; ppCallResult: PPIWbemCallResult): HRESULT; stdcall;
 function PutClassAsync(pObject: PIWbemClassObject; lFlags: DWORD; pCtx: PIWbemContext; pResponseHandler: PIWbemObjectSink): HRESULT; stdcall;
 function DeleteClass(strClass: TBStr; lFlags: DWORD; pCtx: PIWbemContext; ppCallResult: PPIWbemCallResult): HRESULT; stdcall;
 function DeleteClassAsync(strClass: TBStr; lFlags: DWORD; pCtx: PIWbemContext; pResponseHandler: PIWbemObjectSink): HRESULT; stdcall;
 function CreateClassEnum(strSuperclass: TBStr; lFlags: DWORD; pCtx: PIWbemContext; ppEnum: PPIEnumWbemClassObject): HRESULT; stdcall;
 function CreateClassEnumAsync(strSuperclass: TBStr; lFlags: DWORD; pCtx: PIWbemContext; pResponseHandler: PIWbemObjectSink): HRESULT; stdcall;
 function PutInstance(pInst: PIWbemClassObject; lFlags: DWORD; pCtx: PIWbemContext; ppCallResult: PPIWbemCallResult): HRESULT; stdcall;
 function PutInstanceAsync(pInst: PIWbemClassObject; lFlags: DWORD; pCtx: PIWbemContext; pResponseHandler: PIWbemObjectSink): HRESULT; stdcall;
 function DeleteInstance(strObjectPath: TBStr; lFlags: DWORD; pCtx: PIWbemContext; ppCallResult: PPIWbemCallResult): HRESULT; stdcall;
 function DeleteInstanceAsync(strObjectPath: TBStr; lFlags: DWORD; pCtx: PIWbemContext; pResponseHandler: PIWbemObjectSink): HRESULT; stdcall;
 function CreateInstanceEnum(strFilter: TBStr; lFlags: DWORD; pCtx: PIWbemContext; ppEnum: PPIEnumWbemClassObject): HRESULT; stdcall;
 function CreateInstanceEnumAsync(strFilter: TBStr; lFlags: DWORD; pCtx: PIWbemContext; pResponseHandler: PIWbemObjectSink): HRESULT; stdcall;
 function ExecQuery(strQueryLanguage: TBStr; strQuery: TBStr; lFlags: DWORD; pCtx: PIWbemContext; ppEnum: PPIEnumWbemClassObject): HRESULT; stdcall;
 function ExecQueryAsync(strQueryLanguage: TBStr; strQuery: TBStr; lFlags: DWORD; pCtx: PIWbemContext;
  pResponseHandler: PIWbemObjectSink): HRESULT; stdcall;
 function ExecNotificationQuery(strQueryLanguage: TBStr; strQuery: TBStr; lFlags: DWORD; pCtx: PIWbemContext;
  ppEnum: PPIEnumWbemClassObject): HRESULT; stdcall;
 function ExecNotificationQueryAsync(strQueryLanguage: TBStr; strQuery: TBStr; lFlags: DWORD; pCtx: PIWbemContext;
  pResponseHandler: PIWbemObjectSink): HRESULT; stdcall;
 function ExecMethod(strObjectPath: TBStr; strMethodName: TBStr; lFlags: DWORD; pCtx: PIWbemContext;
  pInParams: PIWbemClassObject; ppOutParams: PPIWbemClassObject; ppCallResult: PPIWbemCallResult): HRESULT; stdcall;
 function ExecMethodAsync(strObjectPath: TBStr; strMethodName: TBStr; lFlags: DWORD; pCtx: PIWbemContext;
  pInParams: PIWbemClassObject; pResponseHandler: PIWbemObjectSink): HRESULT; stdcall;
end;

IWbemLocator = interface(IUnknown)
 ['{DC12A687-737F-11CF-884D-00AA004B2E24}']
 function ConnectServer(strNetworkResource: TBStr; strUser: TBStr; strPassword: TBStr; strLocale: TBStr; lSecurityFlags: DWORD;
  strAuthority: TBStr; pCtx: PIWbemContext; ppNamespace: PPIWbemServices): HRESULT; stdcall;
end;

const
CLSID_WbemLocator: TGUID = '{4590F811-1D3A-11D0-891F-00AA004B2E24}';
IID_IWbemLocator: TGUID = '{DC12A687-737F-11CF-884D-00AA004B2E24}';

implementation

end.


n0name   (2006-05-05 16:24:00) [9]


unit WMIInterfaces;

interface

uses
Windows,
ActiveX;

type
PPIWbemLocator = ^PIWbemLocator;
PPIWbemContext = ^PIWbemContext;
PPIWbemServices = ^PIWbemServices;
PPIWbemObjectSink = ^PIWbemObjectSink;
PPIWbemCallResult = ^PIWbemCallResult;
PPIWbemClassObject = ^PIWbemClassObject;
PPIWbemQualifierSet = ^PIWbemQualifierSet;
PPIEnumWbemClassObject = ^PIEnumWbemClassObject;
PIWbemLocator = ^IWbemLocator;
PIWbemContext = ^IWbemContext;
PIWbemServices = ^IWbemServices;
PIWbemObjectSink = ^IWbemObjectSink;
PIWbemCallResult = ^IWbemCallResult;
PIWbemClassObject = ^IWbemClassObject;
PIWbemQualifierSet = ^IWbemQualifierSet;
PIEnumWbemClassObject = ^IEnumWbemClassObject;

IWbemContext = interface(IUnknown)
 ['{44ACA674-E8FC-11D0-A07C-00C04FB68820}']
 function Clone(ppNewCopy: PPIWbemContext): HRESULT; stdcall;
 function GetNames(lFlags: DWORD; pNames: PSafeArray): HRESULT; stdcall;
 function BeginEnumeration(lFlags: DWORD): HRESULT; stdcall;
 function Next(lFlags: DWORD; pstrName: PBStr; pValue: POleVariant): HRESULT; stdcall;
 function EndEnumeration(): HRESULT; stdcall;
 function SetValue(wszName: LPCWSTR; lFlags: DWORD; pValue: POleVariant): HRESULT; stdcall;
 function GetValue(wszName: LPCWSTR; lFlags: DWORD; pValue: POleVariant): HRESULT; stdcall;
 function DeleteValue(wszName: LPCWSTR; lFlags: DWORD): HRESULT; stdcall;
 function DeleteAll(): HRESULT; stdcall;        
end;

IWbemCallResult = interface(IUnknown)
 ['{44ACA675-E8FC-11D0-A07C-00C04FB68820}']
 function GetResultObject(lTimeout: DWORD; ppResultObject: PPIWbemClassObject): HRESULT; stdcall;
 function GetResultString(lTimeout: DWORD; pstrResultString: PBStr): HRESULT; stdcall;
 function GetResultServices(lTimeout: DWORD; ppServices: PPIWbemServices): HRESULT; stdcall;
 function GetCallStatus(lTimeout: DWORD; plStatus: PDWORD): HRESULT; stdcall;        
end;

IWbemQualifierSet = interface(IUnknown)
 ['{DC12A680-737F-11CF-884D-00AA004B2E24}']
 function Get(wszName: LPCWSTR; lFlags: DWORD; pVal: POleVariant; plFlavor: PDWORD): HRESULT; stdcall;
 function Put(wszName: LPCWSTR; pVal: POleVariant; lFlavor: DWORD): HRESULT; stdcall;
 function Delete(wszName: LPCWSTR): HRESULT; stdcall;
 function GetNames(lFlags: DWORD; pNames: PSafeArray): HRESULT; stdcall;
 function BeginEnumeration(lFlags: DWORD): HRESULT; stdcall;
 function Next(lFlags: DWORD; pstrName: PBStr; pVal: POleVariant; plFlavor: PDWORD): HRESULT; stdcall;
 function EndEnumeration(): HRESULT; stdcall;
end;

IWbemObjectSink = interface(IUnknown)
 ['{7C857801-7381-11CF-884D-00AA004B2E24}']
 function Indicate(lObjectCount: DWORD; apObjArray: PPIWbemClassObject): HRESULT; stdcall;
 function SetStatus(lFlags: DWORD; hResult: DWORD; strParam: TBStr; pObjParam: PIWbemClassObject): HRESULT; stdcall;    
end;

IWbemClassObject = interface(IUnknown)
 ['{DC12A681-737F-11CF-884D-00AA004B2E24}']
 function GetQualifierSet(ppQualSet: PPIWbemQualifierSet): HRESULT; stdcall;
 function Get(wszName: LPCWSTR; lFlags: DWORD; pVal: POleVariant; pType: PDWORD; plFlavor: PDWORD): HRESULT; stdcall;
 function Put(wszName: LPCWSTR; lFlags: DWORD; pVal: POleVariant; lType: DWORD): HRESULT; stdcall;
 function Delete(wszName: LPCWSTR): HRESULT; stdcall;
 function GetNames(wszQualifierName: LPCWSTR; lFlags: DWORD; pQualifierVal: POleVariant; pNames: PSafeArray): HRESULT; stdcall;  
 function BeginEnumeration(lEnumFlags: DWORD): HRESULT; stdcall;  
 function Next(lFlags: DWORD; strName: PBStr; pVal: POleVariant; pType: PDWORD; plFlavor: PDWORD): HRESULT; stdcall;  
 function EndEnumeration(): HRESULT; stdcall;  
 function GetPropertyQualifierSet(wszProperty: LPCWSTR; ppQualSet: PPIWbemQualifierSet): HRESULT; stdcall;
 function Clone(ppCopy: PPIWbemClassObject): HRESULT; stdcall;
 function GetObjectText(lFlags: DWORD; pstrObjectText: PBStr): HRESULT; stdcall;
 function SpawnDerivedClass(lFlags: DWORD; ppNewClass: PPIWbemClassObject): HRESULT; stdcall;
 function SpawnInstance(lFlags: DWORD; ppNewInstance: PPIWbemClassObject): HRESULT; stdcall;  
 function CompareTo(lFlags: DWORD; pCompareTo: PIWbemClassObject): HRESULT; stdcall;
 function GetPropertyOrigin(wszName: LPCWSTR; pstrClassName: PBStr): HRESULT; stdcall;  
 function InheritsFrom(strAncestor: LPCWSTR): HRESULT; stdcall;  
 function GetMethod(wszName: LPCWSTR; lFlags: DWORD; ppInSignature: PPIWbemClassObject; ppOutSignature: PPIWbemClassObject): HRESULT; stdcall;
 function PutMethod(wszName: LPCWSTR; lFlags: DWORD; pInSignature: PIWbemClassObject; pOutSignature: PIWbemClassObject): HRESULT; stdcall;
 function DeleteMethod(wszName: LPCWSTR): HRESULT; stdcall;
 function BeginMethodEnumeration(lEnumFlags: DWORD): HRESULT; stdcall;  
 function NextMethod(lFlags: DWORD; pstrName: PBStr; ppInSignature: PPIWbemClassObject; ppOutSignature: PPIWbemClassObject): HRESULT; stdcall;
 function EndMethodEnumeration(): HRESULT; stdcall;  
 function GetMethodQualifierSet(wszMethod: LPCWSTR; ppQualSet: PPIWbemQualifierSet): HRESULT; stdcall;
 function GetMethodOrigin(wszMethodName: LPCWSTR; pstrClassName: PBStr): HRESULT; stdcall;
end;

IEnumWbemClassObject = interface(IUnknown)
 ['{027947E1-D731-11CE-A357-000000000001}']
 function Reset(): HRESULT; stdcall;
 function Next(lTimeout: DWORD; uCount: DWORD; apObjects: PPIWbemClassObject; puReturned: PDWORD): HRESULT; stdcall;
 function NextAsync(uCount: DWORD; pSink: PIWbemObjectSink): HRESULT; stdcall;
 function Clone(ppEnum: PPIEnumWbemClassObject): HRESULT; stdcall;
 function Skip(lTimeout: DWORD; nCount: DWORD): HRESULT; stdcall;          
end;


gektorrr   (2006-05-05 15:03:00) [10]

WMIInterfaces- а что это за модуль такой, на распознается.........?

пересмотрел все что нашел в нете про IDirectDraw, но ответа так и не нашел, не подскажешь как именно?


ancara   (2006-04-25 16:45:00) [11]


> Anatoly Podgoretsky ©   (16.04.06 16:57) [1]
> Реального применения задача не имеет.
>

 Имеет.
 Одно из применений - мониторинг видеопамяти, определение объема занятой памяти в процентном выражении.


ancara   (2006-04-25 16:39:00) [12]

var
 DDraw: IDirectDraw;
 DDraw7: IDirectDraw7;
 DDResult: HResult;
 TotalVM, FreeVM: DWORD;
 DriverCaps: TDDCaps;
 HELCaps: TDDCaps;

begin
 DDResult := DirectDrawCreate(nil,DDraw,nil);
 if DDResult<>0 then
 begin
   ShowMessage('Error creating DirectDraw object.');
   Halt;
 end;
 DDResult := DDraw.QueryInterface(IID_IDirectDraw7, DDraw7);
 if DDResult<>0 then
 begin
   ShowMessage('Interface IDirectDraw7 not supported.');
   Halt;
 end;

 DriverCaps.dwSize:=sizeof(TDDCaps);
 DDResult := DDraw7.SetCooperativeLevel(Handle, DDSCL_NORMAL);
 if DDResult<>0 then exit;

 DDResult := DDraw7.GetCaps(@DriverCaps, @HELCaps);
 if DDResult<>0 then exit;

 TotalVM:=DriverCaps.dwVidMemTotal;
 FreeVM:=DriverCaps.dwVidMemFree;
end;


Unsigned   (2006-04-25 01:01:00) [13]

2 Otter
Заюзай хедеры!
http://clootie.narod.ru/delphi/download_dx90.html#Headers_DirectX90


kernel   (2006-04-24 17:18:00) [14]


> ЗЫ омхо вин95 НЕ оср2 уже в 96 году был редкостью


Можно гордо говорить, что "десять лет назад!"  :>)


jack128   (2006-04-24 12:51:00) [15]

n0name   (17.04.06 15:22) [2]
Изврат не использование wmi , а ручной вызов _Release интерфейсов.  В дельфи - это не позволительно..


homm   (2006-04-24 12:18:00) [16]

ЗЫ омхо вин95 НЕ оср2 уже в 96 году был редкостью


homm   (2006-04-24 12:17:00) [17]


> > а directx есть везде.
>
> Чё правда?

если вин95 НЕ оср2 в расчет не брать, то везде


Плохиш   (2006-04-24 11:33:00) [18]


> а directx есть везде.

Чё правда?


miek   (2006-04-24 08:21:00) [19]

>WMI пржде всего и создана для получении информации о системе
Служба WMI может быть отключена или вообще отсутствовать, а directx есть везде.


Otter   (2006-04-23 19:52:00) [20]

Объясните, как собственно подключить это IDirectDraw4 к программе на Delphi....! В MSDN-е это не говорится.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо