Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi GetVersionEx abhängig vom Programmnamen? (https://www.delphipraxis.net/96376-getversionex-abhaengig-vom-programmnamen.html)

uligerhardt 23. Jul 2007 15:11


GetVersionEx abhängig vom Programmnamen?
 
Hi Leute!

Wenn ich folgendes Programm
Delphi-Quellcode:
program Ref2;

{$APPTYPE CONSOLE}

uses
  Windows;

procedure ShowVersion;
var
  osvi: TOSVersionInfo;
begin
  FillChar(osvi, SizeOf(osvi), 0);
  osvi.dwOSVersionInfoSize := SizeOf(osvi);
  GetVersionEx(osvi);
  Writeln(osvi.dwMajorVersion, '.', osvi.dwMinorVersion);
end;

begin
  ShowVersion;
  Readln;
end.
laufen lasse, erscheint bei mir unter XP (wo ich 5.1 erwarte), 7.3 auf dem Bildschirm. Benenne ich Ref2.exe um, z.B. in Ref1.exe, so erscheint beim Ausführen die erwartete 5.1. Wieder nach Ref2 umbenennen ==> 7.3 usw. usf. Kann mir jemand erklären, wie ich das geschafft habe? :)

Danke im Voraus,
Uli.

BUG 23. Jul 2007 16:07

Re: GetVersionEx abhängig vom Programmnamen?
 
Zitat:

Zitat von uligerhardt
Kann mir jemand erklären, wie ich das geschafft habe? :)

Ich kanns nicht, unter WinXP mit Delphi 3 Prof. compiliert: "5.1" - auch mit "Ref2.exe" als Name!
Vielleicht lädst du das Programm mal hoch zum ausprobieren ...

MfG,
Bug

uligerhardt 23. Jul 2007 16:45

Re: GetVersionEx abhängig vom Programmnamen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von BUG
Ich kanns nicht, unter WinXP mit Delphi 3 Prof. compiliert: "5.1" - auch mit "Ref2.exe" als Name!
Vielleicht lädst du das Programm mal hoch zum ausprobieren ...

Danke für's Ausprobieren! Ich hänge das Kompilat mal an, fürchte aber, dass du damit auch kein anderes Ergebnis kriegst. Wenn mein Kollege unser Ref2 kompiliert ("etwas" mehr Code als im ersten Posting :)) und mir sein exe gibt, taucht der Fehler bei mir auch auf (bei ihm nicht).

Ich vermute, ich hab irgendsoeinen blöden Windows-Kompatibilitätstrick ausgelöst, sodass jedes Programm mit dem Namen Ref2.exe eine irreale Windowsversion vorgegaukelt bekommt. In der Registry habe ich allerdings nichts gefunden.

Muetze1 23. Jul 2007 18:47

Re: GetVersionEx abhängig vom Programmnamen?
 
Es gibt dazu ein Programm namens SetVer welches schon in DOS Versionen seit afair 5.0 dabei war um bestimmte DOS und Windows Versionen bestimmten Programmen (erkannt am EXE Namen) zurück zu liefern um sie auf neueren DOS Versionen lauffähig zu machen. Dies oder die entsprechende Nachbildung in der Shell sollte dafür verantwortlich sein.

uligerhardt 24. Jul 2007 13:17

Re: GetVersionEx abhängig vom Programmnamen?
 
Zitat:

Zitat von Muetze1
Es gibt dazu ein Programm namens SetVer welches schon in DOS Versionen seit afair 5.0 dabei war um bestimmte DOS und Windows Versionen bestimmten Programmen (erkannt am EXE Namen) zurück zu liefern um sie auf neueren DOS Versionen lauffähig zu machen. Dies oder die entsprechende Nachbildung in der Shell sollte dafür verantwortlich sein.

Sowas in der Art verdächtige ich auch, aber SetVer scheint's nicht zu sein. Beim googeln bin ich über mkcompat gestolpert, aber das ist auf meinem Rechner nicht vorhanden, also vermutlich unschuldig. :)

uligerhardt 24. Jul 2007 13:48

Re: GetVersionEx abhängig vom Programmnamen?
 
Zitat:

Zitat von uligerhardt
Wenn ich folgendes Programm {snip} laufen lasse {snip}

Es geht auch einfacher: Notepad.exe kopieren und in Ref2.exe umbenennen, Infobox anzeigen lassen - voila! Also liegt's zumindest nicht an irgendwelchen obskuren Delphi-Einstellungen, an denen ich vielleicht mal gedreht habe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf