1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Oscar

Beiträge von Oscar

  • angeklickte ListView Einträge demarkieren

    • Oscar
    • 7. Dezember 2011 um 15:53

    Dann schau Dir doch mal _GUICtrlListView_SetItemSelected an. ;)

    Spoiler anzeigen
    [autoit]


    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ListBoxConstants.au3>
    #include <WinAPI.au3>
    #include <GuiListBox.au3>
    #include <GuiListView.au3>
    #include <Misc.au3>

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

    Opt('MustDeclareVars', 1)

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

    $Debug_LV = False ; Prüft den Klassennamen (ClassName), der an die ListView-Funktion übergeben wird. Setze dies versuchsweise auf True und verwende dann ein Handle zu einem anderen Control, um die Funktionsweise zu verstehen.

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

    _Main()

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

    Func _Main()
    Local $hListView

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

    GUICreate("ListView: Item für eine verschieben Operation markieren", 500, 300)
    $hListView = GUICtrlCreateListView("", 2, 2, 394, 268, BitOR($WS_VSCROLL, $LBS_SORT, $LVS_SHOWSELALWAYS), $WS_EX_STATICEDGE)
    GUISetState()

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

    ; Fügt die Spalten hinzu
    _GUICtrlListView_AddColumn($hListView, "Spalte 1", 100)
    _GUICtrlListView_AddColumn($hListView, "Spalte 2", 100)
    _GUICtrlListView_AddColumn($hListView, "Spalte 3", 100)

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

    ; Fügt die Items hinzu
    _GUICtrlListView_AddItem($hListView, "Zeile 1: Spalte 1", 0)
    _GUICtrlListView_AddSubItem($hListView, 0, "Zeile 1: Spalte 2", 1)
    _GUICtrlListView_AddSubItem($hListView, 0, "Zeile 1: Spalte 3", 2)
    _GUICtrlListView_AddItem($hListView, "Zeile 2: Spalte 1", 1)
    _GUICtrlListView_AddSubItem($hListView, 1, "Zeile 2: Spalte 2", 1)
    _GUICtrlListView_AddItem($hListView, "Zeile 3: Spalte 1", 2)

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

    ; Item 2 für eine verschieben Operation markieren
    Sleep(5000)
    _GUICtrlListView_SetItemSelected($hListView, 1, True, True)
    Sleep(1000)
    _GUICtrlListView_SetItemSelected($hListView, -1, False, False)
    MsgBox(4160, "Information", "Item 2: " & _GUICtrlListView_GetItemSelected($hListView, 1))

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

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main

    [/autoit]
  • MBP - Mini-Backup-Programm

    • Oscar
    • 30. November 2011 um 22:02

    Naja, machbar ist alles. ^^
    Das passt jetzt aber nicht so ganz zu den Anforderungen, die ich mir für dieses Projekt gestellt habe.
    Vielleicht ist das mal eine Aufgabe für das nächste Projekt... :)

    So etwas gibt es aber auch schon: Beim TotalCommander die Funktion "Verzeichnisse synchronisieren".

  • Inputfeld mit DropDown verändert - gib falsche Werte

    • Oscar
    • 30. November 2011 um 19:26

    Erklären kann ich das Verhalten (Bug?) auch nicht, aber ich würde es etwas anders lösen:

    Spoiler anzeigen
    [autoit]


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

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

    Global $DisplayBreite = @DesktopWidth, $DisplayHoehe = @DesktopHeight
    $Form1 = GUICreate("Form1", 600, 480)
    GUICtrlCreateGroup("Grafikgröße - waagerecht x senkrecht", 40, 4, 200, 62)
    $vInputBeiteGrafik = GUICtrlCreateInput($DisplayBreite, 70, 30, 60, 20)
    $vBeiteGrafikTMP = GUICtrlCreateUpdown($vInputBeiteGrafik)
    GUICtrlCreateLabel("X", 137, 31)
    $vInputHoeheGrafik = GUICtrlCreateInput($DisplayHoehe, 150, 30, 60, 20)
    $vHoeheGrafikTMP = GUICtrlCreateUpdown($vInputHoeheGrafik)
    GUICtrlCreateGroup("", -99, -99, 1, 1) ; Gruppe schliessen

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

    ; Gruppe Seitenverhältnis
    GUICtrlCreateGroup("Seitenverhältnis der Grafik", 40, 70, 200, 39)
    $Ratio1 = GUICtrlCreateRadio("4 : 3", 50, 85, 50, 20) ; = 0.75 oder 1.33333
    $Ratio2 = GUICtrlCreateRadio("16 : 9", 110, 85, 50, 20) ; = 0.5625 oder 1.777778
    $Ratio3 = GUICtrlCreateRadio("ohne", 170, 85, 45, 20)
    GUICtrlSetState($Ratio3, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1) ; Gruppe schliessenGUISetState(@SW_SHOW)
    $idBtnCalc = GUICtrlCreateButton("be&rechnen", 70, 130, 100, 25)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $idBtnCalc
    MsgBox(0, "Breite/Höhe", GUICtrlRead($vInputBeiteGrafik) & "/" & GUICtrlRead($vInputHoeheGrafik))
    EndSwitch
    WEnd

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

    Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    $nNotifyCode = BitShift($wParam, 16)
    $nID = BitAND($wParam, 0x0000FFFF)
    $hCtrl = $lParam
    Switch $nID
    Case $vInputBeiteGrafik
    GUICtrlSetData($vInputBeiteGrafik, StringReplace(GUICtrlRead($vInputBeiteGrafik), '.', ''))
    Case $vInputHoeheGrafik
    GUICtrlSetData($vInputHoeheGrafik, StringReplace(GUICtrlRead($vInputHoeheGrafik), '.', ''))
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>MY_WM_COMMAND

    [/autoit]
  • MBP - Mini-Backup-Programm

    • Oscar
    • 28. November 2011 um 17:05

    Das mit den leeren Verzeichnissen war ein Bug. Ist jetzt behoben!
    Timestamp wird nun mitkopiert bzw. entsprechend verändert. Restdauer nun als hh:mm:ss und die verstrichene Zeit wird jetzt auch angezeigt.
    Soweit sind Deine Vorschläge umgesetzt. Danke für das Feedback! :thumbup:

    Mit dem ZIP-Archiv-Format bin ich noch am überlegen. Das bringt einige Probleme mit sich (Restdauerberechnung?, kann die Zielgruppe etwas damit anfangen?).
    Das muss ich mir nochmal durch den Kopf gehen lassen...

  • Der_Doc und BugFix haben Geburtstag

    • Oscar
    • 28. November 2011 um 04:18

    Euch beiden herzlichen Glückwunsch zum Geburtstag!
    Ihr seid beide wichtige User, ohne die dieses Forum nicht das wäre, was es heute ist.
    Für euer privates Leben wünsche ich euch alles Gute und eine schöne Geburtstagsfeier (heute oder wann immer diese stattfindet). :)
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • MBP - Mini-Backup-Programm

    • Oscar
    • 27. November 2011 um 23:25

    Dieses Programm habe ich geschrieben für Leute, die kaum Ahnung von Computern haben und mit einem herkömmlichen Backup-Programm völlig überfordert sind.
    Das "Mini" im Namen bezieht sich also nicht nur auf die Dateigröße und das man keinerlei Installation benötigt, sondern vor allem auf den Funktionsumfang.

    Was kann das Programm:
    Man kann damit eine Liste erstellen, mit den Dateien/Verzeichnissen, die gesichert werden sollen. Diese Liste lässt sich abspeichern, damit man sie immer wieder mal verwenden kann.
    Natürlich kann man mehrere verschiedene Listen anlegen. Außer dieser Liste muss man einen Backup-Pfad angeben (dieser wird beim abspeichern der Liste mitgespeichert).
    Hat man diese beiden Dinge getan, kann man das Backup starten (vorausgesetzt im Backup-Pfad ist genügend Platz für das Backup vorhanden). Das Programm fügt dann zu dem Backup-Pfad
    automatisch noch ein Verzeichnis mit dem Datum und der Uhrzeit des Backups hinzu, sodass man das Backup auch mehrmals starten kann.
    Es werden also keine Dateien überschrieben, sondern es wird jedesmal ein neuer Ordner erzeugt, in dem die Dateien dann reinkopiert werden.

    Screenshots:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Update auf Version 1.1:
    - Leere Verzeichnisse werden jetzt mitkopiert. Danke UEZ!
    - Der Timestamp aller Dateien/Verzeichnisse wird mitkopiert. Danke UEZ!
    - Restzeitdauer geändert auf hh:mm:ss. Danke UEZ!
    - Verstrichene Zeit wird nun ebenfalls angezeigt. Danke UEZ!


    Alle Icons, die von dem Programm benutzt werden sind mit im Skript enthalten (Base64 codiert, Danke UEZ). Einzige Ausnahme ist das Programm-Icon, dass für die Exe benötigt wird.

    Dateien

    MBP1.png 46,82 kB – 0 Downloads Mini-Backup-Programm_v11.zip 565,17 kB – 328 Downloads
  • Herzlichen Glückwunsch Raupi

    • Oscar
    • 26. November 2011 um 15:05

    Ich schliesse mich an: Alles Gute zum Geburtstag!

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • OnlineCheck und GetOnlineTime ...

    • Oscar
    • 25. November 2011 um 23:05

    Ich hatte mal aus einigen Forenbeiträgen im engl. Forum eine Funktion geskriptet, die ich für meine Digitaluhr gebraucht hatte:

    Spoiler anzeigen
    [autoit]


    #include <Date.au3>
    $time = _TimeSync()
    MsgBox(0, '', 'Rechnerzeit:' & @TAB & _NowCalc() & @CRLF & 'Atomzeit: ' & @TAB & $time)

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

    ;**************************************************************************************************
    ; Ab hier beginnen die Funktionen, zum holen der Zeit aus dem Internet (Quelle: http://www.autoitscript.com/forum/)
    ;**************************************************************************************************
    Func _TimeSync()
    Local $ntpServer = '1.de.pool.ntp.org'
    UDPStartup()
    Dim $socket = UDPOpen(TCPNameToIP($ntpServer), 123)
    If @error <> 0 Then Return SetError(1)
    ;$status = UDPSend($socket, MakePacket('1b0e010000000000000000004c4f434ccb1eea7b866665cb00000000000000000000000000000000cb1eea7b866665cb'))
    Local $status = UDPSend($socket, MakePacket('1b0e01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'))
    If $status = 0 Then Return SetError(1)
    Local $data = '', $a = TimerInit() ; Timer setzen, damit im Fehlerfall die Schleife abgebrochen wird
    While $data = ''
    $data = UDPRecv($socket, 100)
    sleep(100)
    If TimerDiff($a) > 1000 Then ExitLoop ; Wenn Timer > 1sek. (Fehler), dann Schleife verlassen
    WEnd
    If $data <> '' Then
    UDPShutdown()
    Local $unsignedHexValue = StringMid($data,83,8); Extract time from packet. Disregards the fractional second.
    Local $value = UnsignedHexToDec($unsignedHexValue)
    Local $TZinfo = _Date_Time_GetTimeZoneInformation()
    Local $TZoffset = -(UnsignedToLong($TZinfo[1]) + (UnsignedToLong($TZinfo[4])*($TZinfo[0]<2)) + (UnsignedToLong($TZinfo[7])*($TZinfo[0]=2)))
    Local $UTC = _DateAdd('s',$value,'1900/01/01 00:00:00')
    Return _DateAdd('n',$TZoffset,$UTC)
    EndIf
    SetError(1)
    EndFunc
    ;**************************************************************************************************
    Func MakePacket($d)
    Local $p = ''
    While $d
    $p &= Chr(Dec(StringLeft($d,2)))
    $d = StringTrimLeft($d,2)
    WEnd
    Return $p
    EndFunc
    ;**************************************************************************************************
    Func UnsignedHexToDec($n)
    Local $ones = StringRight($n,1)
    $n = StringTrimRight($n,1)
    Return dec($n)*16+dec($ones)
    EndFunc
    ;**************************************************************************************************
    ; http://support.microsoft.com/kb/189323
    ; Gibt Die Zahl mit Vorzeichen zurück.
    ; Bei Fehler ( kleiner 0 oder größer MAXINT_4) wird der übergebene Wert zurückgegeben und @error auf 1 gesetzt.
    Func UnsignedToLong($Value)
    Local Const $OFFSET_4 = 4294967296
    Local Const $MAXINT_4 = 2147483647
    If $Value < 0 Or $Value >= $OFFSET_4 Then Return SetError(1,0,$Value) ;' Overflow
    If $Value <= $MAXINT_4 Then
    Return $Value
    Else
    Return $Value - $OFFSET_4
    EndIf
    EndFunc
    ;**************************************************************************************************

    [/autoit]
  • _GuiCtrlSetPath

    • Oscar
    • 24. November 2011 um 16:19

    Klasse Lösung! Da ich das gerade für mein aktuelles Projekt brauche, ist mir Deine Lösung natürlich viel lieber (weil schneller).

    Sehe gerade:

    Zitat

    Just married


    Herzlichen Glückwunsch!

  • _GuiCtrlSetPath

    • Oscar
    • 24. November 2011 um 16:00

    [KLONK] Die ganze Arbeit umsonst. :pinch:

    Deine Funktion ist natürlich viel besser (und schneller). Dann nehme ich halt die. Gut gemacht! :thumbup:

  • _FilePathTrimToLabelWidth

    • Oscar
    • 24. November 2011 um 13:34

    Ja, ich habe es auch gerade bemerkt. :thumbup:
    So sieht das schon ganz gut aus.

  • _FilePathTrimToLimit

    • Oscar
    • 24. November 2011 um 13:15

    UEZ: Bei Deinem Skript schwankte das Ergebnis sehr stark (je nach verwendetem Font und -größe). Mal passte es, mal nicht.

    Ich habe mal Deine Funktion benutzt, um das hier _FilePathTrimToLabelWidth zu erstellen.
    Dabei habe ich die Idee von peethebee aufgegriffen und die Breite experimentell ermittelt.
    Nachteil ist, dass es relativ lange dauert. (Nachteil beseitigt)

  • _FilePathTrimToLabelWidth

    • Oscar
    • 24. November 2011 um 13:13

    Hier nun eine Funktion, die einen übergebenen Pfad soweit kürzt, dass er in ein anzugebenes Label passt.

    Mit Hilfe von UEZ und peethebee ist das hier entstanden:

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>

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

    $iFontSize = 16
    $sFontname = 'Times New Roman'
    $iFontStyle = 0
    ;~ $sFontname = 'Courier New'
    $hGui = GUICreate('Test', 600, 200)
    GUISetFont($iFontSize, 400, $iFontStyle, $sFontname)
    $hPath1 = GUICtrlCreateLabel('', 10, 10, 300, 50)
    GUICtrlSetBkColor(-1, 0xCCCCCC)
    $hPath2 = GUICtrlCreateLabel('', 10, 80, 580, 50)
    GUICtrlSetBkColor(-1, 0xCCCCCC)
    GUISetState()

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

    ; Beispiel 1
    $sPath1 = 'C:\Users\Oscar\Pictures\Urlaub2011\Pic1045.jpg'
    $iTimer = TimerInit()
    $sPath1 = _FilePathTrimToLabelWidth($sPath1, $hGui, $hPath1, $iFontSize, $sFontname, $iFontStyle)
    ConsoleWrite(Int(TimerDiff($iTimer)) & ' mSec.' & @CR)
    GUICtrlSetData($hPath1, $sPath1)

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

    ; Beispiel 2
    $sPath2 = '\\Server\d\Backup\Users\Oscar\Pictures\Urlaub2011\Pic1045.jpg'
    $iTimer = TimerInit()
    $sPath2 = _FilePathTrimToLabelWidth($sPath2, $hGui, $hPath2, $iFontSize, $sFontname, $iFontStyle)
    ConsoleWrite(Int(TimerDiff($iTimer)) & ' mSec.' & @CR)
    GUICtrlSetData($hPath2, $sPath2)

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

    Do
    Until GUIGetMsg() = -3

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

    ;===============================================================================
    ; Function Name: _FilePathTrimToLabelWidth($sFilepath, $hGui, $iCtrlID, $iFontSize, $sFontname[, $iFontStyle])
    ; Description:: Begrenzt einen Dateipfad auf die Breite eines Labels.
    ; Dabei wird er aber nicht vorn oder hinten abgeschnitten,
    ; sondern es bleibt das Device erhalten und der rechte Teil
    ; des Pfades.
    ; Parameter(s): $sFilepath = der Pfad, der gekürzt werden soll
    ; $hGui = das Handle des Fensters
    ; $iCtrlID = die Control ID des Label
    ; $iFontSize = Fontgröße
    ; $sFontname = Fontname
    ; $iFontStyle = Fontstyle (optional)
    ; Requirement(s): #include <GDIPlus.au3>
    ; Return Value(s): Der gekürzte Pfad
    ; Author(s): Oscar + UEZ + peethebee (http://www.autoit.de)
    ;===============================================================================
    Func _FilePathTrimToLabelWidth($sFilepath, $hGui, $iCtrlID, $iFontSize, $sFontname, $iFontStyle = 0)
    Local $sDevice, $iLen = StringLen($sFilepath)
    _GDIPlus_Startup()
    Local $iSize = _GetStringSize($sFilepath, $hGui, $iFontSize, $sFontname, $iFontStyle)
    Local $aPosCtrl = ControlGetPos($hGui, '', $iCtrlID)
    If $iSize < $aPosCtrl[2] Then Return $sFilepath
    $sDevice = StringRegExpReplace($sFilepath, '(?i)([a-z]:\\|\\\\.+?\\[a-z]\\).+', '$1') & '...'
    For $i = $iLen To 1 Step -1
    $iSize = _GetStringSize($sDevice & StringRight($sFilepath, $i), $hGui, $iFontSize, $sFontname, $iFontStyle)
    If $iSize < $aPosCtrl[2] Then ExitLoop
    Next
    _GDIPlus_Shutdown()
    Return $sDevice & StringRight($sFilepath, $i)
    EndFunc ;==>_FilePathTrimToLabelWidth

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

    Func _GetStringSize($sString, $hGui, $iFontSize, $sFontname, $iFontStyle)
    Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
    Local $hFormat = _GDIPlus_StringFormatCreate()
    Local $hFamily = _GDIPlus_FontFamilyCreate($sFontname)
    Local $hFont = _GDIPlus_FontCreate($hFamily, $iFontSize, $iFontStyle)
    Local $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $sString, $hFont, $tLayout, $hFormat)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_GraphicsDispose($hGraphic)
    Return Int(DllStructGetData($aInfo[0], 'Width'))
    EndFunc ;==>_GetStringSize

    [/autoit]

    Edit: Extrem beschleunigt. Schuld waren die dauernden Aufrufe von _GDIPlus_Startup() und _GDIPlus_Shutdown().

    Edit2: Es gab noch einen Bug beim RegExp-Pattern. Außerdem habe ich noch ein wenig "aufgeräumt".

    Edit3: Eine bessere Lösung für das Problem gibt es hier: _GuiCtrlSetPath

  • _FilePathTrimToLimit

    • Oscar
    • 24. November 2011 um 10:08

    Nicht wirklich! Weil man ja den Text (die Textlänge genauer gesagt) vorher nicht kennt. Man muss den Text ja an das Label anpassen.

  • _FilePathTrimToLimit

    • Oscar
    • 24. November 2011 um 09:45

    Das ist gar nicht so einfach zu realisieren, denn wenn man einen Proportional-Font verwendet, kann man gar nicht vorhersagen, wie viele Zeichen dort hineinpassen.
    Man müsste das durch ausprobieren rauskriegen und das würde, fürchte ich, relativ viel Rechenzeit kosten. :S

  • _FilePathTrimToLimit

    • Oscar
    • 24. November 2011 um 09:15

    Diese Funktion dient dazu einen Dateipfad zu kürzen, um diesen in einem Label (begrenzter Platz) anzeigen zu können.
    Der Pfad wird dabei aber nicht einfach vorne oder hinten abgeschnitten, sondern es bleibt das Device erhalten und der Rest wird dann vom rechten Teil aufgefüllt.

    Skript und Beispiel:

    Spoiler anzeigen
    [autoit]


    $hGui = GUICreate('Test', 400, 200)
    GUISetFont(12, 400, 0, 'Courier New')
    $hPath1 = GUICtrlCreateLabel('', 10, 10, 380, 20)
    GUICtrlSetBkColor(-1, 0xCCCCCC)
    $hPath2 = GUICtrlCreateLabel('', 10, 60, 380, 20)
    GUICtrlSetBkColor(-1, 0xCCCCCC)
    GUISetState()

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

    ; Beispiel 1
    $sPath1 = 'c:\Users\Oscar\Pictures\Urlaub2011\Pic1045.jpg'
    $sPath1 = _FilePathTrimToLimit($sPath1, 38)
    GUICtrlSetData($hPath1, $sPath1)

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

    ; Beispiel 2
    $sPath2 = '\\Server\d\Backup\Users\Oscar\Pictures\Urlaub2011\Pic1045.jpg'
    $sPath2 = _FilePathTrimToLimit($sPath2, 38)
    GUICtrlSetData($hPath2, $sPath2)

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

    Do
    Until GUIGetMsg() = -3

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

    ;===============================================================================
    ; Function Name: _FilePathTrimToLimit($sFilepath, $iLimit)
    ; Description:: Begrenzt einen Dateipfad auf eine anzugebene Stringlänge.
    ; Dabei wird er aber nicht vorn oder hinten abgeschnitten,
    ; sondern es bleibt das Device erhalten und der rechte Teil
    ; des Pfades.
    ; Parameter(s): $sFilepath = der Pfad, der gekürzt werden soll
    ; $iLimit = auf wie viele Stellen der Pfad gekürzt werden soll
    ; Requirement(s): ---
    ; Return Value(s): Der gekürzte Pfad
    ; Author(s): Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _FilePathTrimToLimit($sFilepath, $iLimit)
    Local $sDevice, $iLen = StringLen($sFilepath)
    If $iLimit < 1 Or $iLimit >= $iLen Then Return $sFilepath
    $sDevice = StringRegExpReplace($sFilepath, '([a-z]:\\|\\\\.+?\\[a-z]\\).+', '$1') & '...'
    Return $sDevice & StringRight($sFilepath, $iLimit - StringLen($sDevice))
    EndFunc ;==>_FilePathTrimToLimit

    [/autoit]

    Edit: Eine bessere Lösung für das Problem gibt es hier: _GuiCtrlSetPath

  • Problem mit der Darstellung einer URL in einem IEembedded-Fenster

    • Oscar
    • 23. November 2011 um 15:32

    Es wäre ganz hilfreich, wenn Du ein paar mehr Informationen (was wird nicht korrekt angezeigt, welche Darstellungsprobleme treten auf) liefern würdest.
    Eventuell Screenshots posten. Dein Skript, welches die Probleme verursacht, solltest Du auch posten.
    Alles andere ist nur ein Blick in die Glaskugel. ;)

  • Global Array aus Funktion heraus aendern (arrayname = string = variabel) ??

    • Oscar
    • 23. November 2011 um 04:39

    Dann übergib der Funktion doch einfach das Array und in der Funktion benutzt Du das Array mit ByRef. Dann wird genau das übergebene Array verändert.
    Dazu brauchst Du doch kein Assign.

  • UDF für login (pincode)

    • Oscar
    • 23. November 2011 um 04:31

    Stimmt! [verschoben]

  • OpenSource Programm zum erstellen von Hilfedateien

    • Oscar
    • 21. November 2011 um 22:01

    Mit BookME4 kann man einfach und schnell Windows-Hilfe-Dateien erstellen (habe ich selbst schon benutzt).

    Zitat

    Das Programm wird für private Zwecke kostenlos zur Verfügung gestellt.

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™