windows styles

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: windows styles

Beitrag von Shardik »

RSBasic hat geschrieben:Mit OSVersion() kannst du ermitteln, welches Betriebssystem verwendet wird.
Mit folgendem WinAPI-Befehl kann festgestellt werden, ob der User einen klassischen oder einen modernen Design aktiviert hat: http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb
Leider ist die Überprüfung mit OSVersion() nicht ausreichend, wenn man auch
ältere Windows-Versionen unterstützen möchte, die die DLL "UXTheme.DLL"
zur XP-Skin Darstellung noch nicht enthalten. Obwohl man meint, ältere
Windows-Versionen abgefangen zu haben, wird nämlich trotzdem folgende
Fehlermeldung ausgegeben:
Windows 98 SE hat geschrieben:Fehler beim Starten des Programms.
Die erforderliche DLL-Datei UXTHEME.DLL wurde nicht gefunden.
Der Grund liegt darin, daß schon beim Start eines Programms alle benötigten
DLLs auf Vorhandensein geprüft werden und die UXTheme.DLL kann eben z.B.
in Windows 98 nicht gefunden werden. Die einzige Möglichkeit zur Umgehung
dieses Problems besteht darin, die benötigte UXTheme.DLL nur dann mit
OpenLibrary dynamisch zu laden, wenn eine Windows-Version vorliegt, die
diese DLL auch enthält:

Code: Alles auswählen

XPSkinStatus.S = "deaktiviert"

