Kennt jemand die WPTools von Hank Kelder?

(DE) System, Installation, Konfiguration, Hardware, Treiber, Netzwerk, Virtualisierung, etc.
(EN) System, Installation, Configuration, Hardware, Drivers, Network, Virtualisation, etc.
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Kennt jemand die WPTools von Hank Kelder?

Beitrag von DonLucio »

Als besonders nützlich finde ich die beiden Programme WPSBKP und WPSREST. Man kann damit seinen kompletten Desktop sichern und bei Bedarf wiederherstellen.

Beim Wiederherstellen nun hapert's bei mir. Es ist ja wenig sinnvoll, eine komplette Desktop-Sicherung auf ein laufendes System zurückzukopieren (restoren). Also suchte ich nach Optionen, nur einzelne Objekte zu restoren, und tatsächlich: es gibt die /O-Option: /Oxxxxx wobei xxxx die ObjectID ist.

Aber bei mir funktioniert das nicht. Folgender Befehl wird mit "Syntax Error" abgelehnt:

Code: Alles auswählen

wpsrest L:\WPTools\20230918\WPSBKP.DAT /R /O<WP_VXREXX-PRO>
Die ObjectID <WP_VXREXX_PRO> habe ich aus der Backup-Datei herausgefunden.

Ich hab es auch ohne die "<...>" versucht. Da kommt nur der lapidare Hinweis auf die Kommandozeilen-Syntax und die Frage "Continue? Y/N". Egal was ich dann eingebe: Es passiert nix. Gar nie nichts.

Schade, denn dieses Tool könnte beim Umzug auf einen anderen PC bzw. Neuinstallation auf einem neuen PC viel Mühe ersparen. Denn die Erfahrungen, auch mit AOS 5.1 zeigen, dass eine Update-Installation von AOS (oft) zu Desktop-Chaos führt.

Was mache ich da falsch in der Syntax?

Danke,
Lutz W.
erdmann
Beiträge: 595
Registriert: Mo 4. Jan 2016, 14:36

Beitrag von erdmann »

Object I'd in Hochkommata einschließen?
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

erdmann hat geschrieben: Mi 4. Okt 2023, 22:41 Object I'd in Hochkommata einschließen?
Nok. Weder einfache noch doppelte Hochkomma. Auch mit einem Leerzeichen habe ich's versucht.
Er tut's nicht :(

Gruß,
Lutz W.
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

Naja, so schwer ist das ja nicht. Henk hat ja schon prima Vorarbeit geleistet mit WPSBKP, das die Datei WPSBKP.DAT erzeugt. Da steht alles drin, was man sich mit ein paar Rexx-Zeilen selbst rausflöhen kann und dann mit SysCreateObject() alle Kind-Objekte zu einem ausgewählten Parent rekursiv bis in die unterste Ebene selbst wiederherstellen.

Also, Fall erledigt.

Gruß,
Lutz W.
Andi B.
Beiträge: 742
Registriert: Di 24. Dez 2013, 16:40
Kontaktdaten:

Beitrag von Andi B. »

Und was ist jetzt die Lösung? Bzw. was hast du gelöst? WPSREST verbessert?
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

Andi B. hat geschrieben: So 8. Okt 2023, 10:17 Und was ist jetzt die Lösung? Bzw. was hast du gelöst? WPSREST verbessert?
Nein, der Sourcecode liegt zwar vor, aber zu meiner Schande muß ich gestehen, dass ich mit C nicht sehr gut zu Fuß bin. Ist zu lange her, dass ich da mal was gemacht habe.

Ich bin ja radikaler Evangelist und meine Religion heißt VX-Rexx :-)

Ich habe ein WPSREST als PM-Programm (GUI) quasi neu geschrieben, Ist nicht direkt ein Dreizeiler, aber auch keine Raketenwissenschaft. Ist noch nicht ganz bugfree. Wenn Bedarf besteht, kann ich es natürlich auch hier freigeben.

