Seite 2 von 2

Verfasst: 26.02.2009 14:52
von X360 Andy
ts-soft hat geschrieben: Ich hab eine Exe umbenannt, von test.exe in test und konnte test mit RunProgram starten.
Vielleicht liegt das an Vista?
Bei mir klappts nicht.
Er frägt mich nur mit was ich es öffnen möchte .... (Vista)
EDIT
Könnte man nicht etwas basteln , das die Datei ohne Endung in eine Datei mit .exe umschreibt ?

Das Tool wird dann gestartet wenn eine Datei ohne Endung eine exe üblichen Header hat.

Verfasst: 26.02.2009 14:55
von Olaf.Renns
BAPI's fallen aus, da eine BAPI für diese Geschichte komplett neu geschrieben werden muss. Zudem benötigt man hier seine SAP Anmeldung und die Übergabe der Benutzerdaten, die bei uns auf dem Server nicht ermittelt werden dürfen (Keine Programme oder anwendungsähnliche Scripts dürfen benutzerspezifische Informationen auf einem Serversystem ermittelt. Lediglich das Verarbeiten ist erlaubt). Die Batch-Input Mappen mit ausführbaren Parameter arbeiten mit der Serveranmeldung des User, was einer anderen Schiene entspricht.

Der Server wird zur einfachen Verabeitung als Netztwerklauf erstellt. Somit haben wir vollen Zufriff auf das Verzeichnis des SAP Windows Servers, aber halt nur auf das Verzeichnis der Batch-Input Mappen mit ausführbaren Parameter. Alle anderen Verzeichnisse dürfen bzw. können wir nicht zugreifen.

Bei den Batch-Input Mappen mit ausführbaren Parameter handelt es sich um 100%ige Exe, da man diese auch kopieren und auf einem SAP unabhängigen PC ausführen kann. Das Verhalten entspricht ganz normal dem Verhalten in einem lokalen Ordner, da das Verzeichnis ja als Netzlaufwerk eingestellt wurde.
Ich hab eine Exe umbenannt, von test.exe in test und konnte test mit RunProgram starten.
Vielleicht liegt das an Vista?
Also bei mir tut sich unter Vista nichts. Das gleiche Verhalten habe ich auch wenn ich beispielsweise eine DLL erstelle und diese ohne Dateiendung mittel OpenLibary öffnen möchte. Ich bekomme nur Zugriff, wenn die Datei eine eindeutige Kennung hat.

Vielleicht wäre das Laden der EXE-Daten in den Speicher und dem manuellen Starten eine Möglichkeit? Wobei mir wieder eventuelle Sicherheitsvorkehrungen und Inkompatibilitätsprobleme ein bissle Sorgen machen würden.

Verfasst: 26.02.2009 15:02
von bembulak
Kannst du dir nicht von X:\USE\....\ die Datei einfach in deinen Temp-Ordner kopieren (per PB), umbenennen (per PB) und dann einfach starten (per PB)?

Verfasst: 26.02.2009 15:23
von Thorium
Naja, was Windows beim Laden einer .exe tut ist recht komplex.

Aber schon ziemlich merkwürdig das Vista da rummuckt. Das man sogar keine Module laden kann, wenn sie net mit .dll enden. Ich meine es gibt hunderte Programme, wenn nicht tausende, die Plugin-Systeme mit dll's haben, denen aber ne andere Endung geben. Die laufen ja dann alle net auf Vista. :o

Vieleicht gibts dafür aber auch ne Einstellung im System.

Verfasst: 26.02.2009 15:50
von Olaf.Renns
Kannst du dir nicht von X:\USE\....\ die Datei einfach in deinen Temp-Ordner kopieren (per PB), umbenennen (per PB) und dann einfach starten (per PB)?
Wäre ne Möglichkeit, aber es sind einfach auch recht viele und große Dateien, die nicht nur beim Abspielen sondern auch beim Kopieren viel Arbeitsspeicher benötigen, zudem hatte ich das ja schon in meinem ersten Eröffnungsthread ausgeschlossen.
Naja, was Windows beim Laden einer .exe tut ist recht komplex.

