Seite 3 von 3

Verfasst: Dienstag 27. Februar 2007, 23:22
von dieter1a
Das hört sich für mich alles ziehmlich kompliziert an.
Meinst Du grob gesagt das Ganze mit einem Installer auf die Kiste packen?
Außerdem würde ich freiwillig nicht den Pfad zum IE vorgeben. Lieber erwarte ich die Installation eines Browsers den man sich mit IE holen könnte. ( Dafür soll IE ja ganz gut sein).

Verfasst: Dienstag 27. Februar 2007, 23:45
von Masaru
Bevor man an den Installer gehen würde, muss man erst einmal sein Python Konstrukt konfigurierbar gestaltet bekommen.

Das hat auch wenig damit zu tun, sich darauf zu beruhen, der Installer würde schon alles machen.

Denn auch ein Installer kann nicht zaubern. Er "könnte" vielleicht den Pfad zum Browser ermitteln (oder von Benutzer via FileBrowser Element), jedoch findet sie dadurch immer noch nicht ihren weg automatisch in das Python Script und in die Strings für die BrowserPfade :roll: .

Bekommt man eine solche Konfigurierbarkeit manuell hin, kann man im Anschluss immer noch versuchen es noch ein wenig optimierter (dem Benutzer die Arbeit und den Gehirnschmaz abnehmen, würde ich es wohl eher nennen) in einen Installerprozess kleiden.

Eine einfache Methode (die man aber erst mit Blender und dessen Python Pakets testen müsste) wäre eine Datei vorzugeben, in der lediglich der Pfad zu webbrowser zu stehen hat.

Wenn man es mit BlenderPython kann, würde man diese dann öffnen, auslesen, und den Wert als Variable für den Aufruf verwenden.

Verfasst: Dienstag 27. Februar 2007, 23:55
von dieter1a
Gute Idee.
Muß ich mal ausprobieren ob ich über die GameLogik dateien editieren, oder zumindestens lesen kann.
Blender besteht ja aus 2 Teilen. Da ist zum Einen die Game Engine und zum Anderen Blender und seine Module.
Mit from Blender import * oder so ähnlich komme ich an die Module zum editieren von Dateien heran. Aber das wird nicht mit in die Runtime übernommen.
Wenn ich mich da schlauer gemacht habe schreibe ich Dir, was machbar ist.

Verfasst: Mittwoch 28. Februar 2007, 00:44
von dieter1a
Mir ist da so eine Idee gekommen.
Da ich ja für meinen Chat und fürs Gästebuch einen Homeserver laufen habe, stehen mir ja für die Downloadgeschichte alle Türen offen.
Sowohl mit Python als auch mit PHP hätte ich quasi alle Möglichkeiten jedem die richtige Installation anzubieten.
Ich weiß zwar im Moment noch keinen konkreten Weg, aber den gibt's bestimmt.
Aber das ist, glaube ich, der sekundäre Teil meiner Arbeit, weil ich erstmal sehen muß mit welcher Blenderversion mein Tower noch lauffähig ist, weil in der Version, mit der er erstellt ist, kein Zugriff auf das os Modul möglich ist. Eine höhere Version wäre nicht für das ActiveX geeignet gewesen.
Wenn ich den Tower komplett neu schreiben muß, dreht sich mir schon jetzt der Magen um.
Aber besser ein Ende mit Schrecken, als ein Schrecken ohne Ende.

Verfasst: Mittwoch 28. Februar 2007, 16:18
von Rebecca
Blender bringt seinen eigenen Python-Interpreter mit und natuerlich die Blender-Python-Module. Es bringt keine Python-Standard-Library mit, um die zu benutzen, benoetigt man eine Python-Installation.

Um festzustellen, ob das Problem bei Blender liegt oder nicht, kann man natuerlich die ganzen Befehle einfach mal direkt in der Python-Shell eingeben.

Verfasst: Donnerstag 1. März 2007, 14:04
von dieter1a
Ich erstelle gerade einen Blender-Testraum um schrittweise die unterschiedlichsten Möglichkeiten ausprobieren zu können.
Die Blender.exe liegt in einem Verzeichnis mit Namen blend1 auf C:\.
Jetzt möchte ich zur Laufzeit der exe optional einen Webbrowser meiner Wahl benutzen, falls ich eine Web-Site anfordern sollte.
Dazu schlägt mir eine Tafel die unterschiedlichsten Browsernamen vor, von denen ich, sagen wir mal per Maus-klick, einen aussuchen kann.
Zugriff auf die Verzeichnisstruktur habe ich ja.
Wenn ich nun als Beispiel Fire Fox gewählt habe, soll per Python nachgesehen werden ob die firefox.exe existiert, und wo sie liegt.
Der Pfad soll dann an eine globale String-Variable der GameEngine übergeben werden, und bei jedem Webseitenaufruf wird dann Fire Fox benutzt.
Ich denke, das es mit os.path.walk() realisierbar wäre.
Die Suchfunktion habe ich schon benutzt, komme aber nicht wirklich weiter.
Hat jemand eventuell einen Scriptvorschlag oder einen Link zu einem funktionierenden Beispiel?

