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 = '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...