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

Beiträge von Floops

  • Hilfe bei _Ispressed einzelne und auch mehrere Tasten gedrückt // Motorsteuerung

    • Floops
    • 12. Januar 2018 um 11:01

    Gibt bestimmt elegantere Lösungen aber guck mal ob dir das weiterhilft .

    AutoIt
    #include <Misc.au3>
    
    $ptzdown = "down"
    $ptzup = "up"
    $ptzright = "right"
    $ptzleft = "left"
    $ptzdownright = "downright"
    $ptzdownleft = "downleft"
    $ptzupright = "upright"
    $ptzupleft = "upleft"
    
    While 1
        If _IsPressed(57) OR _IsPressed(53) OR _IsPressed(41) OR _IsPressed(44) then
    
            $ptz = ""
            _tasten_abfragen()
    
            ConsoleWrite($ptz & " gedrückt" & @CRLF)
            while _tasten_abfragen()
                ConsoleWrite("aktuell: " & $ptz & @CRLF)
                sleep(50)
            wend
            ConsoleWrite($ptz & " losgelassen" & @CRLF)
    
        EndIf
    WEnd
    
    Func _tasten_abfragen()
        $iDown = False
        $iUp = False
        $iLeft = False
        $iRight = False
    
        If _IsPressed(57) Then $iDown = True
        If _IsPressed(53) Then $iUp = True
        If _IsPressed(41) Then $iLeft = True
        If _IsPressed(44) Then $iRight = True
    
        If $iDown Then $ptz = $ptzdown
        If $iUp Then $ptz = $ptzup
        If $iLeft Then $ptz = $ptzleft
        If $iRight Then $ptz = $ptzright
    
        If $iDown And $iLeft Then $ptz = $ptzdownleft
        If $iDown And $iRight Then $ptz = $ptzdownright
        If $iUp And $iLeft Then $ptz = $ptzupleft
        If $iUp And $iRight Then $ptz = $ptzupright
    
        If Not _IsPressed(57) And Not _IsPressed(53) And Not _IsPressed(41) And Not _IsPressed(44) Then
            Return False
        Else
            Return True
        EndIf
    EndFunc
    Alles anzeigen
  • Datum in Excel formatieren

    • Floops
    • 6. November 2017 um 14:52

    Meinst du so hier?

    AutoIt
    $sTest = "20170829"
    $sPattern = "(\d{4})(\d{2})(\d{2})"
    
    $sReturn = StringRegExpReplace($sTest, $sPattern, "\1.\2.\3")
    ConsoleWrite($sReturn & @CRLF)
  • reguläre Suche nach Zahlen und Zahlen in Worte umwandeln

    • Floops
    • 10. Oktober 2017 um 16:15

    Zu (1), guck mal ob das ungefähr deinen Vorstellungen entspricht.

    AutoIt
    #include <Array.au3>
    #include <StringConstants.au3>
    
    $sTest = "Omega.6.Fettsäuren und 12 Äpfel sowie .57946. Bananen und -33- Kiwis"
    $sPattern = '[\s\.](\d+)[\s\.]'
    
    $aMatches = StringRegExp($sTest, $sPattern, $STR_REGEXPARRAYGLOBALMATCH)
    _ArrayDisplay($aMatches)
  • Frage zur GUI

    • Floops
    • 27. September 2017 um 14:31

    Aus der Hilfe zu GUIRegisterMsg():

    Zitat

    Warning: blocking of running user functions which executes window messages with commands such as "MsgBox()" can lead to unexpected behavior, the return to the system should be as fast as possible !!!

    Es eignet sich bei sowas einfach eine Boolean-Variable zu benutzen und diese in der Hauptschleife abzufragen. Sobald sich die Variable ändert ruft man dann die Funktion auf.

    AutoIt
    Global $bListViewClicked = False ; BOOLEAN GLOBAL DEKLARIEREN UND AUF FALSE SETZEN!
    AutoIt
    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
        #forceref $hWnd, $iMsg, $iwParam
        Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTab, $iTab
        $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
        $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
        $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
        $iCode = DllStructGetData($tNMHDR, "Code")
        Switch $hWndFrom
            Case GUICtrlGetHandle($List2)
                Switch $iCode
                    Case $NM_CLICK
                        $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
                        If DllStructGetData($tInfo, "Index")<>-1 Then _
                            $id = _GUICtrlListView_GetItemText($List2,DllStructGetData($tInfo, "Index"),0)
                            $bListViewClicked = True ; HIER DEN BOOLEAN AUF TRUE SETZEN!
                EndSwitch
        EndSwitch
         Return $GUI_RUNDEFMSG
    EndFunc   ;==>WM_NOTIFY
    Alles anzeigen
    AutoIt
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                GuiDelete($hArtikelGui)
            ExitLoop
        EndSwitch
        if $bListViewClicked = True Then ; HIER DEN BOOLEAN ABFRAGEN!
            $bListViewClicked = False ; BOOLEAN ZURÜCKSETZEN!
            artikel_anzeigen_nachID() ; FUNKTION AUFRUFEN!
        EndIf
    WEnd
    Alles anzeigen
  • ArrayBinarySearch mit Regex

    • Floops
    • 25. August 2017 um 08:15
    AutoIt
    $sTestString = "IchBin.test ein Feld"
    StringRegExp($sTestString, "^IchBin\..+")

    Probier es mal so. Bin zwar kein RegEx-Experte, aber sollte funktionieren.

  • ShellExecute: Fehler beim Öffnen einer PDF

    • Floops
    • 18. Juli 2017 um 11:01
    Zitat von autoiter

    @Floops
    Das @SW_HIDE sollte er aber wohl weglassen, oder? ;)

    Das Macro hat (zumindest bei mir) keinerlei Einfluss auf den Adobe Reader, sondern nur auf das cmd-Fenster selbst.

    Zitat von mumpel

    Damit funktioniert es garnicht, weder in AutoIt noch kompiliert. Ich sehe nur dass da kurz ein kleines Fenster (das wird die Kommandokonsole, cmd, sein) aufgeht und gleich wieder verschwindet.

    Schade, bei mir funktioniert es einwandfrei, benutze aber auch Windows 7.

  • ShellExecute: Fehler beim Öffnen einer PDF

    • Floops
    • 18. Juli 2017 um 06:50

    Alternativ vielleicht so?

    AutoIt
    $sAnleitung = @ScriptDir & "\Anleitung\Deutsch.pdf"
    Run(@ComSpec & ' /c ' & $sAnleitung, @ScriptDir, @SW_HIDE)
  • OutlookEX - Outlook status auslesen

    • Floops
    • 5. Juli 2017 um 10:14
    AutoIt
    Func _OL_status()
    
    
    	$olApp = ObjGet("", "Outlook.Application")
    	If @error Then
    		$olApp = ObjCreate("", "Outlook.Application")
    	EndIf
    
    	If IsObj($olApp) Then
    		$olNameSpace = $olApp.GetNamespace("MAPI")
    		$status = $olNameSpace.ExchangeConnectionMode
    		Return $status
    	Else
    		Return -1
    	EndIf
    
    
    EndFunc
    Alles anzeigen

    Das habe ich mal so für ein Projekt benutzt.

  • Programm bei Mausbewegung sofort beenden

    • Floops
    • 2. Juni 2017 um 08:29
    Zitat von autoiter

    Hallo @BLinz,
    Oscars Vorschlag sticht sicher. Aber ich frage mich, ob du nicht einfach statt per Mausbewegung in Schleife eine Taste drücken kannst (F2 oder eine der diversen Funktions-/Sondertasten auf die bei dir nichts reagiert). Dann wäre die Mausbewegung als Identifikation wieder eindeutig.


    Das halte ich auch für eine bessere Lösung. Ich würde als Tasten entweder Scroll-Lock oder Pause vorschlagen.

  • Schließen einer "ge - run() - ten" Anwendung deaktivieren

    • Floops
    • 30. Mai 2017 um 14:19
    AutoIt
    #include <GuiMenu.au3>
    
    
    HotKeySet("!{F4}", "_alt_f4")
    HotKeySet("{ESC}", "_exit")
    
    
    Run("Notepad")
    WinWait("Unbenannt - Editor")
    
    
    $handle = WinGetHandle("Unbenannt - Editor")
    
    
    DisableButton($handle, $SC_CLOSE)
    
    
    
    
    While 1
    	Sleep(50)
    WEnd
    
    
    Func DisableButton($hWnd, $iButton)
    	$hSysMenu = _GUICtrlMenu_GetSystemMenu($hWnd, 0)
    	_GUICtrlMenu_RemoveMenu($hSysMenu, $iButton, False)
    	_GUICtrlMenu_DrawMenuBar($hWnd)
    
    
    EndFunc
    
    
    Func EnableButton($hWnd, $iButton)
    	$hSysMenu = _GUICtrlMenu_GetSystemMenu($hWnd, 1)
    	_GUICtrlMenu_RemoveMenu($hSysMenu, $iButton, False)
    	_GUICtrlMenu_DrawMenuBar($hWnd)
    EndFunc
    
    
    Func _alt_f4()
    	; blockiert
    EndFunc
    
    
    Func _exit()
    	WinClose("Unbenannt - Editor")
    	Exit
    EndFunc
    Alles anzeigen

    Probier mal aus ob das mit Acrobat geht, mit Notepad klappt es bei mir.

    Quelle

  • MsgBox Text in Farben darstellen

    • Floops
    • 12. Mai 2017 um 07:44

    Soweit ich weiß geht das mit der Standard-MsgBox nicht. Du kannst dir aber mal die UDF Extended Message Box anschauen. Link

  • Word Tabelle formatieren

    • Floops
    • 11. Mai 2017 um 15:27

    Also mit einer AutoIt Funktion geht das meines Wissens nach nicht, allerdings gibt _Word_DocTableWrite ein Table-Objekt zurück, welches du ansprechen kannst.

    AutoIt
    $oTable = _Word_DocTableWrite($oRange, $asArray, 0)
    $oTable.Borders.Enable = True

    Sowas kannst du beispielsweise benutzen um der Tabelle einen Rahmen zu geben. Da ich mich aber leider mit den ganzen Methoden und Eigenschaften nicht auskenne kann ich darüber hinaus nicht viel weiter helfen.

    Hier hast du aber den msdn Link, vielleicht wirst du ja schlau draus. :D

  • cmd Dateien nacheinander starten

    • Floops
    • 10. Mai 2017 um 09:40

    Schau dir mal die Funktionen RunWait bzw ShellExecuteWait an.

  • GUICTRLSetOnEvent welcher Menübutton wurde gedrückt?

    • Floops
    • 9. Mai 2017 um 08:00

    Wusste ich doch, dass es auch eine elegantere Lösung geben muss.

    Vielen Dank @Oscar, mal wieder was gelernt! :thumbup:

  • GUICTRLSetOnEvent welcher Menübutton wurde gedrückt?

    • Floops
    • 9. Mai 2017 um 07:39

    So hier vielleicht?

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)
    $GUI = GUICreate("TEST", 300,300)
    $Menu_Tools = GUICtrlCreateMenu("Tools")
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_EXIT")
    Local $aTools[4][3]
    for $i = 1 to ubound($aTools)-1
    	$aTools[$i][0] = "Tool " & $i
     	$aTools[$i][1] = "Pfad zur Exe"
    	$aTools[$i][2] =  GUICtrlCreateMenuItem($aTools[$i][0], $Menu_Tools)
    	GUICTRLSetOnEvent(-1,"_Test" & $i)
    Next
    
    
    While 1
    	sleep(50)
    WEnd
    
    
    Func _exit()
    	Exit
    EndFunc
    
    
    func _Test1()
    	msgbox(0,"","1")
    endfunc
    
    
    func _Test2()
    	msgbox(0,"","2")
    endfunc
    
    
    func _Test3()
    	msgbox(0,"","3")
    endfunc
    Alles anzeigen

    Das ist keine wirklich schöne Lösung, falls jemand eine bessere kennt würde mich das sehr interessieren.

  • Object Fehlermeldung

    • Floops
    • 12. April 2017 um 16:02

    Wow, hätte nicht gedacht, dass die Lösung so einfach ist. Nicht schlecht @autoiter :D

  • WinWait Funktion: Welcher Teil des Titels wird ausgelesen?

    • Floops
    • 12. April 2017 um 14:06

    Wenn du den Titel so genau angibst dürfte das kein Problem sein.

    Wenn du

    AutoIt
    WinWait("Arbeitsplatzaktualisierung", "", 1800)

    benutzen würdest, würde die Funktion auf beide Fenster reagieren.

  • _FileWriteFromArray komisches verhalten

    • Floops
    • 12. April 2017 um 10:41

    Probier mal

    AutoIt
    $handle = FileOpen(_PathFull(@ScriptDir & "\output.csv"), BitOR($FO_ANSI, $FO_OVERWRITE))
  • StringInsert Wie führt man 2 Strings zusammen?

    • Floops
    • 6. April 2017 um 15:30

    Du musst den Rückgabewert der Funktion einer Variablen übermitteln.

    AutoIt
    Local $sString1 = " Hello "
    Local $sString2 = " World "
    
    
    Local $sString3 = _StringInsert($sString1, $sString2, StringLen($sString1))
    ConsoleWrite ($sString3)


    Du kannst es auch wie folgt machen, aber erstens wird das schnell unübersichtlich und zweitens kann man den neuen Wert so nicht wirklich weiterverarbeiten.

    AutoIt
    ConsoleWrite(_StringInsert($sString1, $sString2, StringLen($sString1)))
  • GuiCtrlsetdata Problem

    • Floops
    • 1. April 2017 um 12:35

    Probier es mal mit

    AutoIt
    GUICtrlSetData($date,"2017/03/30")

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™