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

  • Auslesen von Eigenschaften eines OpenOffice Dokumentes

    • TJF
    • 28. Dezember 2009 um 21:03

    Hallo,

    damit kann ich die meta.xml und den (Info-) Titel der Seite nun auslesen:

    [autoit]


    #include <String.au3>
    $datei_o = FileOpen("meta.xml", 0)
    $datei_r = FileRead($datei_o)
    $title = _StringBetween($datei_r, "<dc:title>","</dc:title>")
    If $datei_o = -1 Then
    MsgBox(0, "Error", "Konnte Datei nicht öffnen.")
    ElseIf $datei_r = -1 Then
    MsgBox(0, "Error", "Konnte Datei nicht lesen.")
    ElseIf @error = -1 Then
    MsgBox(0, "", "@error")
    Else
    MsgBox(0, "Titel lautet:", $title[0])
    EndIf

    [/autoit]

    Auch die Kommandozeilen-Geschichte via 7z ließe sich leicht einbauen. Allerdings habe ich die Befürchtung, dass ich etwas auf dem Holzweg bin, wenn ich auf diese Weise (z.B.) den Titel aus einem geöffneten (!) Dokument auslesen will...

    Oder?

    Dank und Gruß
    Thomas

  • Auslesen von Eigenschaften eines OpenOffice Dokumentes

    • TJF
    • 28. Dezember 2009 um 16:43

    Danke Johannes,

    jetzt fragt sich nur, wie ich in den Container an die meta.xml und z.B. den Tag <dc:title></dc:title>gelange ... ?(

    Thomas

  • Auslesen von Eigenschaften eines OpenOffice Dokumentes

    • TJF
    • 28. Dezember 2009 um 15:22

    Hallo,

    kann mir jemand sagen ob, bzw. wie man Dateieigenschaften eines geöffneten OO-Dokumentes auslesen und abfragen kann? Ich meine diese Eigenschaften, die man angezeigt bekommt, wenn man mit der Maus im Win-Explorer über eine Datei geht (Typ, Autor, Titel, etc. ).

    Dank und Gruß
    Thomas

  • Tool im Arbeitsspeicher

    • TJF
    • 28. Dezember 2009 um 01:11

    Ja, aber das schaut sehr gut aus:

    [autoit]


    While 1 * sleep(100)
    If WinExists("SpeedAddressPro_OO") Then
    WinSetState("SpeedAddressPro_OO", "", @SW_MAXIMIZE)
    WinSetOnTop("SpeedAddressPro_OO", "", 1)
    WinActivate("SpeedAddressPro_OO", "")
    WinSetTitle("SpeedAddressPro_OO", "", "SpeedAddressPro_2")
    EndIf
    Wend

    [/autoit]

    Funktioniert zumindest scheinbar einwandfrei. Werde es testen...

    Vielen Dank und viele Grüße!
    Thomas

  • Tool im Arbeitsspeicher

    • TJF
    • 28. Dezember 2009 um 00:23

    ...Du bist ja auch Profi und Spielverderber :)

    Es funktioniert (fast)! Diese Variante läßt es nach dem Holen in den Vordergrund nicht mehr zu, dass sich ein anderes Dokument danach (z.B. ein via DDE-Verknüpfung adaptiertes Tabellendokument) noch in den Vordergrund bringen läßt. Hmm... Da habe ich wohl einen Denkfehler drin...

    Dank und Gruß
    Thomas

  • Tool im Arbeitsspeicher

    • TJF
    • 27. Dezember 2009 um 23:45

    Hallo,

    ich will kurz mein Problemchen beschreiben: Ich schreibe mittels SpeedAddressPro Adressen, etc., in ein OpenOffice Writer-Dokument. Nach dem Beschreiben landet dieses OO-Dok. immer irgendwo im Hintergrund. Es geht also darum, dieses Writer-Dokument - sobald es geöffnet wird - aktiv in den Vordergrund zu setzen. Ich habe nun geraume Zeit damit zugebracht, via OpenOffice-Makro das Dokument nach dem Öffnen automatisch in den VG zu bringen. Es geht aber wohl nur bis dahin, dass es als vorderstes aller gerade geöffneten OO-Dokumente anzubringen ist - nicht aber tatsächlich im Vordergrund. Der Grund ist hier z.B. beschrieben: http://de.openoffice.info/viewtopic.php?f=9&t=31026&p=125301&hilit=vordergrund#p125301

    Nun habe ich folgendes gemacht: Mit Öffnen des Writer-Dok. schreibe ich automatisch via Makro einen Titel in die Datei, der immer gleich ist. Mit folgendem AutoIt-Quelltext ist das Dokument auch immer sofort in den Vordergrund zu bringen:

    [autoit]


    If WinExists("SpeedAddressPro_OO") Then
    WinSetState("SpeedAddressPro_OO", "", @SW_MAXIMIZE)
    WinSetOnTop("SpeedAddressPro_OO", "", 1)
    WinActivate("SpeedAddressPro_OO", "")
    EndIf
    Exit

    [/autoit]

    Allerdings nur einmalig. Eine Dauerschleife ist zu ressourcenfressend. Ich würde dieses kleine Programm also gerne dauerhaft im Arbeitsspeicher lassen - sozusagen als Wächter, der ein Dokument mit diesem Titel in den VG bringt, sobald sich ein Dokument mit diesem Titel öffnet.

    Hat jemand eine Idee, wie man das bewerkstelligen könnte?

    Dank und Gruß
    Thomas

  • Window maximieren

    • TJF
    • 25. September 2008 um 18:30

    Jetzt hab' ich's :)

    Code
    WinSetState("program", "", @SW_MAXIMIZE)
    	WinSetOnTop("program", "", 1)
    	WinActivate("program", "")
  • Window maximieren

    • TJF
    • 25. September 2008 um 14:16

    Geht nicht...

  • Window maximieren

    • TJF
    • 25. September 2008 um 14:00

    Nochmal zusammenfassend: Das hier geht scheinbar

    Code
    WinActivate("program", "")
        WinSetState("program", "", @SW_MAXIMIZE)

    Es funktionieren beim maximierten Programm oben rechts in der Ecke der "Schliessen" und der "Normalisierungs"-Button. Der "Minimierungsbutton" ist dann tot.

  • Window maximieren

    • TJF
    • 25. September 2008 um 13:53

    Wenn es aber mit dem AutoHotKey - Code geht...? :)

  • Window maximieren

    • TJF
    • 25. September 2008 um 13:44

    Waren meine ersten Versuche. Geht nicht, bzw. geht nur scheinbar, weil sich das Programm zwar (wenn es schon gestartet ist) maximiert, jedoch dann nicht mehr minimieren läßt (über den Min.-Button oben rechts)....

  • Window maximieren

    • TJF
    • 25. September 2008 um 13:34

    Ja genau. Funktioniert nur nicht bei diesem Programm. WinSetState habe ich schon versucht. Siehe Quelltext...

  • Window maximieren

    • TJF
    • 25. September 2008 um 12:58

    Hallo,

    auch wenn das Thema nicht neu und eigentlich simpel ist, so finde ich doch nach zahlreichen Versuchen keine Lösung dafür mit AutoIt.

    Ich möchte ein Programm, das nur einmal gestartet werden kann, abfragen ob es schon gestartet ist (dann maximieren) oder starten. Sollte es schon gestartet sein, kommt von Programmseite her (und manuellem weiteren Startversuch) eine Fehlermeldung, bzw. ein Hinweis, dass nur einmal gestartet werden kann.

    Übrigens funktionierte es sofort einwandfrei mit AutoHotkey und diesem Text:

    Code
    IfWinExist, programname
    {
    WinActivate
    }
    else
    {
    Run, program.exe
    }

    Wenn ich jedoch meine Versuche mit AutoIt festhalte (hier sind noch einige Tests zu sehen :-)):

    Code
    If WinExists("program") Then
        WinActivate("program", "")
        WinSetState("program", "", @SW_MAXIMIZE)
        ;WinSetState("program", "", @SW_SHOW)
        ;GUISetState(@SW_SHOW, "program")
        ;GUISetState( @SW_MAXIMIZE, "program")
        If WinActive("program") Then
    	MsgBox(0, "", "Fenster ist aktiv!")
    EndIf
        Else
        Run("D:\program\sm.exe", "", @SW_MAXIMIZE)
    EndIf
    Exit
    Alles anzeigen

    schaut es aus, als ob es in dieser Version funktionieren würde. Jedoch ist im Falle des nur maximierten Programmes keine Minimierung mehr möglich. D.h. der Minimierungs-Button oben in der rechten Ecke funktioniert nicht mehr. Schließen und auf normale Größe zu bringen ist möglich...

    Hat jemand eine Idee?

    Dank und Gruß
    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™