Wie feststellen, ob Win-Pgm unter Wine auf Linux läuft

Für allgemeine Fragen zur Programmierung mit PureBasic.
Lord
Beiträge: 313
Registriert: 21.01.2008 19:11

Wie feststellen, ob Win-Pgm unter Wine auf Linux läuft

Beitrag von Lord »

Hallo!

Ich habe das Problem, daß bei einem WindowsX86-Programm, welches
auf einem Linux-Rechner unter Wine läuft, das ListIconGadget, welches
unter Windows korrekt unterhalb der Toolbar positioniert ist, eben
in Wine zu 2/3 die Toolbar verdeckt, so daß diese nicht mehr nutzbar
ist. Ansonsten scheint das Programm problemlos zu funktionieren.
Das Linux ist ein Ubuntu 16.04.
Ich möchte jetzt zur Laufzeit darauf reagieren und das Gadget entsprechend
verschieben, wenn es unter Wine läuft.
Ist das irgendwie machbar?
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Wie feststellen, ob Win-Pgm unter Wine auf Linux läuft

Beitrag von NicTheQuick »

Gegenfrage: Wenn du das Programm ja offenbar selbst geschrieben hast, wieso kompilierst du es nicht einfach für Linux?
Bild
Lord
Beiträge: 313
Registriert: 21.01.2008 19:11

Re: Wie feststellen, ob Win-Pgm unter Wine auf Linux läuft

Beitrag von Lord »

Weil ich kein Linux nutze.
Bild
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Wie feststellen, ob Win-Pgm unter Wine auf Linux läuft

Beitrag von GPI »

Google wäre dein Freund gewesen:
https://wiki.winehq.org/Developer_FAQ#H ... ct_Wine.3F

Aber mach mal eine (nicht zwingend funktionale) Demo, wo man den Designfehler sieht und mach einen Bugreport bei Wine.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: Wie feststellen, ob Win-Pgm unter Wine auf Linux läuft

Beitrag von _JON_ »

Code: Alles auswählen

Procedure IsRunningUnderWine()
  Protected Result, lib = OpenLibrary(#PB_Any, "ntdll.dll")
  If lib
    If GetFunction(lib, "wine_get_version")
      Result = 1
    EndIf
    CloseLibrary(lib)
  EndIf
  ProcedureReturn Result
EndProcedure

If IsRunningUnderWine()
  ;Fix Wine Bugs here ...
EndIf
EDIT: war schon wieder einer schneller ...
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Lord
Beiträge: 313
Registriert: 21.01.2008 19:11

Re: Wie feststellen, ob Win-Pgm unter Wine auf Linux läuft

Beitrag von Lord »

Hallo GPI und _JON_!

Danke für eure Antworten.
Ich habe dem Nutzer, der mein Pgm unter Wine in Linux nutzt
ein kleines Testprogramm zukommen lassen, mit der die Situation
(hoffentlich) nachvollzogen werden kann.

Mal sehen, was sich ergibt.
Für eine kurzfristige Lösung werde ich wohl die Prozedur von
_JON_ nutzen.

Danke nochmals.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Wie feststellen, ob Win-Pgm unter Wine auf Linux läuft

Beitrag von RSBasic »

@_JON_
Danke für deinen nützlichen Code. :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten