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. autoirrer

Beiträge von autoirrer

  • IntelliSenseBox

    • autoirrer
    • 23. März 2008 um 08:46

    Sehr schön.

    Kann man sehr gut gebrauchen. Habe ich mir immer schon gewünscht.

    ALLERDINGS:
    Es fehlt noch ein #include <File.au3> im DownloadScript. Zumindest funktioniert es bei mir sonst nicht.

    Gruß und besten Dank
    Autoirrer

  • _GUICtrlListView_Create wo steht der blaue Balken? Edit: kann man den blauen Balken auch setzen?

    • autoirrer
    • 16. März 2008 um 17:03

    Sorry, hatte mich gerade festgelaufen.

    Mein Balken wurd nicht blau, da die ListView nicht aktiv war sondern ein Button.
    Besten Dank auf jedenfall.

  • _GUICtrlListView_Create wo steht der blaue Balken? Edit: kann man den blauen Balken auch setzen?

    • autoirrer
    • 16. März 2008 um 16:50

    Also die Lösung von GTASpider funktioniert schon einwandfrei.
    Aber man ist ja nie zufrieden mit dem was man schon hat.

    Jetzt bekommt man das hin das man in der

    [autoit]

    func gui_schliessen()

    [/autoit]


    die Zeile herausfindet wo der blaue Balken steht Kann ich aber auch den blauen Balken auf eine andere Zeile setzen (z.B. auf die nächste Zeile?)
    Gruß Autoirrer

  • Kästchen statt Zeilenumbruch

    • autoirrer
    • 16. März 2008 um 12:20

    Das klappt zwar nicht, aber @cr mit @CRLF ersetzen klappt.
    Danke

  • Kästchen statt Zeilenumbruch

    • autoirrer
    • 16. März 2008 um 11:32

    Hallo
    Ich importiere ein Text aus Word in ein GUICtrlCreateEdit Feld in Autoit. Jetzt erscheint aber in meinem Edit Feld statt einem Zeilenumbruch ein kleines Kästchen.
    Wie kann ich das wieder durch einen Zeilenumbruch ersetzen. Habe vesucht dieses Kästchen zu kopieren und dann in Scite in einer Stringreplace Zeile einzufügen. Das Kästchen kann man aber nicht kopieren. Scite macht aus diesem Kästchen wieder einen Zeilenumruch.
    Gibt es da einen Trick?

    Gruß Autoirrer

  • GUICtrlCreateEdit Zeilenumbruch am Fensterrand?

    • autoirrer
    • 15. März 2008 um 15:17

    Argh
    Das war zuviel des guten. Danke jetzt klappt es so wie gewünscht.

    Schönes Wochenende
    Gruß Autoirrer

  • GUICtrlCreateEdit Zeilenumbruch am Fensterrand?

    • autoirrer
    • 15. März 2008 um 15:07

    mhhh ;(
    Bei mir klappt das nicht, oder hab ich da noch was falsch. Mein Test Code

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)
    $Hauptform = GUICreate("Multiline", 924, 492, 193,115)
    $Uebersicht = GUICtrlCreateEdit("Hier bitte einen langen Text eingeben", 8, 40, 905, 297, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL,$ES_MULTILINE))
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    WEnd

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

    Wenn ich dann einen langen Text eingebe wandert der Text aus dem Fenster und wird nicht am Fensterrand umgebrochen. Wo liegt mein Fehler?

    Gruß Autoirrer

  • GUICtrlCreateEdit Zeilenumbruch am Fensterrand?

    • autoirrer
    • 14. März 2008 um 15:44

    Hallo
    Ich importiere ein Text von einer Word Datei ine in GUICtrlCreateEdit Feld. In diesem Feld editere ich den Text.
    Wenn der Text allerdings zu lang ist für das Edit Feld, wird nicht automatisch ein Zeilenumbruch eingefügt. Eigentlich will ich auch keinen echten Zeilenumbruch sondern nur das der Text in dem Edit Feld dann zweizeilig dargestellt wird. Wenn ich nachher den Text wieder von dem Edit Feld in ein anderes Textbearbeitungsprogramm einfügen will, soll hier kein Umruch an der Stelle sein. Es sollen nur echte Zeilenumbrüche die ich im Edit Feld durch Enter eingebe übernommen werden.
    Bekommt man das mit einem Edit Feld hin?
    Wenn ja wie?

    Gruß Autoirrer

  • _GUICtrlListView_Create wo steht der blaue Balken? Edit: kann man den blauen Balken auch setzen?

    • autoirrer
    • 14. März 2008 um 06:06

    Super. Das hilft mir schon ein ganzes Stück weiter.
    Besten Dank und schönes Wochenende!
    Gruß Autoirrer

  • _GUICtrlListView_Create wo steht der blaue Balken? Edit: kann man den blauen Balken auch setzen?

    • autoirrer
    • 13. März 2008 um 18:21

    Hallo
    Was muss ich im unteren Beispiel in der Funktion "gui_schliessen()" eintragen damit mir beim schliessen angezeit wird auf welche Zeile der Cursor (also der blaue Balken) in der Liste steht?
    Hatte das schon mit _GUICtrlListView_GetItemSelected probiert. Das klappt aber nicht.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    Opt("GUIOnEventMode", 1)
    Opt('MustDeclareVars', 1)
    Global $hListView
    Example_External()

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

    Func Example_External()
    Local $GUI, $hListView

    $GUI = GUICreate("(External) ListView Get Checked State", 400, 300)
    GUISetOnEvent($GUI_EVENT_CLOSE, "gui_schliessen")
    $hListView = _GUICtrlListView_Create ($GUI, "", 2, 2, 394, 268)
    _GUICtrlListView_SetExtendedListViewStyle ($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
    GUISetState()

    ; Add columns
    _GUICtrlListView_AddColumn ($hListView, "Column 1", 100)
    _GUICtrlListView_AddColumn ($hListView, "Column 2", 100)
    _GUICtrlListView_AddColumn ($hListView, "Column 3", 100)

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

    ; Add items
    _GUICtrlListView_AddItem ($hListView, "Row 1: Col 1", 0)
    _GUICtrlListView_AddSubItem ($hListView, 0, "Row 1: Col 2", 1)
    _GUICtrlListView_AddSubItem ($hListView, 0, "Row 1: Col 3", 2)
    _GUICtrlListView_AddItem ($hListView, "Row 2: Col 1", 1)
    _GUICtrlListView_AddSubItem ($hListView, 1, "Row 2: Col 2", 1)
    _GUICtrlListView_AddItem ($hListView, "Row 3: Col 1", 2)

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

    ; Check item 2
    _GUICtrlListView_SetItemChecked ($hListView, 1)
    _GUICtrlListView_SetItemChecked ($hListView, 0)
    _GuiCtrlListView_SetItemFocused ($hListView, 1)
    _GUICtrlListView_SetItemSelected ($hListView, 1)

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

    While 1
    Sleep(100)
    WEnd

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

    EndFunc ;==>Example_External
    func gui_schliessen()

    EndFunc

    [/autoit]

    Gruß Autoirrer

  • Test ob es ein Formularfeld in Word gibt

    • autoirrer
    • 12. März 2008 um 21:19

    Danke TrueMu.

    Da ich mich einigermassen mit VBA auskenne habe ich eine andere Lösung gefunden. Bei der Umsetzung zu AutoIt hapert es allerdings noch manchmal!
    Hier also die Lösung die zumindest bei mir funktioniert:

    [autoit]


    $aktuellesFormfield = $oDok.Bookmarks.Exists("doc_Tagessatz")
    if $aktuellesFormfield <> 0 Then
    msgbox(0,"Feld ist vorhanden!","")
    Endif

    [/autoit]

    Gruß Autoirrer

  • Test ob es ein Formularfeld in Word gibt

    • autoirrer
    • 12. März 2008 um 17:40

    Hallo
    Ich lese über AutoIt eine Word Datei aus. Dieses mache ich indem ich die Formularfelder auslese und den Inhalt in ein Array abspeichere. Siehe folgenden Code:

    [autoit]


    $oWord = ObjCreate("Word.Application")
    $oWord.Visible = 1
    $oWordDocuments = $oWord.Documents
    $oDok = $oWord.Documents.Open("c:\test.doc")
    $fftext = $oDok.FormFields("doc_Berichtsnummer")
    $array_doc_[0] = $fftext.Result
    $fftext = $oDok.FormFields("doc_Tagessatz")
    $array_doc_[1] = $fftext.Result

    [/autoit]

    Nun habe ich in manchen Word Dateien allerdings nicht das Formularfeld "doc_Tagessatz". Das Formularfeld existiert nicht. Mein AutoIt Script hält hier dann mit einer Fehlermeldung an.
    The requested action with this object has failed.:
    $fftext = $oDok.FormFields("doc_Tagessatz")
    $fftext = $oDok.FormFields("doc_Tagessatz")^ ERROR

    Wie kann ich das abfangen, das der Code in AutoIt weiterbearbeitet wird. Kann ich vorher prüfen ob es das Forumlarfeld in meiner Word Datei gibt?

    Gruß Autoirrer

  • Listbox mit mehreren Spalten befüllen?

    • autoirrer
    • 14. Februar 2008 um 18:25

    Hallo
    Ich brauche mal wieder eure Hilfe.
    Habe folgende Situation:
    Ich habe eine Textdatei in der z.B. folgendes steht.Hier steht nur eine Zeile. Es sind etliche Zeilen in der Datei aber mit immer unterschiedlichen Orten usw.

    Code
    Tel.:08152/12882-11 Maschnr.:14 Typ:Borhmaschine Kunde:Müller GmbH Strasse:Bonner Straße 257 Plz.:23232 Ort:Köln Land:DE


    Habe mir jetzt folgendes Script gebastelt:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $suchtext
    Global $gesamttext

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

    $gesamttext = ""
    If Not IsDeclared("sInputBoxAnswer") Then Local $suchtext
    $suchtext = InputBox("Kundensuche","Wonach soll gesucht werden?",""," ","-1","-1","-1","-1")
    Select
    Case @Error = 0 ;OK - The string returned is valid
    suchen()
    Case @Error = 1 ;The Cancel button was pushed
    Exit
    Case @Error = 3 ;The InputBox failed to open
    MsgBox(0,"Kundensuche", "Fehler beim eingeben des Suchtextes aufgetreten")
    Exit

    EndSelect

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

    func suchen()
    $file = FileOpen(@ScriptDir & "\Maschinennummern mit Adresse und Telefon.txt", 0)

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

    If $file = -1 Then
    MsgBox(0, "Fehler beim öffnen der Datei:", @ScriptDir & "\Maschinennummern mit Adresse und Telefon.txt")
    Exit
    EndIf

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

    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    if StringInStr($line,$suchtext) >= 1 Then
    $gesamttext = $gesamttext & $line & chr(10)
    EndIf
    Wend

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

    if $gesamttext <> "" Then
    MsgBox(262144,"Gefunden",$gesamttext)
    Else
    MsgBox(0,"Nichts gefunden mit folgendem Text",$suchtext)
    EndIf

    EndFunc

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


    Mit diesem Script kann ich z.B. alle Zeilen in der Messagebox ausgeben indem sich der Begriff befindet den ich suche.
    Da wird aber alles unübersichtlich in einer Textbox untereinandergeschrieben.

    Jetzt möchte ich das in eine Listbox satt in einer Messagebox ausgeben.

    Habe mir folgendes Script geschrieben mit einer Gui und passender Listbox.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)
    $form_ergebnis = GUICreate("Kundensuche Ergebnis", 1005, 171, 5, 500, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))
    GUISetOnEvent($GUI_EVENT_CLOSE, "form_ergebnisClose")
    $gefundenliste = GUICtrlCreateListView("Telefon|MaschNr.|Typ|Kunde|Strasse|Plz|Ort|Land", 8, 8, 985, 153)

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

    $gefundenliste_0 = GUICtrlCreateListViewItem("1-Telefon|1-Maschinennummer|1-Typ|e-Kunde|1-strasse|1-plz|1-ort|1-land", $gefundenliste)
    $gefundenliste_1 = GUICtrlCreateListViewItem("2-telefon|2-maschinennummer|2-Typ|e-Kunde|2-strasse|2-plz|2-ort|2-land", $gefundenliste)
    GUICtrlSetOnEvent(-1, "gefundenlisteClick")
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    WEnd

    Func form_ergebnisClose()
    Exit
    EndFunc

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


    Func gefundenlisteClick()

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

    EndFunc

    [/autoit]


    Wie bekomme ich jetzt die Listbox mit meinen gefundenen Zeilen aus dem ersten Script in meine Listbox.
    Ich könnte ja

    [autoit]

    $gefundenliste_0 = GUICtrlCreateListViewItem($var1 & "|" & $var2 &"|" & ...usw. , $gefundenliste)

    [/autoit]


    programmieren. Dann für die nächste gefundene Zeile mit $gefundenliste_1 usw. weitermachen.
    Das ist aber sehr Müheselig und mit Sicherheit nicht elegant. Wie ich Autoit kenne geht das mit Sicherheit besser.
    Da ich auch nicht vorhersagen kann wieviele Zeilen mit dem gewünschten Text gefunden werden, weiss ich bei meiner Müheseligen Variante auch nicht wieviele $gefundenliste_... ich programmieren soll.

    Bin wie immer um Hilfen sehr dankbar.

    Gruß Autoirrer 8o

  • Word und Autoit

    • autoirrer
    • 10. Februar 2008 um 13:53

    Ich kenne mich recht gut mit Visual Basic aus (naja zumindest so das ich mir einiges zusammenbauen kann).
    Ich muß ehrlich gestehen das ich mittlerweile AutoIt liebe. Es ist von der Syntax her sehr einfach zu verstehen. Aber ich bin auch noch Anfänger und habe deshalb oft noch einen zu starken Bezug zu Visual Basic. Da fällt mir dann das umdenken schwer.

    Gruß Autoirrer

  • Word und Autoit

    • autoirrer
    • 10. Februar 2008 um 13:48

    Jetzt bin ich platt. ?(
    Das funktioniert. Ihr habt echt ein geniales Forum. Nach 7 Minuten hat man hier eine Lösung die funktioniert.
    Das man das SET einfach weglassen kann, hätte ich nicht gedacht. Schon fast zu einfach.
    Ich danke Dir.

    Schönen Sonntag noch.

  • Word und Autoit

    • autoirrer
    • 10. Februar 2008 um 13:36

    Moin
    Da ich Probleme habe ein Word Formular mit "Controlsend" usw auszufüllen, versuche ich jetzt die Dokumentenfelder direkt anzusprechen.
    Jetzt müsst ihr mir auf die Sprünge helfen.

    Was ich jetzt hinbekommen habe ist folgendes:
    Über diesen Code bekomme ich meine Word Datei geöffnet:

    Spoiler anzeigen
    [autoit]


    Dim $infilename
    $infilename = "C:\Dokumente und Einstellungen\test\Eigene Dateien\Blanko.doc"
    $oWord = objCreate("Word.Application")
    $oWord.Visible = 1
    $oDok = $oWord.Documents.Open($infilename)

    [/autoit]

    In Word habe ich folgendes Makro um eine Feld im Formular zu beschreiben:

    Spoiler anzeigen
    Code
    Sub ausfüllen()
    Dim fftext As FormField
    Set fftext = ActiveDocument.FormFields("Text200")
    fftext.Result = "Testeintrag"
    End Sub

    Was muß ich in AutoIt schreiben damit ich direkt über AutoIt (also ich möchte nicht das Makro in Word starten) das Feld ausfüllen kann.
    Wie bekomme ich also diese drei Zeilen in mein AutoIt?
    Dim fftext As FormField
    Set fftext = ActiveDocument.FormFields("Text200")
    fftext.Result = "Testeintrag"

    (Bin noch nicht so fit in AutoIt um das alleine rauszufinden, habe schon einige Varianten durch. Aber ich habe keine Ahnung wie ich das "Set" umsetzen soll.)
    Gruß Autoirrer

  • Excel-Tabelle in GUI-Fenster eingebettet?

    • autoirrer
    • 10. Februar 2008 um 12:44

    Also eine Tabelle öffnen und beschreiben und wieder speichern kann ich in Excel 2007.

    Ich bekomme das aber nicht in die Gui eingebaut.

    So öffne ich eine Datei, beschreibe diese und schliesse diese auch wieder. Das alles klappt wunderbar.

    Spoiler anzeigen
    [autoit]

    Dim $infilename
    $infilename = "c:\test\test.xls"
    $oExcel = objCreate("Excel.Application")
    $oExcel.Visible = 0
    $oBooks = $oExcel.Workbooks.Open($infilename)
    $oSheet = $oBooks.Worksheets(1)
    $oSheet.Range("C3").Value = "neu eintragen"
    msgbox(0,"Debug",$oSheet.Range("C3").Value)
    $oBooks.Save
    $oBooks.Saved = True
    $oBooks.Close
    $oExcel.Quit

    [/autoit]

    Was muß ich denn jetzt bei dem "OWC" in AutoIt eintragen?
    Gruß Autoirrer

  • Wie am sichersten Keys senden? Controlsend oder ...?

    • autoirrer
    • 9. Februar 2008 um 19:22

    "ControlSetText" funktioniert in Word nicht (zumindest bei mir nicht in Formularen).

    Gut die ID des Controls mit angeben das mache ich jetzt auch. Allerdings ist der ganze Bearbeitungsbereich in Word eine ID.
    Irgendwie klappt das immer noch nicht. Sporadisch wird der Text immer noch falsch eingegeben.
    Muß mir glaube wohl was anderes einfallen lassen. Zumindest bei mir klappt das mit AutoIt nicht immer.
    Trotzdem Danke für die Tips.
    Gruß Autoirrer

  • Wie am sichersten Keys senden? Controlsend oder ...?

    • autoirrer
    • 9. Februar 2008 um 17:59

    Gut teste ich mal.
    Allerding bin ich erst auf das Handle gekommen, da ich mit dem Titel die gleichen Probleme hatte.
    Wenn man die Sleeps weglässt und der Rechner ein bischen langsamer ist dann bleibt aber der gesamte Text Teilweise weg.
    Gruß Autoirrer

  • Wie am sichersten Keys senden? Controlsend oder ...?

    • autoirrer
    • 9. Februar 2008 um 17:26

    Hallo
    Habe immer wieder folgendes Problem. Ich nutze Autoit oft um in irgendwelchen Programmen etwas einzutragen das ich zuvor über AutoIt kopiert oder in einer Gui erstellt habe.
    Habe sporadisch das Problem das die Daten nicht oder nicht richtig eingetragen werden.
    Habe schon mit "Send" und "SendKeepActive" sowie "controlsend" alles mögliche getestet. Es passiert trotzdem sporadisch immer wieder.
    Ich habe mal zwei unterschiedliche Beispiele angehangen in denen ich in Word in einem Formular etwas eintrage (passiert aber auch bei anderen Programmen):

    Spoiler anzeigen
    [autoit]


    Opt("WinTitleMatchMode", 2)
    $wordeingabeverzoegerung = 100
    $mbnameanfang = "Word"
    If Not WinActive($mbnameanfang,"") Then WinActivate($mbnameanfang,"")
    WinWaitActive($mbnameanfang,"")
    $handle_Word_Montagebericht = WinGetHandle($mbnameanfang,"")
    sleep(300)
    ControlSend($handle_Word_Montagebericht,"", "","Erster Text der in Word eingegeben werden soll")
    sleep($wordeingabeverzoegerung)
    ControlSend($handle_Word_Montagebericht, "", "","{tab}")
    ControlSend($handle_Word_Montagebericht,"", "","Zweiter Text der eingegeben werden soll")
    sleep($wordeingabeverzoegerung)
    ControlSend($handle_Word_Montagebericht, "", "","{tab}")

    [/autoit]


    Bei dem oben gezeigten Beispiel habe ich das Problem das aus irgendeinem Grund sporadisch von dem Eintrag die ersten Zeichen fehlen oder sogar das bei dem ersten groß geschriebenen Wort "erster" statt "Erster" eingetragen wird.

    Mein zweiter Versuch:

    Spoiler anzeigen
    [autoit]


    Opt("WinTitleMatchMode", 2)
    $wordeingabeverzoegerung = 100
    $mbnameanfang = "Word"
    If Not WinActive($mbnameanfang,"") Then WinActivate($mbnameanfang,"")
    WinWaitActive($mbnameanfang,"")
    $handle_Word_Montagebericht = WinGetHandle($mbnameanfang,"")
    sleep(300)
    ClipPut("Erster Text der in Word eingegeben werden soll")
    ControlSend($handle_Word_Montagebericht,"", "","^v")
    sleep($wordeingabeverzoegerung)
    ControlSend($handle_Word_Montagebericht, "", "","{tab}")
    sleep($wordeingabeverzoegerung)
    ClipPut("Zweiter Text der in Word eingegeben werden soll")
    ControlSend($handle_Word_Montagebericht,"", "","^v")
    sleep($wordeingabeverzoegerung)
    ControlSend($handle_Word_Montagebericht, "", "","{tab}")

    [/autoit]


    Bei diesem Beispiel habe ich das Problem das sporadisch statt dem Text nur ein "v" eingetragen wird. Also scheinbar bekommt der PC das "String" nicht mit.

    Wie macht Ihr sowas? Gibt es noch eine ganz andere Lösung?

    Gruß Autoirrer

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™