1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. TJF

Beiträge von TJF

  • Button - Paste führt zum Programmende

    • TJF
    • 14. Januar 2010 um 13:56

    Hallo Bert,

    das isses!

    [autoit]


    Global Enum $idPaste = 1000, ...

    [/autoit]

    Vielen Dank!

    Viele Grüße
    Thomas

  • Button - Paste führt zum Programmende

    • TJF
    • 14. Januar 2010 um 12:28

    Schleife ist natürlich da. Sonst würde es mit den anderen Buttons ja genauso passieren. Es betrifft nur den "Paste"-Button.

  • Button - Paste führt zum Programmende

    • TJF
    • 14. Januar 2010 um 11:32

    Auch das hier führt zum Beenden (als müßte man hier ein "Stop" setzen...):

    [autoit]


    Func _einfuegen()
    ;MsgBox(4096, "Information", "Einfügen")
    ;Send("^v")
    ;sleep(200)

    [/autoit]

    Korrekt ausgeführt wird das hier:

    [autoit]


    Func _einfuegen()
    MsgBox(4096, "Information", "Einfügen")
    ;Send("^v")
    ;sleep(200)

    [/autoit]

    Die anderen Grafik-Buttons arbeiten einwandfrei mit ihren Funktionen!

  • Button - Paste führt zum Programmende

    • TJF
    • 14. Januar 2010 um 10:17

    Hallo,

    ich hatte gestern ja schon zunächst dieses (gelöste) merkwürdige Problem.

    Jetzt habe ich in dieser Konstellation mit diesen grafischen Buttons die nachfolgenden simplen Anweisungen geschrieben. Es soll der "Copy"-Button nur den markierten Text irgendeines Feldes in die Zwischenablage kopieren (Strg+c) und der "Einfügen"-Button diesen in irgendeinem Feld wieder einfügen (Strg+v). Der "Copy"-Button mit send funktioniert. Der "Einfügen"-Button dagegen nicht. Wird dieser betätigt, wird zwar der Text eingefügt, das Programm wird dann nach (!) dem sleep beendet. Wird das sleep auf 10 Sekunden gestellt, beendet sich das Programm nach 10 Sekunden. Also kein akuter Programmabsturz. Im Textmenü funktioniert das alles einwandfrei mit diesen Funktionen.

    [autoit]


    If _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idCut) then
    _ausschneiden()
    ElseIf _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idCopy) then
    _kopieren()
    ElseIf _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idPaste) then
    _einfuegen()
    _kopieren()
    ElseIf _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idSave) then
    _speichern()

    [/autoit][autoit]


    Func _einfuegen()
    ;MsgBox(4096, "Information", "Einfügen")
    Send("^v")
    sleep(200)
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func _kopieren()
    ;MsgBox(4096, "Information", "Kopieren")
    Send("^c")
    sleep(200)
    EndFunc

    [/autoit]

    Setze ich in den "Einfügen"-Button die Funktion " _kopieren()" ein, dann beendet sich das Programm übrigens auch! Es muss also was mit dem Button an sich zu tun haben.

    [autoit]


    _GUICtrlToolbar_AddButton($ToolBar1, $idPaste, $STD_PASTE)

    [/autoit]

    Bringt der Button irgendeine Funktion bereits mit oder funktioniert er nur mit einer bestimmten Anweisungsart?

    Dank und Gruß
    Thomas

  • Toolbar - Button "Ausschneiden"

    • TJF
    • 13. Januar 2010 um 14:48

    Ist schon gelöst. S.o. ;)

    Dein Beispiel ist aber von der Wirkung identisch.

  • Toolbar - Button "Ausschneiden"

    • TJF
    • 13. Januar 2010 um 14:27

    Hallo,

    jetzt geht es. Ich habe testweise links vom "Ausschneiden" einen anderen Button reingemacht. Danach ging dieser Button ganz links wieder nicht. Dafür ging der "Ausschneiden"-Button wieder.

    Lösung:

    [autoit]


    _GUICtrlToolbar_AddBitmap($ToolBar1, 1, -1, $IDB_STD_LARGE_COLOR)
    ;_GUICtrlToolbar_AddButtonSep($ToolBar1)
    _GUICtrlToolbar_AddButton($ToolBar1, $idCut, $STD_CUT)
    _GUICtrlToolbar_AddButtonSep($ToolBar1)
    _GUICtrlToolbar_AddButton($ToolBar1, $idCopy, $STD_COPY)
    _GUICtrlToolbar_AddButton($ToolBar1, $idPaste, $STD_PASTE)
    _GUICtrlToolbar_AddButtonSep($ToolBar1)
    _GUICtrlToolbar_AddButton($ToolBar1, $idSave, $STD_FILESAVE)

    [/autoit]

    Viele Grüße
    Thomas

  • Toolbar - Button "Ausschneiden"

    • TJF
    • 13. Januar 2010 um 10:05

    Hallo,

    ich finde den Fehler hier nicht. Kann mir jemand sagen, ob ich mit $idCut, bzw.
    $STD_CUT vielleicht den falschen Button-Bezeichner eingesetzt habe? Folgendes Problem:

    Ich definiere hier die Toolbar-Buttons:

    [autoit]


    _GUICtrlToolbar_AddBitmap($ToolBar1, 1, -1, $IDB_STD_LARGE_COLOR)
    _GUICtrlToolbar_AddButtonSep($ToolBar1)
    _GUICtrlToolbar_AddButton($ToolBar1, $idCut, $STD_CUT)
    _GUICtrlToolbar_AddButtonSep($ToolBar1)
    _GUICtrlToolbar_AddButton($ToolBar1, $idCopy, $STD_COPY)
    _GUICtrlToolbar_AddButton($ToolBar1, $idPaste, $STD_PASTE)
    _GUICtrlToolbar_AddButtonSep($ToolBar1)
    _GUICtrlToolbar_AddButton($ToolBar1, $idSave, $STD_FILESAVE)

    [/autoit]

    und lese sie damit aus:

    [autoit]


    If _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idCut) then
    MsgBox(4096, "Information", "Ausschneiden")
    ElseIf _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idCopy) then
    MsgBox(4096, "Information", "Kopieren")
    ElseIf _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idPaste) then
    MsgBox(4096, "Information", "Einfügen")
    ElseIf _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idSave) then
    MsgBox(4096, "Information", "Speichern")
    EndIf

    [/autoit]

    Es funktioniert alles - mit Ausnahme des ersten Buttons links, dem "Ausschneiden"-Button. Hat jemand eine Idee?

    Dank und Gruß
    Thomas

  • GUICtrlCreateUpdown - immer zweistellig je Feld

    • TJF
    • 6. Januar 2010 um 22:05

    Das isses, Oscar!

    Vielen Dank!

  • GUICtrlCreateUpdown - immer zweistellig je Feld

    • TJF
    • 6. Januar 2010 um 21:39

    Hi,

    klingt etwas kompliziert... Ich hatte gehofft, dass es einen GUI-Style gibt, den ich noch nicht kenne...

    Viele Grüße
    Thomas

  • GUICtrlCreateUpdown - immer zweistellig je Feld

    • TJF
    • 6. Januar 2010 um 21:22

    Hallo,

    ich habe eine Zeitangabe (Timer) mit Updown gemacht. Funktioniert auch alles sehr schön. Dieses Format: 12:15 oder 04:03 (also zwei Stellen für die Stunden und zwei Stellen für die Minuten). Wenn das Programm startet, ist diese Einstellung auch in der Form so. Wenn UpDown betätigt wird, springt das Feld bei einstelligen Zahlen aber auch wirklich auf einstellig um. Also z.B. 4:4 für 04:04.

    Gibt es da eine Lösung, um das generell zweistellig rauf- und runter zu betätigen?

    Dank und Gruß
    Thomas

  • RegWrite - Prozess mit niedriger Priorität

    • TJF
    • 5. Januar 2010 um 14:35

    Hallo Bernd,

    super! Vielen Dank! Funktioniert.

    Viele Grüße
    Thomas

  • RegWrite - Prozess mit niedriger Priorität

    • TJF
    • 5. Januar 2010 um 14:18

    Geht nicht: Prozesspriorität bleibt "Normal"...

  • RegWrite - Prozess mit niedriger Priorität

    • TJF
    • 5. Januar 2010 um 13:10

    Hallo,

    ich komme nicht weiter dabei, neben einem Programm-Autostart Eintrag in die Registry (...\Run) einen zusätzlichem Eintrag für niedrige Prozess-Priorität zu machen. Weiß jemand wo man das wie einträgt?

    Erfolgreich habe ich das nur über die Verknüpfung einer *.cmd mit FileCreateShortcut machen können. Diese *.cmd enthält:

    [autoit]


    start "" /b /low xy.exe

    [/autoit]

    Schöner wäre es, das via Registry Eintrag ohne Batch-Datei dazwischen zu machen...

    Dank und Gruß
    Thomas

  • Abfrage: Teil des WindowTitle (Teil des Dateinamens eines OpenOffice-Dokumentes)

    • TJF
    • 1. Januar 2010 um 10:00

    Hallo BugFix,

    ein gutes neues Jahr erstmal!

    Ich habe in Deinem Script die _ende Funktion mal rausgenommen und stoße auf mehrere andere Probleme, die ich momentan leider nicht komplett übersehe. Grundsätzlich fehlen aber wohl Definitionen mehrerer Variablen...

    Viele Grüße
    Thomas

  • Abfrage: Teil des WindowTitle (Teil des Dateinamens eines OpenOffice-Dokumentes)

    • TJF
    • 30. Dezember 2009 um 14:25

    Hi,

    vielen Dank für Deine Mühe!

    Aufs erste kommt eine Fehlermeldung (AutoIt-Error) in Zeile 33 der *.exe: "The requested action with this object has failed".

    Viele Grüße
    Thomas

  • Abfrage: Teil des WindowTitle (Teil des Dateinamens eines OpenOffice-Dokumentes)

    • TJF
    • 30. Dezember 2009 um 13:05

    Grundsätzlich ist das Problem gut rübergekommen :) Das neue Dokument heißt nicht immer *_001.odt. Nur das erste Dokument in einem Ordner heißt so.

    Zitat

    Wenn ja: Bedenken, dass für die interne fortlaufende Nummerierung mit _002 begonnen werden muß, damit keine Kollisionen mit den jeweils neuen _001 entstehen.

    Die fortlaufende Nummerierung ist kein Problem. Das wird von einem externen Programm (SpeedAddressPro) vorgenommen, das jeden Ordner bezüglich der Zahlen ausliest und immer hochzählt. Die Vorlage heißt immer *_00.odt und wird erstmals nach dem Beschreiben "_001.odt" benannt. Usw. Ich will das an dieser Stelle aber nicht unnötig verkomplizieren... Das Problem ist wohl offensichtlich der Start der DDE-Verknüpfung, das bei eindeutigem Fensternamen nicht auftritt (statt dem Class-Namen).

  • Abfrage: Teil des WindowTitle (Teil des Dateinamens eines OpenOffice-Dokumentes)

    • TJF
    • 30. Dezember 2009 um 12:11

    Weil ich die Änderung des Fenstertitels drin habe am Ende, sieht man jetzt genau, dass das Writer-Dokument öffnet, gleichzeitig - sonst unsichtbar - die DDE-Verknüpfung mit dem Calc-Dok hergestellt wird und hier passiert es nun gelegentlich:

    Das Calc-Fenster taucht kurz auf, der neue Titel, der für das Writer *.odt bestimmt ist, wird in die Fensterzeile des Calc-Fensters (*.ods) geschrieben und ein leeres graues Calc(!) -"Dokument" friert am Bildschirm ein.

  • Abfrage: Teil des WindowTitle (Teil des Dateinamens eines OpenOffice-Dokumentes)

    • TJF
    • 30. Dezember 2009 um 11:49

    Hi,

    das schaut effektiver aus. Allerdings bleibt das Problem (s.o.) ...

    Gruß
    Thomas

  • Abfrage: Teil des WindowTitle (Teil des Dateinamens eines OpenOffice-Dokumentes)

    • TJF
    • 30. Dezember 2009 um 11:21

    Ich habe gerade festgestellt, dass die Sache bei "normalen" *_001.odt" funktioniert. Das Dokument für das ich das geschrieben habe, lädt aber beim Dokumentöffnen eine interne DDE-Verknüpfung zu einer Calc-Datei (*.ods), die denselben Class-Namen hat (SALFRAME). Das müßte noch eindeutiger abgefragt werden ...

  • Abfrage: Teil des WindowTitle (Teil des Dateinamens eines OpenOffice-Dokumentes)

    • TJF
    • 30. Dezember 2009 um 01:59

    Hallo,

    ich will bestimmte Dateien, die so benannt sind, beim Öffnen in den Vordergrund bringen: *_001.odt
    Dabei soll die dreistellige Zahl von 001 bis 999 möglich sein. Die Titelzeile in OpenOffice Writer lautet dann so: "*_001.odt - OpenOffice.org Writer"

    Wenn ich das mit einer konkreten Datei namens "_001.odt" machen will, dann funktioniert das:

    [autoit]


    $b = "_001.odt"
    $i = "Vordergrund-Wächter aktiviert"
    While 1 * sleep(100)
    If WinExists($b) Then
    WinSetState($b, "", @SW_MAXIMIZE)
    WinSetOnTop($b, "", 0)
    WinActivate($b, "")
    WinSetTitle($b, "", $i)
    EndIf
    Wend

    [/autoit]

    Meine Versuche, das zu abstrahieren gehen soweit:

    [autoit]


    $i = "Vordergrund-Wächter aktiviert - SAP_OO"
    $t = "[CLASS:SALFRAME]"
    ; _001.odt - OpenOffice.org Writer
    ; Titelzeile von rechts: 32 Zeichen!
    While 1 * sleep(100)
    If WinExists ($t,"") Then
    $tit = WinGetTitle($t)
    $tit2 = StringRight($tit, 32)
    ; Unterstrich:
    $tit3 = StringLeft($tit2, 1)
    $tit4 = StringRight($tit, 28)
    ; .odt :
    $tit5 = StringLeft($tit4, 4)
    ; 3 Zahlen:
    $sid1 = StringRight($tit, 31)
    $sid2 = StringLeft($sid1, 3)
    ;Prüfen, ob die 3 Stellen links vom Punkt Zahlen sind
    $x = StringIsDigit($sid2)
    If $x = 1 AND $tit3 = "_" AND $tit5 = ".odt" Then
    WinSetState($tit, "", @SW_MAXIMIZE)
    WinSetOnTop($tit, "", 0)
    WinActivate($tit, "")
    WinSetTitle($tit, "", $i)
    Else
    ; $x = 0 also keine 3 Zahlen
    EndIf
    EndIf
    Wend

    [/autoit]

    Das macht das halbwegs. Nur muss erst nochmal ein anderes geöffnetes Dokument angeklickt werden. Es funktioniert also nicht, wie es soll...

    Dank und Gruß im Voraus!
    Thomas

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™