AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Mit Delphi Chmod oder andere cmd's ausführen unter macOS
Thema durchsuchen
Ansicht
Themen-Optionen

Mit Delphi Chmod oder andere cmd's ausführen unter macOS

Ein Thema von softtouch · begonnen am 29. Aug 2022 · letzter Beitrag vom 2. Sep 2022
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.812 Beiträge
 
Delphi 12 Athens
 
#1

AW: Mit Delphi Chmod oder andere cmd's ausführen unter macOS

  Alt 30. Aug 2022, 09:42
In dem Codehaufen geht es hauptsächlich darum die Antwort/Ausgabe einer in der Konsole gestarteten Anwendung auszuwerten (https://stackoverflow.com/questions/...console-output). Kern für Dich ist der Einzeiler
Output := popen(PAnsiChar(ansistring(CmdLine)), 'r'); Da ist dann die Frage, ob Deine Rechte überhaupt ausreichen, chmod auszuführen. Eventuell wartet ja das System auf das Passwort oder so. Wie verhält sich denn Dein Mac, wenn Du den gewünschten Befehl von Hand eingibst?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
237 Beiträge
 
Delphi 12 Athens
 
#2

AW: Mit Delphi Chmod oder andere cmd's ausführen unter macOS

  Alt 30. Aug 2022, 10:08
In dem Codehaufen geht es hauptsächlich darum die Antwort/Ausgabe einer in der Konsole gestarteten Anwendung auszuwerten (https://stackoverflow.com/questions/...console-output). Kern für Dich ist der Einzeiler
Output := popen(PAnsiChar(ansistring(CmdLine)), 'r'); Da ist dann die Frage, ob Deine Rechte überhaupt ausreichen, chmod auszuführen. Eventuell wartet ja das System auf das Passwort oder so. Wie verhält sich denn Dein Mac, wenn Du den gewünschten Befehl von Hand eingibst?

Sherlock
Manual im terminal eingegeben, klappt das einwandfrei.

Er hängt an dieser Zeile und ich weiss nicht warum. Wenn ich andere Befehle ausführen lasse, klappt es.

Move(Buffer^, TempString[length(TempString) - (BytesRead - 1)], BytesRead);
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#3

AW: Mit Delphi Chmod oder andere cmd's ausführen unter macOS

  Alt 30. Aug 2022, 10:23
Wenn die letzte Zeile nicht mit einem #10 aufhört, dann geht sie natürlich verloren.
Außer du vergisst nach der Schleife nicht den Rest im TempString,
also dort nochmal ein if TempString <> 'then CmdResult.Add(UTF8ToString(TempString)); .
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
237 Beiträge
 
Delphi 12 Athens
 
#4

AW: Mit Delphi Chmod oder andere cmd's ausführen unter macOS

  Alt 31. Aug 2022, 07:46
Wenn die letzte Zeile nicht mit einem #10 aufhört, dann geht sie natürlich verloren.
Außer du vergisst nach der Schleife nicht den Rest im TempString,
also dort nochmal ein if TempString <> 'then CmdResult.Add(UTF8ToString(TempString)); .
Die Funktion kommt gar nicht bis zum Ende, die schmiert schon ab in der Zeile

Move(Buffer^, TempString[length(TempString) - (BytesRead - 1)], BytesRead);

Kennt denn niemand einen Funktionierenden Code um z.B. chmod oder auch youtube-dl oder ffmpeg zu starten und die Ausgabe abzufangen? Ich kriege noch graue Haare damit (wenn ich die nicht schon hätte).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#5

AW: Mit Delphi Chmod oder andere cmd's ausführen unter macOS

  Alt 31. Aug 2022, 12:14
Und was für eine Fehlermeldung?

Zugriffsverleztzung bei Ardresse $00000**


Wenn BytesRead 0 ist und TempString noch leer war ... ja, dann muß es im Move knallen, eigentlich vor Move, weil es schon beim TempString[...] knallt
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
237 Beiträge
 
Delphi 12 Athens
 
#6

AW: Mit Delphi Chmod oder andere cmd's ausführen unter macOS

  Alt 31. Aug 2022, 14:06
Und was für eine Fehlermeldung?

Zugriffsverleztzung bei Ardresse $00000**


Wenn BytesRead 0 ist und TempString noch leer war ... ja, dann muß es im Move knallen, eigentlich vor Move, weil es schon beim TempString[...] knallt
Leider, wie so häufig, kommt weder eine Fehlermeldung noch sonst was, das Programm hängt einfach auf dem Mac. Wenn ich es debugge, klappt alles bis zu dieser Zeile, wenn ich die dann ausführe, hängt alles.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.652 Beiträge
 
Delphi 12 Athens
 
#7

AW: Mit Delphi Chmod oder andere cmd's ausführen unter macOS

  Alt 31. Aug 2022, 14:16
Wenn ich es debugge, klappt alles bis zu dieser Zeile, wenn ich die dann ausführe, hängt alles.
Und was steht in den betreffenden Variablen, wenn du im Debugger auf der Zeile stehst bevor sie ausgeführt wird?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:14 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