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

Beiträge von Greek

  • Kleiner Rechtschreib Fehler

    • Greek
    • 13. Februar 2010 um 19:04

    Hi,

    Bei der Danksagung, wusste nicht wo man das Fixed:

    Zitat

    Danke an Amir der die Resource Funktionen für den NSIS Installer erstellt hatt und mit
    geohlfen hat den Code mit AutoIt ins Laufen zu bringen. Den NSIS Installer gibt es hier:
    http://nsis.sourceforge.net/site/index.php

    geohlfen -> geholfen

    Kann man ja mal bei Gelegenheit korrigieren.

    Gruss Greek

  • Abkürzungen in SciTE verwalten

    • Greek
    • 10. Februar 2010 um 20:36

    Jup, so geht es wieder ! thx :)

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <GUIListView.au3>
    #include <GuiEdit.au3>
    Opt("GUIOnEventMode", 1)

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

    Global $ScitePath = RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\SciTE.exe", "")
    Global $KeyWordPath = StringReplace($ScitePath, "SciTE.exe", "properties\au3.keywords.abbreviations.properties")
    Global $MyKeyWordPath = @UserProfileDir & '\au3.keywords.my'
    Global $Abbr_Path = @UserProfileDir & '\abbrev.properties'
    Global $MyAbbrevPath = @UserProfileDir & '\abbrev.properties.my'
    If Not FileExists($MyAbbrevPath) Then
    Local $fh = FileOpen($MyAbbrevPath, 1)
    FileWriteLine($fh, '; >> My own abbrevs <<')
    FileClose($fh)
    EndIf
    Global $Start_STR = '#; -- Gui Variables --', $start = False, $edit = False
    Global $Last_STR = '#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#'
    Global $txt, $aTitel[2] = ['Code für neue Abkürzung', 'Code bearbeiten']
    Global $aLabel[2] = [ _
    'Bitte den Code für die Abkürzung einfügen. Einrückungen bitte mit Tabulator (Im Editfeld durch STRG+TAB).' & @LF & _
    'Für die gewünschte Cursorposition: | verwenden. Der Code wird beim Schließen des Fensters übernommen.', _
    'Hier den Code bearbeiten. Einrückungen bitte mit Tabulator (Im Editfeld durch STRG+TAB).' & @LF & _
    'Für die gewünschte Cursorposition: | verwenden. Der Code wird beim Schließen des Fensters übernommen.']
    Global $aAbbrev
    _FileReadToArray($Abbr_Path, $aAbbrev)

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

    $Form1 = GUICreate("Abkürzungen verwalten [" & $Abbr_Path & ']', 800, 620, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    $mnu = GUICtrlCreateMenu('Wiederherstellung')
    $mnu_restore = GUICtrlCreateMenuItem('Wiederherstellung eigener Abbrevs', $mnu)
    GUICtrlSetOnEvent(-1, '_Restore')
    $iSearch = GUICtrlCreateInput('', 15, 10, 90, 20)
    $bSearch = GUICtrlCreateButton('Suchen', 125, 10, 150, 20, $BS_DEFPUSHBUTTON)
    GUICtrlSetOnEvent(-1, '_Search')
    $bCreate = GUICtrlCreateButton('Hinzufügen', 295, 10, 150, 20)
    GUICtrlSetOnEvent(-1, '_Create')
    $bEdit = GUICtrlCreateButton('Bearbeiten', 465, 10, 150, 20)
    GUICtrlSetOnEvent(-1, '_Edit')
    $bDelete = GUICtrlCreateButton('Löschen', 635, 10, 150, 20)
    GUICtrlSetOnEvent(-1, '_Delete')
    $ListView1 = GUICtrlCreateListView("Abkürzung|Code", 15, 40, 770, 545, BitOR($LVS_SHOWSELALWAYS,$LVS_SINGLESEL,$WS_HSCROLL,$WS_VSCROLL))
    GUICtrlSetOnEvent(-1, "ListView1Click")
    GUICtrlSetBkColor(-1, 0xFF4400)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_LV_ALTERNATE)
    GUICtrlSendMsg(-1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_ONECLICKACTIVATE, $LVS_EX_ONECLICKACTIVATE)
    _GUICtrlListView_SetColumnWidth(-1, 0, 90)
    _GUICtrlListView_SetColumnWidth(-1, 1, $LVSCW_AUTOSIZE_USEHEADER)

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

    _LV_Fill()

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

    $Form2 = GUICreate('Code zur Abkürzung', 700, 400, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form2Close")
    $Edit1 = GUICtrlCreateEdit('', 10, 10, 680, 380, BitOR($GUI_SS_DEFAULT_EDIT,$ES_READONLY))
    GUICtrlSetBkColor(-1, 0x98FB98)

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

    $Form3 = GUICreate('Code für neue Abkürzung', 700, 400, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form3Close")
    $Label1 = GUICtrlCreateLabel('Bitte den Code für die Abkürzung einfügen. Einrückungen bitte mit Tabulator (Im Editfeld durch STRG+TAB).' & @LF & _
    'Für die gewünschte Cursorposition: | verwenden. Der Code wird beim Schließen des Fensters übernommen.' _
    , 10, 5, 680, 30, $SS_SUNKEN+$SS_CENTER)
    GUICtrlSetBkColor(-1, 0x98FB98)
    $Edit2 = GUICtrlCreateEdit('', 10, 40, 680, 350, BitOR($WS_HSCROLL,$WS_VSCROLL,$ES_MULTILINE,$ES_WANTRETURN))
    GUICtrlSetBkColor(-1, 0x98FB98)

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

    GUISetState(@SW_SHOW, $Form1)
    GUIRegisterMsg($WM_NOTIFY, "MY_WM_COMMAND")

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

    While 1
    Sleep(100)
    WEnd

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

    Func Form1Close()
    Exit
    EndFunc ;==>Form1Close

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

    Func Form2Close()
    GUISetState(@SW_HIDE, $Form2)
    GUICtrlSetData($Edit1, '')
    EndFunc ;==>Form2Close

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

    Func Form3Close()
    GUISetState(@SW_HIDE, $Form3)
    If $edit Then
    _WriteEditedAbbrev()
    Else
    _WriteNewAbbrev()
    EndIf
    EndFunc ;==>Form3Close

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

    Func _Search()
    $txt = GUICtrlRead($iSearch)
    If $txt = '' Then Return
    Local $indx = _LV_FindInSubItem($ListView1, $txt, 0)
    If $indx = -1 Then
    MsgBox(0, 'Suche Abbrev', 'Abbrev: "' & $txt & '" existiert nicht.')
    Else
    _GUICtrlListView_EnsureVisible($ListView1, $indx)
    _GUICtrlListView_SetItemSelected($ListView1, $indx)
    EndIf
    EndFunc ;==>_Search

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

    Func _Create()
    $txt = GUICtrlRead($iSearch)
    If $txt = '' Then Return MsgBox(16, 'Fehler', 'Keine Abkürzung eingetragen.')
    Local $indx = _LV_FindInSubItem($ListView1, $txt, 0)
    If $indx > -1 Then Return MsgBox(16, 'Fehler', 'Die Abkürzung existiert bereits.')
    $edit = False
    WinSetTitle($Form3, '', $aTitel[0])
    GUICtrlSetData($Label1, $aLabel[0])
    GUISetState(@SW_SHOW, $Form3)
    EndFunc

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

    Func _Edit()
    $txt = GUICtrlRead($iSearch)
    If $txt = '' Then Return MsgBox(16, 'Fehler', 'Keine Abkürzung ausgewählt.')
    $edit = True
    WinSetTitle($Form3, '', $aTitel[1])
    GUICtrlSetData($Label1, $aLabel[1])
    GUICtrlSetData($Edit2, _Abbrev2Code(_GUICtrlListView_GetItemText($ListView1, _LV_FindInSubItem($ListView1, $txt, 0), 1)))
    GUISetState(@SW_SHOW, $Form3)
    EndFunc ;==>_Edit

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

    Func _Restore()
    Local $aMyAbbrev, $split_a, $split_f
    _FileReadToArray($MyAbbrevPath, $aMyAbbrev)
    For $i = 2 To UBound($aMyAbbrev) - 1
    $start = False
    For $j = 1 To UBound($aAbbrev) - 1
    If $aAbbrev[$j] = $Start_STR Then $start = True
    If (Not $start) Or (StringLeft($aAbbrev[$j], 1) = '#') Or ($aAbbrev[$j] = '') Then ContinueLoop
    $split_a = _SplitOnce($aAbbrev[$j])
    If @error Then ContinueLoop
    $split_f = _SplitOnce($aMyAbbrev[$i])
    If @error Then ContinueLoop
    If $split_a[0] = $split_f[0] Then
    ConsoleWrite($split_f[0] & @CRLF)
    $aAbbrev[$j] = $split_f[0] & '=' & $split_f[1]
    WinSetTitle($Form1, '', 'Restore Abbrev: ' & $split_f[0])
    $aMyAbbrev[$i] = -1
    ExitLoop
    EndIf
    Next
    Next
    For $i = 2 To UBound($aMyAbbrev) - 1
    If $aMyAbbrev[$i] = -1 Then ContinueLoop
    $split_f = _SplitOnce($aMyAbbrev[$i])
    WinSetTitle($Form1, '', 'Restore Abbrev: ' & $split_f[0])
    Sleep(20)
    ReDim $aAbbrev[UBound($aAbbrev) + 1]
    $aAbbrev[UBound($aAbbrev) - 1] = $aMyAbbrev[$i]
    For $j = UBound($aAbbrev) - 1 To 1 Step -1
    If $aAbbrev[$j] = $Last_STR Then ExitLoop
    Next
    _ArraySwap($aAbbrev[UBound($aAbbrev) - 1], $aAbbrev[$j])
    Next
    FileMove($Abbr_Path, $Abbr_Path & '.BAK', 1)
    _FileWriteFromArray($Abbr_Path, $aAbbrev, 1)
    If FileExists($MyKeyWordPath) Then
    Local $aMyKeyWord
    _FileReadToArray($MyKeyWordPath, $aMyKeyWord)
    For $i = 1 To UBound($aMyKeyWord) - 1
    WinSetTitle($Form1, '', 'Restore Keyword: ' & $aMyKeyWord[$i])
    Sleep(20)
    _KeyWordSet($aMyKeyWord[$i], 1)
    Next
    EndIf
    _FileReadToArray($Abbr_Path, $aAbbrev)
    WinSetTitle($Form1, '', 'Restore')
    MsgBox(64, 'Restore', 'Restore beendet.', 1.5)
    WinSetTitle($Form1, '', "Abkürzungen verwalten [" & $Abbr_Path & ']')
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
    _LV_Fill()
    EndFunc ;==>_Restore

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

    Func _LV_FindInSubItem($hWnd, $2Find, $SubIndex)
    Local $out = -1
    For $i = 0 To _GUICtrlListView_GetItemCount($hWnd) - 1
    If _GUICtrlListView_GetItemText($hWnd, $i, $SubIndex) = $2Find Then $out = $i
    Next
    Return $out
    EndFunc ;==>_LV_FindInSubItem

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

    Func ListView1Click()
    Local $indx = _GUICtrlListView_GetHotItem($ListView1)
    GUICtrlSetData($iSearch, _GUICtrlListView_GetItemText($ListView1, $indx, 0))
    GUICtrlSetData($Edit1, _Abbrev2Code(_GUICtrlListView_GetItemText($ListView1, $indx, 1)))
    GUISetState(@SW_SHOW, $Form2)
    EndFunc ;==>ListView1Click

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

    Func _LV_Fill()
    GUISetState(@SW_LOCK, $Form1)
    Local $k = 0
    $start = False
    For $i = 1 To UBound($aAbbrev) - 1
    If $aAbbrev[$i] = $Start_STR Then $start = True
    If (Not $start) Or (StringLeft($aAbbrev[$i], 1) = '#') Or ($aAbbrev[$i] = '') Then ContinueLoop
    $var = _SplitOnce($aAbbrev[$i])
    If @error Then ContinueLoop
    GUICtrlCreateListViewItem('|', $ListView1)
    GUICtrlSetBkColor(-1, 0xFFF278)
    _GUICtrlListView_SetItemText($ListView1, $k, $var[0], 0)
    _GUICtrlListView_SetItemText($ListView1, $k, $var[1], 1)
    $k += 1
    Next
    GUISetState(@SW_UNLOCK, $Form1)
    EndFunc ;==>_LV_Fill

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

    Func _SplitOnce($STRING, $DELIM = '=')
    If Not StringInStr($STRING, $DELIM) Then Return SetError(1, 0, 1)
    Local $out[2]
    Local $len = StringLen($STRING)
    Local $pos = StringInStr($STRING, $DELIM, 1, 1)
    $out[0] = StringLeft($STRING, $pos - 1)
    $out[1] = StringRight($STRING, $len - $pos)
    Return $out
    EndFunc ;==>_SplitOnce

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

    Func _Abbrev2Code($ABBREV)
    Local $out = ''
    $var = StringSplit($ABBREV, '\n', 1)
    For $i = 1 To UBound($var) - 1
    If StringInStr($var[$i], '\t', 1) Then $var[$i] = StringReplace($var[$i], '\t', @TAB)
    If $i = UBound($var) - 1 Then
    $out &= $var[$i]
    Else
    $out &= $var[$i] & @CRLF
    EndIf
    Next
    Return $out
    EndFunc ;==>_Abbrev2Code

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

    Func _Code2Abbrev()
    Local $out = '', $count = _GUICtrlEdit_GetLineCount($Edit2), $line
    If @error Then Return SetError(1)
    For $i = 0 To $count - 1
    $line = _GUICtrlEdit_GetLineFixed($Edit2, $i)
    If StringInStr($line, @TAB, 1) Then $line = StringReplace($line, @TAB, '\t')
    If $i = $count - 1 Then
    $out &= $line
    Else
    $out &= $line & '\n'
    EndIf
    Next
    Return $out
    EndFunc ;==>_Code2Abbrev

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

    Func _WriteNewAbbrev()
    If GUICtrlRead($Edit2) = '' Then Return
    Local $abbr = _Code2Abbrev()
    Local $fh = FileOpen($MyAbbrevPath, 1)
    FileWriteLine($fh, $txt & '=' & $abbr)
    FileClose($fh)
    ReDim $aAbbrev[UBound($aAbbrev) + 1]
    $aAbbrev[UBound($aAbbrev) - 1] = $txt & '=' & $abbr
    For $i = UBound($aAbbrev) - 1 To 1 Step -1
    If $aAbbrev[$i] = $Last_STR Then ExitLoop
    Next
    _ArraySwap($aAbbrev[UBound($aAbbrev) - 1], $aAbbrev[$i])
    FileMove($Abbr_Path, $Abbr_Path & '.BAK', 1)
    _FileWriteFromArray($Abbr_Path, $aAbbrev, 1)
    _KeyWordSet($txt)
    $fh = FileOpen($MyKeyWordPath, 1)
    FileWrite($fh, $txt & @CRLF)
    FileClose($fh)
    _FileReadToArray($Abbr_Path, $aAbbrev)
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
    GUICtrlSetData($Edit2, '')
    $start = False
    $k = 0
    _LV_Fill()
    Local $idx = _LV_FindInSubItem($ListView1, $txt, 0)
    _GUICtrlListView_EnsureVisible($ListView1, $idx)
    _GUICtrlListView_SetItemSelected($ListView1, $idx)
    Reload_Config()
    EndFunc ;==>_WriteNewAbbrev

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

    Func _WriteEditedAbbrev()
    If GUICtrlRead($Edit2) = '' Then Return
    Local $abbr = _Code2Abbrev()
    Local $fh = FileOpen($MyAbbrevPath, 0)
    Local $content = FileRead($fh)
    FileClose($fh)
    If Not StringRegExp($content, '\r\n' & $txt & '=') Then
    $fh = FileOpen($MyAbbrevPath, 1)
    FileWriteLine($fh, $txt & '=' & $abbr)
    FileClose($fh)
    Else
    $fh = FileOpen($MyAbbrevPath, 0)
    Local $line, $row = 2
    While 1
    $line = FileReadLine($fh, $row)
    If @error = -1 Then ExitLoop
    $split_f = _SplitOnce($line)
    If $txt = $split_f[0] Then ExitLoop
    $row += 1
    WEnd
    FileClose($fh)
    _FileWriteToLine($MyAbbrevPath, $row, $txt & '=' & $abbr, 1)
    EndIf
    Local $line = _GetLine() - 1
    Local $idx = _LV_FindInSubItem($ListView1, $txt, 0)
    $aAbbrev[$line] = $txt & '=' & $abbr
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
    GUICtrlSetData($Edit2, '')
    $start = False
    $k = 0
    _LV_Fill()
    _FileWriteToLine($Abbr_Path, $line, $txt & '=' & $abbr, 1)
    _GUICtrlListView_EnsureVisible($ListView1, $idx)
    _GUICtrlListView_SetItemSelected($ListView1, $idx)
    Reload_Config()
    EndFunc ;==>_WriteEditedAbbrev

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

    Func _Delete()
    $txt = GUICtrlRead($iSearch)
    If MsgBox(262180, 'Achtung', 'Soll die Abkürzung ' & @LF & '>> ' & $txt & ' <<' & @LF & ' wirklich gelöscht werden?') = 7 Then Return
    Local $idx = _GetLine() - 1
    $aAbbrev[$idx] = ''
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
    GUICtrlSetData($iSearch, '')
    $start = False
    $k = 0
    _LV_Fill()
    _FileWriteToLine($Abbr_Path, $idx, '', 1)
    $fh = FileOpen($MyAbbrevPath, 0)
    Local $line, $row = 2
    While 1
    $line = FileReadLine($fh, $row)
    If @error = -1 Then ExitLoop
    $split_f = _SplitOnce($line)
    If @error Then ContinueLoop
    If $txt = $split_f[0] Then ExitLoop
    $row += 1
    WEnd
    FileClose($fh)
    _FileWriteToLine($MyAbbrevPath, $row, '', 1)
    Local $keys = FileRead($KeyWordPath)
    $keys = StringReplace($keys, $txt & ' ', '', 1, 1)
    Local $fh = FileOpen($KeyWordPath, 2)
    FileWrite($fh, $keys)
    FileClose($fh)
    $keys = FileRead($MyKeyWordPath)
    $keys = StringReplace($keys, $txt & @CRLF, '', 1, 1)
    $fh = FileOpen($MyKeyWordPath, 2)
    FileWrite($fh, $keys)
    FileClose($fh)
    Reload_Config()
    EndFunc ;==>_Delete

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

    Func _GetLine()
    Local $var
    For $i = 1 To UBound($aAbbrev) - 1
    $var = _SplitOnce($aAbbrev[$i], '=')
    If @error Then ContinueLoop
    If $var[0] = $txt Then Return $i + 1
    Next
    EndFunc ;==>_GetLine

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

    Func _KeyWordSet($KEYWORD, $CHECK = 0)
    Local $txtZeile, $len
    If $CHECK Then
    Local $fh = FileOpen($KeyWordPath, 0)
    Local $read = FileRead($fh)
    FileClose($fh)
    If StringInStr($read, $KEYWORD & ' ', 1) Then Return
    EndIf
    $zeile = _FileCountLines($KeyWordPath)
    $txtZeile = FileReadLine($KeyWordPath, $zeile)
    $len = StringLen($txtZeile) + 4
    If $len + StringLen($KEYWORD) > 100 Then
    _FileWriteToLine($KeyWordPath, $zeile, $txtZeile & "\" & @CRLF, 1)
    _FileWriteToLine($KeyWordPath, $zeile + 1, @TAB & $KEYWORD & " ", 1)
    Else
    _FileWriteToLine($KeyWordPath, $zeile, $txtZeile & $KEYWORD & " ", 1)
    EndIf
    EndFunc ;==>_KeyWordSet

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

    Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Switch $wParam
    Case $ListView1
    Local $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return $GUI_RUNDEFMSG
    If DllStructGetData($tagNMHDR, 3) = $NM_CLICK Then ListView1Click()
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>MY_WM_COMMAND

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

    ; Thanks to Jos for following functions:
    Func Reload_Config()
    ;Send SciTE Director my GUI handle so it will report info back from SciTE
    SendSciTE_Command("reloadproperties:")
    EndFunc ;==>Reload_Config
    ; Send command to SciTE
    Func SendSciTE_Command($sCmd, $Wait_For_Return_Info = 0)
    Local $WM_COPYDATA = 74
    Local $WM_GETTEXT = 0x000D
    Local $WM_GETTEXTLENGTH = 0x000E224
    Local Const $SCI_GETLINE = 2153
    Local $Scite_hwnd = WinGetHandle("DirectorExtension") ; Get SciTE DIrector Handle
    Local $My_Hwnd = GUICreate("AutoIt3-SciTE interface") ; Create GUI to receive SciTE info
    Local $My_Dec_Hwnd = Dec(StringTrimLeft($My_Hwnd, 2)) ; Convert my Gui Handle to decimal
    $sCmd = ":" & $My_Dec_Hwnd & ":" & $sCmd ; Add dec my gui handle to commandline to tell SciTE where to send the return info
    ConsoleWrite('SciTE Command --> ' & $sCmd & @LF)
    Local $CmdStruct = DllStructCreate('Char[' & StringLen($sCmd) + 1 & ']')
    DllStructSetData($CmdStruct, 1, $sCmd)
    Local $COPYDATA = DllStructCreate('Ptr;DWord;Ptr')
    DllStructSetData($COPYDATA, 1, 1)
    DllStructSetData($COPYDATA, 2, StringLen($sCmd) + 1)
    DllStructSetData($COPYDATA, 3, DllStructGetPtr($CmdStruct))
    DllCall('User32.dll', 'None', 'SendMessage', 'HWnd', $Scite_hwnd, _
    'Int', $WM_COPYDATA, 'HWnd', $My_Hwnd, _
    'Ptr', DllStructGetPtr($COPYDATA))
    GUIDelete($My_Hwnd)
    EndFunc ;==>SendSciTE_Command

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

    Func _GUICtrlEdit_GetLineFixed($hWnd, $iLine)
    If $Debug_Ed Then __UDF_ValidateClassName($hWnd, $__EDITCONSTANT_ClassName)
    If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)

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

    Local $iLength = _GUICtrlEdit_LineLength($hWnd, $iLine)
    If $iLength = 0 Then Return ""
    Local $tBuffer = DllStructCreate("short Len;wchar Text[" & $iLength & "]")
    Local $pBuffer = DllStructGetPtr($tBuffer)
    DllStructSetData($tBuffer, "Len", $iLength + 1)
    Local $iRet = _SendMessage($hWnd, $EM_GETLINE, $iLine, $pBuffer, 0, "wparam", "ptr")

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

    If $iRet = 0 Then Return SetError($EC_ERR, $EC_ERR, "")

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

    Local $tText = DllStructCreate("wchar Text[" & $iLength & "]", $pBuffer)
    Return DllStructGetData($tText, "Text")
    EndFunc ;==>_GUICtrlEdit_GetLineFixed

    [/autoit]
  • GDI+ SaveImageToFile How to?!

    • Greek
    • 4. Februar 2010 um 18:52
    Zitat von eF_Hacks

    viel interessanter ist doch zu wissen wieso die andere funktion nicht geht o0

    Die geht schon, nur nicht mit GUI.

    Dafür gibts die andere.

  • GDI+ SaveImageToFile How to?!

    • Greek
    • 4. Februar 2010 um 18:47

    Mit GUI brauchst du glaubich die Funktion:
    _GDIPlus_Save_to_Image

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>

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

    dim $aPoints[41][2],$hBitmap,$hGraphic,$hImage
    $apoints[0][0] = 40
    for $i = 10 to 400 step 10
    $apoints[$i/10][0] = $i
    $apoints[$i/10][1] = random(10,90,1)
    next

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

    $hGUI = GUICreate("GDI+", 407, 108)
    GUISetState()
    _GDIPlus_Startup ()
    $hBitmap = _GDIPlus_BitmapCreateFromFile("test.bmp") ; einfach nur zum test ein weißer hintergrund
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hGUI)
    _GDIPlus_GraphicsDrawImage ($hGraphic, $hBitmap, 0, 0)
    draw_dots()
    $hbit = _GDIPlus_BitmapCreateFromGraphics(400, 100, $hGraphic)
    ;~ _GDIPlus_ImageSaveToFile($hbit, @hour&@min&@SEC&".bmp") ; speichert aber nur ein komplett schwarzes bild....... -_-
    _GDIPlus_Save_to_Image (@hour&@min&@SEC&".png",$hGUI)
    _GDIPlus_ShutDown()

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

    while GUIGetMsg()<>-3
    sleep(60)
    WEnd

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

    func draw_dots()
    _GDIPlus_GraphicsDrawCurve ($hGraphic, $aPoints)
    EndFunc

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

    Func _GDIPlus_Save_to_Image($file, $hWnd, $CLSID = "PNG", $w = 0, $h = 0)
    Local $hDC, $memBmp, $memDC, $hImage, $size, $sCLSID
    If $file <> "" Or $hWnd <> "" Then
    If $w = 0 Or $h = 0 Then
    $size = WinGetClientSize($hWnd)
    $w = $size[0]
    $h = $size[1]
    EndIf
    $hDC = _WinAPI_GetDC($hWnd)
    $memDC = _WinAPI_CreateCompatibleDC($hDC)
    $memBmp = _WinAPI_CreateCompatibleBitmap($hDC, $w, $h)
    _WinAPI_SelectObject ($memDC, $memBmp)
    _WinAPI_BitBlt($memDC, 0, 0, $w, $h, $hDC, 0, 0, 0x00CC0020) ; 0x00CC0020 = $SRCCOPY
    $hImage = _GDIPlus_BitmapCreateFromHBITMAP ($memBmp)
    $sCLSID = _GDIPlus_EncodersGetCLSID ($CLSID)
    _GDIPlus_ImageSaveToFileEx ($hImage, $file, $sCLSID)
    If @error Then
    Return SetError(1, 0, 0)
    Else
    Return SetError(0, 0, 0)
    EndIf
    _GDIPlus_ImageDispose ($hImage)
    _WinAPI_ReleaseDC($hWnd, $hDC)
    _WinAPI_DeleteDC($memDC)
    _WinAPI_DeleteObject ($memBmp)
    Else
    Return SetError(1, 0, 0)
    EndIf
    EndFunc

    [/autoit]

    Funktioniert aufjedenfall so ;)

  • Gepinnte Childs

    • Greek
    • 31. Januar 2010 um 13:04

    Die sind aber weg wenn man was drüber zieht, fehlt noch WM_Paint oder?

  • TCP-Beispiel Programm

    • Greek
    • 21. Januar 2010 um 23:13

    Ich würde mal STRG + T drücken wenn du in Scite bist. Dann läuft Tidy drüber und dein Code sieht um einiges leserlicher aus.

  • Einzelnen Pixel aus einem Gdiplus Buffer/Grafik auslesen

    • Greek
    • 20. Januar 2010 um 23:35

    Suchste das?

    [autoit]

    Func _GDIPlus_GetPixel($hBitmap,$X,$Y)
    ; Prog@ndy
    Local $result = DllCall($ghGDIPDLL, "int", "GdipBitmapGetPixel", "ptr", $hBitmap, "int", $X, "int", $Y, "dword*", 0)
    If @error Then Return SetError(1,0,0)
    Return SetError($result[0],1,$result[4])
    EndFunc
    Func _GDIPlus_SetPixel($hBitmap,$X,$Y, $ARGB)
    ; Prog@ndy
    Local $result = DllCall($ghGDIPDLL, "int", "GdipBitmapSetPixel", "ptr", $hBitmap, "int", $X, "int", $Y, "dword", $ARGB)
    If @error Then Return SetError(1,0,0)
    Return SetError($result[0],1,$result[0]=0)
    EndFunc

    [/autoit]
  • Bilder einbinden

    • Greek
    • 18. Januar 2010 um 21:58

    Achso, gar nicht bemerkt.

  • Bilder einbinden

    • Greek
    • 18. Januar 2010 um 21:45

    Unter die Forenregeln?

    So z.B.

    [autoit]

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

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

    GUICreate("",@DesktopWidth,@DesktopHeight)
    GUICtrlCreatePic(@WindowsDir & "\Angler.bmp",0,0,@DesktopWidth,@DesktopHeight)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Bild als hintergrund

    • Greek
    • 18. Januar 2010 um 19:54
    Zitat

    GUICtrlCreatePic
    --------------------------------------------------------------------------------

    Creates a Picture control for the GUI.


    GUICtrlCreatePic ( filename, left, top [, width [, height [, style [, exStyle]]]] )


    Parameters

    filename filename of the picture to be loaded : supported types BMP, JPG, GIF(but not animated).

    Alles anzeigen

    Wichtig:

    Danach GuiCtrlSetState(-1,$GUI_DISABLE) sonst funktioniert nichts mehr.

  • Post mit proxy auth

    • Greek
    • 18. Januar 2010 um 15:09
    [autoit]

    #include <winhttp.au3>

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

    $sProxyServer = "202.54.61.99:8080"
    $hw_open = _WinHttpOpen("AutoIt v3 WinHTTP with Proxy ", $WINHTTP_ACCESS_TYPE_NAMED_PROXY, $sProxyServer)
    _WinHttpSetOption($hw_open, $WINHTTP_OPTION_PROXY_PASSWORD, "PASSWORD FOR PROXY")
    _WinHttpSetOption($hw_open, $WINHTTP_OPTION_PROXY_USERNAME, "BENUTZERNAME")

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

    $hw_connect = _WinHttpConnect($hw_open, "www.wieistmeineip.de")
    $h_openRequest = _WinHttpOpenRequest($hw_connect)
    _WinHttpSendRequest($h_openRequest)
    _WinHttpReceiveResponse($h_openRequest)

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

    Local $data=""
    Do
    $data&=_WinHttpReadData($h_openRequest)
    Until @error
    FileWrite ("body.html", $data)

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

    ShellExecute ("body.html",$data)

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

    _WinHttpCloseHandle($h_openRequest)
    _WinHttpCloseHandle($hw_connect)
    _WinHttpCloseHandle($hw_open)

    [/autoit]
  • Oscar hat Geburtstag.

    • Greek
    • 18. Januar 2010 um 14:04

    Alles Gute Oscar :)

  • Entfernte Funktionen?!

    • Greek
    • 17. Januar 2010 um 23:12

    Die wurden nicht wirklich entfernt, gibt jetzt andere dafür.

    AdlibEnable heißt z.B. jetzt AdlibRegister, weil man das jetzt mehr als 1 mal verwenden kann.

  • GUICtrlSetTip macht Probleme

    • Greek
    • 16. Januar 2010 um 14:33
    Zitat von Freaky

    Das ist doch egal.
    Ich will das es bei mir angezeigt wird egal ob es DISABLE oder ENABLE ist.
    Wie krige ich das nung hin ?

    Hat er doch geschrieben:

    Zitat

    Wenn du es unbedingt möchtest musst du dir einen Workaround ala onHover schreiben

  • GDI+ Beispiel: Drehende Dreiecke + Drehende Quadrate

    • Greek
    • 15. Januar 2010 um 23:31
    Zitat von UEZ


    Schaue mal hier: [ gelöst ] Schlechte GDI+ Performance auf WinXP

    Liegt an der Kombination WinXP, Grafiktreiber und Alpha channel!

    Gruß,
    UEZ

    Seit der neusten AutoIt Stable hab ich diesen Bug nicht mehr ! :thumbup:

  • Gleichgewicht halten (Spiel)

    • Greek
    • 14. Januar 2010 um 22:31

    Cooles Spiel, gefällt mir.

    Ist aber ganz schön schwer^^

    11 Sekunden Rekord.

    14 Sekunden :thumbup:

  • Neuer PC (gelöst)

    • Greek
    • 12. Januar 2010 um 18:45
    Zitat von DeepRed92

    Soweit ich weiß, übertaktet ATI aber die Grafikkarten und NVidia nicht. Das heißt NVidia hält länger. Was noch ganz gut an NVidia ist, das nicht so viele nervige ATI-Programme bei jedem start unten auftauchen. Im Taskmanager sind das ca 6 Prozesse. Naja mich würde das stören ^^

    Das stimmt nicht. im Treibermenü kann man aber einstellen, dass die Grafikkarte automatisch übertaktet, was ein Vorteil gegenüber Nvidia ist.
    Und man kann auch ein paar Dienste deaktivieren, die man nicht braucht.
    Das ist bei nVidia aber genauso.

    Zitat

    1GB reicht vollkommen um das System flüssig zum laufen zu bringen


    Ja, arbeite damit mal richtig O.o, hab meinem Vater Windows 7 mit 1GB draufgemacht, war nicht so toll zum arbeiten, Ram ständig vollausgelastet. Würde davon abraten.

    Zitat

    1. Arbeitsspeicher kein Geld kostet, da kann man locker 4GB kaufen


    Naja, die kosten schon noch. Aber auf jedenfall 4GB.

  • Neuer PC (gelöst)

    • Greek
    • 12. Januar 2010 um 18:34

    Mein Bruder wollte letztens das ich ihm einen Billigen PC zusammen stell:

    ( Ich nehm mal an du baust ihn dir selber zusammen? )

    http://www1.hardwareversand.de/articledetail.jsp?aid=29282&agid=1232 Mainboard ; Ohne Onboard Graka
    http://www1.hardwareversand.de/articledetail.jsp?aid=23058&agid=834 Laufwerk
    http://www1.hardwareversand.de/articledetail.jsp?aid=5795&agid=689 Festplatte ; Eventuell hier noch auf 500 Gb aufstocken, aber ich mag lieber extern :)
    http://www1.hardwareversand.de/articledetail.jsp?aid=29013&agid=1004 Graka ; Kannst ja auch weglassen und Onboard Graka nehmen, aber würde schon eine nehmen.
    http://www1.hardwareversand.de/articledetail.jsp?aid=18691&agid=891 Ram
    http://www1.hardwareversand.de/articledetail.jsp?aid=27973&agid=240 Netzteil
    http://www1.hardwareversand.de/articledetail.jsp?aid=27610&agid=1242 Prozi
    http://www1.hardwareversand.de/articledetail.jsp?aid=23096&agid=631 Gehäuse

    Wenn du mehr reinstecken willst würde ich aber den Prozi nehmen:
    http://www4.hardwareversand.de/articledetail.jsp?aid=26625&agid=1242
    und 4 GB DDR3 Ram anstatt 2. ( Also 2 mal kaufen )

    Auf jedenfall Amd+Ati Graka, Ati ist gerade NVIDIA meilenweit voraus und Amd ist Preis Leistung besser.

    Gruss Greek

    Edit: DeepRed92, 1 GB sind aufjedenfall zu wenig.

  • Post Request via WinHTTP.au3 / HTTP.au3

    • Greek
    • 11. Januar 2010 um 21:36

    So macht man eine Post:

    Spoiler anzeigen
    [autoit]

    #include <WinHTTP.au3>

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

    $username="Greek"
    $pw=FileRead( "hide.txt" )

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

    ; Einloggen
    $post="loginUsername="&$username&"&loginPassword="&$pw&"&url=%2Findex.php&useCookies=1"
    $hw_open = _WinHttpOpen(" Einloggen")
    $hw_connect = _WinHttpConnect($hw_open, "www.irgendeineseite.de")
    $h_openRequest = _WinHttpOpenRequest($hw_connect,"POST", "/index.php?form=UserLogin","HTTP/1.1", "http://www.google.de/")
    _WinHttpSendRequest($h_openRequest, "Content-Type: application/x-www-form-urlencoded"& @CRLF, $post)
    _WinHttpReceiveResponse($h_openRequest)

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

    Local $data=""
    Do
    $data&=_WinHttpReadData($h_openRequest)
    Until @error
    FileWrite ("body.html", $data)

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

    _WinHttpCloseHandle($h_openRequest)
    _WinHttpCloseHandle($hw_connect)
    _WinHttpCloseHandle($hw_open)

    [/autoit]
  • SchülerVz Client für den Buschfunk

    • Greek
    • 9. Januar 2010 um 02:47
    Zitat von DeepRed92

    Jetzt steht da, dass die GetNewstContent.exe fehlt :whistling:

    Aber Top Script. Werde ich wahrscheinlich öfter nutzen, da es sehr praktisch ist. Ganz toll wäre es natürlich, wenn man es in den Tray minimieren könnte und von dort aus immer eine Nachricht bekommt, wenn jemand was geschrieben hat. ;)

    Ich hab die lib Compliert und beigelegt statt die GetNewestContent.exe :wacko: , nochma neu hochgeladen, ist jetzt drin.

    Die Funktion mit dem Tray kann ich ja mal morgen noch einbauen :)

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™