Aber schon ziemlich merkwürdig das Vista da rummuckt. Das man sogar keine Module laden kann, wenn sie net mit .dll enden. Ich meine es gibt hunderte Programme, wenn nicht tausende, die Plugin-Systeme mit dll's haben, denen aber ne andere Endung geben. Die laufen ja dann alle net auf Vista.
Wenn man eine DLL beispielsweise in DDR umwandelt, dann gehts auch mit OpenLibary:
If OpenLibrary(0,"2.ddr")
CallFunction(0, "MyFunction")
CloseLibrary(0)
EndIf
Nur ohne Dateiendung gehts nicht. Vielleicht ist das nen Ansatz.... Muss mal mit dem Entwickler talken, ob man die Dateien nicht einfach in ein anderes Format erstellen kann. Jemand eine Idee, welche Dateiendung man da verwenden sollte :mrgreen:

Verfasst: 27.02.2009 09:29
von Olaf.Renns
Guten morgen,

nach Rücksprache haben wir es nun so gelöst, da wir den batch-Mappen einfach eine Dummy-Dateiendung mitgeben. Wir haben uns für "*.a" entschieden. Dennoch finde ich es merkwürdig, das OpenLib und Runprogram ohne Dateiendung ein Problem haben, obwohl beliebig andere Dateiendung immer richtig intepretiert werden (E.g.: Nennt man eine "*.exe" Datei in "*.PureBasicIstEchtSpitze" wird sie trotzdem als EXE ausgeführt. Scheinbar wird hier schon mit dem FileHeader gearbeitet.)

Verfasst: 27.02.2009 12:40
von Little John
Jemand eine Idee, welche Dateiendung man da verwenden sollte :mrgreen:
Da es EXE-Dateien sind ... wie wär's mit EXE? :mrgreen:
Dennoch finde ich es merkwürdig, das OpenLib und Runprogram ohne Dateiendung ein Problem haben,
Zumindest in Bezug auf ausführbare Dateien könnte es mit folgendem zu tun haben:
Wenn man unter Windows z.B. den Befehl "PureBasic" startet, dann sucht Windows im aktuellen Verzeichnis, in Verzeichnissen die im PATH sind und ich weiß nicht wo sonst noch nach einer Datei namens PureBasic.exe oder PureBasic.cmd oder PureBasic.bat oder ...(?). Dabei gibt es Präferenzen, wenn also z.B. sowohl PureBasic.exe als auch PureBasic.cmd gefunden werden, wird meines Wissens die EXE bevorzugt. Diese Datei wird dann ausgeführt.
Wenn es allerdings weder eine Datei PureBasic.exe noch PureBasic.cmd noch PureBasic.bat usw. gibt, dann führt der Befehl "PureBasic" nicht zum Erfolg, weil dieser Befehl eben nicht tatsächlich eine 100% gleichnamige Datei sucht.
Wenn man aber eine Datei mit Erweiterung aufruft, dann wird dieser Name zu 100% so genommen wie man ihn eingegeben hat.
obwohl beliebig andere Dateiendung immer richtig intepretiert werden (E.g.: Nennt man eine "*.exe" Datei in "*.PureBasicIstEchtSpitze" wird sie trotzdem als EXE ausgeführt.
Das Beispiel stimmt, die Verallgemeinerung nicht ganz. Beliebige andere dem System unbekannte Dateierweiterungen werden wie von Dir beschrieben interpretiert (ich vermute dass sich dieses Verhalten durch Registry-Einstellungen ändern lässt). Wenn Du allerdings einer EXE-Datei die Erweiterung TXT gibts und dann doppelklickst, wird etwas anderes passieren.

Gruß, Little John