Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: d(-_-)b en 8 Octubre 2010, 20:35 pm



Título: [Delphi] Source Utils GetPCDir
Publicado por: d(-_-)b en 8 Octubre 2010, 20:35 pm
(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.

Código
  1. program GetPCInfo;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils, Windows, Registry, ShellApi;
  7.  
  8. Type
  9. //Directorios y nombres
  10. WinSysTemp = (WindowsDir, SystemDir, TempDir);
  11. ComputerUser = (GComputerName, GUserName);
  12.  
  13. Const
  14. //Nombres, tonterias pero util, LOL XD
  15. U = 'User name: ';
  16. C = 'Computer name: ';
  17. W = 'Windows: ';
  18. S = 'System: ';
  19. T = 'Temp folder: ';
  20. P = 'Program files: ';
  21. DT = 'System date time: ';
  22. SYSLANG = 'System language: ';
  23. TEXT = 'elhacker.net by Dominicano. (-_-) XD';
  24. LINE = '-----------------------------------------';
  25.  
  26. //Windows, system y carpeta temporal (Temp)
  27. function GetDirectory(DirWST: WinSysTemp): String;
  28. var
  29. Path: Array[0..MAX_PATH] of Char;
  30. SizePath: Cardinal;
  31. begin
  32. SizePath := sizeof(Path);
  33.  Case DirWST of
  34.   WindowsDir: GetWindowsDirectory(Path, SizePath);
  35.   SystemDir: GetSystemDirectory(Path, SizePath);
  36.   TempDir: GetTempPath(MAX_PATH, Path);
  37.   end;
  38.  Result := (Path);
  39. end;
  40.  
  41. //Archivos de programa
  42. //Si queremos obtener Archivos comunes, Usar CommonFilesDir
  43. function GetProgramFilesDir: String;
  44. var
  45. Regedit: TRegistry;
  46. begin
  47.  Regedit := TRegistry.Create;
  48.   try
  49.     RootKey := HKEY_LOCAL_MACHINE;
  50.     Regedit.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion', false);
  51.     Result := Regedit.ReadString('ProgramFilesDir');
  52.   Regedit.CloseKey;
  53.   finally
  54.  Regedit.Free;
  55. end;
  56. end;
  57.  
  58. //Idioma del systema
  59. function GetUserLanguage: String;
  60. var
  61. Language: Array[0..150] of Char;
  62. ID: LangID;
  63. LangSize: Cardinal;
  64. begin
  65.  LangSize := SizeOf(Language);
  66.  ID := GetUserDefaultLangID;
  67.  VerLanguageName(ID, Language, LangSize);
  68.  Result := (Language);
  69. end;
  70.  
  71. //Computadora y usuario
  72. function GetComputerUserName(CUN: ComputerUser): String;
  73. var
  74. csName: Array[0..230] of Char;
  75. csSize: Cardinal;
  76. begin
  77.  csSize := Sizeof(csName);
  78.  Case CUN of
  79.   GUserName: GetUserName(csName, csSize);
  80.   GComputerName: GetComputerName(csName, csSize);
  81.   end;
  82.  Result := (csName);
  83. end;
  84.  
  85. //Fecha y hora del sistema
  86. function SystemDateTime: String;
  87. var
  88. SysDateTime: TSystemTime;
  89. begin
  90.  GetLocalTime(SysDateTime);
  91.  Result := DateTimeToStr(SystemTimeToDateTime(SysDateTime));
  92. end;
  93.  
  94. //Mostramos resultados en pantalla
  95. begin
  96. Writeln(LINE + #10 + TEXT + #10 + LINE + #10);
  97.  
  98. Writeln(U + GetComputerUserName(GUserName));
  99. Writeln(C + GetComputerUserName(GComputerName )+ #10);
  100.  
  101. Writeln(W + GetDirectory(WindowsDir));
  102. Writeln(S + GetDirectory(SystemDir));
  103. Writeln(T + GetDirectory(TempDir));
  104. Writeln(P + GetProgramFilesDir + #10);
  105.  
  106. Writeln(DT+SystemDateTime);
  107. Writeln(SYSLANG+GetUserLanguage);
  108.  
  109. Readln;
  110. end.

saludos...


Título: Re: [Delphi] Source Utils GetPCDir
Publicado por: 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.


Título: Re: [Delphi] Source Utils GetPCDir
Publicado por: d(-_-)b en 8 Octubre 2010, 21:33 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...