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

Beiträge von Oscar

  • Problem bei GuiCtrlSetData und Groß/Kleinschreibung des 2. Parameters

    • Oscar
    • 24. Februar 2009 um 16:23

    Das stimmt so nicht ganz, denn mit einem doppelten Gleichzeichen kann man auch Groß-/Kleinschreibung unterscheiden:

    [autoit]


    $b1="test"
    $b2="Test"
    if $b1==$b2 then MsgBox(1,"","Gleich")

    [/autoit]
  • Textbox Focus ermitteln nicht möglich (Textbox transparent)

    • Oscar
    • 24. Februar 2009 um 13:21

    Mit GUIRegisterMsg bekommst Du auch heraus, welches Input-Control gerade den Focus besitzt:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #Include <WinAPI.au3>
    #include <IE.au3>
    #include <StaticConstants.au3>
    #include <Misc.au3>
    #include <Array.au3>
    ;~ #include <adfunctions.au3>
    #include <GUIListBox.au3>
    #Include <Constants.au3>

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

    #Region ### START Koda GUI section ### Form=\\wetp030a\uid67481$o$\scripte\source\-=project=-\finder\gui\frmfinder_v2.kxf
    $frmFinder = GUICreate("Finder", 233, 183, -1, -1, BitOR($WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    WinSetTrans($frmFinder,"",1)
    $txtLeo = GUICtrlCreateInput("search dictLeo...", 5, 154, 191, 21)
    $txtLeo_Trans = _GuiCtrlMakeTrans(-1,175)
    $cmdLeo = GUICtrlCreateButton("(Not allowed)", 201, 149, 26, 26, BitOR($BS_FLAT,$BS_BITMAP))
    $cmdLeo_Trans = _GuiCtrlMakeTrans(-1,175)
    GUICtrlSetImage(-1, "", 0)
    $txtIntranet = GUICtrlCreateInput("search IntraNet...", 5, 130, 191, 21)
    $txtIntranet_Trans = _GuiCtrlMakeTrans(-1,175)
    $cmdIntranet = GUICtrlCreateButton("(Not allowed)", 201, 125, 26, 26, BitOR($BS_FLAT,$BS_BITMAP))
    $cmdIntranet_Trans = _GuiCtrlMakeTrans(-1,175)
    GUICtrlSetImage(-1, "", 0)
    $txtUser = GUICtrlCreateInput("search User...", 6, 105, 191, 21)
    $txtUser_Trans = _GuiCtrlMakeTrans(-1,175)
    $cmdUser = GUICtrlCreateButton("(Not allowed)", 201, 100, 26, 26, BitOR($BS_FLAT,$BS_BITMAP))
    $cmdUser_Trans = _GuiCtrlMakeTrans(-1,175)
    GUICtrlSetImage(-1, "", 0)
    $txtLocal = GUICtrlCreateInput("search Local...", 5, 80, 191, 21)
    _GuiCtrlMakeTrans(-1,175)
    $cmdLocal = GUICtrlCreateButton("(Not allowed)", 201, 75, 26, 26, BitOR($BS_FLAT,$BS_BITMAP))
    _GuiCtrlMakeTrans(-1,175)
    GUICtrlSetImage(-1, "", 0)
    $txtWiki = GUICtrlCreateInput("search Wiki...", 6, 55, 191, 21)
    _GuiCtrlMakeTrans(-1,175)
    $cmdWiki = GUICtrlCreateButton("(Not allowed)", 201, 50, 26, 26, BitOR($BS_FLAT,$BS_BITMAP))
    _GuiCtrlMakeTrans(-1,175)
    GUICtrlSetImage(-1, "", 0)
    $txtGoogle = GUICtrlCreateInput("search Google...", 5, 30, 191, 21)
    _GuiCtrlMakeTrans(-1,175)
    $cmdGoogle = GUICtrlCreateButton("(Not allowed)", 201, 25, 26, 26, BitOR($BS_FLAT,$BS_BITMAP))
    _GuiCtrlMakeTrans(-1,175)
    GUICtrlSetImage(-1, "", 0)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $Label1 = GUICtrlCreateLabel("", 0, 0, 222, 165,"",$GUI_WS_EX_PARENTDRAG)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    TraySetClick("9")
    ;$displayitem = TrayCreateItem("Anzeige")
    $exititem = TrayCreateItem("Beenden")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    GUIRegisterMsg($WM_COMMAND, 'MY_WM_COMMAND')

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

    While 1
    $nMsg = GUIGetMsg()
    WEnd

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

    Func MY_WM_COMMAND($hWnd, $msg, $wParam, $lParam)
    Local $nID = BitAND($wParam, 0x0000FFFF)
    Switch $nID
    Case $txtLeo
    ToolTip('Leo')
    Case $txtIntranet
    ToolTip('Intranet')
    Case $txtUser
    ToolTip('User')
    Case $txtLocal
    ToolTip('Local')
    Case $txtWiki
    ToolTip('Wiki')
    Case $txtGoogle
    ToolTip('Google')
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>MY_WM_COMMAND

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

    #Region ### Transparency ######################################################################################################

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

    ;===============================================================================
    ;
    ; Function Name: _WinAPI_SetLayeredWindowAttributes
    ; Description:: Sets Layered Window Attributes:) See MSDN for more informaion
    ; Parameter(s):
    ; $hwnd - Handle of GUI to work on
    ; $i_transcolor - Transparent color
    ; $Transparency - Set Transparancy of GUI
    ; $isColorRef - If True, $i_transcolor is a COLORREF( 0x00bbggrr ), else an RGB-Color
    ; Requirement(s): Layered Windows
    ; Return Value(s): Success: 1
    ; Error: 0
    ; @error: 1 to 3 - Error from DllCall
    ; @error: 4 - Function did not succeed - use
    ; _WinAPI_GetLastErrorMessage or _WinAPI_GetLastError to get more information
    ; Author(s): Prog@ndy
    ;
    ; Link : @@MsdnLink@@ SetLayeredWindowAttributes
    ; Example : Yes
    ;===============================================================================
    ;
    Func _WinAPI_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $dwFlages = 0x03, $isColorRef = False)
    If $dwFlages = Default Or $dwFlages = "" Or $dwFlages < 0 Then $dwFlages = 0x03
    If Not $isColorRef Then
    $i_transcolor = Hex(String($i_transcolor), 6)
    $i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
    EndIf
    Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $dwFlages)
    Select
    Case @error
    Return SetError(@error, 0, 0)
    Case $Ret[0] = 0
    Return SetError(4, _WinAPI_GetLastError(), 0)
    Case Else
    Return 1
    EndSelect
    EndFunc ;==>_WinAPI_SetLayeredWindowAttributes

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

    Func _GuiCtrlMakeTrans($iCtrlID,$iTrans=255)

    Local $pHwnd, $nHwnd, $aPos, $a

    $hWnd = GUICtrlGetHandle($iCtrlID);Get the control handle
    If $hWnd = 0 then Return SetError(1,1,0)
    $pHwnd = DllCall("User32.dll", "hwnd", "GetParent", "hwnd", $hWnd);Get the parent Gui Handle
    If $pHwnd[0] = 0 then Return SetError(1,2,0)
    $aPos = ControlGetPos($pHwnd[0],"",$hWnd);Get the current pos of the control
    If @error then Return SetError(1,3,0)
    $nHwnd = GUICreate("", $aPos[2], $aPos[3], $aPos[0], $aPos[1], 0x80000000, 0x00080000 + 0x00000040, $pHwnd[0]);greate a gui in the position of the control
    If $nHwnd = 0 then Return SetError(1,4,0)
    $a = DllCall("User32.dll", "hwnd", "SetParent", "hwnd", $hWnd, "hwnd", $nHwnd);change the parent of the control to the new gui
    If $a[0] = 0 then Return SetError(1,5,0)
    If NOT ControlMove($nHwnd,'',$hWnd,0,0) then Return SetError(1,6,-1);Move the control to 0,0 of the newly created child gui
    GUISetState(@SW_Show,$nHwnd);show the new child gui
    WinSetTrans($nHwnd,"",$iTrans);set the transparency
    If @error then Return SetError(1,7,0)
    GUISwitch($pHwnd[0]);switch back to the parent Gui

    Return $nHwnd;Return the handle for the new Child gui

    EndFunc

    [/autoit]
  • Zahlen aus txt einlesen und vervollständigen

    • Oscar
    • 24. Februar 2009 um 12:58

    Upps! Zwei Stellen nach dem Komma. Kleiner Bug!

    So geht's:

    [autoit]


    $sFile = FileRead(@ScriptDir & '\text.txt')
    If Not @error Then
    $aNumber = StringRegExp($sFile, '(\d+,\d{0,2})', 3)
    For $i = 0 To UBound($aNumber)-1
    $sFile = StringReplace($sFile, $aNumber[$i], StringFormat('%.2f', Number(StringReplace($aNumber[$i], ',', '.'))))
    Next
    EndIf
    MsgBox(0,0,$sFile)

    [/autoit]
  • Button & auslösen

    • Oscar
    • 23. Februar 2009 um 15:17

    Der richtige Befehl dafür lautet: GUICtrlRead()
    Für Dein Beispiel, also so:

    [autoit]


    While 2
    $msg = GUIGetMsg()
    Select
    Case $msg = $save
    IniWrite("C:\test.ini", "Autologin", "ID", GUICtrlRead($ID))
    IniWrite("C:\test.ini", "Autologin", "PW", GUICtrlRead($PW))
    ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Info
    MsgBox(64, "Save", "Informationen wurden gespeichert")
    EndSelect
    WEnd

    [/autoit]
  • Wie eine Transparente GUI erstellen?

    • Oscar
    • 23. Februar 2009 um 15:13

    Schau Dir mal diesen Thread an: [ gelöst ] Hab da mal eine Frage zur GUI.

  • Zahlen aus txt einlesen und vervollständigen

    • Oscar
    • 23. Februar 2009 um 15:03

    Achso, Du willst das in einem kompletten Text ersetzen?!

    Ich habe mal einen Testtext erstellt:

    Spoiler anzeigen
    Code
    effef 12,3 fefehgh rthtrhtr ewf erfe
    hrththtr tthht rgg re 25,9 rgrgrg tg4tegt tzhtz
    eferf 34,6 ht thtr trt  rgr 56,3 grgrgfvvr 42,
    12, eferfwf wgwgr grwgwgw.

    Und mit diesem Script kannst erhälst Du dann eine formatierte Ausgabe:

    Spoiler anzeigen
    [autoit]


    $sFile = FileRead(@ScriptDir & '\text.txt')
    If Not @error Then
    $aNumber = StringRegExp($sFile, '(\d+,\d{0,1})', 3)
    For $i = 0 To UBound($aNumber)-1
    $sFile = StringReplace($sFile, $aNumber[$i], StringFormat('%.2f', Number(StringReplace($aNumber[$i], ',', '.'))))
    Next
    EndIf
    MsgBox(0,0,$sFile)

    [/autoit]
  • Array Daten nach Datum und Uhrzeit sortieren

    • Oscar
    • 23. Februar 2009 um 15:00

    Ja, das Problem (nach Datum sortieren) hatte ich auch schonmal. Deswegen war die Lösung nicht fern. :)

  • Wie eine Transparente GUI erstellen?

    • Oscar
    • 23. Februar 2009 um 04:46

    Suche benutzen, das gab es hier schon mehrmals.

    P.S.: Willkommen hier im Forum! :)

  • E-Mail verschicken mit AutoIt?

    • Oscar
    • 22. Februar 2009 um 20:23

    Vor allem:

    Zitat

    Kann mir einer das machen?

    Wieviel willst Du denn bezahlen? ;)

    Wir helfen gern, aber wenn hier einer ankommt mit "Schreibt mir mal mein Script", dann führt das schnell dazu, dass man denjenigen einfach ignoriert.

  • AutoIt ein VIRUS??????

    • Oscar
    • 22. Februar 2009 um 20:00

    Ohje, stimmt!
    Wenn man in der Konfiguration unter "Erweiterte Gefahrenkategorien" den Haken bei "Security Privacy Risk" gesetzt hat, dann werden AutoIt-Exe-Dateien als SPR/AutoIt.Gen erkannt.
    Abhilfe: Haken rausnehmen.

  • Array Daten nach Datum und Uhrzeit sortieren

    • Oscar
    • 22. Februar 2009 um 19:51

    Und damit es auch im März noch richtig sortiert: :D

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>

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

    Local $asDate[7] = [6]
    $asDate[1] = "27-02-2009 18-20-00"
    $asDate[2] = "22-02-2009 13-00-00"
    $asDate[3] = "25-02-2009 20-20-00"
    $asDate[4] = "01-03-2009 20-30-00"
    $asDate[5] = "22-02-2009 20-05-00"
    $asDate[6] = "27-02-2009 14-20-00"
    _Sort($asDate)
    _ArrayDisplay($asDate, "Sorted")

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

    Func _Sort(ByRef $asDate)
    For $i = 1 To UBound($asDate) - 1
    $asDate[$i] = StringRegExpReplace($asDate[$i], '(\d{2})-(\d{2})-(\d{4})(.+)', '$3-$2-$1$4')
    Next
    _ArraySort($asDate, 0, 1)
    For $i = 1 To UBound($asDate) - 1
    $asDate[$i] = StringRegExpReplace($asDate[$i], '(\d{4})-(\d{2})-(\d{2})(.+)', '$3-$2-$1$4')
    Next
    EndFunc

    [/autoit]
  • ListBox

    • Oscar
    • 21. Februar 2009 um 18:01

    Wie? Was?
    Jetzt sollen es Tabs sein?
    Was willst Du eigentlich machen? Beschreibe doch mal Dein Problem und nicht Deine Lösungsansätze...

  • ListBox

    • Oscar
    • 21. Februar 2009 um 14:59

    Ja, benutze ein ListView! Dort stehen die Einträge nebeneinander. :rolleyes:

    Falls das nicht gemeint ist, dann beschreibe Dein Problem genauer.

  • Buttonschönheitsfehler bei schwarzer BK-Color

    • Oscar
    • 21. Februar 2009 um 04:33

    Das erste Problem kannst Du dadurch lösen, dass Du einen kleineren Font benutzt:

    Spoiler anzeigen
    [autoit]


    GUICreate("", 150, 40)
    GUICtrlCreateButton("Oaofaol", 10, 10, 130, 20)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetFont(-1, 7)

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

    GUISetState()

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

    While GUIGetMsg() <> -3
    Sleep(10)
    WEnd

    [/autoit]

    Den Rest habe ich nicht verstanden. Wie meinst Du das?

  • Inforamtionen über PC abfragen

    • Oscar
    • 20. Februar 2009 um 21:56

    Ich habe mal ein Script geschrieben, mit dem man noch viel mehr auslesen kann: Computer-Info


    Edit: Das @NumParams dient dazu, dass man rauskriegt, mit wie vielen Parametern eine Funktion aufgerufen wurde.
    Beispiel:

    [autoit]


    Test(1, 2, 3)

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

    Func Test($a = 1, $b = 2, $c = 3, $d = 4)
    MsgBox(0,0,@NumParams)
    EndFunc

    [/autoit]
  • tastatur abfragen

    • Oscar
    • 20. Februar 2009 um 21:49

    Dazu können bzw. dürfen wir keine Antwort geben, da es in einen Bereich gehen würde, der den Forenregeln widerspricht.

  • Problem mit nem Script

    • Oscar
    • 20. Februar 2009 um 17:42

    Na gut, ich habe Dein Script mal etwas geändert, um Dir zu zeigen, wie man das eigentlich macht:

    Spoiler anzeigen
    [autoit]


    #include <WindowsConstants.au3>
    #include <DateTimeConstants.au3>
    #include <GUIConstantsEx.au3>
    Opt("GUICloseOnESC", 1)

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

    GUICreate("Zeitanzeige", 345, 138)
    GUISetBkColor(0xb8bcc5)
    $go1 = GUICtrlCreateButton("Start", 240, 30, 40, 22)
    $exit = GUICtrlCreateButton("Exit", 1, 100, 343, 17)
    $wann = GUICtrlCreateLabel("Um wieviel Uhr soll der PC herruntergefahren werden?", 10, 10, 310)
    GUICtrlSetFont(-1, 10)
    $hTime = GUICtrlCreateDate("", 10, 30, 70, 20, $DTS_TIMEFORMAT)
    $TimeHMS = GUICtrlCreateLabel("", 10, 10, 400, 90)
    GUICtrlSetFont(-1, 60)
    GUICtrlSetState(-1, $GUI_HIDE)
    $HN = GUICtrlCreateCombo("", 130, 30, 100)
    GUICtrlSetData(-1, "Herunterfahren|Neustarten|Abmelden", "Herunterfahren")
    $bs = GUICtrlCreateLabel(" HH:MM:SS", 9, 54, 100, 20)
    $Status = GUICtrlCreateLabel("", 0, 118, 345, 20, Default, $WS_EX_CLIENTEDGE)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetBkColor(-1, 0xeeeeee)
    GUISetState(@SW_SHOW)

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

    $go = False
    $oldTime = @HOUR & ':' & @MIN & ':' & @SEC
    While 1
    $sTime = @HOUR & ':' & @MIN & ':' & @SEC
    If $sTime <> $oldTime Then
    $oldTime = $sTime
    GUICtrlSetData($TimeHMS, $sTime)
    EndIf
    If $go = True And GUICtrlRead($hTime) = $sTime Then
    Switch GUICtrlRead($HN)
    Case "Herunterfahren"
    MsgBox(64, "Herunterfahren", "Der Pc wird sich nun herunterfahren!")
    Case "Neustarten"
    MsgBox(64, "Neustarten", "Der PC wird sich nun neustarten!")
    Case "Abmelden"
    MsgBox(64, "Abmelden", "Der PC wird sich nun Abmelden!")
    EndSwitch
    EndIf
    Switch GUIGetMsg()
    Case $go1
    GUICtrlSetState($go1, $GUI_HIDE)
    GUICtrlSetState($bs, $GUI_HIDE)
    GUICtrlSetState($HN, $GUI_HIDE)
    GUICtrlSetState($wann, $GUI_HIDE)
    GUICtrlSetState($hTime, $GUI_HIDE)
    GUICtrlSetState($TimeHMS, $GUI_SHOW)
    GUICtrlSetData($Status, GUICtrlRead($HN) & " um: " & GUICtrlRead($hTime))
    $go = True
    Case $exit, $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Problem mit nem Script

    • Oscar
    • 20. Februar 2009 um 16:19

    Da sind gleich mehrere Fehler im Script:

    1. Du erstellst immer wieder (jede Sekunde) ein Label: $TimeHMS = GUICtrlCreateLabel ($timeH & ":" & $timeM & ":" & $timeS, 10, 10, 400, 90)
    Das führt dazu, dass AutoIt irgendwann (nach ein paar tausend erstellten Label) sehr langsam wird und irgendwann sogar abstürzt (max. Anzahl an Controls erreicht)
    Abhilfe: Label nur am Anfang erstellen und später dann die Daten mit GUICtrlSetData dort eintragen.

    2. Sleep(1000) im Zusammenhang mit: If $TimeH = $H And $TimeM = $M And $TimeS = $S Then... ist eine sehr wackelige Konstruktion, da bereits eine Millisekunde darüber entscheiden kann, ob Dein Script korrekt funktioniert oder nicht.
    Abhilfe: Sleep-Wert reduzieren auf z.B. 500 oder die Abfrage ändern in: ...And $TimeS >= $S

    3. Wäre das benutzen eines Timers flexibler. Man könnte dann auch anbieten: in XX Sek/Min/Std runterfahren etc.

  • Rechner

    • Oscar
    • 19. Februar 2009 um 21:46

    Habe ich jetzt auch keinen Ansatz für, um das allgemeingültig zu behandeln. ?(

    Falls Du nur etwas zum programmieren suchst, schreib doch erstmal nur einen einfachen Rechner mit den Grundrechnungen.
    Hab ich auch schonmal gemacht. Falls es Dich interessiert, such mal nach "Rechner+" bei den Scripten.

  • Rechner

    • Oscar
    • 19. Februar 2009 um 21:35

    Nicht mit Execute. Das musst Du dann schon nach x auflösen und entsprechend ausrechnen.

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™