(http://img547.imageshack.us/img547/5544/pcinf.jpg)
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.
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 = 'elhacker.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.
saludos...
Buen aporte VillanoSam, tal vez te interese la función de la API de Windows SHGetFolderPath, con ella puedes obtener muchas más carpetas especiales del sistema.
Saludos.
Cita de: Khronos14 en 8 Octubre 2010, 21:20 PM
Buen aporte VillanoSam, tal vez te interese la función de la API de Windows SHGetFolderPath, con ella puedes obtener muchas más carpetas especiales del sistema.
Saludos.
Si gracias, de echo hace mucho que este code esta escrito, solo la captura es nueva.
------------------
por cierto VillanoSam y Dominicano son los mismo.
por ejemplo.
http://foro.elhacker.net/programacion_general/manuales_y_libros_de_delphi-t212733.0.html
saludos...