Problem mit Einfügen in 'Speichern unter ...'  GELÖST

Anwenderaustausch zur PhraseExpress Makroprogrammierung
Post Reply
El Schwalmo
PhraseExpress Expert
Posts: 22
Joined: 29 Aug 06, 19:35

Problem mit Einfügen in 'Speichern unter ...'

Post by El Schwalmo » 12 Jun 19, 08:59

Folgendes Makro aus PhraseExpress v13 funktioniert in v14 nicht mehr:

Code: Select all

(* Speichern als ... aufrufen, Zeitstempel als Dateiname

*){#alt}{#down -count 5}{#enter}{#sleep 200}(*
  Speichern unter ... aufrufen
*){#datetime -f yymmdd}-{#datetime -f hhnnss}{#sleep 2000}(*
  Zeitstempel als Dateiname eingeben
  
  Vorbedingungen:

  - keine
*)
ruft in einem Programm, das keinen HotKey für 'Speichern unter ...', hat diese Funktion auf.

Früher wurde dann problemlos ein Zeitstempel eingetragen. Aktuell wird zwar die Maske für 'Speichern unter ...' aufgerufen. Im Eingabefeld erscheint markiert der aktuelle Name der Datei, dann passiert nichts mehr. Das Makro scheint einfach anzuhalten

Ich habe dann den Zeitstempel

Code: Select all

{#datetime -f yymmdd}-{#datetime -f hhnnss}
als Textbaustein mit einem Autotext (z1#), der sofort ausgeführt wird, definiert.

Wenn ich dann den Dateinamen mit z1# überschreibe, wird, wie gewünscht, der Zeitstempel eingetragen.

Versuche ich dann, diesen Textbaustein in das Makro zu schreiben,

Code: Select all

(* Speichern als ... aufrufen, Zeitstempel als Dateiname

*){#alt}{#down -count 5}{#enter}{#sleep 200}(*
  Speichern unter ... aufrufen
*){#insert z1#}{#sleep 2000}(*
  Zeitstempel als Dateiname eingeben
  
  Vorbedingungen:

  - keine
*)
so wird zwar der Dateiname gelöscht, aber dann wird der Buchstabe 'v' eingefügt, sonst nichts.

Hat jemand dazu eine Idee?

Peter Stotz
PhraseExpress Expert
Posts: 761
Joined: 27 Feb 08, 15:07

Post by Peter Stotz » 12 Jun 19, 11:02

El Schwalmo,
hier ein paar Ideen:

1. Unabhängig vom beschriebenen Effekt kann der Zeitstempel mit einer einzelnen #datetime-Verwendung erzeugt werden, also anstatt
{#datetime -f yymmdd}-{#datetime -f hhnnss}
ist auch
{#datetime -f yymmdd-hhnnss}
möglich.

2. „Im Eingabefeld erscheint markiert der aktuelle Name der Datei, dann passiert nichts mehr.
Vielleicht benötigt die Anwendung einfach nur zusätzlich ein abschließendes {#enter} zur Übernahme des Dateinamens?:
(* 'Speichern als...' aktivieren
*){#alt}{#down -count 5}{#enter}{#sleep 200}(*
Zeitstempel als Dateiname
*){#datetime -f yymmdd-hhnnss}{#sleep 1000}{#enter}

3. Vielleicht hat die Anwendung ein Problem mit dem letzen {#sleep 1000} - dieses testweise 'mal weglassen.

4. Testweise alle Kommentareinfügungen (* ... *) aus dem Makro entfernen

Peter Stotz
Windows 10 - PhraseExpress v14.0.145

El Schwalmo
PhraseExpress Expert
Posts: 22
Joined: 29 Aug 06, 19:35

Post by El Schwalmo » 12 Jun 19, 15:14

Peter Stotz,

vielen lieben Dank für deine Mühe.

Nichts hat geholfen. Wenn ich ein {#enter} eingefügt habe, wurde die Datei mit dem Namen 'v.ext' ('ext' ist die Extension, die das Programm automatisch einfügt) gespeichert. Also mit dem Buchstaben, den ich auch erhalte, wenn ich mit {#insert xxx} gearbeitet habe. Dieser Buchstaben kommt im Dateinamen nicht vor.

Ich habe vor dem Test das Makro dupliziert und umbenannt. Die Tests habe ich mit dem Duplikat durchgeführt. Nach dem Test habe ich dann das Duplikat gelöscht und und das Original wieder umbenannt. Beim ersten Mal hat es dann korrekt funktioniert, ab dem zweiten Aufruf aber wieder wie oben beschrieben.

Das ist nun genau umgekehrt wie bei einigen anderen Makros: die funktionieren beim ersten Mal nicht, aber aber dem zweiten Mal dauerhaft unproblematisch.

Alle genannten Makros arbeiten mit der Zwischenablage. Die Version 14 scheint hier etwas anders zu machen als frühere Versionen. Ich erhalte auch immer wieder die Fehlermeldung 'Zwischenablagenformat nicht verfügbar' und ähnlich, die ich vorher noch nie gesehen hatte.

Peter Stotz
PhraseExpress Expert
Posts: 761
Joined: 27 Feb 08, 15:07

Post by Peter Stotz » 12 Jun 19, 16:12

@El Schwalmo
Fehlermeldung: „Zwischenablageformat nicht verfügbar
Das ist seltsam. Prüfe die Zwischenablage-Einstellungen.

Alle genannten Makros arbeiten mit der Zwischenablage.
Für das von uns diskutierte Fehlerbeispiel trifft das NICHT zu.
Mein Vorschlag: Vergleiche Schritt um Schritt den Makrocode mit der manuellen Tasteneingabe.
Bespielsweise:
Der Makro beginnt mit {#alt}{#down -count 5},
das entspricht dem Drücken der Alt-Taste, Alt-Taste wieder loslassen (!) und nachfolgend 5-Mal Down Taste betätigen.
Sollte das nicht {#alt -chars {#down -count 5}} sein: Alt-Taste drücken und bei gedrückter Alt-Taste 5-Mal Down Taste betätigen???

Peter Stotz
Windows 10 - PhraseExpress v14.0.145

Technical Support
Posts: 2149
Joined: 10 Feb 06, 22:23

Post by Technical Support » 12 Jun 19, 16:15

Versuchen Sie nach {#sleep 200} mit #focus Makro den Fokus ins "Datei speichern" Dialog zu setzten.

El Schwalmo
PhraseExpress Expert
Posts: 22
Joined: 29 Aug 06, 19:35

Post by El Schwalmo » 12 Jun 19, 16:32

Vielen lieben Dank, das hat geholfen.

El Schwalmo
PhraseExpress Expert
Posts: 22
Joined: 29 Aug 06, 19:35

Post by El Schwalmo » 12 Jun 19, 16:35

@Peter Stotz
danke für deine Mühe.

Das mit der Alt-Taste (die soll wieder losgelassen werden) war schon korrekt, die gewünschte Maske wird aufgerufen. Ist ein altes Programm mit PullDown-Leisten, es ist dann erfahrungsgemäß sicherer mit den Cursor-Tasten zu arbeiten als HotKeys zu verwenden.

Vermutlich geht ab der Version 14 dann der Fokus 'irgendwie' verloren, was bei der Version 13 nicht der Fall war.

Post Reply