ReadProgramString
- dibro
- Beiträge: 143
- Registriert: 11.03.2006 12:52
- Computerausstattung: Win 10 64 bit
- Wohnort: Solingen
Re: ReadProgramString
Hi Axolotl,
danke, ich werde dein Tool mal probieren.
Das Exiftool gibts auf der Seite https://exiftool.org , ist Open souce und in Perl geschrieben.
Ich brauche es, weil ich an das DateCreated mit Pb nicht drankomme und schiebe das Datum in die unter Windows zugänglichen Formate.
Erst mal vielen Dank, ich melde mich wieder.
Dieter
danke, ich werde dein Tool mal probieren.
Das Exiftool gibts auf der Seite https://exiftool.org , ist Open souce und in Perl geschrieben.
Ich brauche es, weil ich an das DateCreated mit Pb nicht drankomme und schiebe das Datum in die unter Windows zugänglichen Formate.
Erst mal vielen Dank, ich melde mich wieder.
Dieter
Gruß aus Solingen, PB 6.0 Win 10 Pro
Re: ReadProgramString
Also Tool ist vielleicht ein bisschen hochgegriffen.
Man kann LogToFile(Message$) anstelle eines MessageReguesters("Debug", Message$) verwenden.
Auf jeden Fall würde ich mal for Zeile 61 (siehe Code) den Wert der Variablen 'ExifTool_Pfad$' anschauen.
Program müsste ja auch ZERO sein....
Ansonsten würde ich mal bei den Flags das #PB_Program_Hide wegnehmen (nur um das Console fenster zu sehen, wärend der tests)
So, mehr fällt mir jetzt spontan nicht dazu ein.
Man kann LogToFile(Message$) anstelle eines MessageReguesters("Debug", Message$) verwenden.
Auf jeden Fall würde ich mal for Zeile 61 (siehe Code) den Wert der Variablen 'ExifTool_Pfad$' anschauen.
Program müsste ja auch ZERO sein....
Code: Alles auswählen
; ... schnipp
MessageReguesters("Debug", "ExifTool = '" + ExifTool_Pfad$ + "'")
;LogToFile("ExifTool = '" + ExifTool_Pfad$ + "'")
Program = RunProgram(ExifTool_Pfad$, Pfad$, Arbeitsverzeichnis$, Flags)
; ... schnapp
So, mehr fällt mir jetzt spontan nicht dazu ein.
Mostly running PureBasic <latest stable version and current alpha/beta> (x64) on Windows 11 Home
- dibro
- Beiträge: 143
- Registriert: 11.03.2006 12:52
- Computerausstattung: Win 10 64 bit
- Wohnort: Solingen
Re: ReadProgramString
...ich hatte den Messagerequester in Zeile 61,62,63 platziert. Meldung kommt nur in Zeile 61, dann überspringt er alles bis Zeile 96.
Der Dateiname Exiftool.exe wird nicht übernommen. Starte ich im Editor, ist alles da und läuft. ---> Ratlos
Ich habe vor über 10 Jahren das letzte Mal programmiert und wollte jetzt auf die Schnelle ein Prpg bauen, das die Zeiten verschiedener Videos deren Kameras nicht ordentlich eingestellt waren, in die Reihe bringen.
Der Dateiname Exiftool.exe wird nicht übernommen. Starte ich im Editor, ist alles da und läuft. ---> Ratlos
Ich habe vor über 10 Jahren das letzte Mal programmiert und wollte jetzt auf die Schnelle ein Prpg bauen, das die Zeiten verschiedener Videos deren Kameras nicht ordentlich eingestellt waren, in die Reihe bringen.
Gruß aus Solingen, PB 6.0 Win 10 Pro
Re: ReadProgramString
Dann wird die RunProgram() Procedure nicht richtig ausgeführt, dh. Variable Program is 0.
Meine Vermutung um den Fehler einzukreisen....
in Variable ExifTool_Pfad$ steht nicht der richtige pfad auf das exiftool drin?
Z.B.: ohne Pfadangabe hängt die ganze Sache vom aktuellen Arbeitsverzeichnis ab?
Leider stocher ich ein bisschen im Nebel,
Hilfreich wäre: Was sind die Werte der Variablen rund um RunProgram()
insbesondere ExifTool_Pfad$
D.h. wie lautet der komplete Pfad zum exiftool.exe
Wo unterscheiden sich die Werte bei der Debug- und bei der Release-Version?
Meine Vermutung um den Fehler einzukreisen....
in Variable ExifTool_Pfad$ steht nicht der richtige pfad auf das exiftool drin?
Z.B.: ohne Pfadangabe hängt die ganze Sache vom aktuellen Arbeitsverzeichnis ab?
Leider stocher ich ein bisschen im Nebel,
Hilfreich wäre: Was sind die Werte der Variablen rund um RunProgram()
insbesondere ExifTool_Pfad$
D.h. wie lautet der komplete Pfad zum exiftool.exe
Wo unterscheiden sich die Werte bei der Debug- und bei der Release-Version?
Mostly running PureBasic <latest stable version and current alpha/beta> (x64) on Windows 11 Home
- juergenkulow
- Beiträge: 188
- Registriert: 22.12.2016 12:49
- Wohnort: :D_üsseldorf-Wersten
Re: ReadProgramString
Code: Alles auswählen
; Programm läuft mit Compiler Executable erstellen, löst aber eine Fehlermeldung in der IDE aus.
RunProgram("notepad.exe","","",#PB_Program_Wait | #PB_Program_Open | #PB_Program_Read| #PB_Program_Error)
; [16:34:28] [ERROR] startedit.pb (Zeile: 2)
; [16:34:28] [ERROR] RunProgram(): Ungültige Flags: Kann nicht #PB_Program_Wait mit den Kommunikations-Flags kombinieren.
Wann kann ExifName$ ="" sein und warum mag das RunProgram nicht?
Re: ReadProgramString
Ja, die Frage stellt sich mir auch gerade...
Bei mir stürtzt das Program mit #PB_Program_Wait in den Flags ab.
Bei mir stürtzt das Program mit #PB_Program_Wait in den Flags ab.
Mostly running PureBasic <latest stable version and current alpha/beta> (x64) on Windows 11 Home
- dibro
- Beiträge: 143
- Registriert: 11.03.2006 12:52
- Computerausstattung: Win 10 64 bit
- Wohnort: Solingen
Re: ReadProgramString
Bei mir macht es keinen Unterschied, ob mit oder ohne #PB_Program_Hide. In beiden Fällen wird der Pfad nicht richtig übergeben.
Im Editor geht kurz das Fenster auf oder auch nicht, und das Programm läuft - die .exe nicht
ich habe die Zeilen beim "Case Exif_Button" nochmal ergänzt. In der IDE/Compilerversion wird Datei$="Exiftool.exe" richtig übergeben
In der compilierten exe ist im MessageRequester die Stelle leer und es wird nichts übergeben, sodass die Prozedur das Exiftool nicht startet und mit dem Fehler endet.
Kann das am Compiler liegen oder an irgendwelchen Parametern zum Compiler?
Es geht auch nicht, wenn ich vorher den aus der INI übernommenen Pfad neu wähle.
Wenn ich noch Haare hätte, würde ich mir die raufen
Ab Zeile 283 geändert
Außerdem, warum löscht ClearGadgetItems(#Exif_Text) den Text nur teilweise --> Rudi Ratlos
Aber vielen Dank für die bisherige Unterstützung.
Dieter
Im Editor geht kurz das Fenster auf oder auch nicht, und das Programm läuft - die .exe nicht
ich habe die Zeilen beim "Case Exif_Button" nochmal ergänzt. In der IDE/Compilerversion wird Datei$="Exiftool.exe" richtig übergeben
In der compilierten exe ist im MessageRequester die Stelle leer und es wird nichts übergeben, sodass die Prozedur das Exiftool nicht startet und mit dem Fehler endet.
Kann das am Compiler liegen oder an irgendwelchen Parametern zum Compiler?
Es geht auch nicht, wenn ich vorher den aus der INI übernommenen Pfad neu wähle.
Wenn ich noch Haare hätte, würde ich mir die raufen
Ab Zeile 283 geändert
Code: Alles auswählen
Case #Exif_Button
If GetGadgetState(#Combogadget_Datei) = 0 : Datei$ = "G*.MP4" : EndIf
If GetGadgetState(#Combogadget_Datei) = 1 : Datei$ = "*.MP4" : EndIf
If GetGadgetState(#Combogadget_Datei) = 2 : Datei$ = "*.MOV" : EndIf
ClearGadgetItems(#Exif_Text)
Pfad_File$ = Option$+Arbeitsverzeichnis$+Datei$
ExifTool_Pfad$ = ExifPfad$ + ExifName$
MessageRequester("Exif_Pfad_File ",ExifTool_Pfad$+" "+Pfad_File$)
ExifRun(ExifTool_Pfad$, Pfad_File$, Arbeitsverzeichnis$, Flags)
AddGadgetItem(#Exif_Text,-1,Ausgabetext$+#NewLine)
EndSelect
Aber vielen Dank für die bisherige Unterstützung.
Dieter
Gruß aus Solingen, PB 6.0 Win 10 Pro
- dibro
- Beiträge: 143
- Registriert: 11.03.2006 12:52
- Computerausstattung: Win 10 64 bit
- Wohnort: Solingen
Re: ReadProgramString
E S L Ä U F T
Ich habe nochmal geändert:
Außerdem aus den Flags #PB_Program_Wait herausgenommen und siehe da: es läuft, warum auch immer
Alles gut jetzt, prima Forum
Viele Grüße
Dieter
Ich habe nochmal geändert:
Code: Alles auswählen
Case #Exif_Button
If GetGadgetState(#Combogadget_Datei) = 0 : Datei$ = "G*.MP4" : EndIf
If GetGadgetState(#Combogadget_Datei) = 1 : Datei$ = "*.MP4" : EndIf
If GetGadgetState(#Combogadget_Datei) = 2 : Datei$ = "*.MOV" : EndIf
ClearGadgetItems(#Exif_Text)
Pfad_File$ = Option$+Arbeitsverzeichnis$+Datei$
ExifTool_Pfad$ = ExifPfad$ + "Exiftool.exe"
ExifRun(ExifTool_Pfad$, Pfad_File$, Arbeitsverzeichnis$, Flags)
AddGadgetItem(#Exif_Text,-1,Ausgabetext$+#NewLine)
EndSelect
Alles gut jetzt, prima Forum
Viele Grüße
Dieter
Gruß aus Solingen, PB 6.0 Win 10 Pro
- dibro
- Beiträge: 143
- Registriert: 11.03.2006 12:52
- Computerausstattung: Win 10 64 bit
- Wohnort: Solingen
Re: ReadProgramString
Hi zusammen,
da bin ich nochmal.
Erstens hatte ich mich zu früh gefreut. Die compilierte EXE zeigte ein seltsames Verhalten. Mal ging es mal nicht. Das Exiftool machte eine Menge Fehlermeldungen und auch der Teil der das Filedatum manipulierte, macht was er nicht sollte
Bis da eine Meldung von einem Herrn Norton kam. Ich hatte vorher Bullguard drauf und damit keinen Ärger. Norton hat Bullguard keschluckt und ich hatte plötzlich Norton auf dem Rechner - und den Ärger. Ich habe den Scheiß deinstalliert und siehe, fortan keine Probleme mehr. Mag sein, dass die Konflikte mit Norton daher stammen, dass ich den Code, die exe und die Beispieldateien auf einem Stick gespeichert habe und Norton das als Bedrohung von außen interpretierte.
Jetzt mache ich mich auf, den Code in eine vernünftige Form zu bringen, so ohne Global usw.
Viele Grüße an das Forum
Dieter
da bin ich nochmal.
Erstens hatte ich mich zu früh gefreut. Die compilierte EXE zeigte ein seltsames Verhalten. Mal ging es mal nicht. Das Exiftool machte eine Menge Fehlermeldungen und auch der Teil der das Filedatum manipulierte, macht was er nicht sollte
Bis da eine Meldung von einem Herrn Norton kam. Ich hatte vorher Bullguard drauf und damit keinen Ärger. Norton hat Bullguard keschluckt und ich hatte plötzlich Norton auf dem Rechner - und den Ärger. Ich habe den Scheiß deinstalliert und siehe, fortan keine Probleme mehr. Mag sein, dass die Konflikte mit Norton daher stammen, dass ich den Code, die exe und die Beispieldateien auf einem Stick gespeichert habe und Norton das als Bedrohung von außen interpretierte.
Jetzt mache ich mich auf, den Code in eine vernünftige Form zu bringen, so ohne Global usw.
Viele Grüße an das Forum
Dieter
Gruß aus Solingen, PB 6.0 Win 10 Pro
- dibro
- Beiträge: 143
- Registriert: 11.03.2006 12:52
- Computerausstattung: Win 10 64 bit
- Wohnort: Solingen
Re: ReadProgramString
Hi,
ich habe das lauffähige Tool weiter vorne aktualisiert.viewtopic.php?p=363063#p363063
Das Problem, dass das Editorgadget nicht sofort gelöscht wird, besteht weiterhin.
An dem Code kann es m.E. nicht liegen.
Ich habe ein kleines Beispiel eingefügt, bei dem der identische Code läuft. Vielleicht kann sich das jemand mit mehr Ahnung als ich mal beim vorstehenden Programm ansehen.
Hier das Example das läuft:
ich habe das lauffähige Tool weiter vorne aktualisiert.viewtopic.php?p=363063#p363063
Das Problem, dass das Editorgadget nicht sofort gelöscht wird, besteht weiterhin.
An dem Code kann es m.E. nicht liegen.
Ich habe ein kleines Beispiel eingefügt, bei dem der identische Code läuft. Vielleicht kann sich das jemand mit mehr Ahnung als ich mal beim vorstehenden Programm ansehen.
Hier das Example das läuft:
Code: Alles auswählen
#NewLine=#CRLF$
If OpenWindow(0,100,100,200,500,"Editorgadget Löschversuch",#PB_Window_SystemMenu )
EditorGadget(1,5,5,190,400, #PB_Editor_ReadOnly)
ButtonGadget(2,10,450,50,30,"Start")
ButtonGadget(3,75,450,50,30,"lösch")
ButtonGadget(4,140,450,50,30,"Ende")
EndIf
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadget()
Case 2
For i = 0 To 50
SetGadgetItemText(1,i,"Das ist ein Text "+ i+ Chr(13)+Chr(10) )
Ausgabetext$ =" Das ExifTool von von Phil Harvey muss auf dem Rechner installiert sein " + #NewLine +
" ------------------------------------------" + #NewLine +
" 1. Pfade setzen " + Chr(13)+Chr(10) +
" 2. Dateiart wählen " + #NewLine +
" 3. ExifTool starten " + #NewLine +
" 4. Zeitänderung wählen " + #NewLine +
" 5. Zeit starten " + #NewLine +
" 6. Freuen " + #NewLine +
"------------------------------------------" + #NewLine +
" Das Programm speichert die aktuellen Einstellungen in einer MEXDatum.ini " + #NewLine +
" Die Funktionen Start und ExifTool können mehrfach aufgerufen werden " + #NewLine +
" Der Button ExifTool setzt die Zeitänderungen wieder zurück "
Next
SetGadgetItemText(1,i,Ausgabetext$+ i+ Chr(13)+Chr(10) )
Case 3
ClearGadgetItems(1)
Case 4
End
EndSelect
EndIf
ForEver
Gruß aus Solingen, PB 6.0 Win 10 Pro