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

  • Geburtstag von eukalyptus

    • BugFix
    • 2. März 2009 um 08:31

    Auch von mir Alles Gute und ein Geschenk :D

    [Blockierte Grafik: http://www.pittivomdorf.de/media/DIR_15001/euka.jpg]

  • Mausklicke (easy für euch steh aufm schlauch^^)

    • BugFix
    • 1. März 2009 um 20:30
    [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit]

    GUICtrlSetOnEvent (1, "go") ???

  • Druckersteuerung

    • BugFix
    • 1. März 2009 um 19:35

    Schau mal hier: http://www.autoitscript.com/forum/index.php?showtopic=73993&hl=printer++remote - Vielleicht hilft das weiter.
    Noch was: http://www.autoitscript.com/forum/index.php?showtopic=37367&hl=printer++remote

  • PN's von Forum auf PC-Programm

    • BugFix
    • 1. März 2009 um 18:15
    Zitat von Knappe

    Belohnung sind Einhundertelftausendeinhundertelf Popups/Layer auf beliebiger Adresse. (Das sind über 100000 Besucher/Layereinblendungen)

    Was soll man denn damit anfangen? :rofl:
    Hätte nicht mal für eines Verwendung. :rolleyes:

  • Koda in AutoIt?

    • BugFix
    • 1. März 2009 um 16:55
    Zitat von MatthiasG.


    Wie ermittele ich denn die nächste? Und kann man die Maus dann überhaupt noch bewegen wenn das in einer endlos-Schleife ist?


    Sowas solltest du nicht in einer Schleife machen. Du mußt die entsprechenden MessageCodes verwenden (GUIRegisterMessage).

    Zitat

    Wie ermittele ich denn die nächste?

    Wie wärs mit Rechnen? Bsp.: Du bist über Pos. x=224, y=312. Dein Raster ist 5x5. Dann einfach die Werte auf den nächsten 5-er runden. Also x=225, y=310.

  • Koda in AutoIt?

    • BugFix
    • 1. März 2009 um 15:28
    Zitat von MatthiasG.


    Wie kann ich ein Hintergrundbild "wiederholen" lassen, so dass die ganze GUI bedeckt ist?

    Verstehe nicht, was du mit Wiederholen meinst. Erklär mal genauer, was wann und warum geschieht (od. auch nicht).

    Zitat von MatthiasG.

    Wie kann ich spezielle Punkte "magnetisch" machen, deren Koordinaten ich kenne?

    Stichwort: Grid - Du hinterlegst ein Raster (5x5 od. 10x10 ....Pixel). Wenn du mit der Maus über der GUI bist vergleichst du Positionen und beim MOUSE_UP Event dockst du an die nächstgelegene Rasterposition.

    Zitat von MatthiasG.

    Wie finde ich heraus, ob der Anwender in einem bestimmten Bereich herein geklickt hat?

    Vergleichen Mausposition bei MOUSE_DOWN mit GUI-Koordinaten. (Such mal bei Skripten nach "Doppelklick für (fast) jedes Control", darin hatte ich Ähnliches genutzt.

    Zitat von MatthiasG.

    Ist Drag&Drop möglich?

    Du kannst es ermöglichen. Prüfen ob die entsprechenden Bedingungen erfüllt sind (so etwa: MOUSE_DOWN, Koordinate=Ctrl, MOUSE_MOVE, MOUSE_UP über erlaubten Koordinaten)

  • "2D Barcode auslesen"

    • BugFix
    • 1. März 2009 um 13:50

    Schau dir mal das QR-Code Protokoll an, das könnte dir einen Weg zeigen.

  • Syntaxhervorhebung selbst gemacht

    • BugFix
    • 1. März 2009 um 13:22

    So ist es z.B. in Notepad++ gelöst, per xml-Datei:

    Spoiler anzeigen
    PHP
    <NotepadPlus>
        <UserLang name="AutoIt3" ext="au3 au2">
            <Settings>
                <Global caseIgnored="yes" />
                <TreatAsSymbol comment="no" commentLine="no" />
                <Prefix words1="no" words2="no" words3="no" words4="yes" />
            </Settings>
            <KeywordLists>
                <Keywords name="Delimiters">&quot;&apos;0&quot;&apos;0</Keywords>
                <Keywords name="Folder+"></Keywords>
                <Keywords name="Folder-"></Keywords>
                <Keywords name="Operators">- &amp; ( ) * . / [ ] ^ { } + &lt; = &gt;</Keywords>
                <Keywords name="Comment"> 1#cs 1#comments-start 2#ce 2#comments-end 0; 0;~ 0</Keywords>
                <Keywords name="Words1">Abs ACos AdlibDisable AdlibEnable Asc ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle BitAND BitNOT BitOR BitShift BitXOR BlockInput Break Call CDTray Chr ClipGet ClipPut ConsoleWrite ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllClose DllOpen DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Exp FileChangeDir FileClose FileCopy FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileGetAttrib FileGetLongName FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetTime FileWrite FileWriteLine FtpSetProxy GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuitem GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetFont GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy InetGet InetGetSize IniDelete IniRead IniReadSection IniReadSectionNames IniWrite InputBox Int IsAdmin IsArray IsDeclared IsFloat IsInt IsNumber IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number Opt Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAsSet RunWait Send SetError SetExtended Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt StatusbarGetText String StringAddCR StringFormat StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringReplace StringRight StringSplit StringStripCR StringStripWS StringTrimLeft StringTrimRight StringUpper Tan TimerDiff TimerInit ToolTip TrayTip UBound WinActivate WinActive WinClose WinExists WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive</Keywords>
                <Keywords name="Words2">@AppDataCommonDir @AppDataDir @AutoItExe @AutoItVersion @CommonFilesDir @Compiled @ComputerName @ComSpec @CR @CRLF @DesktopCommonDir @DesktopDir @DesktopHeight @DesktopWidth @DesktopDepth @DesktopRefresh @DocumentsCommonDir @error @extended @FavoritesCommonDir @FavoritesDir @GUI_CtrlId @GUI_CtrlHandle @GUI_WinHandle @HomeDrive @HomePath @HomeShare @HOUR @InetGetActive @InetGetBytesRead @IPAddress1 @IPAddress2 @IPAddress3 @IPAddress4 @LF @LogonDNSDomain @LogonDomain @LogonServer @MDAY @MIN @MON @MyDocumentsDir @NumParams @OSBuild @OSLang @OSServicePack @OSTYPE @OSVersion @ProgramFilesDir @ProgramsCommonDir @ProgramsDir @ScriptDir @ScriptFullPath @ScriptName @SEC @StartMenuCommonDir @StartMenuDir @StartupCommonDir @StartupDir @SW_DISABLE @SW_ENABLE @SW_HIDE @SW_MAXIMIZE @SW_MINIMIZE @SW_RESTORE @SW_SHOW @SW_SHOWDEFAULT @SW_SHOWMAXIMIZED @SW_SHOWMINIMIZED @SW_SHOWMINNOACTIVE @SW_SHOWNA @SW_SHOWNOACTIVATE @SW_SHOWNORMAL @SystemDir @TAB @TempDir @UserProfileDir @UserName @WDAY @WindowsDir @WorkingDir @YDAY @YEAR #include</Keywords>
                <Keywords name="Words3">else case to ExitLoop ContinueLoop ReDim exit then func endfunc while wend do until false true return if endif for next </Keywords>
                <Keywords name="Words4">$</Keywords>
            </KeywordLists>
            <Styles>
                <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
                <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" />
                <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" />
                <WordsStyle name="KEYWORD1" styleID="5" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="3" />
                <WordsStyle name="KEYWORD2" styleID="6" fgColor="FF00FF" bgColor="FFFFFF" fontName="" fontStyle="1" />
                <WordsStyle name="KEYWORD3" styleID="7" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" />
                <WordsStyle name="KEYWORD4" styleID="8" fgColor="800000" bgColor="FFFFFF" fontName="" fontStyle="1" />
                <WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="Courier New" fontStyle="0" fontSize="10" />
                <WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="Courier New" fontStyle="0" fontSize="10" />
                <WordsStyle name="NUMBER" styleID="4" fgColor="800080" bgColor="FFFFFF" fontName="Courier New" fontStyle="1" fontSize="10" />
                <WordsStyle name="OPERATOR" styleID="10" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="1" />
                <WordsStyle name="DELIMINER1" styleID="14" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" />
                <WordsStyle name="DELIMINER2" styleID="15" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" />
                <WordsStyle name="DELIMINER3" styleID="16" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            </Styles>
        </UserLang>
    </NotepadPlus>
    Alles anzeigen
  • Koda in AutoIt?

    • BugFix
    • 1. März 2009 um 13:15
    Zitat von MatthiasG.

    Ist es möglich diese Buttons oben rechts in der Ecke (Minimieren, Maximieren, Schließen) nur auf Schließen zu beschränken (s. Koda sObjektinspektor z.B.) ?(


    Verwende als EX-Style: $WS_EX_TOOLWINDOW

  • Auswertung Schützen

    • BugFix
    • 28. Februar 2009 um 23:45

    Die Auswertung geht am Schnellsten mit SQLite. Ich hab das mal umgesetzt und gebe die Werte in die Console aus.
    Du kannst auch statt _SQLite_Exec() mit _SQlite_Query() & _SQLite_FetchData() arbeiten. Dann erhältst du als Ergebnis ein Array von dem aus du die Werte in deine GUI eintragen kannst.

    Spoiler anzeigen
    [autoit]

    #include <SQLite.au3>
    #include <SQLite.dll.au3>

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

    Global $file = @ScriptDir & '\test.csv'
    Global $aRow, $aCSV, $aSplit, $strSQL = ''
    _SQLite_Startup()
    _SQLite_Open() ; Datenbank (im Arbeitsspeicher) erstellen

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

    ; Tabelle erstellen
    _SQLite_Exec(-1, "Create table tblTest (gruppe,m_name,schuetze,gender,result);")

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

    ; Werte eintragen
    _FileReadToArray($file, $aCSV)
    For $i = 1 To UBound($aCSV) -1
    $aSplit = StringSplit($aCSV[$i], ';')
    $strSQL &= "Insert into tblTest values ("
    For $j = 1 To UBound($aSplit) -1
    $strSQL &= "'" & $aSplit[$j] & "',"
    Next
    $strSQL = StringTrimRight($strSQL, 1)
    $strSQL &= ");" & @CRLF
    Next
    _SQLite_Exec(-1, $strSQL)

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

    ; Grupenergebnisse
    $strSQL = "SELECT gruppe,SUM(result) FROM tblTest WHERE gruppe != '' GROUP BY gruppe;"
    _SQLite_Exec(-1, $strSQL, "_cb")

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

    ; Ergebnisse Gruppe 'Verein'
    $strSQL = "SELECT * FROM tblTest WHERE gruppe = 'Verein' ORDER BY result DESC;"
    _SQLite_Exec(-1, $strSQL, "_cb")

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

    ; Ergebnisse Gruppe 'Betrieb'
    $strSQL = "SELECT * FROM tblTest WHERE gruppe = 'Betrieb' ORDER BY result DESC;"
    _SQLite_Exec(-1, $strSQL, "_cb")

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

    ; Ergebnisse nach Geschlecht
    ; männlich
    $strSQL = "SELECT schuetze,result FROM tblTest WHERE gender = 'm' ORDER BY result DESC;"
    _SQLite_Exec(-1, $strSQL, "_cb")
    ; weiblich
    $strSQL = "SELECT schuetze,result FROM tblTest WHERE gender = 'w' ORDER BY result DESC;"
    _SQLite_Exec(-1, $strSQL, "_cb")

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

    _SQLite_Close()
    _SQLite_Shutdown()

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

    Func _cb($aRow)
    For $s In $aRow
    ConsoleWrite($s & @TAB)
    Next
    ConsoleWrite(@LF)
    EndFunc

    [/autoit]

    Edit:
    Ich hab dir mal eine Komplettlösung erstellt:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Include <GuiListView.au3>
    #include <File.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>

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

    Global $file = @ScriptDir & '\test.csv'
    Global $aRow, $aCSV, $aSplit, $strSQL, $aResult, $iRows, $iColumns
    Global $hListView1, $hListView2, $hListView3

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

    _SQLite_Startup()
    _SQLite_Open() ; Datenbank (im Arbeitsspeicher) erstellen
    _createTable()

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

    Global $gui = GUICreate('Ergebnisse', 800, 400)
    $btLoad = GUICtrlCreateButton('Lade CSV', 190, 35, 70, 20)
    $ListView1 = GUICtrlCreateListView('Gruppe|Ergebnis', 520, 10, 270, 80)
    $hListView1 = GUICtrlGetHandle($ListView1)
    $ListView2 = GUICtrlCreateListView('Gruppe|Mannschaft|Schütze|Geschlecht|Ergebnis', 10, 100, 500, 290)
    $hListView2 = GUICtrlGetHandle($ListView2)
    $ListView3 = GUICtrlCreateListView('Schütze|Geschlecht|Ergebnis', 520, 100, 270, 290)
    $hListView3 = GUICtrlGetHandle($ListView3)
    _GUICtrlListView_SetColumnWidth($hListView1, 0, 210)
    _GUICtrlListView_SetColumnWidth($hListView1, 1, $LVSCW_AUTOSIZE_USEHEADER )
    _GUICtrlListView_SetColumnWidth($hListView2, 0, 120)
    _GUICtrlListView_SetColumnWidth($hListView2, 1, 140)
    _GUICtrlListView_SetColumnWidth($hListView2, 2, 115)
    _GUICtrlListView_SetColumnWidth($hListView2, 3, 65)
    _GUICtrlListView_SetColumnWidth($hListView2, 4, $LVSCW_AUTOSIZE_USEHEADER )
    _GUICtrlListView_SetColumnWidth($hListView3, 0, 145)
    _GUICtrlListView_SetColumnWidth($hListView3, 1, 65)
    _GUICtrlListView_SetColumnWidth($hListView3, 2, $LVSCW_AUTOSIZE_USEHEADER )
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    _SQLite_Close()
    _SQLite_Shutdown()
    Exit
    Case $btLoad
    _GUICtrlListView_DeleteAllItems($hListView1)
    _GUICtrlListView_DeleteAllItems($hListView2)
    _GUICtrlListView_DeleteAllItems($hListView3)
    If _SQLite_Exec(-1, "DELETE FROM tblTest;") = $SQLITE_OK Then
    _readFromFile()
    _getGroups()
    _getGroup()
    _getByGender()
    Else
    MsgBox(0, 'Fehler', 'Tabelle Löschen fehlgeschlagen.')
    EndIf
    EndSwitch
    WEnd

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

    Func _createTable() ; Tabelle erstellen
    If _SQLite_Exec(-1, "CREATE TABLE [tblTest] (" & _
    "gruppe VARCHAR[30] NULL," & _
    "m_name VARCHAR[30] NULL," & _
    "schuetze VARCHAR[30] NULL," & _
    "gender BYTE[1] NULL," & _
    "result INT NULL);") <> $SQLITE_OK Then MsgBox(0, 'Fehler', 'Tabelle erstellen fehlgeschlagen.')
    EndFunc

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

    Func _readFromFile() ; Werte eintragen
    _FileReadToArray($file, $aCSV)
    For $i = 1 To UBound($aCSV) -1
    $aSplit = StringSplit($aCSV[$i], ';')
    $strSQL &= "Insert into tblTest values ("
    For $j = 1 To UBound($aSplit) -1
    $strSQL &= "'" & $aSplit[$j] & "',"
    Next
    $strSQL = StringTrimRight($strSQL, 1)
    $strSQL &= ");" & @CRLF
    Next
    If _SQLite_Exec(-1, $strSQL) <> $SQLITE_OK Then MsgBox(0, 'Fehler', 'Einfügen Werte fehlgeschlagen.')
    EndFunc

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

    Func _getGroups() ; Grupenergebnisse
    $strSQL = "SELECT gruppe,SUM(result) FROM [tblTest] GROUP BY gruppe ORDER BY SUM(result) DESC;"
    If _SQLite_GetTable2d (-1, $strSQL, $aResult, $iRows, $iColumns) = $SQLITE_OK Then
    _GetData($ListView1)
    EndIf
    EndFunc

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

    Func _getGroup() ; Ergebnisse nach Gruppen
    $strSQL = "SELECT DISTINCT gruppe FROM [tblTest];"
    If _SQLite_GetTable(-1, $strSQL, $aResult, $iRows, $iColumns) <> $SQLITE_OK Then Return
    Local $array = $aResult
    For $i = 2 To $array[0]
    $strSQL = "SELECT * FROM [tblTest] WHERE gruppe = '" & $array[$i] & "' ORDER BY result DESC;"
    If _SQLite_GetTable2d (-1, $strSQL, $aResult, $iRows, $iColumns) = $SQLITE_OK Then _
    _GetData($ListView2)
    If $i < $array[0] Then GUICtrlCreateListViewItem('=============|=============|============|======|=====', $ListView2)
    Next
    EndFunc

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

    Func _getByGender() ; Ergebnisse nach Geschlecht
    $strSQL = "SELECT DISTINCT gender FROM [tblTest];"
    If _SQLite_GetTable(-1, $strSQL, $aResult, $iRows, $iColumns) <> $SQLITE_OK Then Return
    Local $array = $aResult, $iCount = $iRows
    For $i = 2 To 1 +$iCount
    $strSQL = "SELECT schuetze,gender,result FROM [tblTest] WHERE gender = '" & $array[$i] & "' ORDER BY result DESC;"
    If _SQLite_GetTable2d (-1, $strSQL, $aResult, $iRows, $iColumns) = $SQLITE_OK Then _
    _GetData($ListView3)
    If $i < $iCount+1 Then GUICtrlCreateListViewItem('============|======|=====', $ListView3)
    Next
    EndFunc

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

    Func _GetData(ByRef $ListView) ; schreibe in ListView
    If Not IsArray($aResult) Then Return
    Local $sMsg = ''
    For $i = 1 To UBound($aResult) -1
    For $j = 0 To UBound($aResult,2) -1
    $sMsg &= $aResult[$i][$j] & '|'
    Next
    GUICtrlCreateListViewItem(StringTrimRight($sMsg, 1), $ListView)
    $sMsg = ''
    Next
    $aResult = '' ; Ergebnisarray leeren
    EndFunc

    [/autoit]
  • DockIt

    • BugFix
    • 28. Februar 2009 um 21:02
    Zitat von Jam00

    Jo, ist gut, aber ich habe noch einen kleinen Bug gefunden
    Wenn ich ein Anderes Fenster activiere was über dem "Ich bin Gedockt" Fenster ist und ich dann wieder das Haubfenster activiere wird das "Ich bin Gedockt" nicht wieder in den vordergund geholt!

    It's not a bug - it's a feature. :D Nein, Scherz beiseite. Dieser Workaround bezieht sich rein auf das Docking. Die Fensterverwaltung kannst du natürlich nach eigenem Gusto einbringen.

    Ich hab hier mal ein Bsp., wie das gelöst werden kann:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Winapi.au3>
    $gui1 = GUICreate("Nummer 1", 300, 300)
    GUICtrlCreateGroup('Dockposition', 40, 40, 220, 220)
    $r1 = GUICtrlCreateRadio('1', 240, 140, 15, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $r2 = GUICtrlCreateRadio('2', 140, 240, 15, 17)
    $r3 = GUICtrlCreateRadio('3', 45, 140, 15, 17)
    $r4 = GUICtrlCreateRadio('4', 140, 50, 15, 17)
    GUICtrlCreateGroup('', -99, -99, 1, 1)
    $gui2 = GUICreate("Ich bin gedockt", 200, 200, -1, -1, -1, $WS_EX_TOOLWINDOW)

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

    Global $aDocks[2][4] = [[$gui1,$gui2,1,-1],[$gui2,$gui1,3,-1]]
    ; ['GUI-master','GUI-slave',dockPos,Abstand]
    ; dockPos: 1=rechts, 2=unten, 3=links, 4=oben
    ; Abstand: -1=SysMetrics Fensterrand, alle anderen Werte Pixelabstand zw. Fenstern
    ;=======================================================================================================
    ; Damit zwei Fenster wechselseitig reagieren, müssen beide im Array aufgeführt werden, einmal als Master
    ; und einmal als Slave.
    ; Dabei müssen die entgegengesetzten Flags für die Dockposition vergeben werden (1 u. 3 bzw. 2 u. 4)
    ;=======================================================================================================

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

    GUISetState(@SW_SHOW, $gui2)
    GUISetState(@SW_SHOW, $gui1)

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

    ; WM_MOVE registrieren:
    GUIRegisterMsg($WM_MOVE, "WM_MOVE")
    GUIRegisterMsg($WM_ACTIVATE, "WM_ACTIVATE")

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

    ; Ereignis WM_MOVE auslösen zum erstmaligen Positionieren der Fenster
    _moved()

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $r1
    $aDocks[0][2] = 1
    $aDocks[1][2] = 3
    _moved()
    Case $r2
    $aDocks[0][2] = 2
    $aDocks[1][2] = 4
    _moved()
    Case $r3
    $aDocks[0][2] = 3
    $aDocks[1][2] = 1
    _moved()
    Case $r4
    $aDocks[0][2] = 4
    $aDocks[1][2] = 2
    _moved()
    EndSwitch
    WEnd

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

    Func _moved()
    DllCall("User32.dll", "int", "PostMessageA", "hwnd", WinGetHandle($aDocks[0][0]), "int", $WM_MOVE, "int", 0, "int", 0)
    EndFunc

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

    Func WM_MOVE($hWndGUI)
    For $i = 0 To UBound($aDocks) -1
    If WinGetHandle($aDocks[$i][0]) = $hWndGUI Then
    Local $aPos1 = WinGetPos($aDocks[$i][0])
    Local $aPos2 = WinGetPos($aDocks[$i][1]), $iDiff = 0
    If $aDocks[$i][3] = -1 Then
    Local $ret = DllCall("user32.dll", "int", "GetSystemMetrics", "int", 32)
    If IsArray($ret) Then $iDiff = $ret[0]
    Else
    $iDiff = $aDocks[$i][3]
    EndIf
    Switch $aDocks[$i][2]
    Case 1
    WinMove($aDocks[$i][1], '', $aPos1[0]+$aPos1[2]+$iDiff, $aPos1[1])
    Case 2
    WinMove($aDocks[$i][1], '', $aPos1[0], $aPos1[1]+$aPos1[3]+$iDiff)
    Case 3
    WinMove($aDocks[$i][1], '', $aPos1[0]-$iDiff-$aPos2[2], $aPos1[1])
    Case 4
    WinMove($aDocks[$i][1], '', $aPos1[0], $aPos1[1]-$iDiff-$aPos2[3])
    EndSwitch
    EndIf
    Next
    Return $GUI_RUNDEFMSG
    EndFunc

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

    Func WM_ACTIVATE($hWndGUI)
    If WinGetHandle($aDocks[0][0]) = $hWndGUI Then _
    DllCall("User32.dll", "hwnd", "SetFocus", "hwnd", WinGetHandle($aDocks[0][1]))
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • DockIt

    • BugFix
    • 28. Februar 2009 um 18:55

    Hi,
    hier mal eine Lösung um Fenster aneinander zu docken. Nähere Erläuterungen im Skript.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    $gui1 = GUICreate("Nummer 1", 300, 300)
    GUICtrlCreateGroup('Dockposition', 40, 40, 220, 220)
    $r1 = GUICtrlCreateRadio('1', 240, 140, 15, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $r2 = GUICtrlCreateRadio('2', 140, 240, 15, 17)
    $r3 = GUICtrlCreateRadio('3', 45, 140, 15, 17)
    $r4 = GUICtrlCreateRadio('4', 140, 50, 15, 17)
    GUICtrlCreateGroup('', -99, -99, 1, 1)
    $gui2 = GUICreate("Ich bin gedockt", 200, 200)

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

    Global $aDocks[2][4] = [[$gui1,$gui2,1,-1],[$gui2,$gui1,3,-1]]
    ; ['GUI-master','GUI-slave',dockPos,Abstand]
    ; dockPos: 1=rechts, 2=unten, 3=links, 4=oben
    ; Abstand: -1=SysMetrics Fensterrand, alle anderen Werte Pixelabstand zw. Fenstern
    ;=======================================================================================================
    ; Damit zwei Fenster wechselseitig reagieren, müssen beide im Array aufgeführt werden, einmal als Master
    ; und einmal als Slave.
    ; Dabei müssen die entgegengesetzten Flags für die Dockposition vergeben werden (1 u. 3 bzw. 2 u. 4)
    ;=======================================================================================================

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

    GUISetState(@SW_SHOW, $gui2)
    GUISetState(@SW_SHOW, $gui1)

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

    ; WM_MOVE registrieren:
    GUIRegisterMsg($WM_MOVE, "WM_MOVE")

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

    ; Ereignis WM_MOVE auslösen zum erstmaligen Positionieren der Fenster
    _moved()

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $r1
    $aDocks[0][2] = 1
    $aDocks[1][2] = 3
    _moved()
    Case $r2
    $aDocks[0][2] = 2
    $aDocks[1][2] = 4
    _moved()
    Case $r3
    $aDocks[0][2] = 3
    $aDocks[1][2] = 1
    _moved()
    Case $r4
    $aDocks[0][2] = 4
    $aDocks[1][2] = 2
    _moved()
    EndSwitch
    WEnd

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

    Func _moved()
    DllCall("User32.dll", "int", "PostMessageA", "hwnd", WinGetHandle($aDocks[0][0]), "int", $WM_MOVE, "int", 0, "int", 0)
    EndFunc

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

    Func WM_MOVE($hWndGUI)
    For $i = 0 To UBound($aDocks) -1
    If WinGetHandle($aDocks[$i][0]) = $hWndGUI Then
    Local $aPos1 = WinGetPos($aDocks[$i][0])
    Local $aPos2 = WinGetPos($aDocks[$i][1]), $iDiff = 0
    If $aDocks[$i][3] = -1 Then
    Local $ret = DllCall("user32.dll", "int", "GetSystemMetrics", "int", 32)
    If IsArray($ret) Then $iDiff = $ret[0]
    Else
    $iDiff = $aDocks[$i][3]
    EndIf
    Switch $aDocks[$i][2]
    Case 1
    WinMove($aDocks[$i][1], '', $aPos1[0]+$aPos1[2]+$iDiff, $aPos1[1])
    Case 2
    WinMove($aDocks[$i][1], '', $aPos1[0], $aPos1[1]+$aPos1[3]+$iDiff)
    Case 3
    WinMove($aDocks[$i][1], '', $aPos1[0]-$iDiff-$aPos2[2], $aPos1[1])
    Case 4
    WinMove($aDocks[$i][1], '', $aPos1[0], $aPos1[1]-$iDiff-$aPos2[3])
    EndSwitch
    EndIf
    Next
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]

    Edit 26.05.2009
    Hier mal noch ein Beispiel zum Andocken eines Fensters an den Bildschirmrand.
    Einstellbar ist der Fangbereich, indem das Fenster "gecatcht" wird und der Abstand der Fensterränder zum Desktoprand.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    Global $CatchWidth = 70 ; Pixelbereich indem das Fenster gefangen wird
    Global $BorderDiff = 2 ; Pixelabstand zum Rand

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

    Global $gui = GUICreate("Dock on Border", 300, 300)
    GUISetState(@SW_SHOW, $gui)

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

    ; WM_MOVE registrieren:
    GUIRegisterMsg($WM_MOVE, "WM_MOVE")

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    EndSwitch
    WEnd

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

    Func WM_MOVE($hWndGUI)
    If Not(WinGetHandle($gui) = $hWndGUI) Then Return $GUI_RUNDEFMSG
    Local $aPos = WinGetPos($gui)
    Local $Catch_Left = $CatchWidth, $Catch_Right = @DesktopWidth - $CatchWidth
    Local $Catch_Top = $CatchWidth, $Catch_Bottom = @DesktopHeight - $CatchWidth
    Select
    Case $aPos[0] <= $Catch_Left
    If $aPos[1] <= $Catch_Top Then
    WinMove($gui, '', $BorderDiff, $BorderDiff)
    ElseIf $aPos[1] + $aPos[3] >= $Catch_Bottom Then
    WinMove($gui, '', $BorderDiff, @DesktopHeight - $BorderDiff - $aPos[3])
    Else
    WinMove($gui, '', $BorderDiff, $aPos[1])
    EndIf
    Case $aPos[0] + $aPos[2] >= $Catch_Right
    If $aPos[1] <= $Catch_Top Then
    WinMove($gui, '', @DesktopWidth - $BorderDiff - $aPos[2], $BorderDiff)
    ElseIf $aPos[1] + $aPos[3] >= $Catch_Bottom Then
    WinMove($gui, '', @DesktopWidth - $BorderDiff - $aPos[2], @DesktopHeight - $BorderDiff - $aPos[3])
    Else
    WinMove($gui, '', @DesktopWidth - $BorderDiff - $aPos[2], $aPos[1])
    EndIf
    Case $aPos[1] <= $Catch_Top
    If $aPos[0] <= $Catch_Left Then
    WinMove($gui, '', $BorderDiff, $BorderDiff)
    ElseIf $aPos[0] + $aPos[2] >= $Catch_Right Then
    WinMove($gui, '', @DesktopWidth - $BorderDiff - $aPos[2], $BorderDiff)
    Else
    WinMove($gui, '', $aPos[0], $BorderDiff)
    EndIf
    Case $aPos[1] + $aPos[3] >= $Catch_Bottom
    If $aPos[0] <= $Catch_Left Then
    WinMove($gui, '', $BorderDiff, @DesktopHeight - $BorderDiff - $aPos[3])
    ElseIf $aPos[0] + $aPos[2] >= $Catch_Right Then
    WinMove($gui, '', @DesktopWidth - $BorderDiff - $aPos[2], @DesktopHeight - $BorderDiff - $aPos[3])
    Else
    WinMove($gui, '', $aPos[0], @DesktopHeight - $BorderDiff - $aPos[3])
    EndIf
    EndSelect
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_MOVE

    [/autoit]

    Edit 14.10.2010
    Und hier mal noch ein Bsp. um mehrere Childs an eine Main-GUI zu kletten.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    $gui1 = GUICreate("Nummer 1", 300, 300)
    $gui2 = GUICreate("Ich bin gedockt RECHTS", 200, 200, -1, -1, -1, $WS_EX_TOOLWINDOW)
    $gui3 = GUICreate("Ich bin gedockt LINKS", 200, 200, -1, -1, -1, $WS_EX_TOOLWINDOW)
    $gui4 = GUICreate("Ich bin gedockt UNTEN", 200, 200, -1, -1, -1, $WS_EX_TOOLWINDOW)

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

    Global $aDocks[5][2] = [[$gui1,0],[$gui2,1],[$gui3,3],[$gui4,2],[-1]]
    ; [n][GUI,DockPos] - letztes Arrayelement ([Ubound($aDocks)-1][0]) speichert den Abstand
    ; dockPos: 1=rechts, 2=unten, 3=links, 4=oben
    ; Abstand: -1=SysMetrics Fensterrand, alle anderen Werte Pixelabstand zw. Fenstern

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

    GUISetState(@SW_SHOW, $gui4)
    GUISetState(@SW_SHOW, $gui3)
    GUISetState(@SW_SHOW, $gui2)
    GUISetState(@SW_SHOW, $gui1)

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

    ;== WM_MOVE registrieren:
    GUIRegisterMsg($WM_MOVE, "WM_MOVE")

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

    ;== Fenster anordnen und Ereignis WM_MOVE auslösen zum erstmaligen Positionieren der Fenster
    _ArrangeGUI()
    _moved()

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    EndSwitch
    WEnd

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

    Func _ArrangeGUI($Index_Master=0)
    Local $iDiff, $aPos1, $aPos2
    If $aDocks[UBound($aDocks)-1][0] = -1 Then
    Local $ret = DllCall("user32.dll", "int", "GetSystemMetrics", "int", 32)
    If IsArray($ret) Then $iDiff = $ret[0]
    Else
    $iDiff = $aDocks[UBound($aDocks)-1][0]
    EndIf
    If $Index_Master = 0 Then ; === Main-GUI bewegt
    $aPos1 = WinGetPos(WinGetHandle($aDocks[0][0]))
    For $i = 1 To UBound($aDocks) -2
    $aPos2 = WinGetPos(WinGetHandle($aDocks[$i][0]))
    Switch $aDocks[$i][1]
    Case 1
    WinMove($aDocks[$i][0], '', $aPos1[0]+$aPos1[2]+$iDiff, $aPos1[1])
    Case 2
    WinMove($aDocks[$i][0], '', $aPos1[0], $aPos1[1]+$aPos1[3]+$iDiff)
    Case 3
    WinMove($aDocks[$i][0], '', $aPos1[0]-$iDiff-$aPos2[2], $aPos1[1])
    Case 4
    WinMove($aDocks[$i][0], '', $aPos1[0], $aPos1[1]-$iDiff-$aPos2[3])
    EndSwitch
    Next
    Else ; === Child bewegt ==> zuerst Main-GUI nachrücken
    $aPos1 = WinGetPos(WinGetHandle($aDocks[$Index_Master][0]))
    $aPos2 = WinGetPos(WinGetHandle($aDocks[0][0]))
    Switch $aDocks[$Index_Master][1] ; Positionsflag entgegengesetzt behandeln
    Case 3
    WinMove($aDocks[0][0], '', $aPos1[0]+$aPos1[2]+$iDiff, $aPos1[1])
    Case 4
    WinMove($aDocks[0][0], '', $aPos1[0], $aPos1[1]+$aPos1[3]+$iDiff)
    Case 1
    WinMove($aDocks[0][0], '', $aPos1[0]-$iDiff-$aPos2[2], $aPos1[1])
    Case 2
    WinMove($aDocks[0][0], '', $aPos1[0], $aPos1[1]-$iDiff-$aPos2[3])
    EndSwitch
    _moved() ; === $WM_MOVE senden um andere Childs auszurichten
    EndIf
    EndFunc

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

    Func _moved()
    DllCall("User32.dll", "int", "PostMessageA", "hwnd", $aDocks[0][0], "int", $WM_MOVE, "int", 0, "int", 0)
    EndFunc

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

    Func WM_MOVE($hWndGUI)
    For $i = 0 To UBound($aDocks) -2
    If $hWndGUI = WinGetHandle($aDocks[$i][0]) Then Return _ArrangeGUI($i)
    Next
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]

    Dateien

    GUI_Dock_mehrere.au3 2,93 kB – 623 Downloads
  • zu OPC Server verbinden

    • BugFix
    • 28. Februar 2009 um 18:05

    Probier mal so:

    [autoit]

    $oOpc = ObjCreate("Graybox.OPC.DAWrapper") ; Referenz auf das Objekt
    $connect = $oOpc.Connect("Matrikon.OPC.Simulation.1","localhost") ; Referenz auf Connect - mit dieser weiterarbeiten
    $colOPCGroups = $connect.OPCGroups ; Liefert die Collection OPCGroups
    For $group In $colOPCGroups
    ConsoleWrite($group.Name & @CRLF) ; probier mal, was hier ausgegeben werden kann: .Item oder nur $group
    Next

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

    $PublicGroupNames = $connect.PublicGroupNames ; <=== liefert ein Array!!
    ; so auslesen:
    For $group In $PublicGroupNames
    ConsoleWrite($group & @CRLF)
    Next

    [/autoit]
  • zu OPC Server verbinden

    • BugFix
    • 28. Februar 2009 um 15:34
    Zitat von Sayen

    PS: Wo finde ich die Datenbak Hilfe :?:


    Guckst du: http://www.autoit.de/index.php?page=Board&boardID=39

  • Koda in AutoIt?

    • BugFix
    • 28. Februar 2009 um 15:04
    Zitat von MatthiasG.

    Nur bei Vista ist es so, dass man für jeden Fensterrand 5px draufaddieren muss, damit die nicht überlagert sind.

    Das stellt doch kein Problem dar. Du kannst mit _WinAPI_GetSystemMetrics() die Stärke des Randes ermitteln und das generell als Variable mit einbringen.

    Deine andren Fragen... mal schauen ;)

  • Koda in AutoIt?

    • BugFix
    • 28. Februar 2009 um 14:51

    Ich hab dir mal ein Bsp. mit Andocken (rechts, links, unten oder oben) erstellt:

    [autoit]

    #include <WindowsConstants.au3>
    $gui1 = GUICreate("Nummer 1", 300, 300, 100, 100)
    $gui2 = GUICreate("Ich folge", 200, 200)

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

    _DockIt($gui1, $gui2)
    GUISetState(@SW_SHOW, $gui2)
    GUISetState(@SW_SHOW, $gui1)

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

    GUIRegisterMsg($WM_MOVE, "WM_MOVE")

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

    Do
    Until GUIGetMsg() = -3

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

    Func _DockIt($Master, $Slave, $iDock=1, $iDiff=2) ; $iDock: 1=rechts, 2=unten, 3=links, 4=oben; $iDiff=Fensterabstand
    Local $aPos1 = WinGetPos($Master)
    Local $aPos2 = WinGetPos($Slave)
    Switch $iDock
    Case 1
    WinMove($Slave, '', $aPos1[0]+$aPos1[2]+$iDiff, $aPos1[1])
    Case 2
    WinMove($Slave, '', $aPos1[0], $aPos1[1]+$aPos1[3]+$iDiff)
    Case 3
    WinMove($Slave, '', $aPos1[0]-$iDiff-$aPos2[2], $aPos1[1])
    Case 4
    WinMove($Slave, '', $aPos1[0], $aPos1[1]-$iDiff-$aPos2[3])
    EndSwitch
    EndFunc

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

    Func WM_MOVE($hWndGUI)
    If $hWndGUI = WinGetHandle($gui1) Then _DockIt($gui1, $gui2)
    EndFunc

    [/autoit]


    Edit:
    Oder so sind beide Fenster gekoppelt - egal welches du bewegst, mußt nur den entgegengesetzten Dockpunkt übergeben:

    [autoit]

    Func WM_MOVE($hWndGUI)
    Switch $hWndGUI
    Case WinGetHandle($gui1)
    _DockIt($gui1, $gui2)
    Case WinGetHandle($gui2)
    _DockIt($gui2, $gui1, 3)
    EndSwitch
    EndFunc

    [/autoit]
  • Gibt es eine unveränderbare Textbox?

    • BugFix
    • 28. Februar 2009 um 13:46

    Du mußt den Style anpassen:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    GUICreate('test')
    $hEdit = GUICtrlCreateEdit('', 10,10,300,300, BitOR($WS_VSCROLL,$ES_READONLY)) ; nur Vertikal-Scroll, horizontal Umbruch
    ;~ $hEdit = GUICtrlCreateEdit('', 10,10,300,300, BitOR($WS_HSCROLL,$WS_VSCROLL,$ES_READONLY)) ; Scroll horizontal und vertikal
    GUISetState()

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

    Local $text = _
    'Opt("CaretCoordMode", 1) ;1=absolute, 0=relative, 2=client' & @CRLF & _
    'Opt("ExpandEnvStrings", 0) ;0=dont expand, 1=do expand' & @CRLF & _
    'Opt("ExpandVarStrings", 0) ;0=dont expand, 1=do expand' & @CRLF & _
    'Opt("FtpBinaryMode", 1) ;1=binary, 0=ASCII' & @CRLF & _
    'Opt("GUICloseOnESC", 1) ;1=ESC closes, 0=ESC wont close' & @CRLF & _
    'Opt("GUICoordMode", 1) ;1=absolute, 0=relative, 2=cell' & @CRLF & _
    'Opt("GUIDataSeparatorChar","|") ;"|" is the default' & @CRLF & _
    'Opt("GUIOnEventMode", 0) ;0=disabled, 1=OnEvent mode enabled' & @CRLF & _
    'Opt("GUIResizeMode", 0) ;0=no resizing, <1024 special resizing' & @CRLF & _
    'Opt("GUIEventOptions",0) ;0=default, 1=just notification, 2=GuiCtrlRead tab index' & @CRLF & _
    'Opt("MouseClickDelay", 10) ;10 milliseconds' & @CRLF & _
    'Opt("MouseClickDownDelay", 10) ;10 milliseconds' & @CRLF & _
    'Opt("MouseClickDragDelay", 250) ;250 milliseconds' & @CRLF & _
    'Opt("MouseCoordMode", 1) ;1=absolute, 0=relative, 2=client' & @CRLF & _
    'Opt("MustDeclareVars", 0) ;0=no, 1=require pre-declare' & @CRLF & _
    'Opt("OnExitFunc","OnAutoItExit");"OnAutoItExit" called' & @CRLF & _
    'Opt("PixelCoordMode", 1) ;1=absolute, 0=relative, 2=client' & @CRLF & _
    'Opt("SendAttachMode", 0) ;0=dont attach, 1=do attach' & @CRLF & _
    'Opt("SendCapslockMode", 1) ;1=store and restore, 0=dont' & @CRLF & _
    'Opt("SendKeyDelay", 5) ;5 milliseconds' & @CRLF & _
    'Opt("SendKeyDownDelay", 1) ;1 millisecond' & @CRLF & _
    'Opt("TCPTimeout",100) ;100 milliseconds' & @CRLF & _
    'Opt("TrayAutoPause",1) ;0=no pause, 1=Pause' & @CRLF & _
    'Opt("TrayIconDebug", 0) ;0=no info, 1=debug line info' & @CRLF & _
    'Opt("TrayIconHide", 0) ;0=show, 1=hide tray icon' & @CRLF & _
    'Opt("TrayMenuMode",0) ;0=append, 1=no default menu, 2=no automatic check, 4=menuitemID not return' & @CRLF & _
    'Opt("TrayOnEventMode",0) ;0=disable, 1=enable' & @CRLF & _
    'Opt("WinDetectHiddenText", 0) ;0=dont detect, 1=do detect' & @CRLF & _
    'Opt("WinSearchChildren", 1) ;0=no, 1=search children also' & @CRLF & _
    'Opt("WinTextMatchMode", 1) ;1=complete, 2=quick' & @CRLF & _
    'Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase' & @CRLF & _
    'Opt("WinWaitDelay", 250) ;250 milliseconds'
    GUICtrlSetData($hEdit, $text)

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

    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • zu OPC Server verbinden

    • BugFix
    • 28. Februar 2009 um 12:30

    Also ich muß sagen, außer bei AutoIt :D habe ich bisher keine solch hervorragende Dokumentation gesehen. Auf 100 Seiten alle Methoden fein säuberlich mit Syntaxbeispielen dargestellt. Respekt :thumbup:
    Wirf mal einen Blick in unsere Datenbank-Hilfe, die Vorgehensweise ist analog.

  • Koda in AutoIt?

    • BugFix
    • 28. Februar 2009 um 12:24
    Zitat von MatthiasG.

    Wie kann ich eigentlich Fenster aneinander haften lassen?

    Ich denke, am Besten WM_MOVE mit GUIRegisterMessage registrieren und dann in der Funktion bei Änderung einer Fensterposition, das angeheftete Fenster hinterherbewegen lassen.

    Zitat von MatthiasG.

    Und wie erlaube ich die Größe von Fenstern zu ändern?

    Mit dem Style: $WS_SIZEBOX

  • zu OPC Server verbinden

    • BugFix
    • 28. Februar 2009 um 11:47

    Also ich hab mir mal die Dokumentation (http://gray-box.net/download_daawrapper.php?lang=en) angeschaut, sollte kein Problem darstellen:

    [autoit]

    ; - copy gbda_aut.dll to Windows\System32 folder;
    ; - register this module - enter regsvr32 gbda_aut.dll in the command line.
    $oOPCServer = ObjCreate("Graybox.OPC.DAWrapper")
    $ARealOPCServer = "VendorX.DataAccessCustomServer"
    $ARealOPCNodeName = "SomeComputerNodeName"
    $oOPCServer.Connect ($ARealOPCServer, $ARealOPCNodeName)

    [/autoit]

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™