program Type/de

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de)


Zurück zur Seite Code Beispiele.


Dieser Artikel beschäftigt sich mit der Windowsprogrammierung.

Die Funktion prüft, um welchen Programmtyp es sich handelt. Es hängt u. a. vom Programmtyp ab, ob das Betriebssystem das Programm ausführen kann.

uses
  Windows, ...;

  ...

function funGetEXEType(FileName: string): string;
const
  SCS_32BIT_BINARY = 0;
  SCS_DOS_BINARY = 1;
  SCS_WOW_BINARY = 2;
  SCS_PIF_BINARY = 3;
  SCS_POSIX_BINARY = 4;
  SCS_OS216_BINARY = 5;
  SCS_64BIT_BINARY = 6;

var
  BinaryType: DWORD;

begin

  if GetBinaryType(PChar(FileName), Binarytype) then
    case BinaryType of
      SCS_DOS_BINARY: Result := 'DOS Programm';
      SCS_WOW_BINARY: Result := 'Win16 Programm';
      SCS_32BIT_BINARY: Result := 'Win32 Programm';
      SCS_64BIT_BINARY: Result := 'Win64 Programm';
      SCS_PIF_BINARY: Result := 'PIF Datei';
      SCS_POSIX_BINARY: Result := 'POSIX Programm (Unix)';
      SCS_OS216_BINARY: Result := 'OS/2 16 Bit Programm'
      else
        Result := 'unbekannter Programmtyp'
    end
  else
    Result := 'Die Datei ist kein Programm';

end;

Aufruf der Funktion:

procedure TForm1.Button1Click(Sender: TObject);
begin

  ...
  
  Form1.Memo1.Lines.Add(funGetEXEType('c:\windows\notepad.exe'));
  
  ...
  
end;