Naja, ist schon ein bißchen Aufwand. Und irgendwie ärgert es mich schon ein wenig, dass diese Option /O ("Only <foldername>" im Original WPSREST nicht funktioniert (jedenfalls nicht so, wie beschrieben). Ich schreib ja gern Programme, aber das Rad neu erfinden ist eigentlich nicht so mein Ding.

Andererseits: Mein "Rad" ist ein bißchen runder ... es erlaubt die Auswahl von Desktop-Objekten visuell, anhand ihrer Icons. Das ist etwas einfacher als aus der WPSBKP.DAT die Object-ID herauszusuchen.

Schönen Sonntag noch,
Lutz W.
Tom
Beiträge: 14
Registriert: Di 6. Jun 2023, 18:28

Beitrag von Tom »

DonLucio hat geschrieben: Mi 4. Okt 2023, 18:09 Aber bei mir funktioniert das nicht. Folgender Befehl wird mit "Syntax Error" abgelehnt:

Code: Alles auswählen

wpsrest L:\WPTools\20230918\WPSBKP.DAT /R /O<WP_VXREXX-PRO>
Die ObjectID <WP_VXREXX_PRO> habe ich aus der Backup-Datei herausgefunden.
Hm, im Befehl wird ObjectID <WP_VXREXX-PRO> benutzt, also mit einmail '_' und einmal '-'.
Und laut die Backup-Datei soll die ObjectID <WP_VXREXX_PRO> sein, also mit zweimal '_' und kein '-'.
Aber das soll kein Syntax Error geben.
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

Hallo Tom,
Tom hat geschrieben: So 8. Okt 2023, 14:50 Hm, im Befehl wird ObjectID <WP_VXREXX-PRO> benutzt, also mit einmail '_' und einmal '-'.
Und laut die Backup-Datei soll die ObjectID <WP_VXREXX_PRO> sein, also mit zweimal '_' und kein '-'.
Ich dachte schon, ich müßte im größten verfügbaren Mauseloch verschwinden ... Wie peinlich ist das denn!

Aber ich habe noch mal nachgeschaut: In der WPSBKP.DAT steht tatsächlich folgendes drin:

Code: Alles auswählen

OBJECT "WPFolder" "VXRexx-Projekte" "<WP_DESKTOP>"
             "ICONVIEW=NONGRID,NORMAL;
              TREEVIEW=LINES,VISIBLE,MINI;
              DEFAULTSORT=-2;
 	      .....
              CCVIEW=DEFAULT;
              DEFAULTVIEW=DEFAULT;
              OBJECTID=<WP_VXREXX-PRO>;  <=== tatsächlich mit "_" und "-"
              ICONPOS=24,40;"

Tom hat geschrieben: So 8. Okt 2023, 14:50 Aber das soll kein Syntax Error geben.
In der Tat, sollte es nicht. Es sollte "object not found" o.ä. kommen.


Trotzdem, danke für deine Aufmerksamkeit :-)

Gruß,
Lutz W.
erdmann
Beiträge: 595
Registriert: Mo 4. Jan 2016, 14:36

Beitrag von erdmann »

Hallo Lutz,

Kannst du mir sagen wo ich den WPTOOLS source Code finde oder den mal hier anhängen? Ich würde dann einfach WPSREST fixen und neu bauen.
Tom
Beiträge: 14
Registriert: Di 6. Jun 2023, 18:28

Beitrag von Tom »

erdmann hat geschrieben: So 15. Okt 2023, 11:37 Hallo Lutz,

Kannst du mir sagen wo ich den WPTOOLS source Code finde oder den mal hier anhängen? Ich würde dann einfach WPSREST fixen und neu bauen.
https://github.com/OS2World/UTIL-WPS-WPTools
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

Hallo Lars,
erdmann hat geschrieben: So 15. Okt 2023, 11:37 Kannst du mir sagen wo ich den WPTOOLS source Code finde oder den mal hier anhängen? Ich würde dann einfach WPSREST fixen und neu bauen.
Das ist eine Superidee!

Ich weiß leider nicht mehr, woher ich den Sourcecode habe. Er ist Bestandteil einer Struktur namens hektools (hek wie Henk Kelder). Ich füge sie hier mal an.
hektools.zip
(239.35 KiB) 54-mal heruntergeladen
Gruß,
Lutz W.
erdmann
Beiträge: 595
Registriert: Mo 4. Jan 2016, 14:36

Beitrag von erdmann »

Hallo Lutz,

ich glaub, ich hab den Fehler schon gefunden. Um das zu prüfen, kannst du mal:

Code: Alles auswählen

wpsrest L:\WPTools\20230918\WPSBKP.DAT /R "/O <WP_VXREXX-PRO>"
probieren ? Also das ganze /O Argument in Anführungszeichen und genau einen Space zwischen /O und der Object ID ?
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

Hallo Lars,
erdmann hat geschrieben: Mo 16. Okt 2023, 08:17 ich glaub, ich hab den Fehler schon gefunden. Um das zu prüfen, kannst du mal:

Code: Alles auswählen

wpsrest L:\WPTools\20230918\WPSBKP.DAT /R "/O <WP_VXREXX-PRO>"
probieren ? Also das ganze /O Argument in Anführungszeichen und genau einen Space zwischen /O und der Object ID ?
Danke für deine Bemühung. Ja, tatsächlich, du hast das Geheimnis der anzuwendenden Syntax gelüftet.

Das ist aber leider nur die halbe Miete: Im Ergebnis wird mir zwar ein Folder erstellt, auch an der korrekten Icon-Position. Nur leider vollkommen leer, auch das Iconfile wird nicht berücksichtigt. Mein Original-Folder enthält 8 Unterobjekte, davon 1 Folder.

Gruß,
Lutz W.
erdmann
Beiträge: 595
Registriert: Mo 4. Jan 2016, 14:36

Beitrag von erdmann »

Natürlich ist der Folder leer. WPSREST.EXE arbeitet nicht rekursiv. Da müsstet du schon in der WPSBKP.DAT suchen, welche Objekte den Folder als ihren Parentfolder angeben. Arbeitet denn dein Tool rekursiv ?
erdmann
Beiträge: 595
Registriert: Mo 4. Jan 2016, 14:36

Beitrag von erdmann »

Davon mal abgesehen hab ich gleich den nächsten Bug gefunden, der prinzipiell verhindert, das überhaupt etwas angelegt wird, wenn man den /R switch spezifiziert. Ich glaub, ich muss das Ding jetzt mal komplett neu bauen und debuggen.
Andi B.
Beiträge: 742
Registriert: Di 24. Dez 2013, 16:40
Kontaktdaten:

Beitrag von Andi B. »

Also das wäre super Lars. :-)

Und wenn dann noch das Feature Recursive dazukommen würde...
Und dann träume ich noch auf ein Backuptool wo ich das Objekt welches ich mit allen Unterobjekten sichern will nur draufziehen muß .... ;-)
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

erdmann hat geschrieben: Mi 18. Okt 2023, 19:44 Arbeitet denn dein Tool rekursiv ?
Ja.

Problem gibt's momentan nur mit Shadow-Objekten, deren Original physisch nicht (auf dem neuen PC) existiert.

Gruß,
Lutz W.
erdmann
Beiträge: 595
Registriert: Mo 4. Jan 2016, 14:36

Beitrag von erdmann »

Andi B. hat geschrieben: Do 19. Okt 2023, 08:58 Also das wäre super Lars. :-)

Und wenn dann noch das Feature Recursive dazukommen würde...
Und dann träume ich noch auf ein Backuptool wo ich das Objekt welches ich mit allen Unterobjekten sichern will nur draufziehen muß .... ;-)
Ich geb zu, rekursiv wär sicher sinnvoll. Mal sehen, wann ich dazu komme.

So ein Backup Objekt kann man natürlich auch wieder als WPS Klasse realisieren, die Drag and Drop unterstützt. Siehe meine Class Associator Klasse auf os2world :-) (how to change several types...)
andreas
Beiträge: 263
Registriert: Mo 30. Dez 2013, 19:55

Beitrag von andreas »

DonLucio hat geschrieben: So 8. Okt 2023, 11:52 Wenn Bedarf besteht, kann ich es natürlich auch hier freigeben.
Also ich würde mich freuen, wenn du es hier einstellst...
Bernhardp
Beiträge: 14
Registriert: Mi 5. Mai 2021, 20:48

Beitrag von Bernhardp »

Ich würde mich auch freuen weil ich ein funktionierendes backup/restore tool sehr sinnvoll wäre.
Lg Bernhard
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

andreas hat geschrieben: Do 19. Okt 2023, 18:59 Also ich würde mich freuen, wenn du es hier einstellst...
Ok. Muß noch ein Minimum an Bedien-Doku dazu erstellen, aber am Wochenende stelle ich dann ein installierbares Paket hier ein.

Gruß
Lutz W.
erdmann
Beiträge: 595
Registriert: Mo 4. Jan 2016, 14:36

Beitrag von erdmann »

ok,

hab jetzt mal Folgendes gemacht:
1) Syntax für /O switch gefixt, nun muß es wie zu erwarten z.B. heißen: /O"<FM3_DOCS>" ,also kein Space, allerdings sollte man IMMER die Object ID mit Hochkommata einschließen wenn die Umleitungsoperatoren < oder > auftauchen (der Kommandointerpreter entfernt die Hochkommata rückstandsfrei, so dass das Programm den String /O<FM3_DOCS> bekommt)
2) ein Problem mit case gefixt: alle übergebenen Argumente (also auch /O) werden auf "upper case" konvertiert. Dummerweise findet der Vergleich bei mittels /O angegebener object id dann lower case statt. Ist jetzt gefixt
3) generell ist die WPS ein instabiles Stück ...: deshalb wird nun IMMER wenn ein Objekt ANGELEGT oder MODIFIZIERT wird, das Objekt mittels "WinSaveObject" SYNCHRON (also sofort und nicht etwa delayed) abgespeichert. Das gleiche Instabilititätsproblem hatte ich in der Vergangenheit auch immer mit allem was Objekte anlegt oder modifiziert (gilt auch wenn man eine WPS Klasse programmiert)

Kann das mal jemand bitte testen ? Ggw. ist die rekursive Funktionalität noch NICHT eingebaut.
Dateianhänge
wpsrest.zip
(8.14 KiB) 61-mal heruntergeladen
erdmann
Beiträge: 595
Registriert: Mo 4. Jan 2016, 14:36

Beitrag von erdmann »

Tschuldigung, mein Fehler: hier noch mal wpsrest.exe (sollte nun nicht mehr nach DLL CPPOM30.DLL fragen ...)
Dateianhänge
wpsrest.zip
(8.13 KiB) 60-mal heruntergeladen
Benutzeravatar
DonLucio
Beiträge: 958
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg
Kontaktdaten:

Beitrag von DonLucio »

Hurrah ... endlich Wochenende... man kann sich nun mit den wirklich wichtigen Dingen im Leben beschäftigen :-)

Will heißen: Meine GUI-Version von WPSREST kann jetzt getestet werden (um Namenskollisionen zu vermeiden, heißt sie WPORest).

os2.zworks.de/WPORest.zip

Bitte das Liesmich.txt lesen.

Gruß,
Lutz W.
erdmann
Beiträge: 595
Registriert: Mo 4. Jan 2016, 14:36

Beitrag von erdmann »

DonLucio hat geschrieben: Sa 21. Okt 2023, 17:39 Hurrah ... endlich Wochenende... man kann sich nun mit den wirklich wichtigen Dingen im Leben beschäftigen :-)

Will heißen: Meine GUI-Version von WPSREST kann jetzt getestet werden (um Namenskollisionen zu vermeiden, heißt sie WPORest).

os2.zworks.de/WPORest.zip

Bitte das Liesmich.txt lesen.

Gruß,
Lutz W.
Kurze Rückmeldung: mehr oder weniger alle Shadow Objekte ("Find Shadow-Orphans") werden von WPORest als "orphaned" angezeigt, obwohl die Originaldateien vorhanden sind. Ich vermute, dass du nicht nach den tatsächlichen Dateinamen fahndest sondern statt dessen nach dem Titel (also dem .LONGNAME extended attribut).
Diese Begriffsverwirrung/Abweichung für Dateiobjekte zwischen "real name" und "title" kenne ich auch zur Genüge ...

Ich habe natürlich deinen Code nicht, aber was hier wahrscheinlich helfe würde ist, sich zunächst mal mittels "WinQueryObject" für einen "object title" oder eine "object id" ein Handle geben zu lassen um darauf hin sich mit diesem Handle mittels "WinQueryObjectPath" den "real name" (also inklusive Pfad und realem Dateinamen) geben zu lassen.
Leider gibt es dafür kein direktes REXX pendant, aber vielleicht enthält WPTOOLS.DLL dafür irgendwas REXX Brauchbares.

Außerdem: offensichtlich hast du dich entschieden, nur Objekte restaurierbar zu machen, die entweder direkt auf dem Desktop liegen, oder indirekt über eine "Verzeichniskette" unter dem Desktop liegen. Das ist bei mir bei weitem aber nicht für alle Objekte der Fall (objects processed: 969, objects with parent=<WP_DESKTOP>:80, actually shown:80).
Gibt es dafür einen Grund ?
Aus irgendeinem (sinnvollen) Grund scheint WPSBKUP/WPSREST nämlich auch Dinge zu berücksichtigen, wo nur ein Shadow auf dem Desktop liegt, dieser Shadow aber auf ein Verzeichnis zeigt und dieses "echte" Verzeichnis weitere "echte" Verzeichnisse und auch andere Objekte enthält. Die ganzen Sachen werden eben auch mitgesichert und sollten deshalb auch wiederherstellbar sein.

Ansonsten ist eine graphische Lösung im Jahr 2023 schon irgendwie erstens schön und zweitens selbstverständlich, also Glückwunsch !
Antworten