Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Don Pasquale am 08.01.04 - 16:23:30
-
Hallo Lotus Fans,
eine Anwendung die unter Lotus 5 problemfrei lief macht unter 6
Probleme.
Folgende Zeile macht Probleme, es ist als ob sie gar nicht ausgeführt wird:
taskId% = Shell(Aufruf,6)
Der Rückgabewert ist 33, aber der Aufruf selbst wird nicht ausgeführt.
Gibt es Alternativen zu Shell ?
Ciao
Don Pasquale
-
Alternative gibt es nicht wirklich, bzw. es kommt eigentlich darauf an, was in der Variablen Aufruf steht.
Shell geht ja aufs Betriebssystem. Wurde bei der Migration auch gleich der Server gewechselt und sieht die BS-Umgebung jetzt anders aus? Shell gibts nur unter Win32 zum Bleistift
-
In Aufruf steht
c:\Verzeichnis\EigenesProgramm.exe Parameter1 Parametern
Wenn ich den Aufruf ( zeile aus dem Debugger kopiert) in einer cmd Box ausführe funktioniert er einwandfrei.
Ja, ich brauche eine Shell für Windows ( XP )
Ciao
Don Pasquale
-
Wenn Du das mit @Command([Execute]) aufrufst, was passiert denn dann?
-
Das kann ich ohne Produktivumgebung leider nicht testen,
aber andersrum gefragt, funktioniert Shell bei Dir einwandfrei ?
Gibt es einen API-Befehl, der etwas ähnliches macht ?
Ciao
Don Pasquale
-
Sub Initialize
Dim i As Integer
i=Shell ("explorer.exe")
End Sub
***
Win2K und Notes 6.5 Englisch, kein Problem
-
Das klappt bei mir auch.
Ich habe aber kein XP hier.
Nebenbei:
Auf dem Kundenrechner sind sowhl der 5er als auch der 6er Client
installiert. Auf beiden Clients ist ein Link auf dieselbe Datenbank.
Unter 5 funktionierts, unter 6 nciht.
Ciao
Don Pasquale
-
Tja, wo mag das Problem dann liegen?
Api:
Shell ist wohl nur ein Wrap um den Win-API aufruf WinExec
Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
-
Ich bin jetzt direkt über den WinAPI Befehl ShellExecute.
Wieder kein Ergebnis.
Ciao
Don Pasquale
-
Hm, schon versucht, dasselbe aus Word oder so zu machen? Sprich VBA, oder hast Du irgend einen Compiler zur Hand, mit dem Du sowas machen könntest? Vermute fast, dass das irgendwie am Windows liegt, wenn Du über die WinAPI auch kein Resultat bekommst. Bekommst Du denn vom Aufruf ein Handle zurück?
-
Falls Du es noch nicht anderswo hergeholt hast, hier die Parameter von WinExec:
If the function succeeds, the return value is greater than 31.
If the function fails, the return value is one of the following error values:
0
The system is out of memory or resources.
ERROR_BAD_FORMAT
The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).
ERROR_FILE_NOT_FOUND
The specified file was not found.
ERROR_PATH_NOT_FOUND
The specified path was not found.
-
Ich bekomme als Errorcode 2 zurück,
das ist als File not Found.
Das File ist aber da und funktioniert ebenfalls
Ciao
Don Pasquale
-
Zugriffsrechte?
-
Das File ist auf demselben Rechner
kann man da Zugriffsrechte benötigen ?
Ciao
Don Pasquale
-
Ja, Sicherheitseinstellungen
-
@Semaphor
an welcher Stelle ? Lotus ? XP ?
Ciao
Don Pasquale
ps: ich habe das Verzeichnis in dem das aufzurufende Programm liegt für alle freigegeben, ohne Erfolg.
Was sind Roaming User ?
-
XP, in den Dateieigenschaften, bin grad selber am Kämpfen damit :-( und XP hat das Management dieser Eigenschaften echt gut versteckt ..... arrrrgh.
Roaming user: Solche, die nicht immer am selben PC arbeiten und daher ihre Eisntellungen vom Server statt von der lokalen Station beziehen. Dein Problem liegt mit 99% Wahrscheinlichkeit im Windows. Würde fast meinen, dass es die Berechtigungen sind.
-
in den Dateieigenschaften haben alle User mindestens Lese, bzw. Ausführungsrechte. Gibt es noch etwas anderes ?
Ciao
Don Pasquale
-
Du fragst mich was .... müsste eigentlich reichen. Leider bin ich auf dem Gebiet auch nicht mehr so frisch drauf wie früher mal ... :-(
Remote-Diagnose wird da im Moment recht schwierig ....... leider. Jetzt müsste man experimentieren können, sprich vor Ort sein.
-
Ich habe da den möglichen Fehler gefunden,
melde mich gleich wieder
Ciao
Don Pasquale
-
Das Problem hat sich erledigt:
Das Problem lag darin, dass sich beim Kunden an der Konfiguration
etwas geändert hat und das Programm, welches ich mit Shell aufrufe,
nicht mehr alle Rechte auf einem bestimmten Verzeichnis hat.
Das konnte der dortige SysAdmin mit FileMon rausfinden
@Semaphor
Herzlichen Dank für Deine Hilfe
deswegen heute mal
Salü zsamm
Don Pasquale
-
Ah, da war ich doch tatsächlich auf der richtigen Fährte, und da wärs dann "remote" tatsächlich nicht mehr weiter gegangen. Schön, wurde auch das gefunden. :-)