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

  • eigene Lautstärkeregelung einblendbar

    • BugFix
    • 15. Oktober 2008 um 12:16

    Hi,
    kein Großes Werk - aber da mir der Standardregler von Windows zu mickrig ist für eine saubere Lautstärkeregelung und ich auch keine Lust habe erst in meiner Trayleiste zu "wühlen" :D , habe ich mal schnell einen eigenen Regler erstellt der sich sofort einblendet, wenn ich mit der Maus den Desktopbereich nach rechts verlasse und auch selbständig wieder verschwindet ;)
    Vielleicht ist es ja auch für jemand anderen von Interesse.
    Benötigt wird dafür die audio.au3 von hier

    Edit:
    Hier noch eine Version mit Switch auf Mikroeinstellung.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <WindowsConstants.au3>
    #include <audio.au3>
    Opt("GUIOnEventMode", 1)
    HotKeySet("^+{F6}", "_exitVol")

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

    Global $pos1[2] = [@DesktopWidth, @DesktopHeight/2 -108]
    Global $pos2[2] = [@DesktopWidth-45, @DesktopHeight/2 -108]
    Global $moved = False

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

    $guiSpeaker = GUICreate("Ton", 38, 216, $pos1[0], $pos1[1], BitOR($WS_MINIMIZEBOX,$WS_CAPTION, _
    $WS_POPUP,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $slVol = GUICtrlCreateSlider(8, 16, 20, 150, BitOR($TBS_VERT,$TBS_TOP,$TBS_LEFT,$TBS_NOTICKS))
    GUICtrlSetOnEvent(-1, "slVolChange")
    GUICtrlSetData(-1, 100-_SoundGetMasterVolume())
    $cbMute = GUICtrlCreateCheckbox("", 11, 173, 17, 17)
    GUICtrlSetOnEvent(-1, "cbMuteClick")
    If _isMute() Then
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetState($slVol, $GUI_DISABLE)
    EndIf
    $Label1 = GUICtrlCreateLabel("Aus", 9, 194, 22, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    _checkPos()
    WEnd

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

    Func _exitVol()
    Exit
    EndFunc

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

    Func cbMuteClick()
    If BitAND(GUICtrlRead($cbMute), $GUI_CHECKED) Then
    GUICtrlSetState($slVol, $GUI_DISABLE)
    Else
    GUICtrlSetState($slVol, $GUI_ENABLE)
    EndIf
    _ToggleMuteMaster()
    EndFunc

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

    Func slVolChange()
    _SoundSetMasterVolume(100- GUICtrlRead($slVol))
    EndFunc

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

    Func _checkPos()
    Local $mouse = MouseGetPos()
    If ($mouse[0]+3 > $pos1[0]) Then
    WinMove($guiSpeaker, '', $pos2[0], $pos2[1])
    $moved = True
    ElseIf $moved And ($mouse[0] < $pos1[0]-50) Then
    WinMove($guiSpeaker, '', $pos1[0], $pos1[1])
    $moved = False
    EndIf
    EndFunc

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

    Func _ToggleMuteMaster($opt = 1000)
    Local $retVal = 0, $ex = False
    If Not WinExists('[CLASS:Volume Control]') Then
    Run('sndvol32', '', @SW_HIDE)
    $ex = True
    EndIf
    If WinWait('[CLASS:Volume Control]', '', 2) = 0 Then Return -1
    $retVal = ControlCommand('[CLASS:Volume Control]', '', $opt, 'isChecked')
    If @error Then Return -2
    If $retVal Then
    ControlCommand('[CLASS:Volume Control]', '', $opt, 'UnCheck')
    If @error Then Return -2
    Else
    ControlCommand('[CLASS:Volume Control]', '', $opt, 'Check')
    If @error Then Return -2
    EndIf
    If $ex = True Then WinClose('[CLASS:Volume Control]')
    Return
    EndFunc ;==>_ToggleMuteMaster

    [/autoit]
  • ListviewItem nach best. Spalte sortieren

    • BugFix
    • 15. Oktober 2008 um 09:39
    Zitat von steve987

    Kann es sein, das GUIRegisterMsg mit Autoit 3.2.2.0 noch nicht richtig funktioniert?
    Ich bekomm da jedes Mal massig Fehlermeldungen bezüglich nicht deklarierter Variablen...

    Die Funktion an sich funktionierte auch dort. Aber evtl. einige der UDF nicht. Es ist ratsam, immer die aktuelle Stable zu nutzen. Erleichtert auch den Support, dann ist man imner auf gleichem Level und braucht nicht den Fehler in Versionsdetails zu suchen.

  • Hilfe bei _ArrayDelete gesucht .

    • BugFix
    • 14. Oktober 2008 um 20:26

    In diesem Fall hat das Element $ar[0] noch einen Wert - also mit $ar[0] = '' leeren Wert zuweisen.

  • Hilfe bei _ArrayDelete gesucht .

    • BugFix
    • 14. Oktober 2008 um 19:57

    Wenn du das Array "leeren" willst, brauchst du es nur mit ReDim neu dimensionieren.
    z.B.

    [autoit]

    ReDim $ar[1] ; nur noch ein Element
    $ar[0] = '' ; erstes Element leeren
    ReDim $ar[200] ; alte Größe wiederherstellen

    [/autoit]


    Oder aber, du erstellst gleich am Skriptanfang eine leere Kopie deines Arrays und weist diese dann zu:

    [autoit]

    Global $array[200]
    Global $arKopie = $array
    ; ...
    ; ...
    ; ...
    ; "leeren":
    $array = $arKopie

    [/autoit]
  • Ausschusserfassung über MDB-Datenbank

    • BugFix
    • 14. Oktober 2008 um 16:20

    OK, Fehler lokalisiert - vielleicht solltest du die Abfrageform ändern?
    Ich habe da letztens mal mit ADOB experimentiert, zwar mit Firebird, aber das Prinzip ist ja gleich. Mal schauen ob ich was passendes finde.


    EDIT:
    Probier mal, ob die Variante mit Execute besser läuft.

    Spoiler anzeigen
    [autoit]

    Global $oMyError = ObjEvent("AutoIt.Error","MyErrFunc") ; Initialisieren COM error handler

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

    Global $sql_str = _
    'SELECT "Zeichnung","Matchcode","Preis"/100 FROM "DBA"."tblArtikel" ' & _
    'KEY JOIN "DBA"."tblArtikelPreise" KEY JOIN "DBA"."tblPreisStaffel" ' & _
    'WHERE Code LIKE "VK-%" AND Freigabe=0 OR Freigabe IS NULL ORDER BY Zeichnung'

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

    Global $oConn = _oSQLDB_Connect('Provider=ASAProv.70;Data source=pps;Uid=<usr>;Pwd=<psw>;Links=tcpip(Host=10.0.0.250)')
    If @error Then Exit MsgBox(0, 'Datenbank', 'keine Verbindung')

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

    ; Ausführung eines SQL-Statements mit Methode Execute ==> liefert Recordset zurück:
    Global $oRecSet = _oSQLDB_Execute($oConn, $sql_str)
    If @error Then
    MsgBox(0, 'Execute', 'Fehler Beim Ausführen des SQL-Statements')
    _close()
    EndIf

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

    ; Recordset in Array wandeln:
    Global $array = $oRecSet.GetRows
    If Not IsArray($array) Then
    MsgBox(0, 'Array', 'kein Ergebnis')
    _close()
    EndIf

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

    _ArrayDisplay($array, 'Ergebnis Agfrage')
    _close()

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

    Func _close()
    If IsObj($oRecSet) Then _oRecSet_Close($oRecSet)
    If IsObj($oConn) Then _oSQLDB_Close($oConn)
    Exit
    EndFunc

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

    ;===============================================================================
    ; Function Name: _oSQLDB_Connect($connStr)
    ; Description:: erstellt eine Objektreferenz auf die im $connStr angegebene Datenbank
    ; Parameter(s): $connStr Connection-String enthält die Verbindungsparameter
    ; Return Value(s): Erfolg Referenz des ADODB-Objektes
    ; Fehler 1, @error 1
    ;===============================================================================
    Func _oSQLDB_Connect($connStr)
    Local $objConnection = ObjCreate("ADODB.Connection")
    If Not IsObj($objConnection) Then Return SetError(1,0,1)
    $objConnection.Open($connStr)
    Return $objConnection
    EndFunc ;==>_oSQLDB_Connect

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

    ;===============================================================================
    ; Function Name: _oSQLDB_Execute($oConn, $strCommand, $Options=-1)
    ; Description:: führt Kommandostring (SQL-Sequenz) aus
    ; Parameter(s): $oConn Referenz des Connection-Objektes
    ; $strCommand Kommandostring
    ; optional $Options CommandTypeEnum (http://msdn.microsoft.com/en-us/library/ms675946(VS.85).aspx) oder
    ; ExecuteOptionEnum (http://msdn.microsoft.com/en-us/library/ms676517(VS.85).aspx)
    ; Return Value(s): Eine Recordset Objekt-Referenz, ein Stream oder Nichts
    ;===============================================================================
    Func _oSQLDB_Execute($oConn, $strCommand, $Options=-1)
    Local $recAffected
    Return $oConn.Execute($strCommand, $recAffected, $Options)
    EndFunc ;==>_oSQLDB_Execute

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

    ;===============================================================================
    ; Function Name: _oRecSet_Close($oRecSet)
    ; Description:: Beendet ein RecordsetObjekt
    ; Parameter(s): $oRecSet Referenz des Objektes
    ;===============================================================================
    Func _oRecSet_Close($oRecSet)
    $oRecSet.Close
    EndFunc ;==>_oRecSet_Close

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

    ;===============================================================================
    ; Function Name: _oSQLDB_Close($oConn)
    ; Description:: Beendet die Verbindung
    ; Parameter(s): $oConn Referenz des Connection-Objektes
    ;===============================================================================
    Func _oSQLDB_Close($oConn)
    $oConn.Close
    EndFunc ;==>_oSQLDB_Close

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

    Func MyErrFunc()
    Msgbox(0,"AutoItCOM Test","Ein COM-Fehler ist aufgetreten !" & @CRLF & @CRLF & _
    "err.description is: " & @TAB & $oMyError.description & @CRLF & _
    "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
    "err.number is: " & @TAB & hex($oMyError.number,8) & @CRLF & _
    "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
    "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
    "err.source is: " & @TAB & $oMyError.source & @CRLF & _
    "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
    "err.helpcontext is: " & @TAB & $oMyError.helpcontext )
    Local $err = $oMyError.number
    If $err = 0 Then $err = -1
    Local $g_eventerror = $err
    Endfunc

    [/autoit]
  • Ausschusserfassung über MDB-Datenbank

    • BugFix
    • 14. Oktober 2008 um 15:59

    Danke, geht so - man kann nie genug klagen :rofl:

    Schieb mal vor den Teil "With $adoRs" zum Prüfen folgendes ein:
    ConsoleWrite('#FC: ' & $adoRs.Fields.Count & @CRLF)
    ConsoleWrite('#RC: ' & $adoRs.RecordCount & @CRLF)
    Danach ein Exit, damit nichts weiter ausgeführt wird. Denn wenn die Deklaration bemängelt wird, sollte auch dort der Fehler sein.

  • Ausschusserfassung über MDB-Datenbank

    • BugFix
    • 14. Oktober 2008 um 15:30

    Hi,
    warst uns ja lange 'untreu' ;-), schön dich wieder zu sehen. :D

    Der Fehler weist speziell auf .RecordCount hin. Hast du dir mal ausgeben lassen, ob dort auch tatsächlich ein Wert enthalten ist?
    'badly formatted' ist eigentlich dann der Fall, wenn du z.B. "Dim $array[2][0]" verzapfst.

  • ListviewItem nach best. Spalte sortieren

    • BugFix
    • 14. Oktober 2008 um 15:22

    Wichtig sind 2 Zeilen
    - registrieren der Ereignisfunktion um den Spaltenklick auszuwerten
    - Deklaration der Variable für die Sortierrichtung

    Wenn du per Button sortieren möchtest, sieht dasselbe Bsp. so aus:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    Global $hListView, $B_DESCENDING, $sortCol0, $sortCol1, $sortCol2, $msg
    GUICreate("ListView SimpleSort", 400, 340)
    $hListView = GUICtrlCreateListView("col1|col2|col3", 2, 2, 394, 268)
    GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
    GUICtrlCreateListViewItem("line4|5|more_a", $hListView)
    GUICtrlCreateListViewItem("line5|4.50 |more_c", $hListView)
    GUICtrlCreateListViewItem("line5|4.0 |more_c", $hListView)
    GUICtrlCreateListViewItem("line3|23|more_e", $hListView)
    GUICtrlCreateListViewItem("line2|0.34560 |more_d", $hListView)
    GUICtrlCreateListViewItem("line1|1.0 |more_b", $hListView)
    GUICtrlCreateListViewItem("line1|0.1 |more_b", $hListView)
    GUICtrlCreateListViewItem("line1|10|more_b", $hListView)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 75)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 75)
    _GUICtrlListView_SetColumnWidth($hListView, 2, 75)
    $sortCol0 = GUICtrlCreateButton('Spalte 1', 10, 300, 80, 20)
    $sortCol1 = GUICtrlCreateButton('Spalte 2', 110, 300, 80, 20)
    $sortCol2 = GUICtrlCreateButton('Spalte 3', 210, 300, 80, 20)
    GUISetState()

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

    Global $B_DESCENDING[_GUICtrlListView_GetColumnCount($hListView)] ; Variable ist erforderlich für die Sortierrichtung

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

    Do
    $msg = GUIGetMsg()
    Switch $msg
    Case $sortCol0
    _GUICtrlListView_SimpleSort($hListView, $B_DESCENDING, 0)
    Case $sortCol1
    _GUICtrlListView_SimpleSort($hListView, $B_DESCENDING, 1)
    Case $sortCol2
    _GUICtrlListView_SimpleSort($hListView, $B_DESCENDING, 2)
    EndSwitch
    Until $msg = $GUI_EVENT_CLOSE
    GUIDelete()

    [/autoit]
  • wie kann ich eine bestimmte Schriftart Installieren

    • BugFix
    • 14. Oktober 2008 um 15:05

    Der Font darf nicht mit FileCopy kopiert werden!!
    Nur bei dem Kopiervorgang des Explorers, wird der Font auch gleichzeitig registriert. Also mußt du diesen Vorgang nachbilden.
    Probiere das mal:

    [autoit]

    Global $FontInstallDir = '....\FontsToInstall' ; dein Ordner mit den neuen Fonts (darf nur Fonts enthalten!!)
    Global $oFSO = ObjCreate("Scripting.FileSystemObject")
    Global $oApp = ObjCreate("Shell.Application")
    Global $sFontsPath = @WindowsDir & "\Fonts"
    Global $oFolderCopy = $oApp.Namespace($FontInstallDir)
    For $oFont In $oFolderCopy.Items
    If Not $oFSO.FileExists($sFontsPath & "\" & $oFont.Name) Then
    $oApp.Namespace($sFontsPath).CopyHere($oFont)
    EndIf
    Next

    [/autoit]
  • Text finden

    • BugFix
    • 14. Oktober 2008 um 09:46

    1.

    [autoit]

    If StringInStr($txt, 'Autoit') Then
    ; Aktion
    Endif

    [/autoit]

    2.

    [autoit]

    For $i = 1 To 5
    Assign('Variable' & $i, 'Wert: ' & $i)
    Next
    ConsoleWrite('1. Var: ' & Eval('Variable1') & @CRLF)
    ConsoleWrite('2. Var: ' & Eval('Variable2') & @CRLF)
    ConsoleWrite('3. Var: ' & Eval('Variable3') & @CRLF)
    ConsoleWrite('4. Var: ' & Eval('Variable4') & @CRLF)
    ConsoleWrite('5. Var: ' & Eval('Variable5') & @CRLF)

    [/autoit]
  • Schnittmengen und Differenzmengen ermitteln

    • BugFix
    • 13. Oktober 2008 um 19:15

    Hi,
    nochmal ergänzend, damit klarer wird, wozu die Funktion taugt, ein Beispiel zum Vergleich von Texten.
    Ich vergleiche 2 weitgehend identische Texte, im zweiten Fall habe ich ein paar "Schreibfehler" eingebaut. Diese Unterschiede zu Text1 werden dann ermittelt.
    So lassen sich Unterschiede und Gemeinsamkeiten von Arrays und Strings ermitteln.

    Spoiler anzeigen
    [autoit]

    Local $txt1 = _
    'Gerhard Fritz Kurt Schröder (oft genannt Gerd; * 7. April 1944 in Mossenberg, heute Ortsteil von Blomberg, Kreis Lippe) ist ein deutscher SPD-Politiker. ' & _
    'Er war von 1998 bis 2005 Bundeskanzler der Bundesrepublik Deutschland sowie zuvor von 1990 bis 1998 Ministerpräsident des Landes Niedersachsen. ' & _
    'Nach seiner politischen Karriere wechselte Schröder in die Wirtschaft, wo er bis heute verschiedene Positionen bekleidet.' & _
    'Während und nach seiner Kanzlerschaft wurden und werden die Anhänger von Schröders Agenda 2010 auch „Schröderianer“ genannt.'

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

    Local $txt2 = _
    'Gerhard Fritz Kurt Schröder (oft genannt Gerd; * 7. April 1945 in Mossenberg, heute Ortsteil von Blumberg, Kreis Lippe) ist ein deutscher SPD-Politiker. ' & _
    'Er war von 1998 bis 2005 Bundeskanzler der Bundesrepublik Deutschland sowie zuvor von 1990 bis 1998 Ministerpräsident des Landes Niedersachsen. ' & _
    'Nach seiner politischen Karriere wechselte Schroeder in die Wirtschaft, wo er bis heute verschiedene Positionen bekleidet.' & _
    'Während und nach seiner Kanzlerschaft wurden und werden die Anhänger von Schröders Agenda 2010 auch „Schröderianer“ genannt.'

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

    $ret = _GetIntersection($txt1, $txt2, 0, ' ')
    $diff1 = ''
    $diff2 = ''
    If Not @error Then
    For $i = 0 To UBound($ret) -1
    If $ret[$i][1] <> '' Then $diff1 &= $ret[$i][1] & ' ; '
    If $ret[$i][2] <> '' Then $diff2 &= $ret[$i][2] & ' ; '
    Next
    EndIf
    MsgBox(0, '', 'Unterschiede 1: ' & $diff1 & @LF & 'Unterschiede 2: ' & $diff2)

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

    ;==================================================================================================
    ; Function Name: _GetIntersection($Set1, $Set2 [, $GetAll=0 [, $Delim=Default]])
    ; Description:: Detect from 2 sets
    ; - Intersection (elements are contains in both sets)
    ; - Difference 1 (elements are contains only in $Set1)
    ; - Difference 2 (elements are contains only in $Set2)
    ; Parameter(s): $Set1 set 1 (1D-array or delimited string)
    ; $Set2 set 2 (1D-array or delimited string)
    ; optional: $GetAll 0 - only one occurence of every different element are shown (Default)
    ; 1 - all elements of differences are shown
    ; optional: $Delim Delimiter for strings (Default use the separator character set by Opt("GUIDataSeparatorChar") )
    ; Return Value(s): Succes 2D-array [i][0]=Intersection
    ; [i][1]=Difference 1
    ; [i][2]=Difference 2
    ; Failure -1 @error set, that was given as array, is'nt 1D-array
    ; Note: Comparison is case-sensitiv! - i.e. Number 9 is different to string '9'!
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetIntersection(ByRef $Set1, ByRef $Set2, $GetAll=0, $Delim=Default)
    Local $o1 = ObjCreate("System.Collections.ArrayList")
    Local $o2 = ObjCreate("System.Collections.ArrayList")
    Local $oUnion = ObjCreate("System.Collections.ArrayList")
    Local $oDiff1 = ObjCreate("System.Collections.ArrayList")
    Local $oDiff2 = ObjCreate("System.Collections.ArrayList")
    Local $tmp, $i
    If $GetAll <> 1 Then $GetAll = 0
    If $Delim = Default Then $Delim = Opt("GUIDataSeparatorChar")
    If Not IsArray($Set1) Then
    If Not StringInStr($Set1, $Delim) Then
    $o1.Add($Set1)
    Else
    $tmp = StringSplit($Set1, $Delim)
    For $i = 1 To UBound($tmp) -1
    $o1.Add($tmp[$i])
    Next
    EndIf
    Else
    If UBound($Set1, 0) > 1 Then Return SetError(1,0,-1)
    For $i = 0 To UBound($Set1) -1
    $o1.Add($Set1[$i])
    Next
    EndIf
    If Not IsArray($Set2) Then
    If Not StringInStr($Set2, $Delim) Then
    $o2.Add($Set2)
    Else
    $tmp = StringSplit($Set2, $Delim)
    For $i = 1 To UBound($tmp) -1
    $o2.Add($tmp[$i])
    Next
    EndIf
    Else
    If UBound($Set2, 0) > 1 Then Return SetError(1,0,-1)
    For $i = 0 To UBound($Set2) -1
    $o2.Add($Set2[$i])
    Next
    EndIf
    For $tmp In $o1
    If $o2.Contains($tmp) And Not $oUnion.Contains($tmp) Then $oUnion.Add($tmp)
    Next
    For $tmp In $o2
    If $o1.Contains($tmp) And Not $oUnion.Contains($tmp) Then $oUnion.Add($tmp)
    Next
    For $tmp In $o1
    If $GetAll Then
    If Not $oUnion.Contains($tmp) Then $oDiff1.Add($tmp)
    Else
    If Not $oUnion.Contains($tmp) And Not $oDiff1.Contains($tmp) Then $oDiff1.Add($tmp)
    EndIf
    Next
    For $tmp In $o2
    If $GetAll Then
    If Not $oUnion.Contains($tmp) Then $oDiff2.Add($tmp)
    Else
    If Not $oUnion.Contains($tmp) And Not $oDiff2.Contains($tmp) Then $oDiff2.Add($tmp)
    EndIf
    Next
    Local $UBound[3] = [$oDiff1.Count,$oDiff2.Count,$oUnion.Count], $max = 1
    For $i = 0 To UBound($UBound) -1
    If $UBound[$i] > $max Then $max = $UBound[$i]
    Next
    Local $aOut[$max][3]
    If $oUnion.Count > 0 Then
    $i = 0
    For $tmp In $oUnion
    $aOut[$i][0] = $tmp
    $i += 1
    Next
    EndIf
    If $oDiff1.Count > 0 Then
    $i = 0
    For $tmp In $oDiff1
    $aOut[$i][1] = $tmp
    $i += 1
    Next
    EndIf
    If $oDiff2.Count > 0 Then
    $i = 0
    For $tmp In $oDiff2
    $aOut[$i][2] = $tmp
    $i += 1
    Next
    EndIf
    Return $aOut
    EndFunc ;==>_GetIntersection

    [/autoit]
  • Windows Agent

    • BugFix
    • 13. Oktober 2008 um 17:52

    :D

  • Zeitweise eine Programschleife verlassen

    • BugFix
    • 13. Oktober 2008 um 17:49

    Und woher bekommt $bs[0] seinen Wert? Ein bischen mehr Code ermöglicht uns dir zu helfen.

  • Tab automatisch wechseln?

    • BugFix
    • 13. Oktober 2008 um 17:10

    Hi,
    so geht's:

    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiTab.au3>

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

    GUICreate("Tab Control Set Current Selected", 400, 300)
    $hTab = GUICtrlCreateTab(8, 8, 617, 433)
    $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
    $Label1 = GUICtrlCreateLabel("Label1", 48, 40, 100, 100)
    $Button1 = GUICtrlCreateButton("Button1", 48, 96, 249, 89, 0)
    $TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
    $Label2 = GUICtrlCreateLabel("Label2", 168, 104, 100, 100)
    $TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
    $Label3 = GUICtrlCreateLabel("Label3", 200, 112, 100, 100)
    GUISetState()

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

    _GUICtrlTab_SetCurFocus($hTab, 0)
    Sleep(2000)

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

    _GUICtrlTab_SetCurFocus($hTab, 2)
    Sleep(2000)

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

    _GUICtrlTab_SetCurFocus($hTab, 1)
    Sleep(2000)

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

    _GUICtrlTab_SetCurFocus($hTab, 0)

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()

    [/autoit]
  • Tab automatisch wechseln?

    • BugFix
    • 13. Oktober 2008 um 14:55
    [autoit]

    _GUICtrlTab_SetCurSel($hWnd, $iIndex)

    [/autoit]
  • ListviewItem nach best. Spalte sortieren

    • BugFix
    • 13. Oktober 2008 um 14:52

    Hi,
    ich hab das Hilfebeispiel mal etwas schlanker gemacht.
    Sortieren per Klick auf Spaltenkopf. Du kannst den Sortierbefehl natürlich auch per Button auslösen.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    Global $hListView, $B_DESCENDING
    GUICreate("ListView SimpleSort", 400, 300)
    $hListView = GUICtrlCreateListView("col1|col2|col3", 2, 2, 394, 268)
    GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
    GUICtrlCreateListViewItem("line4|5|more_a", $hListView)
    GUICtrlCreateListViewItem("line5|4.50 |more_c", $hListView)
    GUICtrlCreateListViewItem("line5|4.0 |more_c", $hListView)
    GUICtrlCreateListViewItem("line3|23|more_e", $hListView)
    GUICtrlCreateListViewItem("line2|0.34560 |more_d", $hListView)
    GUICtrlCreateListViewItem("line1|1.0 |more_b", $hListView)
    GUICtrlCreateListViewItem("line1|0.1 |more_b", $hListView)
    GUICtrlCreateListViewItem("line1|10|more_b", $hListView)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 75)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 75)
    _GUICtrlListView_SetColumnWidth($hListView, 2, 75)
    GUISetState()

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

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    Global $B_DESCENDING[_GUICtrlListView_GetColumnCount($hListView)]

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    If ($hWndFrom = $hWndListView) And ($iCode = $LVN_COLUMNCLICK) Then
    $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
    _GUICtrlListView_SimpleSort($hWndListView, $B_DESCENDING, DllStructGetData($tInfo, "SubItem"))
    EndIf
    EndFunc ;==>WM_NOTIFY

    [/autoit]
  • ListviewItem nach best. Spalte sortieren

    • BugFix
    • 13. Oktober 2008 um 12:07
    Zitat von franzp

    Denn wenn ich es auf ein Listview anwende wird nichts sortiert.


    Vermutlich, weil du nicht das Handle des Listview verwendest.

    [autoit]

    $ID_LV = GUICtrlCreateListView(...)
    $handleLV = GUICtrlGetHandle($ID_LV)

    [/autoit]
  • Frage zu Bitand (Variablen zusammenfassen)

    • BugFix
    • 12. Oktober 2008 um 16:39

    Es wäre sehr von Vorteil, wenn du deinen Code in AutoIt-Tags einbettest - so wird ihn keiner lesen wollen.

  • Link aus IE objekt auslesen

    • BugFix
    • 12. Oktober 2008 um 13:50

    Zeig mal deinen bisherigen Code - meine Kristallkugel schweigt gerade :rolleyes:

  • Frage zu Bitand (Variablen zusammenfassen)

    • BugFix
    • 12. Oktober 2008 um 13:48

    Hi nuts,
    Tipp für dich im eigenen Interesse: Sei nicht so geizig mit deinem Code. Mit 2 hingeworfenen Skriptzeilen läßt sich dein Problem schlecht überblicken. Denn von enormen Interesse ist doch der Inhalt der übergebenen Variablen. Und das ist hier nicht sichtbar.
    Also gib mal mehr Infos - umso größer ist die Wahrscheinlichkeit, dass dir geholfen wird.

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™