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

Beiträge von BugFix

  • Worddatei aulesen?

    • BugFix
    • 5. April 2009 um 14:37

    Ich habe bewußt auf das Nacheinander verwiesen.
    - erst Word-Objekt erstellen
    - dann Dokument-Objekt im Word-Objekt öffnen
    - Find/Replace
    - Speichern
    - Dokument-Objekt schließen
    - Wordobjekt beenden

  • Worddatei aulesen?

    • BugFix
    • 5. April 2009 um 14:28

    Würdest du die Güte besitzen und dir ALLE Befehle im Beispiel NACHEINANDER anzuschauen?
    Dann wäre dir schnell klar, welcher Befehl das Word-Objekt erstellt. Also Bitte Lesen!

  • Binärcode

    • BugFix
    • 5. April 2009 um 14:25

    Du hast noch immer nicht gesagt, was du vor hast. Wie sollen wir dir dann helfen.

  • Bildschirm An/Aus schalten

    • BugFix
    • 5. April 2009 um 14:16

    Benutz doch mal die Hilfe, da findest du das: Bildschirm abschalten für jedermann

  • Worddatei aulesen?

    • BugFix
    • 5. April 2009 um 14:01

    Laß dir nicht alles vorkauen. :evil:
    Es gibt für den Befehl ein Hilfe-Beispiel.

  • Explorer bedienen

    • BugFix
    • 5. April 2009 um 13:40

    Wozu willst du das im Explorer machen? Das kannst du doch direkt tun. Schau mal in der Hilfe unter: Funktionsreferenz => File, Directory and Disk Management.

  • FileWrite in Word

    • BugFix
    • 5. April 2009 um 11:05

    Hier mal ein kleines Bsp., wie du das realisiertst. Die Funktionen für Save und SaveAs findest du in der Word-UDF.

    Spoiler anzeigen
    [autoit]

    Const $wdAlignParagraphLeft = 0
    Const $wdAlignParagraphCenter = 1
    Const $wdAlignParagraphRight = 2
    Const $wdAlignParagraphJustify = 3
    Const $wdAlignParagraphDistribute = 4
    Const $wdAlignParagraphJustifyMed = 5
    Const $wdAlignParagraphJustifyHi = 7
    Const $wdAlignParagraphJustifyLow = 8
    Const $wdAlignParagraphThaiJustify = 9

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

    $oWord = ObjCreate("Word.Application")
    $oWord.Visible = True
    $oDoc = $oWord.Documents.Open ('C:\Test.doc')

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

    _Test_FormatRange($oWord, $oDoc)

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

    $oDoc.Close
    $oWord.Quit

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

    Func _Test_FormatRange(ByRef $oWord, ByRef $oDoc)
    ; Bereich festlegen
    ; Range auf dritten Absatz festlegen
    Local $rng = $oDoc.Paragraphs(3).Range
    ; oder Zeichen von - bis
    ;~ Local $rng = $oDoc.Range(10,20)
    ; oder Satz 6
    ;~ Local $rng = $oDoc.Sentences(6)
    ; oder Wort 1
    ;~ Local $rng = $oDoc.Words(1)
    ; oder gemixt, in Satz 5 das 4. Wort
    ;~ Local $rng = $oDoc.Sentences(5).Words(4)

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

    ; Formatieren
    $rng.Font.Size = 14
    $rng.Font.Name = "Arial"
    $rng.Font.Color = 0x0000FF ; in BGR-Format
    $rng.Font.Bold = True

    ; Alignement zentriert
    $rng.ParagraphFormat.Alignment = $wdAlignParagraphCenter
    Sleep (1000)
    ; Alignement rechts
    $rng.ParagraphFormat.Alignment = $wdAlignParagraphRight
    Sleep (1000)
    ; Alignement links
    $rng.ParagraphFormat.Alignment = $wdAlignParagraphLeft
    Sleep (1000)
    ; Alignement Blocksatz
    $rng.ParagraphFormat.Alignment = $wdAlignParagraphJustify

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

    Sleep (1000)
    $rng.Font.Bold = False
    EndFunc

    [/autoit]
  • col1 aus einem array loeschen

    • BugFix
    • 5. April 2009 um 08:37

    Du kannst auch aus meiner UDF-Sammlung ArrayMore.au3 die Funktion _Array2DDelete(ByRef $ARRAY, $iDEL, $bCOL=False) mit True für $bCOL verwenden, dann wird die entsprechende Spalte gelöscht.

  • Worddatei aulesen?

    • BugFix
    • 5. April 2009 um 08:27
    Zitat von team2way

    irwie kommt da bei mir auch beim ausführen ein fehler


    Meinst du nicht auch, dass es hilfreich wäre, wenn du den Fehler hier postest?

    ConsoleWrite war nur zur Überprüfung drin, an dieser Stelle übergibst du halt $Inhalt an dein Edit.

    Hier nochmal kpl. kommentiert:

    [autoit]

    $oWord = ObjCreate("Word.Application") ; Word-Objekt erstellen
    $oDoc = $oWord.Documents.Open ('C:\Test.doc') ; im Word-Objekt eine Datei öffnen, gibt Dokument-Objekt zurück
    $oDoc.Range().Select ; allen Text im $oDoc als Bereich wählen (Range ohne Parameter) und markieren (Select)
    $oDoc.Range.Copy ; den jetzt markierten Bereich kopieren
    ; da du den gesamten Text auslesen möchtest kannst du auch folgendes statt Range verwenden:
    ; $oDoc.Content.Select
    ; $oDoc.Content.Copy
    $Inhalt = ClipGet() ; kopierten Text an Variable $Inhalt übergeben (hier könnte schon direkt die Übergabe an dein Edit erfolgen)
    ConsoleWrite($Inhalt & @CRLF) ; testweise Ausgabe desTextes in die Console

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

    $oDoc.Close ; Dokument schließen
    $oWord.Quit ; Word beenden <== nicht vergessen! sonst sind u.U. einige Wordinstanzen im Hintergrund offen und fressen deinen Speicher ;)

    [/autoit]
  • Worddatei aulesen?

    • BugFix
    • 5. April 2009 um 00:09

    Na dann mach es so:

    [autoit]

    $oWord = ObjCreate("Word.Application")
    $oDoc = $oWord.Documents.Open ('C:\Test.doc')
    $oDoc.Range().Select
    $oDoc.Range.Copy
    $Inhalt = ClipGet()
    ConsoleWrite($Inhalt & @CRLF)

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

    $oDoc.Close
    $oWord.Quit

    [/autoit]
  • iRC-Bot Fragen

    • BugFix
    • 4. April 2009 um 16:33

    Ich hatte das so gelöst, dass alle Aktionen des Bots, die durch mich gesteuert werden sollen, mit /notice eingeleitet werden.
    Damit der Bot "weiß", was er zu sagen hat, übergebe ich den Text innerhalb von $
    Syntax: "/notice Bot-name _FREETEXT $TEXT$"
    _FREETEXT ist dabei das Stichwort, damit der Bot weiß, dass er eine Message zu senden hat, mit _ACTION wird z.B. ein /me .. des Bots ausgelöst.
    NOTICE fragst du ab und rufst dann eine Auswertung auf

    Spoiler anzeigen
    [autoit]

    ;
    ;
    Local $sData = StringSplit($recv, @CRLF)
    For $i = 1 To $sData[0] Step 1
    Local $sTemp = StringSplit($sData[$i], " ")
    If $sTemp[1] = "" Then ContinueLoop
    If $sTemp[1] = "PING" Then _IRCPing($sock, $sTemp[2])
    If $sTemp[0] <= 2 Then ContinueLoop
    Switch $sTemp[2]
    Case 'NOTICE'
    $USER = StringTrimLeft(StringLeft($sTemp[1], StringInStr($sTemp[1], '!')-1), 1)
    $text = ''
    If $sTemp[0] > 3 Then
    For $k = 4 To $sTemp[0]
    If $k = 4 Then
    $text &= StringTrimLeft($sTemp[$k], 1) & ' '
    Else
    $text &= $sTemp[$k] & ' '
    EndIf
    Next
    $text = StringTrimRight($text, 1)
    EndIf
    _AuswertungNotiz($USER, $text)
    ;

    [/autoit]


    In der Funktion _AuswertungNotiz($USER, $text) prüfst du ob der $USER auch du selbst bist ( wer anders hat dem Bot nix zu sagen :D ) und leitest im weiteren die Reaktion des Bots ein.

    Ich habe das noch etwas umfangreicher gelöst, um eine Art KI zu erreichen. Also Reaktion auf Stichworte aus einer Vielzahl von Möglichkeiten, ohne sich zu wiederholen. Direktes Ansprechen der User etc.

  • ganz einfach aber für mich zu schwer :-(

    • BugFix
    • 4. April 2009 um 10:58

    Sag mal bitte für WELCHEN Chat es sein soll. Ich kenne eigentlich keinen, bei dem ich nicht per Messenger automatisch antworten lassen kann.
    Ausnahme: Du chattest auf einer Web-Site, aber die haben oft auch diese Funktion für Idle-Time integriert.

  • Hilfe mit Umgang der Registry

    • BugFix
    • 4. April 2009 um 10:51

    [OT]
    Micha_he:
    Wir hatten irgendwann schonmal darüber geredet, es macht wirklich Sinn (vor allem bei größeren Projekten) sich Struktogramme und Programmablaufpläne zu erstellen.
    Zum Einen sind diese völlig unabhängig von der verwendeten Programmiersprache und zum Anderen sind Logikfehler leichter zu erkennen.
    [/OT]

  • Shift "klemmt"

    • BugFix
    • 4. April 2009 um 00:33
    Zitat von Skull &amp; Bones

    dass man das machen sollte wenn oft _isPressed abgefragt wird o.ä., aber nicht wieso.

    Wenn du _IsPressed aufrufst wird per Voreinstellung die dll geöffnet, der Befehl ausgeführt und die dll geschlossen. Für eine bessere Performance empfiehlt sich bei häufigen Aufrufen:

    [autoit]

    $dll = DllOpen('deine-dll')
    _IsPressed('code', $dll)
    ;..
    _IsPressed('code', $dll)
    ;..
    ; usw.
    ; zum Programmende:
    DllClose($dll)

    [/autoit]
  • Shift "klemmt"

    • BugFix
    • 3. April 2009 um 22:53

    Aha, dann willst du also einen Hotkey bestimmen und unabhängig davon wählen ob Funktion 1 und/oder 2 und/oder 3 ausgeführt werden.
    Das klappt so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $hotkey
    $gui = GUICreate("DotA Gamesettings", 200, 100)
    Global $aCheck[3] = [ _
    GUICtrlCreateCheckbox ("-di", 10, 10, 40), _
    GUICtrlCreateCheckbox ("-water_red", 10, 30, 70), _
    GUICtrlCreateCheckbox ("-hhn", 10, 50, 40)]
    $hklabel = GUICtrlCreateLabel ( "Hotkey: STRG + SHIFT + ", 10, 73 )
    $coKey = GUICtrlCreateCombo('NO', 140, 70, 40, 20)
    $sItem = ''
    For $i = 48 To 90
    If $i = 58 Then $i = 65
    $sItem &= Chr($i) & '|'
    Next
    GUICtrlSetData($coKey, StringTrimRight($sItem, 1), 'NO')
    $btSet = GUICtrlCreateButton('Set', 140, 10, 40, 20)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btSet
    $hk = GUICtrlRead($coKey)
    If $hk <> 'NO' Then
    $hotkey = $hk
    HotKeySet("^+" & $hotkey, 'currentHK')
    Else ; wenn "NO" gewählt wurde, wird der Hotkey zurückgesetzt (deaktiviert)
    HotKeySet("^+" & $hotkey)
    EndIf
    EndSwitch
    WEnd

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

    Func currentHK()
    For $i = 0 To UBound($aCheck) -1
    If BitAND(GUICtrlRead($aCheck[$i]), $GUI_CHECKED) Then
    Call(StringTrimLeft(ControlGetText($gui, '', $aCheck[$i]), 1))
    EndIf
    Next
    EndFunc

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

    Func di()
    MsgBox(0, '', 'Func di')
    ;~ Send("{ENTER}-di{ENTER}")
    EndFunc

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

    Func water_red()
    MsgBox(0, '', 'Func water_red')
    ;~ Send("{ENTER}-water red{ENTER}")
    EndFunc

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

    Func hhn()
    MsgBox(0, '', 'Func hhn')
    ;~ Send("{ENTER}-hhn{ENTER}")
    EndFunc

    [/autoit]
  • Links auf Forenbeiträge

    • BugFix
    • 3. April 2009 um 21:45

    Hi,
    mir ist aufgefallen, dass häufig (besonders in der Shoutbox) Fehler beim Verlinken auf Beiträge im Forum gemacht werden.
    Es wird einfach aus der Adressleiste des Browsers kopiert. Nur damit kann man nix anfangen. Dieser Link enthält die ID des angemeldeten Users. Da diese für andere nicht zutrifft, hat man beim Wechsel auf den Link, den Besucherstatus und kann nicht antworten.
    Deshalb folgende Bitte:
    Immer den Permalink verwenden, diesen findet ihr durch Rechtsklick auf die Post-Nummer:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • Uhrzeit abgleich

    • BugFix
    • 3. April 2009 um 20:49

    Du kannst eines machen:
    Gehe einfach vom aktuellen Datum/Zeit aus.
    - Alle angegebenen Zeiten müssen demzufolge später als das JETZT sein.
    - Ist die Zeit kleiner, muß sie für den Folgetag sein

    :D - Ich seh grad, der Micha hatte noch ein Edit, mit demselben Vorschlag. Na gut, doppelt hält besser. ;)

  • Alle prozesse killn --> bluescreen

    • BugFix
    • 3. April 2009 um 20:37

    Ich verwende "5down" - da kannst du etliche Parameter mitgeben und auch einen sicheren Abschuß von "sich sperrenden" Programmen erzwingen.

  • Shift "klemmt"

    • BugFix
    • 3. April 2009 um 19:26

    Hi,
    ich hab es dir mal kpl. umgestrickt. Für HotKeys sollte man schon die HotKey-Funktion benutzen. ;)
    Da alle HK mit STRG+SHIFT anfangen, habe ich die anderen Ziffern/Zahlen in einer Combo bereitgestellt.
    Wähle ein Radio, einen HK und mit dem Button Set wird der HK aktiviert.
    Der zugehörige Buchstabe wird daneben angezeigt.
    Mit Auswahl von "NO" und "Set" wird der HotKey deaktiviert.
    Wichtig: Die Bezeichnung der Radios muß identisch sein mit den Funktionen für das HotKey (das führende - stört nicht, wird abgeschnitten).

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    $gui = GUICreate("DotA Gamesettings", 200, 100)
    Global $aRadio[3][3] = [ _
    [GUICtrlCreateRadio ("-di", 10, 10, 40),'',GUICtrlCreateLabel('', 90, 13, 20, 17)], _
    [GUICtrlCreateRadio ("-water_red", 10, 30, 70),'',GUICtrlCreateLabel('', 90, 33, 20, 17)], _
    [GUICtrlCreateRadio ("-hhn", 10, 50, 40),'',GUICtrlCreateLabel('', 90, 53, 20, 17)]]
    GUICtrlSetState($aRadio[0][0], $GUI_CHECKED)
    $hklabel = GUICtrlCreateLabel ( "Hotkey: STRG + SHIFT + ", 10, 73 )
    $coKey = GUICtrlCreateCombo('NO', 140, 70, 40, 20)
    $sItem = ''
    For $i = 48 To 90
    If $i = 58 Then $i = 65
    $sItem &= Chr($i) & '|'
    Next
    GUICtrlSetData($coKey, StringTrimRight($sItem, 1), 'NO')
    $btSet = GUICtrlCreateButton('Set', 140, 10, 40, 20)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btSet
    $hk = GUICtrlRead($coKey)
    For $i = 0 To UBound($aRadio) -1
    If BitAND(GUICtrlRead($aRadio[$i][0]), $GUI_CHECKED) Then
    If $hk <> 'NO'Then
    $aRadio[$i][1] = $hk
    HotKeySet("^+" & $hk, StringTrimLeft(ControlGetText($gui, '', $aRadio[$i][0]), 1))
    GUICtrlSetData($aRadio[$i][2], $hk)
    Else ; wenn "NO" gewählt wurde, wird der Hotkey zurückgesetzt (deaktiviert)
    HotKeySet("^+" & $aRadio[$i][1])
    GUICtrlSetData($aRadio[$i][2], '')
    EndIf
    ExitLoop
    EndIf
    Next
    EndSwitch
    WEnd

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

    Func di()
    MsgBox(0, '', 'Func di')
    ;~ Send("{ENTER}-di{ENTER}")
    EndFunc

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

    Func water_red()
    MsgBox(0, '', 'Func water_red')
    ;~ Send("{ENTER}-water red{ENTER}")
    EndFunc

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

    Func hhn()
    MsgBox(0, '', 'Func hhn')
    ;~ Send("{ENTER}-hhn{ENTER}")
    EndFunc

    [/autoit]
  • µit Light Thread

    • BugFix
    • 2. April 2009 um 17:52
    Zitat von MatthiasG.

    Aber es ist doch eine Intention, die von ihm aus geht. Ich meine, er kann doch selbst entscheiden, was er macht.


    Ich denke, es dürfte wohl nicht all zu abwegig sein, dass für Aktionen in einem Forum dessen Betreiber zuständig ist... ;)

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™