MfG dieter1a

Verfasst: Freitag 2. März 2007, 16:50
von dieter1a
Ich werde folgenden Code verwenden.
Allerdings ist der nicht platformunabhängig.
Ist das irgendwie zu bewerkstelligen?

Code: Alles auswählen

import os
def pf(arg, directory, names):
    if "firefox.exe" in names:
        print directory

os.path.walk("c:\\", pf, None)
Vielen Dank.

MfG dieter1a

Verfasst: Freitag 2. März 2007, 19:00
von Leonidas
dieter1a hat geschrieben:Allerdings ist der nicht platformunabhängig.
Genauso wenig wie funktionsfähig - Stell dir vor, der ist auf D: installiert. Oder es gibt die Festplatte C: gar nicht erst.

Verfasst: Freitag 2. März 2007, 19:03
von dieter1a
Das ist alles berücksichtigt und wird im 3D-Raum geregelt.
Funktionieren tut das aber.

Verfasst: Freitag 2. März 2007, 19:15
von dieter1a
Die Zeile

Code: Alles auswählen

os.path.walk(String-Variable, pf, None)
wird über eine Stringvariable versorgt.
Da ich mich mit anderen Betriebssystemen nicht wirklich auskenne, würde ich gerne wissen was anstelle von C:\\ bei den unterschiedlichen Betriebssystemen dort eingetragen werden muß.

Verfasst: Freitag 2. März 2007, 19:57
von Leonidas
dieter1a hat geschrieben:Da ich mich mit anderen Betriebssystemen nicht wirklich auskenne, würde ich gerne wissen was anstelle von C:\\ bei den unterschiedlichen Betriebssystemen dort eingetragen werden muß.
Versuchs mal mit Root, ``/``, dann musst du aber nach ``firefox``, ``firefox-bin`` oder ``iceweasel`` suchen.

Verfasst: Freitag 2. März 2007, 20:03
von dieter1a
Vielen Dank,
ich werde es testen lassen, sobald ich den Testraum fertig habe, da ich selber kein Linux installiert habe.
Eine Betriebssystemabfrage ist ja kein Problem.

MfG dieter1a

Verfasst: Freitag 2. März 2007, 21:42
von BlackJack
@Leonidas: Ich glaube wenn ich ein Programm benutze das ab '/' nach einem anderen Programm sucht, bekäme ich Lust den Programmierer zu erwürgen. ;-)

Verfasst: Montag 5. März 2007, 21:10
von dieter1a
Nochmals vielen Dank an alle, die mich mit Ihrem Rat weitergebracht haben.
Den 3D-Testraum habe ich nun fertig, und er kann von Jedermann mal ausprobiert werden.
Leider habe ich keine Linuxanwender gefunden, die ein gesteigertes Interesse daran haben die ganze Sache auch für Ihr Betriebssystem kompatibel zu machen.
Ich für meinen Teil kann jetzt sagen IE ade.
Falls jemand Interesse daran hat sich den 3D-Raum mal anzuschauen, kann er sich unter nachfolgendem Link das Rararchiv blend1.rar downloaden und den Ordner blend1 irgendwohin entpacken.
Anschließend kann in dem Ordner blend1 die testraum241.exe gestartet, und volle Interaktivität ausprobiert werden.
Keine Angst, die exe macht nichts schlimmes. Sowas kann ich noch garnicht. (Will ich auch nicht können)
Man kann aus dem 3D-Raum das www besuchen, oder durch Tastatureingabe Aktionen im 3D-Raum manipulieren.
Klappt aber wie gesagt nur (noch) bei IBM kompatiblen Rechnern.
Die Browserinitialisierung kann jenachdem wieviel zwischen c:\ und der Browser.exe abgespeichert wird etwas dauern.
Ist ja auch nur ein Testraum.
Auch darf die Groß- Kleinschreibung der Browser.exe nicht verändert worden sein.

Hier der Link:

http://www.3dpowertower.de/blender/blend1.rar

Mit freundlichen Grüßen dieter1a