If OSVersion() >= #PB_OS_Windows_XP
  LibHandle = OpenLibrary(#PB_Any, "UXTheme.DLL")

  If LibHandle
    If CallFunction(LibHandle, "IsThemeActive") <> 0
      XPSkinStatus = "aktiviert"      
    EndIf

    CloseLibrary(LibHandle)
  EndIf
EndIf

MessageRequester("Info", "XP-Skin ist " + XPSkinStatus + "!", #MB_ICONINFORMATION)
Ich habe auf dieses Problem auch schon mehrfach im englischen Forum
hingewiesen, z.B. hier.

Und bevor freundliche Hinweise kommen, daß man statt CallFunction() besser
Prototypes verwenden sollte: in diesem Fall ist die Prototype-Lösung 3 Zeilen
länger und ich möchte ja nur das Prinzip verdeutlichen... :wink:
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: windows styles

Beitrag von GPI »

Shardik hat geschrieben:
Windows 98 SE hat geschrieben:Fehler beim Starten des Programms.
Die erforderliche DLL-Datei UXTHEME.DLL wurde nicht gefunden.
Windows 98 ist mittlerweile über 20 Jahre alt! Meiner Meinung nach ist die Unterstützung solcher Oldtimer wirklich nur noch Zeitverschwendung.
Gleiches gilt übrigens auch für Windows 2000. MS hat für diese Versionen schon längst den Support *VOLLSTÄNDIG* eingestellt. Es ist auch ziemlich
leichtsinnig mit diesen Versionen Online zu gehen, da dort Sicherheitslücken entdeckt worden sind, die nicht mehr gestopft werden.

Am einfachsten richtet man sich an MS. D.h. XP, Vista und Win7 bekommen updates, alles andere sollte man schon aus Prinzip nicht mehr unterstützen.
Es wäre sogar angebracht eine "Sie benutzen eine veraltete Windows-Version"-Warnung beim Programmstart zu bringen.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: windows styles

Beitrag von Shardik »

GPI hat geschrieben:Windows 98 ist mittlerweile über 20 Jahre alt!
Soso, dann ist Windows 98 also schon vor 1991 herausgekommen. Das muß mir
dann wohl leider entgangen sein... :lol:
GPI hat geschrieben:Meiner Meinung nach ist die Unterstützung solcher Oldtimer wirklich nur noch Zeitverschwendung.
Darum ging es eigentlich überhaupt nicht. Ich wollte nur demonstrieren, daß es
nicht damit getan ist, mit OSVersion() die Windows-Version zu prüfen und dann
zu meinen, daß das eigene Programm damit dann auch unter älteren Versionen
läuft und man eventuell eine eigene Fehlermeldung ausgeben kann. Wenn man
Versionen vor Windows XP nicht unterstützen möchte, ist dies vollkommen in
Ordnung. Dann kann man sich aber auch den unnützen Test mit OSVersion()
sparen, weil dieser vollkommen überflüssig ist, wenn man nicht berücksichtigt,
daß unter älteren Windows-Versionen bei nicht vorhandenen DLLs Fehler
auftreten werden, wenn man die DLLs nicht dynamisch lädt...
GPI hat geschrieben:Es ist auch ziemlich leichtsinnig mit diesen Versionen Online zu gehen, da dort Sicherheitslücken entdeckt worden sind, die nicht mehr gestopft werden.
Das mit den nicht gestopften Sicherheitslücken ist korrekt und potentiell
gefährlich. Andererseits dürfte der Anteil von Windows 98 Nutzern im Internet
weit unter 1 % liegen (2007 lag er nur noch bei 0,7 %). Wer sollte sich da noch
die Mühe machen, diese zu hacken, zumal viele Sicherheitslücken von XP in
Windows 98 überhaupt nicht funktionieren dürften. Es gab hierzu übrigens schon
einmal im Juni 2010 eine interessante Diskussion im englischen Forum:
http://www.purebasic.fr/english/viewtop ... 17&t=42688
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: windows styles

Beitrag von ts-soft »

Die Berliner U-Bahn verwendet für sein "Schaufenster" (Werbung gepaart mit Nachrichten) noch Windows 98.
In der Industrie, Speditionswesen, Lager usw., wird es noch sehr häufig genutzt, genauso wie DOS.

Da nur noch sehr wenige für Win98 programmieren, sollte dies eine lukrative Marktlücke sein :mrgreen: ,
ansonsten kann man es natürlich vernachlässigen.

PS: Nicht jede Anwendung benötigt Onlineanbindung.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: windows styles

Beitrag von GPI »

ts-soft hat geschrieben:Die Berliner U-Bahn verwendet für sein "Schaufenster" (Werbung gepaart mit Nachrichten) noch Windows 98.
In der Industrie, Speditionswesen, Lager usw., wird es noch sehr häufig genutzt, genauso wie DOS.

Da nur noch sehr wenige für Win98 programmieren, sollte dies eine lukrative Marktlücke sein :mrgreen: ,
ansonsten kann man es natürlich vernachlässigen.
Sehr unwahrscheinlich. Hier laufen auch noch ein paar Geräte mit alten Os. Beide haben gemeinsam, das diese für die Steuerung einer Maschine benötigt werden. Da was zu ändern, ist äußerst Gefährlich. Die U-Bahn Werbung wird auch auf absehbarer Zeit umgestellt - da muss nur ein Gerät verrecken und man hat keinerlei Ersatz. Alle Standards von damals sind überholt. Man bekommt nicht mal ein Netzteil mehr für die Kisten. Auf solchen Kisten läuft ein und das selbe Steuerungsprogramm seit Jahren und es ist unwahrscheinlich das da jemals was anderes drauf kommt. Für Sowas zu Entwickeln ist einfach Zeitverschwendung. Ich zumindest würde in PureBasic in der Beziehung nicht mehr ändern, damit das Problem behoben wird.

p.s.: Alle Büro-Rechner laufen hier mit XP - nächstes Jahr gibts dann Win7
p.p.s.: Ja Kopfrechnen, vorallen nach der Arbeit und um die Uhrzeit ist nicht meine Stärke.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Re: windows styles

Beitrag von sharkpeter »

@Shardik,

danke noch mal für den Hinweis auf dieses Topic :)

@TS, @GPI,

es geht doch gar nicht darum, "für die alten Kisten" zu entwickeln. PB unterstützt von vorn herein
"alle" Versionen des OS. Warum sollte man dann nicht einfach das Programm so schreiben, das
es mit möglichen Einschränkungen betreffend nicht vorhandener DLL einfach überall läuft? Sicher
kann man es so machen wie viele "komerzielle" Software-Schmieden, einfach auf eine Mindestversion
fixieren, fertig. Und wozu? Nur um dann die nächste Version wieder teuer zu verscherbeln. In der
Regel ist die Software die hier entsteht Freeware und ein Freewareentwickler hat nichts davon,
irgendetwas auszuschließen.

@Administration,

falls dieser Eintrag dazu führen sollte, das dieses Thema vermüllt, bitte ich um die Entfernung
meiner Wortmeldung, denn der eigentliche Inhalt ist durchaus wichtig.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: windows styles

Beitrag von GPI »

Naja, du mußt es testen - das alleine ist schon ein Problem - eine Garantie, das meine Programme unter XP/Vista laufen kann ich bspw. schon nicht mehr geben.

Zudem muss man um viele Probleme, die es nur bei Win98 gibt, bei XP drumherum programmieren. Irgendwann muss man halt mal den ersten Schritt machen.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Re: windows styles

Beitrag von sharkpeter »

@GPI,

genau, man muß es testen. Ich bin, weil ich auch nicht daran gedacht hatte,
das die bewußte oben genannte DLL eventell nicht existieren könnte,
letztens auf die Gusch geflogen.

Dann habe ich nach einem Weg gesucht, wie man das umgehen kann. (Warum das
über die Suchfunktion nicht gleich in dieses Thema geführt hat, k.A.).

Ich schreibe nur noch auf einem Win7 System. Um solche Dinge kurz anzutesten,
habe ich mir virtuelle Maschinen, einschließlich Window 95 (!), installiert. Ab
Win98SE habe ich auch noch reale Rechner, einer davon führt z.B. von dir
oben genannte Steuerungsaufgaben aus. Warum sollte ich so lange der am
Leben ist dort einen anderen hinstellen?

Dann kann man das Programm einfach mal dort starten, grundsätzliche Fehler
zeigen sich sofort. Mehr kann man dann dafür eh nicht machen. Und ob
es auf XP, Vista oder 7 läuft, das ist dann sicher noch die nächste Frage.
In der Regel, das habe ich festgestellt, kommt irgendwann bei nahezu jedem
Programm nach dem Beenden mal die Frage, ob man Kompatibilitätseinstellungen
verwenden möchte weil "das Programm xyz funktioniert nicht mehr ...". Das kann
durchaus daran liegen, das man irgendwo Funktionen verwendet, die in neuen
Systemen nicht mehr oder nicht mehr so angewandt werden, oder woran auch
immer.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: windows styles

Beitrag von mk-soft »

Also, ich bin noch gerüstet für die alten OS.

- irgendwo noch auch Compiler für Windows 2.xx - 3.xx für 16bit WinAPPS.
- auf irgendeine 5" Disk ein Pascalcompiler für CP/M 80.
- etc.

kann ich warscheinlich nicht mehr mit umgehen. aber vielleicht braucht man es doch mal...

:roll:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten