![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать количество памяти видеокарты????
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-е это не говорится.