PDA

Ver la Versión Completa : Mostrar arquitectura de programa en caption de form


wolfran_hack
10-01-2016, 22:23:36
Buenas a todos, alguien sabe como obtener la arquitectura del programa que estamos trabajando y mostrarlo en el caption del form. Por ejemplo, tengo una function para saber la versión actual, habrá algo parecido?

Delphi X

AgustinOrtu
10-01-2016, 23:33:20
A que te referis con arquitectura? 32 o 64 bits del programa en cuestion? O de si es Windows de 32 o 64 bits?

wolfran_hack
11-01-2016, 00:21:33
A la que esta compilado el programa.

https://k60.kn3.net/7/C/8/4/B/C/342.png

AgustinOrtu
11-01-2016, 01:13:16
No estoy muy seguro de como hacerlo. Se que si no fue en este foro, fue en DelphiAccess, el amigo escafandra usando la API de Windows mostraba como "preguntar" si un proceso es de 32 o 64 bits

Si no recuerdo mal era el que hackeaba procesos para modificar strings

Lo que yo haria y que me parece lo mas logico es usar directivas de compilacion (http://docwiki.embarcadero.com/RADStudio/Seattle/en/Conditional_compilation_(Delphi))


{$IFDEF WIN32}
const
Plataforma = 'Win32';
{$ENDIF}
{$IFDEF WIN64}
const
Plataforma = 'Win64';
{$ENDIF}


De esa forma, de acuerdo a que compilador compile tu codigo, incluira una u otra constante

BDWONG
11-01-2016, 02:21:14
Hola mira esta opcion usando la api de windows http://stackoverflow.com/questions/1436185/how-can-i-tell-if-im-running-on-x64

wolfran_hack
11-01-2016, 02:39:03
Perfecto, exactamente eso necesitaba.

AgustinOrtu
11-01-2016, 03:31:17
A la que esta compilado el programa.

La funcion que se encuentra en el hilo de StackOverflow (http://stackoverflow.com/questions/1436185/how-can-i-tell-if-im-running-on-x64) evalua si el equipo esta corriendo bajo Windows de 64 bits; no evalua tu ejecutable

Osea que lo que queres saber vos es determinar si el sistema operativo es de 32 o 64 bits. Eso lo podes hacer usando la RTL de Delphi

TOSVersion (http://docwiki.embarcadero.com/Libraries/Seattle/en/System.SysUtils.TOSVersion)


uses
SysUtils;

begin
if TOSVersion.Architecture in [arIntelX64, arARM64] then
ShowMessage('Sistema operativo de de 64 bits')
else
ShowMessage('Sistema operativo de de 32 bits')
end;