Rexx-Problem: Wie Laufwerk / Dirs anzeigen?
Rexx-Problem: Wie Laufwerk / Dirs anzeigen?
Ich habe ein Verzeichnis, z.B. G:\Photos\2021. Darin befinden sich x Dateien.
Ich versuche jetzt, aus einem Rexx-Programm heraus dieses Dir mit WPS-Mitteln anzuzeigen, also dasselbe zu erreichen, wie wenn ich
(1) das Laufwerks-Icon öffne, dann
(2) Laufwerk G: auswähle (doppelklicke), dann
(3) den Ordner "Photos" auswähle (doppelklicke), dann
(4) den Unterordner "2021" auswähle (doppelklicke).
Ich stelle mir vor, das müßte mit einem SysCreateObject("WPFolder", "<MyFolder>", "<WP_DESKTOP>", ... ) funktionieren.
Ich scheitere aber kläglich. Im Ergebnis erzeugt sich zwar ein Folder-Object auf meiner WPS, auch Iconfile wird akzeptiert und andere Sachen, aber der Ordner ist leer. Und in den Setup-Strings finde ich keinen Parameter, wo ich meinen Pfad ("G:\Photos\2021") angeben könnte.
Was mache ich falsch?
Danke,
Lutz W.
Ich versuche jetzt, aus einem Rexx-Programm heraus dieses Dir mit WPS-Mitteln anzuzeigen, also dasselbe zu erreichen, wie wenn ich
(1) das Laufwerks-Icon öffne, dann
(2) Laufwerk G: auswähle (doppelklicke), dann
(3) den Ordner "Photos" auswähle (doppelklicke), dann
(4) den Unterordner "2021" auswähle (doppelklicke).
Ich stelle mir vor, das müßte mit einem SysCreateObject("WPFolder", "<MyFolder>", "<WP_DESKTOP>", ... ) funktionieren.
Ich scheitere aber kläglich. Im Ergebnis erzeugt sich zwar ein Folder-Object auf meiner WPS, auch Iconfile wird akzeptiert und andere Sachen, aber der Ordner ist leer. Und in den Setup-Strings finde ich keinen Parameter, wo ich meinen Pfad ("G:\Photos\2021") angeben könnte.
Was mache ich falsch?
Danke,
Lutz W.
Deine Vorstellung davon, was ein WPFolder Objekt ist, ist falsch. Ein WPFolder Objekt repräsentiert direkt ein real existierendes Verzeichnis. Du hast also ein reales Verzeichnis unter "Arbeitsoberfläche" erzeugt.
Warum benutzt du nicht einfach oo.exe um ein Verzeichnis zu öffnen? Das kann so meine ich auch mit Verzeichnispfaden umgehen.
Warum benutzt du nicht einfach oo.exe um ein Verzeichnis zu öffnen? Das kann so meine ich auch mit Verzeichnispfaden umgehen.
Damit kreierst Du nur ein WPS-_Objekt_, als Icon sichtbar und echt als <MyFolder> in OS2.INI...
Korrekt aber mit SysOpenObject, z.B. rc = SysOpenObject("G:\Photos\2021", 0, 0). /* 1=ok, 0=nicht-ok */
Nie gehört ... Wohl 'n Geheimtipp.
Leider hat das auch seine Probleme:
"oo /O G:\Photos\2021" -> Nix passiert. Die Fensterliste zeigt zwar einen Eintrag gleichen Namens an ("G:\Photos\2021"), aber jeder Versuch, durch "Open" dieses Objekt sichtbar zu machen, geht ins Leere. Passiert nix. Versuche, eine View anzugeben, führen zu kryptischen Fehlermeldungen.
Kann es sein, dass oo.exe in ObjectRexx "kompiiiert" wurde?
Genau dasselbe Ergebnis wie oben beschrieben mit oo.exe:
Die Fensterliste zeigt zwar einen Eintrag an, aber es öffnet sich nichts.
Hab ich 'nen Hau in meiner WPS?
oo.exe benutzt den RWS Server und ist ein nacktes Executable.
Deine WPS ist zerhauen. oo.exe muss gehen, ebenso wie SysOpenObject.
Deine WPS ist zerhauen. oo.exe muss gehen, ebenso wie SysOpenObject.
Dann versuchs mal zuerst lokal auf Kommandozeile:
Rexxtry
und dann:
say sysopenobject("c:\os2\dll", 0, 0)
Ob Du Classic- oder O-Rexx oben hast, kannst Du mit "switchrx" erkennen (oder ändern)
Rexxtry
und dann:
say sysopenobject("c:\os2\dll", 0, 0)
Ob Du Classic- oder O-Rexx oben hast, kannst Du mit "switchrx" erkennen (oder ändern)
So wie ich das aus der Entfernung lese, kann es auch sein, dass nur der Ordner außerhalb des Desktops liegt.
Ich verschiebe solche Objekte (kommt auch häufig bei NewView vor) dann mit lSwitcher. Ich hab 2x XCenter. Das obere ganz normal, aber ohne Fensterliste, das untere mit lSwitcher. Da gibt es für jedes Objekt im Kontextmenü den Punkt "Move". Wenn man den anklickt, erscheint der Rahmen des verschwundenen Objekts, das am Mauszeiger zu kleben scheint. Mit Mausbewegungen verschiebt man dies dann und klickt dann dort wo man es hinhaben will.
Mit normalen WPS-Methoden geht das auch, wie ich neulich herausgefunden hab: Fensterliste öffnen und Kontextmeü in der Fensterliste für den verschundenen Objekttitel aufrufen. Da fehlt das "Move". Dafür nimmt man "Show". Jetzt hat das Objekt den Fokus, auch wenn es nicht sichtbar ist. Dann Alt+F7 zum Verschieben wie oben.
Ich verschiebe solche Objekte (kommt auch häufig bei NewView vor) dann mit lSwitcher. Ich hab 2x XCenter. Das obere ganz normal, aber ohne Fensterliste, das untere mit lSwitcher. Da gibt es für jedes Objekt im Kontextmenü den Punkt "Move". Wenn man den anklickt, erscheint der Rahmen des verschwundenen Objekts, das am Mauszeiger zu kleben scheint. Mit Mausbewegungen verschiebt man dies dann und klickt dann dort wo man es hinhaben will.
Mit normalen WPS-Methoden geht das auch, wie ich neulich herausgefunden hab: Fensterliste öffnen und Kontextmeü in der Fensterliste für den verschundenen Objekttitel aufrufen. Da fehlt das "Move". Dafür nimmt man "Show". Jetzt hat das Objekt den Fokus, auch wenn es nicht sichtbar ist. Dann Alt+F7 zum Verschieben wie oben.
Andreas Schnellbacher
Das habe ich auch versucht. Hilft oft bei "Off-Borders"-Anordnung von Fenstern.
Im vorliegenden Fall (mit oo.exe oder SysOpenObject) passiert bei <Alt>F7 folgendes:
Ich sehe einen dünnen Rahmen mitten über meinem Desktop auftauchen, nur die Ränder, nix Inhalt. Ich kann dieses Phantom-Fenster hin- und herschieben, aber Maus loslassen läßt das Phantom verschwinden.
Ja, ich glaube, meine WPS hat einen Schaden.
Aber worher?
Manchmal kann schon Hausputz helfen
![Lächeln :)](./images/smilies/icon_e_smile.gif)
Code: Alles auswählen
Ins cleanini-Verzeichnis wechseln und dort:
cleanini.exe /c /Restart /Delall /remote:delete /multipass /Logdel > clean.txt
und das Resultat anschauen
Wenn man nach CleanIni mit 2x Ctrl+Alt+Del (2x wegen CAD_POP.EXE) einen Systemneustart durchführt, dann bleiben auch die Desktopsymbole da, wo sie waren. Also /Restart entfernen. Das macht nämlich nur einen WPS-Neustart, der das Problem erst bewirkt. Fragt mich nich, warum, klappt aber bei mir.
Wenn die EAs für das Verzeichnis hinüber sind, dann hilft auch das nicht. Dann vielleicht mit noEA (aus dem LxLite-Paket) löschen und wieder Ctrl+Alt+Del. Sonst fällt mir noch Verschieben in ein neues Verzeichnis ein. Anschließend die Leiche mit CleanIni entfernen.
Wenn die EAs für das Verzeichnis hinüber sind, dann hilft auch das nicht. Dann vielleicht mit noEA (aus dem LxLite-Paket) löschen und wieder Ctrl+Alt+Del. Sonst fällt mir noch Verschieben in ein neues Verzeichnis ein. Anschließend die Leiche mit CleanIni entfernen.
Andreas Schnellbacher
Alles gut.
Das ist kein Phantomfenster. Das ist ein Rahmen, der die Größe des Objekts anzeigt. Ganz normal. Wenn Du nicht mit links irgendwo auf den Desktop klickst, dann verschwindet auch der Rahmen wieder.
Was es auch noch gibt, das sind Ordner mit durchsichtigem Inhalt. Das ist ein WPS-Problem.
Andreas Schnellbacher
Na klasse! Meine gestrigen Experimente mit oo.exe und SysOpenObject() haben nicht nur direkt keinen Erfolg gehabt, sondern auch alle meine WPS-Funktionen, die im Öffnen von Objekten bestehen, ruiniert.
Egal, wo ich zwecks Öffnen drauf doppelklicke: es erscheint immer dieser leere Phantom-Rahmen. Gottseidank, nach Reboot war der Spuk weg.
Ich glaub, ich lass' es lieber. Bleibt die Frage, was ist mit meiner WPS passiert, in dem halben Jahr, seit ich ganz normal ohne Trickserei die AOS 5.0.6 installiert hatte.
Danke trotzdem für alle Tips.
Lutz W.
Egal, wo ich zwecks Öffnen drauf doppelklicke: es erscheint immer dieser leere Phantom-Rahmen. Gottseidank, nach Reboot war der Spuk weg.
Ich glaub, ich lass' es lieber. Bleibt die Frage, was ist mit meiner WPS passiert, in dem halben Jahr, seit ich ganz normal ohne Trickserei die AOS 5.0.6 installiert hatte.
Danke trotzdem für alle Tips.
Lutz W.
Das ist natürlich der superenorme Hit, wenn ich Dir von x-zig erfolgreichen Aufrufen des SysOpenObject() erzähle
![Erschüttert :shock:](./images/smilies/icon_eek.gif)
Zum Besipiel gestern zum Testen wiederholt der Tipp > SysOpenObject("C:\OS2\DLL", 0, 0) <; vorne muss ein voller Pfad stehen, kein relativer. Der dritte Eintrag darf 0 oder 1 sein: Vielleicht ist es "nur" ein Mengenproblem, also Geduld ? Oder aber die INIs sollten (sowieso öfters) bereinigt werden (checkini, cleanini; Anzahl Blöcke? etc.). War im Forum schon öfters die Frage....
Wir glaub'ich alle drücken Dir die Daumen
![Lächeln :)](./images/smilies/icon_e_smile.gif)
Ich glaub dir ja, dass es bei dir (und anderen) funktioniert. Mach' dir mal keine Sorgen, ich bin nicht geschockt
![Lächeln :-)](./images/smilies/icon_e_smile.gif)
Warum es bei meiner WPS diese Probleme gibt - weiß nicht, muß ich mit leben.
Danke für die guten Wünsche
![Lächeln :-)](./images/smilies/icon_e_smile.gif)
Inzwischen konnte ich das Problem - nein, die Aufgabenstellung - lösen mit einem Workaround, der immer wieder aufs Erstaunlichste gut funktioniert: Mit einem Dreizeiler in diesem wirklich legendären VXRexx. Mit einem Klick in der GUI definiert man ein Fenster und mt der Funktion "FillFromDir" und dem gewünschten Verzeichnis-Pfad als Parameter füllt man die Datenobjekte da rein. Ist zwar 10 Minuten längere Code-Zeit, aber es funzt.
Muß bei der Gelegenheit noch einmal mein allertiefstes Bedauern darüber ausdrücken, dass dieses Produkt schon seit 20 Jahren nicht weiterentwickelt wird (abgesehen davon, dass verdiente Leute wie Alex Taylor mal eine Plugin-DLL gebaut und damit die Funktions-Auswahl erweitert haben).
Gruß,
Lutz W.
Gut, das funktioniert natürlich auch aber der VxRexx Code nutzt sicher direkt die Control und die PM API und umgeht komplett die WPS.
Du hast definitiv ein WPS Problem, aber das ist ja Standard bei der Qualität der WPS. Ich hatte auch schon die abstrusesten Fehler.
Z.B. hatte ich ein Shadow des \MMOS2\SOUNDS Verzeichnisses auf den Desktop gelegt und das Shadow Icon fixiert (damit es nicht verschoben werden kann). Das führte dazu, dass ich unter der WPS nicht mehr den Inhalt des \MMOS2 Verzeichnisses anzeigen konnte.
Dies deshalb, weil ein Fixieren des Icons nicht nur das Shadow Icon fixiert sondern auch das originale Icon im entsprechenden Folder! Und das führt dann zu den Anzeige Problemen.
Solltest das vielleicht auch in Betracht ziehen.
Du hast definitiv ein WPS Problem, aber das ist ja Standard bei der Qualität der WPS. Ich hatte auch schon die abstrusesten Fehler.
Z.B. hatte ich ein Shadow des \MMOS2\SOUNDS Verzeichnisses auf den Desktop gelegt und das Shadow Icon fixiert (damit es nicht verschoben werden kann). Das führte dazu, dass ich unter der WPS nicht mehr den Inhalt des \MMOS2 Verzeichnisses anzeigen konnte.
Dies deshalb, weil ein Fixieren des Icons nicht nur das Shadow Icon fixiert sondern auch das originale Icon im entsprechenden Folder! Und das führt dann zu den Anzeige Problemen.
Solltest das vielleicht auch in Betracht ziehen.
Mir ist gerade eingefallen, was bei mir die Ursache für WPS-Ungereimtheiten sein könnte: Ich benutze die Stardock-Software ObjectDesktop, seit gefühlt 100 Jahren. Und diese Programme greifen teilweise tief in die WPS-Logik ein. I.d.R. unauffällig, aber ich vermute mal, dass da der Hase im Pfeffer liegt. Denn meine INIs sind eigentlich alle täglich geCLEANed.
Ich werde das mal zum Anlass nehmen, mich vom ObjectDesktop zu verabschieden und durch XPager zu ersetzen. Mal sehen, ob das was ändert.
Gruß,
Lutz W.
Manchmal mag es auch an der berüchtigten SIQ liegen, aus welchem tieferen Grund auch immer....
Zumal hier gerad viel von "Retro" im Gespräch ist:
Synchronous Input Queue (SIQ).
Zum Glück hilft manchmal "Strg+Esc", sonst Reboot
.
![Lachend :lol:](./images/smilies/icon_lol.gif)
Synchronous Input Queue (SIQ).
Zum Glück hilft manchmal "Strg+Esc", sonst Reboot
![Traurig :(](./images/smilies/icon_e_sad.gif)