![]() |
Info-Fenster von Windows anzeigen
Hallo Leute,
ich möchte das Info-Fenster von Windows, dass die aktuelle Windows Version, auch für 10 anzeigt, aus einem eigenen Programm aufrufen.Wie mache ich das? Lässt sich auch mit Powershell winver anzeigen. Danke und Gruß Willie. |
AW: Info-Fenster von Windows anzeigen
Versuch doch mal die winver.exe im Windows-Systemverzeichnis. ;)
|
AW: Info-Fenster von Windows anzeigen
meinst du so?
Delphi-Quellcode:
type
TVersionInfo = packed record Major : DWORD; Minor : DWORD; Release: DWORD; Build : DWORD; end; {...} var S : String; VersionInfo: TVersionInfo; begin VersionInfo := GetFileVersion(PWideChar(Application.ExeName)); S := Format('Copyright by me!' + #13 + 'Version: %d.%d.%d.%d', [VersionInfo.Major, VersionInfo.Minor, VersionInfo.Release, VersionInfo.Build]); ShellAbout(self.Handle, PWideChar(Text), PWideChar(S), Application.Icon.Handle); end; |
AW: Info-Fenster von Windows anzeigen
Parameter von WINVER.exe gibt es bis WIN8.1 nicht.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var strParams,FN : String; begin // uses Winapi.ShellAPI strParams:= ''; // für Programme MIT Parameter FN:='winver.exe'; ShellExecute(Application.Handle,NIL,PWChar(FN), PWChar(strParams),NIL, SW_Normal); end; |
AW: Info-Fenster von Windows anzeigen
Hallo Helmi,
dein Code ist genau das, was ich mir vorgestellt habe!!! Auch als Hobby-Programmierer will man eine schöne About-Box haben. Nur mit GetFileVersion habe ich ein Problem, es liefert einen Cardinal-Wert zurüch: Hiword enthält Hauptversion, Loword Nebenversion, kein Release und Built. Aber ich habe ein Codeschnipzel von Luckie gefunden. Die Windows-Infobox ist ja nützlich, weil sich die Windowsversion seit 8.1 nicht mehr so leicht ermitteln lässt. Von ShellAbout habe ich noch nie etwas gehört, obwohl ich viel in Delphiforen gesucht habe. Hallo Hathor, dass klappt auch, danke. Gruß Willie. |
AW: Info-Fenster von Windows anzeigen
Nachtrag:
Meine Begeisterung für eine About-Box (ShellAbout) mit Windows lässt schnell nach. Unter Windows 10 wird Text in der Kopfzeile stur ignoriert (immer nur Info) und es wird dann die falsche Windows-Version angezeigt Version 6.2 (Built 9200) also Windows 8. Ohne ShellAbout stimmt die Windows Version 10.0. Built 10240. Willie |
AW: Info-Fenster von Windows anzeigen
Hallo,
sorry, hab übersehen, dass "GetFileVersion" eine eigene Procedure ist. Hier mal der gesamte (Test-)Code:
Delphi-Quellcode:
unit Unit2;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ShellAPI; type TVersionInfo = packed record Major : DWORD; Minor : DWORD; Release: DWORD; Build : DWORD; end; type TForm2 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} function GetFileVersion(const FileName: PWideChar): TVersionInfo; var VerInfoSize : Integer; VerValueSize: DWord; Dummy : DWord; VerInfo : Pointer; VerValue : PVSFixedFileInfo; begin VerInfoSize := GetFileVersionInfoSize(Filename,Dummy); If VerInfoSize <> 0 then begin GetMem(VerInfo, VerInfoSize); try If GetFileVersionInfo(Filename, 0, VerInfoSize,VerInfo) then If VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize) then begin Result.Major := VerValue^.dwFileVersionMS shr 16; Result.Minor := VerValue^.dwFileVersionMS and $FFFF; Result.Release := VerValue^.dwFileVersionLS shr 16; Result.Build := VerValue^.dwFileVersionLS and $FFFF; end; finally FreeMem(VerInfo, VerInfoSize); end; end; end; procedure TForm2.Button1Click(Sender: TObject); var S : String; VersionInfo: TVersionInfo; begin VersionInfo := GetFileVersion(PWideChar(Application.ExeName)); S := Format('Copyright by me!' + #13 + 'Version: %d.%d.%d.%d', [VersionInfo.Major, VersionInfo.Minor, VersionInfo.Release, VersionInfo.Build]); ShellAbout(self.Handle, PWideChar(Text), PWideChar(S), Application.Icon.Handle); end; end. |
AW: Info-Fenster von Windows anzeigen
Verpasse ich irgendetwas, oder redet Ihr an einander vorbei? Was soll denn nun angezeigt werden, die Windows-Version oder die Versionsinfos des eigenen Programms?
|
AW: Info-Fenster von Windows anzeigen
Zitat:
Der Beitrag von hathor ist relevant. Wie auch immer ;) Zitat:
gruss |
AW: Info-Fenster von Windows anzeigen
Zitat:
und der zeigt ja die Windoof-Version an + einen eigenen Text (bei mir die eigene Programmversion) zeigt nur den Windows-Text an - sonst gar nix - echt - gar nix: :mrgreen:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin ShellAbout(self.Handle, PWideChar(''), PWideChar(''), 0); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz