![]() |
CreateProcess WGet WIN10 Tablet
:(Ich versuche Kartenteile von openstreetmap zu laden und verwende WGet
1. Eine BAT Datei mit passenden Parametern funktioniert, Daten landen wie gewünscht, in einer Datei (erste Gehversuche) 2. Daten sollen nun aus einem Programm abgerufen werden. 3. ich habe DELPHI 6 (ja ich weiß, sehr alt, aber es läuft) 4. Parameter werden aufbereitet und an WGet übergeben, WGet wird mit CreateProcess aufgerufen. 5. Das funktioniert (nach einigen Fehlern meinerseits) jetzt sehr gut. 6. Tests auf zwei Desktop PCs und zwei Notebooks (WIN10) waren ok. 7. Ein anderer Kunde hat ca. 10 andere Tablets damit ausgerüstet, alles ok. 8. Jetzt hat ein Kunde Probleme mit einem out door Tablet (ALGIZ 10X) 9. ALGIZ 10X läuft unter WIN10 enterprise 10. ALGIZ 10X ist bei mir im lokalen Netz angemeldet und kann problemlos kommunizieren (youtube, gmx usw. ….) 11. Der Zugriff auf den openstreetmap Serve funktioniert einfach nicht, es werden keine Daten empfangen. 12. die BAT Datei (s. 1) funktioniert auf dem ALGIZ 10X 13. ein Aufruf im Browser funktioniert auch. 14. Änderungen an der Firewall waren ohne Erfolg. 15. WGet liegt im Programmverzeichnis 16. Ich habe das betreffende Fenster isoliert und als eigenständiges Hauptprogramm laufen lassen, das scheint auf dem ALGIZ 10X zu funktionieren. 17. Dann habe ich nur eine form mit einem Button „drum herum gebastelt“. Der Button öffnet das Fenster, welches als eigenes Hauptprogramm eben noch funktionierte. Als Unter-Fenster geht wieder nichts. Das Ganze beschäftigt mich jetzt schon den ganzen Tag und ich habe keine Idee was ich noch probieren könnte. |
AW: CreateProcess WGet WIN10 Tablet
Zitat:
![]() Bis bald... Thomas |
AW: CreateProcess WGet WIN10 Tablet
Naja, ist auch die Frage w2arum es noch D6 sein muss.
Falls es ein Hobby Projekt ist gibt's ja auch eine Community Edition kostenlos... Ich mein' ja nur, dass zwischenzeitlich auch viele andere neue Dinge dazu gekommen sind. Wär' vielleicht doch mal eine Überlegung wert... ;-) |
AW: CreateProcess WGet WIN10 Tablet
Und bei all dem Text ... Warum steht nirgends was du nun eigentlich wie machst?
Welche Verzeichnisse als Speicherziel und wie wird WGet aufgerufen. Das Arbeitsverzeichnis? Die Rückgabewerte werden doch natürlich auch alle usgewertet, oder etwas nicht? Und warum nicht sowas wie Indy, WinSock oder Sonstewas, um es direkt im Programm zu laden. |
AW: CreateProcess WGet WIN10 Tablet
Erstmal danke für die Antworten, trotz Wochenende.
Für CreateProcess verwende ich ExecuteFile, gefunden in: ![]() Als Parameter wird etwas in der Art wie: "wget.exe" -O C:\Users \_KU\OSM_Debug\OSM_Tiles\Tile_10_549_339.png -U "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0" ![]() übergeben. Im Fehlerfall liefert WGet : „error 4 Network failure“ Wie schon geschrieben, läuft das auf mehreren PCs problemlos. Über das Vorgehen kann man bestimmt diskutieren. Diese Lösung ist eben historisch gewachsen. Meine Frage zielte auch mehr darauf, ob jemand eine Idee hat, warum dieser Aufruf auf etlichen PCs funktioniert und auf einem bestimmten Tablet dann plötzlich keine Daten liefert. Besonders irritierend finde ich das Verhalten wie unter 16 und 17 beschrieben. |
AW: CreateProcess WGet WIN10 Tablet
Grundsätzlich empfehle ich erst einmal, mit dem
![]() Viel mehr kann man dazu so gar nicht sagen. Typische Probleme wären z.B. ein unterschiedliches Arbeitsverzeichnis (wird an CreateProcess übergeben), aber da würde kaum ein Netzwerkfehler kommen. Vielleicht liegt es aber auch am im Programm verwendeten Manifest. Das wäre z.B. ein möglicher Unterschied zwischen einem neuen Projekt mit dem einzelnen Formular und dem Programm. Ich weiß nicht mehr, ob Delphi 6 schon das XPManifest kannte, aber wenn du das verwendest, würde das ja Windows sagen, dass dein Programm für eine über 20 Jahre Windowsversion geschrieben wurde. Da käme dann ggf. die Kompatibilitätsfunktionalität ins Spiel. Aber für die Fehlerbehandlung wäre es wirklich einfacher, wenn du den Download direkt im Programm machst. Dafür kannst du Delphi 6 ohne Weiteres aufgrund der heutigen Sicherheitsverfahren nicht mehr nutzen (das zum Thema "aber es läuft" :wink:), aber wenn du keine aktuelle Version einsetzen möchtest, kannst du zusätzliche Bibliotheken wie das von Thomas genannte mORMot nutzen. Viele Alternativen hast du da nicht, da die meisten (wie ICS) erst ab Delphi 7 oder noch höher funktionieren. Der große Vorteil ist, dass du direkt die Ergebnisse prüfen kannst und auch direkte Fehlerinformationen bekommst. |
AW: CreateProcess WGet WIN10 Tablet
Als Ergänzung zu Sebastians Beitrag. Die Vorteile von mORMot sind:
Thomas |
AW: CreateProcess WGet WIN10 Tablet
nochmal danke,
Die Anregung mit mORMot1 werde ich testen, gerade weil es auch für Delphi 6 vefügbar ist. Trotzdem würde ich gerne verstehen, welche Eigenart des Tablets sie sonst funktioniernede Abfrage verhindert. |
AW: CreateProcess WGet WIN10 Tablet
Dabei kann ja der genannte Process Monitor helfen. Wenn du die Requests genauer anschauen möchtest, die gesendet werden und insbesondere die Antwort, wäre Wireshark eine Option.
|
AW: CreateProcess WGet WIN10 Tablet
Und auch die Auswertung der Rückgabewerte.
z.B. dein verwendetes ExecuteFile * egal ob der Befehl erfolgreich war * oder die Anwendung nicht gefunden wurde (Rückgabe und Fehlercode des CreateProcess -> Result und wenn Fehler ![]() * oder die Anwendung einen Fehler hatte (deren ExitCode -> ![]() * oder Abbruch durch bTerminate diese Funktion sagt dazu garnichts ![]() ![]() uvm. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz