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

Beiträge von funkey

  • Auto Musik spielt meine Playlist nicht ab....

    • funkey
    • 12. September 2011 um 19:12

    Auf die schnelle sehe ich nur, dass FileOpen und _FileCountLines falsch verwendet sind. _FileCountLines verlangt immer den Pfad und nicht das AutoIt-interne Handle.

  • _selfdelete ... löschen des autoitscripts nach beendigung (modifizierung)

    • funkey
    • 12. September 2011 um 16:34

    Davon gibt es tausende Funktionen. Einige mit bat-Datei einige ohne, deine hat jetzt einen Loop mit drinnen und kann mehrere Dateien löschen.
    Die kann man dann ja auch direkt mit FileDelete löschen und man hat eine Rückmeldung, ob es funktioniert hat.

    @TempDir hat keinen abschließenden Backslash, also wird die temporäre Datei falsch angelegt.
    Das Array-Include braucht man auch nicht, man kann ja einfach bei 1 anfangen zu zählen, oder bei StringSplit noch einen Parameter hinzufügen.
    Und sehe ich das richtig, das wenn die Datei gesperrt ist (sich nicht löschen lässt), dass dann die Batch-Datei hängt.

    Zu meiner Verteidigung: Getestet habe ich nichts.
    :D

  • Aloha

    • funkey
    • 12. September 2011 um 16:19

    Herzlich Willkommen hier im Forum!
    Bei deinen Vorkenntnissen wirst du schnell gute Erfolge mit AutoIt erzielen, und auch bald anderen damit und bei anderen Dingen helfen können.
    Auf gute Zusammenarbeit.

  • Checkbox mit Combibox oder dropdown list

    • funkey
    • 8. September 2011 um 14:15

    Ich habe die Fage so verstanden, dass ich sagen muss das es nicht sooo einfach funktioniert.

    Hier mein Lösungsvorschlag

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    Global $hGui = GUICreate("ComboBox with checkboxes", 300, 300)
    GUIRegisterMsg(0x111, "_WM_COMMAND")

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

    Global $hCombo = GUICtrlCreateCombo("Choose option", 10, 10, 100, 0, 0x3)

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

    Global $hMenu = GUICtrlCreateContextMenu(GUICtrlCreateDummy())
    Global $nOpt1 = GUICtrlCreateMenuItem("Option1", $hMenu, -1, 1)
    GUICtrlSetState(-1, $GUI_CHECKED)
    Global $nOpt2 = GUICtrlCreateMenuItem("Option2", $hMenu, -1, 1)
    Global $nOpt3 = GUICtrlCreateMenuItem("Option3", $hMenu, -1, 1)
    GUICtrlCreateMenuItem("", $hMenu)
    Global $nOpt4 = GUICtrlCreateMenuItem("Option4", $hMenu, -1, 0)
    GUICtrlSetState(-1, $GUI_CHECKED)
    Global $nOpt5 = GUICtrlCreateMenuItem("Option5", $hMenu, -1, 0)
    Global $nOpt6 = GUICtrlCreateMenuItem("Option6", $hMenu, -1, 0)

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

    GUISetState()

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

    Sleep(1000)

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

    Local $msg
    Do
    $msg = GUIGetMsg()
    Switch $msg
    Case $nOpt4 To $nOpt6
    If BitAND(GUICtrlRead($msg), $GUI_CHECKED) = $GUI_CHECKED Then
    GUICtrlSetState($msg, $GUI_UNCHECKED)
    Else
    GUICtrlSetState($msg, $GUI_CHECKED)
    EndIf
    EndSwitch
    Until $msg = -3

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

    Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0x0000FFFF)

    If $nID = $hCombo And $nNotifyCode = 7 Then
    GUICtrlSendMsg($hCombo, 335, 1, 0)
    ShowMenu($hGui, $hCombo, $hMenu)
    GUICtrlSendMsg($hCombo, 335, 1, 0)
    EndIf

    Return "GUI_RUNDEFMSG"
    EndFunc ;==>MY_WM_COMMAND

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

    ; Show a menu in a given GUI window which belongs to a given GUI ctrl
    Func ShowMenu($hWnd, $CtrlID, $nContextID)
    Local $arPos, $x, $y
    Local $hMenu = GUICtrlGetHandle($nContextID)

    $arPos = ControlGetPos($hWnd, "", $CtrlID)

    $x = $arPos[0]
    $y = $arPos[1] + $arPos[3]

    ClientToScreen($hWnd, $x, $y)
    TrackPopupMenu($hWnd, $hMenu, $x, $y)
    EndFunc ;==>ShowMenu

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

    ; Convert the client (GUI) coordinates to screen (desktop) coordinates
    Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
    Local $stPoint = DllStructCreate("int;int")

    DllStructSetData($stPoint, 1, $x)
    DllStructSetData($stPoint, 2, $y)

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

    DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPoint))

    $x = DllStructGetData($stPoint, 1)
    $y = DllStructGetData($stPoint, 2)
    ; release Struct not really needed as it is a local
    $stPoint = 0
    EndFunc ;==>ClientToScreen

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

    ; Show at the given coordinates (x, y) the popup menu (hMenu) which belongs to a given GUI window (hWnd)
    Func TrackPopupMenu($hWnd, $hMenu, $x, $y)
    DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", $hMenu, "int", 0, "int", $x, "int", $y, "hwnd", $hWnd, "ptr", 0)
    EndFunc ;==>TrackPopupMenu

    [/autoit]
  • LibNoDave-UDF zur Kommunikation mit Simatic SPS

    • funkey
    • 8. September 2011 um 10:51

    Diese Variabllen werden ByRef übergeben. Deswegen werden sie nicht initialisiert, sie werden aber für die meisten Funktionen benötigt.

  • _GuiCtrlSetFont

    • funkey
    • 6. September 2011 um 15:02

    Hab gerade beim Basteln mit C was nettes herausgefunden.
    Positionierung ist etwas schwierig, aber das braucht man ja auch nicht oft.

    Spoiler anzeigen
    [autoit]

    #Region _GuiCtrlSetFont.au3
    ;Copyrights to funkey !!

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

    #include <WinAPI.au3>

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

    OnAutoItExitRegister("_FontCleanUp")
    Global $ahFontEx[1] = [0]

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

    Func _GuiCtrlSetFont($controlID, $size, $weight = 400, $attribute = 0, $rotation = 0, $fontname= "", $quality = 2)
    Local $fdwItalic = BitAND($attribute, 1)
    Local $fdwUnderline = BitAND($attribute, 2)
    Local $fdwStrikeOut = BitAND($attribute, 4)

    ReDim $ahFontEx[UBound($ahFontEx) + 1]
    $ahFontEx[0] += 1

    $ahFontEx[$ahFontEx[0]] = _WinAPI_CreateFont($size, 0, $rotation * 10, $rotation, $weight, _
    $fdwItalic, $fdwUnderline, $fdwStrikeOut, -1, 0, 0, $quality, 0, $fontname)

    GUICtrlSendMsg($controlID, 48, $ahFontEx[$ahFontEx[0]], 1)
    EndFunc

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

    Func _FontCleanUp()
    For $i = 1 To $ahFontEx[0]
    _WinAPI_DeleteObject($ahFontEx[$i])
    Next
    EndFunc
    #EndRegion

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

    Global $hGui1 = GuiCreate("AutoIt Main-GUI", 300, 340, 100, 100, -1, 0);

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

    For $i = 0 To 350 Step 30
    GUICtrlCreateLabel("Das ist ein Text", 50, 0, 300, 220, 0x201)
    _GuiCtrlSetFont(-1, 15, 1000, 1, $i)
    GUICtrlSetBkColor(-1, -2)
    Next

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

    GUICtrlCreateLabel("Das ist ein vertikaler Text", 10, 30,200, 200, 0x001)
    _GuiCtrlSetFont(-1, 15, 400, 1, -90)
    GUICtrlSetBkColor(-1, -2)
    GUICtrlCreateLabel("Das auch!!", 130, 50, 200, 200, 0x202)
    _GuiCtrlSetFont(-1, 15, 400, 1, 90)
    GUICtrlSetBkColor(-1, -2)

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

    GuiCtrlCreateButton("Button mit schrägem Text", 10, 220, 275, 60, 0x0800);
    _GuiCtrlSetFont(-1, 20, 1000, 1, 8)

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

    GuiCtrlCreateCombo("Hallo", 10, 290, 275, 80, 0x3, -1);
    _GuiCtrlSetFont(-1, 15, 1000, 1, -3)
    GUICtrlSetData(-1, "Eintrag2|Eintrag3")

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

    GuiSetState(@SW_SHOW, $hGui1);

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

    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • LibNoDave-UDF zur Kommunikation mit Simatic SPS

    • funkey
    • 6. September 2011 um 10:34

    Ich habe die Demo nicht mehr weiterentwickelt, sondern nur die UDF. Deswegen kommt es zu Fehlern.

  • AutoIt3 Compiler/Parser

    • funkey
    • 2. September 2011 um 16:06

    Die Ini-Funktionen sind ganz leicht und auch aus dem alten AutoIt-Quelltext herauszulesen. Die API-Funktionen dazu heißen GetPrivateProfileString und WritePrivateProfileString. Auch die meisten anderen Funktionen sind kein Problem.

    Das Problem ist wirklich der Parser selbst, wie z.B. macht man den Unterschied zw. Messege-Mode und OnEvent-Mode oder in AutoIt können in jeder Funktion globale Variablen erstellt werden und nicht nur außerhalb von Funktionen, usw..

  • AutoIt3 Compiler/Parser

    • funkey
    • 1. September 2011 um 15:30

    Von C# halte ich ja nicht soviel :D .
    Ich habe schon ein paar Funktionen für mich in C (ohne ++) übersetzt und programmiere einfache Sachen einfach damit.

    Spoiler anzeigen
    Code
    int ControlClick(LPCSTR Title, LPCSTR strClassNN);
    int ControlClickText(LPCSTR Title, LPCSTR strClass, LPCSTR strText);int ControlSetText(LPCSTR Title, LPCSTR strClassNN, LPCSTR newText);
    int ControlGetText(LPCSTR Title, LPCSTR strClassNN, char* sText);
    
    
    int Run(LPSTR szRun);
    
    
    int GuiCreateClass(LPCSTR ClassName, WNDPROC WndProc);
    HWND GuiCreate(LPCSTR Title, int iW, int iH, int iX, int iY);
    int GuiSetState(int flag, HWND hwnd);
    
    
    HWND GuiCtrlCreateButton(LPCSTR text, int left, int top, int width, int height, int style, int exstyle);
    HWND GuiCtrlCreateList(LPCSTR text, int left, int top, int width, int height, int style, int exstyle);
    
    
    int WinWait(LPCSTR Title, int TimeOut);
    int WinWaitActive(LPCSTR Title, int TimeOut);
    int WinWaitNotActive(LPCSTR Title, int TimeOut);
    int WinWaitClose(LPCSTR Title, int TimeOut);
    
    
    BOOL WinExists(LPCSTR Title);
    BOOL WinActive(LPCSTR Title);
    BOOL WinActivate(LPCSTR Title);
    BOOL WinClose(LPCSTR Title);
    BOOL WinSetTitle(LPCSTR Title, LPCSTR NewTitle);
    BOOL WinSetOnTop(LPCSTR Title, int OnOff);
    
    
    void IniRead(const char* FileName, const char* Section, const char* Key, const char* Default, char* Result);
    void IniWrite(const char* FileName, const char* Section, const char* Key, const char* Value);
    void IniDelete(const char* FileName, const char* Section, const char* Key);
    
    
    void MouseMove(int x, int y);
    int MouseClick(int x, int y, LPCSTR Button);
    void ConsoleWrite(char* sText);
    
    
    HWND WinGetHandle(LPCSTR WinTitle);
    HWND ControlGetHandle(HWND hwnd,LPCSTR ClassNameNN);
    Alles anzeigen


    TheShadowAE hat auch schon einige Funktionen mit C++ erstellt.
    Funktionssammlung, Autoit ähnlich [ISMS]

  • ControlClick auf Button

    • funkey
    • 31. August 2011 um 20:13

    Wie sieht es damit aus?

    Spoiler anzeigen
    [autoit]

    $TextDeutsch = "Ist es das, was du willst?"
    $TextEnglish = _GoogleTranslate($TextDeutsch)
    _GoogleSpeakEnglish($TextEnglish)

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

    Func _GoogleSpeakEnglish($sText)
    InetGet("http://translate.google.com/translate_tts?q=" & $sText, @TempDir & "\tempspeech.mp3", 1)
    SoundPlay(@TempDir & "\tempspeech.mp3", 1)
    FileDelete(@TempDir & "\tempspeech.mp3")
    EndFunc

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

    Func _GoogleTranslate($sText, $sFrom = "de", $sTo = "en")
    Local Const $FileName = "Translation.jsn"
    Local Const $Pattern = '"translatedText":"([^"]+)"'
    Local $GoogleURL = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=%s&langpair=%s%%7C%s"
    Local $File

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

    $GoogleURL = StringFormat($GoogleURL, $sText, $sFrom, $sTo)

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

    If Not InetGet($GoogleURL, $FileName, 1) Then Return SetError(1, 0, 0)

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

    $File = FileOpen($FileName, 4)
    FileGetSize($FileName)
    $Translation = FileRead($File, FileGetSize($FileName))
    FileClose($File)
    FileDelete($FileName)

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

    $Translation = BinaryToString($Translation, 4)

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

    If StringRegExp($Translation , $Pattern) Then
    $Translation = StringRegExp($Translation , $Pattern, 1)
    $Translation = $Translation[0]

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

    Return $Translation
    EndIf
    EndFunc

    [/autoit]
  • ControlClick auf Button

    • funkey
    • 31. August 2011 um 17:58

    Das geht nicht mit ControlClick, dazu benötigst du die IE.au3.

    Schau dir mal das an:
    _IEAction($oLink, "click")
    _IELinkClickByText

  • mehrere Label/Buttons etc bekommen alle die gleiche Schriftart?

    • funkey
    • 31. August 2011 um 15:23

    Ich glaube das zielt auf "GUISetFont()" hin.

  • _IELinkGetCollection

    • funkey
    • 30. August 2011 um 22:57

    Hab's nicht getestet, aber das ist sicher falsch:

    [autoit]

    For $oLinks In $oLinks

    [/autoit]


    und das

    [autoit]

    For $oLinks1 In $oLinks1

    [/autoit]

    Wenn dann

    [autoit]

    For $oLink In $oLinks

    [/autoit]
    Code
    Für einen Link aus den Links
  • Ersetzen von Zeichen in einer InputBox

    • funkey
    • 30. August 2011 um 22:12

    Entweder nachher ersetzen:

    [autoit]

    Local $IP_1 = "127,0,0,1"
    Local $IP_2 = StringReplace($IP_1, ",", ".")
    ConsoleWrite($IP_2 & @CRLF)

    [/autoit]

    oder vorübergehend einen HotKey setzen.

    [autoit]

    HotKeySet("{NUMPADDOT}", "_SendPunkt")
    HotKeySet("{ESC}", "_Exit")

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

    While 1
    Sleep(20000)
    WEnd

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

    Func _SendPunkt()
    Send(".")
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • Hilfe bei button mit run

    • funkey
    • 30. August 2011 um 14:57

    Du suchst "ShellExecute()"

  • Programme in GUI einbinden

    • funkey
    • 27. August 2011 um 12:27

    Eukalyptus hatte da mal was gemacht:
    [ offen ] Programm.exe in einem AutoIt fenster ausführen

  • Mousemove

    • funkey
    • 26. August 2011 um 13:17

    Windows hat doch schon eine Tastaturmaus dabei. Da kann man mit Strg beschleunigen, mit Shift verlangsamen und die Beschleunigung einstellen.

    Aber ansonsten nett genacht.

  • Umwandeln / Einlesen zweier Strings die dann als 'Uhrzeit' weiterverarbeitet werden können

    • funkey
    • 25. August 2011 um 11:45

    Du hast recht. Hab in der Eile einen Schlampigkeitsfehler gemacht.
    Wenn alles klar ist, dann bitte den Thread auf gelöst stellen. Danke.

  • Umwandeln / Einlesen zweier Strings die dann als 'Uhrzeit' weiterverarbeitet werden können

    • funkey
    • 25. August 2011 um 10:59

    Die restlichen Monate musst du noch selber machen.

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>

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

    Local $Start = "Wed Aug 17 16:05:37 2011"
    Local $Stop = "Wed Aug 17 16:07:12 2011"

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

    Local $x = "Dauer: " & _DateDiff( 's',_YourTimeStamp($Start), _YourTimeStamp($Stop)) & " [sec]"
    ConsoleWrite($x & @CRLF)

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

    Func _YourTimeStamp($sTimeStamp)
    Local $aTimeStamp = StringSplit($sTimeStamp, " :", 2)
    Local $sMon = ""
    Switch $aTimeStamp[1]
    Case "Jan"
    $sMon = "01"
    Case "Aug"
    $sMon = "08"
    EndSwitch
    Return StringFormat("%s/%s/%s %s:%s:%s", $aTimeStamp[6], $sMon, $aTimeStamp[2], $aTimeStamp[2], $aTimeStamp[4], $aTimeStamp[5])
    EndFunc

    [/autoit]
  • [Project Bombing] - Feedback gesucht

    • funkey
    • 25. August 2011 um 06:17

    Herzlich willkommen hier im Forum.

    Nun zur Kritik!

    Zitat von Bomb

    -Angenehm zu lesen?
    -Effektiv gescriptet?
    -Erreicht das Script sein Ziel?

    Eigentlich finde ich es überhaupt nicht angenehm zu lesen, die Formatierung ist schrecklich und Schreibfehler im Tooltip.
    Es gibt auch keine Deklarationen.
    Ich glaube das kann man auch effektiver und richtiger scripten, eigentlich funktioniert es nicht mal lange.
    Wofür soll das Execute überhaupt gut sein?
    Und was soll überhaupt das Ziel des Skriptes sein?

    Aber das wird schon noch werden, da habe ich keine Sorgen. ;)

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™