Dom Oct 31, 2010 9:30 pm
Bueno aqui les dejo unas mini funciones que nos permite obtener el direcorio de windows, archivos de programas, system, etc.. sin importar en que unidad esta instalado el sistema operativo, estas funciones resultan muy utiles ya que si queremos copiar un archivo u otra cosa en tales directorio se copiara sin problemas, sin importar que el directorio raiz sea C, D, o lo que sea.
- Código:
program GetPCInfo;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows, Registry, ShellApi;
Type
//Directorios y nombres
WinSysTemp = (WindowsDir, SystemDir, TempDir);
ComputerUser = (GComputerName, GUserName);
Const
//Nombres, tonterias pero util, LOL XD
U = 'User name: ';
C = 'Computer name: ';
W = 'Windows: ';
S = 'System: ';
T = 'Temp folder: ';
P = 'Program files: ';
DT = 'System date time: ';
SYSLANG = 'System language: ';
TEXT = 'indetectables.net by Dominicano. (-_-) XD';
LINE = '-----------------------------------------';
//Windows, system y carpeta temporal (Temp)
function GetDirectory(DirWST: WinSysTemp): String;
var
Path: Array[0..MAX_PATH] of Char;
SizePath: Cardinal;
begin
SizePath := sizeof(Path);
Case DirWST of
WindowsDir: GetWindowsDirectory(Path, SizePath);
SystemDir: GetSystemDirectory(Path, SizePath);
TempDir: GetTempPath(MAX_PATH, Path);
end;
Result := (Path);
end;
//Archivos de programa
//Si queremos obtener Archivos comunes, Usar CommonFilesDir
function GetProgramFilesDir: String;
var
Regedit: TRegistry;
begin
Regedit := TRegistry.Create;
try
RootKey := HKEY_LOCAL_MACHINE;
Regedit.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion', false);
Result := Regedit.ReadString('ProgramFilesDir');
Regedit.CloseKey;
finally
Regedit.Free;
end;
end;
//Idioma del systema
function GetUserLanguage: String;
var
Language: Array[0..150] of Char;
ID: LangID;
LangSize: Cardinal;
begin
LangSize := SizeOf(Language);
ID := GetUserDefaultLangID;
VerLanguageName(ID, Language, LangSize);
Result := (Language);
end;
//Computadora y usuario
function GetComputerUserName(CUN: ComputerUser): String;
var
csName: Array[0..230] of Char;
csSize: Cardinal;
begin
csSize := Sizeof(csName);
Case CUN of
GUserName: GetUserName(csName, csSize);
GComputerName: GetComputerName(csName, csSize);
end;
Result := (csName);
end;
//Fecha y hora del sistema
function SystemDateTime: String;
var
SysDateTime: TSystemTime;
begin
GetLocalTime(SysDateTime);
Result := DateTimeToStr(SystemTimeToDateTime(SysDateTime));
end;
//Mostramos resultados en pantalla
begin
Writeln(LINE + #10 + TEXT + #10 + LINE + #10);
Writeln(U + GetComputerUserName(GUserName));
Writeln(C + GetComputerUserName(GComputerName )+ #10);
Writeln(W + GetDirectory(WindowsDir));
Writeln(S + GetDirectory(SystemDir));
Writeln(T + GetDirectory(TempDir));
Writeln(P + GetProgramFilesDir + #10);
Writeln(DT+SystemDateTime);
Writeln(SYSLANG+GetUserLanguage);
Readln;
end.