BlitzBasic-Programme noch unter Windows 10 ausführen?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

KnorxThieus

Betreff: BlitzBasic-Programme noch unter Windows 10 ausführen?

BeitragDo, Jul 13, 2017 9:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu, ich hab mich hier inzwischen echt lange nicht mehr sehen lassen - wohl, weil ich mich von den alten Blitz-Sprachen inzwischen weitestgehend verabschiedet hatte und nun hauptsächlich der .NET-Welt fröne (C#) ... Laughing

Nichtsdestotrotz wäre mir zuweilen daran gelegen, meine alten Blitz-Programme hin und wieder noch einmal auszuführen (die habe ich mit B+ geschrieben, inwieweit sich der grundsätzliche Aufbau hier von B3D unterscheidet, weiß ich allerdings nicht zu beurteilen) - eine Hand voll nette "Kommandozeilentools" machen immer noch Sinn und außerdem mag ich ganz gern mal wieder in "alten" Erinnerungen kramen ... Wink

Na ja, wo liegt wohl das Problem? Richtig, mit Blitz Kompiliertes oder auch nur Gedebuggtes macht unter meiner aktuellen Installation (Win 1703 - die letzten erfolgreichen Tests könnten aber durchaus mehrere Updates/Versionen zurückliegen) bedauerlicherweise ganz einfach keinerlei Anstalten mehr, anzulaufen. Die Fehlermeldung ist immer dieselbe, sogar ein leeres BB-File erzeugt die gleiche Ausnahme:

user posted image

Das ist für mich sehr ärgerlich, zwar programmiere ich nicht mehr in Blitz, aber auf diese Weise wurden gewissermaßen mit einem Schlag all meine Resultate aus Jahren des Vergnügens mit dieser Sprache annulliert, was ich doch sehr ärgerlich finde.

Tja, was meint ihr? Gibt es mit einer entsprechenden Nachinstallation/Modifikation irgendeines Moduls, Wrappers, was weiß ich, noch eine letzte Chance, Blitz zu reparieren? Der windowseigene Kompatibilitätsassistent - ich habe alle verfügbaren Modi ausprobiert - vermag selbstverständlich keine Abhilfe zu schaffen. Ist dieses Modul möglicherweise teilweise redundant und ließe sich durch einen wohlüberlegten Eingriff in die Ressourcen der Executable entfernen o. ä.? Oder muss ich meine Erinnerungen wirklich begraben? Ich bin mit meinem Latein am Ende ... Crying or Very sad
Google war die exakte Fehlermeldung zu meinem Erstaunen übrigens gänzlich unbekannt.

Grüße,
KnorxThieus
Version: BlitzPlus / Blitz+

Cykid

BeitragDo, Jul 13, 2017 9:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Fehlermeldung wird durch die Abwesenheit von Directplay erzeugt.

Bei mir hat W10 selbstständig diese Funktion nachinstalliert.

Ansonsten: Systemsteuerung => Programme und Funktionen => Windows Funktionen aktivieren => Legacy Components => Directplay Häckchen setzen.


Das sollte es lösen Smile

KnorxThieus

BeitragDo, Jul 13, 2017 10:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow, ich bin dir zu herzlichem Dank verbunden! Very Happy

Das DirectPlay gefehlt hat, hatte ich in der Tat schon einmal. Aber das war vielleicht Windows 8.1, welches mir direkt beim Start zur Nachinstallation von DirectPlay angeraten hat ... Super, jetzt klappt es jedenfalls wieder! Very Happy

Viele Grüße,
KnorxThieus
Version: BlitzPlus / Blitz+

Mathias-Kwiatkowski

BeitragDo, Jul 13, 2017 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ja den kenn ich auch, habs aber schon geschafft, meine große frage ist, wenn man nun ein programm von bp weiter gibt an freunde ect. müssen diese auch den schritt machen?
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

KnorxThieus

BeitragDo, Jul 13, 2017 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Erschiene mir zwingend, ja.

Geht aber auch einfacher, wenn du deine Programme mit einer FirstRun-Funktion ausstattet, die das hier tut:

BlitzBasic: [AUSKLAPPEN]
p = CreateProcess("DISM /online /enable-feature /featurename:directplay")
While Not Eof(p) : Wend

Braucht allerdings Adminrechte, vielleicht macht sich das in einem separaten Skript besser. Smile
Version: BlitzPlus / Blitz+
  • Zuletzt bearbeitet von KnorxThieus am Do, Jul 13, 2017 20:13, insgesamt 2-mal bearbeitet

Cykid

BeitragDo, Jul 13, 2017 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Also im besten Fall kommt die Meldung von Windows selber, wie hier in dem Fall von W 8.1 beschrieben.

Kommt Sie nicht, dann muss man leider auf die Manuelle installation zurückgreifen.

Das Phänomen tritt aber auch bei Age of Empires 3 auf. Ist also nicht ganz unbekannt, aber sehr unschön.

Thunder

BeitragDo, Jul 13, 2017 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Da BlitzBasic open-source ist könnte man die DirectPlay funktionen aus der Runtime nehmen, aber nachdem es ziemlich schwierig ist BlitzBasic vom Quelltext zu kompilieren, denke ich dass ein kleiner exe-Patcher die einfachere Lösung ist.

Falls wer ein kleines Projekt braucht. Man müsste den Funktionsaufruf zu DirectPlay, der vermutlich vor dem eigenen BB-Code durchgeführt wird, herauspatchen (durch nops ersetzen).
Vielleicht hab ich mal lust darauf...
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

KnorxThieus

BeitragFr, Jul 14, 2017 11:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Wofür wird das denn eigentlich verwendet? Ich hätte gedacht, wenn man das Modul streicht, gibt es spätestens bei grafischen Operationen schwere Fehler. Da würde ich für meinen Teil ja doch für eine Nachinstallation plädieren.

Man könnte jeder Blitz-Exe ein Skript "vorschalten":

Code: [AUSKLAPPEN]
Set WshShell = CreateObject("WScript.Shell")

If Not CheckBlitzConfig Then ConfigBlitz

WshShell.Run Join(ToArray(WScript.Arguments)), 1, True


Function ToArray(args)
   ReDim arr(args.Count-1)
   For i = 0 To args.Count-1
      arr(i) = args(i)
   Next
   ToArray = arr
End Function

Function CheckBlitzConfig
   Const op = "%Temp%\blitzCoreFtChk"
   cmd = "powershell -Command ""(Get-WmiObject -query \""select * from Win32_OptionalFeature where name = 'DirectPlay'\"").InstallState"" > " & op
   
   Call WshShell.Run(cmd, 0, true)

   Set fso  = CreateObject("Scripting.FileSystemObject")
   Set file = fso.OpenTextFile(WshShell.ExpandEnvironmentStrings(op), 1, False, -1)
   
   CheckBlitzConfig = (cInt(file.ReadLine) = 1)
   file.Close
