Весь косяк в том что я не знаю Си впринципе.. а курсач сдавать через пару дней =) я на делфи его написал, а нужно на си
Допустип вот пара функция если не сложно переведите какую нить из них чтобы я примерно понял как это делать =)
function GetCPUVendor: TVendor; assembler; register;
asm
PUSH EBX
PUSH EDI
MOV EDI,EAX
MOV EAX,0
DW $A20F
MOV EAX,EBX
XCHG EBX,ECX
MOV ECX,4
@1:
STOSB
SHR EAX,8
LOOP @1
MOV EAX,EDX
MOV ECX,4
@2:
STOSB
SHR EAX,8
LOOP @2
MOV EAX,EBX
MOV ECX,4
@3:
STOSB
SHR EAX,8
LOOP @3
POP EDI
POP EBX
end;
//----------------------------------------------------------------
function GetCPUSpeed: double;
const
DelayTime = 500;
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: integer;
begin
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);
asm
dw 310Fh
mov TimerLo, eax
mov TimerHi, edx
end;
Sleep(DelayTime);
asm
dw 310Fh
sub eax, TimerLo
sbb edx, TimerHi
mov TimerLo, eax
mov TimerHi, edx
end;
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
Result := TimerLo / (1000.0 * DelayTime);
end;
//------------------------------------------------------------------
// Eioi?iaoey i eiiiu?oa?a
Procedure TfmMain.HardwareInfo;
var Size : cardinal;
Pres : PChar;
Bres : Boolean;
lpSystemInfo : TsystemInfo;
begin
Size := MAX_COMPUTERNAME_LENGTH +1;
Pres := StrAlloc(Size);
Bres := GetComputerName(Pres, Size);
if Bres then label_CompName.Caption := 'Eiy: ' + StrPas(Pres);
//eiy iieuciaaoaey
Size := MAX_COMPUTERNAME_LENGTH +1;
Pres := StrAlloc(Size);
Bres := GetUserName(Pres, Size);
if Bres then label_UserName.Caption := 'Iieuciaaoaeu: ' + StrPas(Pres);
//I?ioanni?
GetSystemInfo(lpsysteminfo);
label_cpumodel.Caption := 'CPU Eeanna x' + IntToStr(lpsysteminfo.dwProcessorType);
end;
Procedure TfmMain.Videoinfo;
var
DC : hDC;
c: string;
begin
//?ac?aoaiea
label_screen.Caption := '?ac?aoaiea ye?aia: ' + IntToStr(Screen.Width)+ ' ia ' + IntToStr(Screen.Height);
//Aeoaeia oaaoa
DC := CreateDC('DISPLAY',nil,nil,nil);
case GetDeviceCaps(DC,BITSPIXEL) of
8 : c:= '256 oaaoia';
15 : c:= 'Hi-Color / 32768 oaaoia';
16 : c:= 'Hi-Color / 65636 oaaoia';
24 : c:= 'True-Color / 16 iei. oaaoia';
32 : c:= 'True-color / 32 iei. oaaoia';
end;
label_color.caption :='Ea?anoai oaaoiia?aaa?e: ' + c;
DeleteDC(DC);
end;