End Function

Sub ConfigBlitz
   Const cmd0 = "dism"
   Const cmd2 = "/online /enable-feature /featurename:directplay"
   
   Call WshShell.Run(cmd0 & " " & cmd2, 0, True) 'Requires administrative privileges - but ShellEx won't wait for completion
End Sub


Damit kann man jedes Blitz-Programm aufrufen:

Code: [AUSKLAPPEN]
bbHelper.vbs meinBlitzProg.exe


Sollte klappen. Eleganter dürfte man nur drumherumkommen, indem man das Blitz-Programm in eine andere Starter-Exe, nicht mit Blitz programmiert, einbettet, die dann den Test inkl. ggf. erforderlicher Nachinstallation vornimmt und anschließend die Blitz-Exe entpackt und ausführt. Wär mir aber zu aufwendig ... Very Happy
Version: BlitzPlus / Blitz+

FireballFlame

BeitragFr, Jul 14, 2017 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
KnorxThieus hat Folgendes geschrieben:
Wofür wird das denn eigentlich verwendet? Ich hätte gedacht, wenn man das Modul streicht, gibt es spätestens bei grafischen Operationen schwere Fehler.

Ne, DirectPlay ist ne DirectX-Komponente für Netzwerkfunktionen und hat mit Grafik nix zu tun. Müsste also eigentlich ohne Probleme entfernbar sein.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

KnorxThieus

BeitragFr, Jul 14, 2017 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach so, dann ... Wenn hier jemand die Kunst beherrscht, das Modul aus den Binaries herauszustreichen, dann vorzüglich! Very Happy Aber mein ursprüngliches Anliegen, die alten Sachen lokal bei mir wieder ausführen zu können, hat sich durch die nachträgliche Installation jetzt eigentlich gegeben.

Von daher bedanke ich mich, wenn hier dennoch jemandem die vollständige Elimination dieses Moduls gelingen sollte, würde ich die Lösung hier sehr begrüßen. Smile

Auf Wiederlesen! (:
Version: BlitzPlus / Blitz+

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group