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

Beiträge von Thomas

  • Bilder trapezförmig skalieren und mit Text versehen

    • Thomas
    • 2. Mai 2015 um 16:07

    Ich fasse nochmal alles zusammen:
    Die Funktion bekommt einen Text. Der Text kann aus einem einzelnen Wort, ggf. auch mehreren Wörtern (vergl. oben) bestehen. Bei dem Text muss dann überprüft werden in welchem der folgenden Fälle die Schrift größer dargestellt wird:

    • Alles in eine Zeile hintereinander
    • Mit Zeilenumbruch

    Generell gilt aber: Die Schrift darf so breit sein wie @DesktopWidth-20 und so max. so hoch wie 2/3*@DesktopHeight. Anhand dieser Vorgaben muss die Funktion entscheiden, wie sie die Schrift darstellt, also mit oder ohne Zeilenumbruch.

  • Bilder trapezförmig skalieren und mit Text versehen

    • Thomas
    • 2. Mai 2015 um 02:21

    Prizipiell schon gut, nur kann ich die FontSize manuell nicht anpassen. Das muss die Funktion anhand des übergeben Textes selber machen inkl. die Aufteilung in die Zeilen. Die Funktion von eukalyptus macht soetwas ja schon, es fehlt da halt nur die beiden Punkte, die ich oben notiert hatte.

  • Bilder trapezförmig skalieren und mit Text versehen

    • Thomas
    • 29. April 2015 um 02:24

    Funktioniert jetzt auch :D


    Kann man die Funktion auch so schreiben, dass...
    1. man einen Bereich vorgibt wo die Schrift steht, also eine Position und eine Breite bzw. Höhe des "Rahmens" und
    (konkret heißt das, dass man eine xund eine y Position und dazu noch die Width und die High)


    2. sie automatisch einen Zeilenumbruch macht, wenn der Text insgesamt mit Zeilenumbruch größer wäre als ohne?
    (Beispiel: Der Text "Landwirtschaft nimmt wieder stark zu" wäre in eine Zeile gequetscht ziemlich klein. Hier wäre ein Zeilenumbruch wie z.B. "Landwirtschaft nimmt / wieder stark zu" sinnvoll und die Schrift wäre insgesamt dadurch größer. Zeilenumbrüche sollten aber nur eingefügt werden, wenn ein Leerzeichen vorhanden sind. Worttrennungen sind also nicht nötig.)


    Der rote Kasten entspricht den Vorgaben unter Punkt 1.
    Ich habe auch dafür keinen Ansatz parat.

  • Bilder trapezförmig skalieren und mit Text versehen

    • Thomas
    • 13. April 2015 um 01:38

    Ok ist auch fast erledigt ;)
    Aber eine Frage habe ich dann doch noch:
    Wenn ich einen beliebig lagen Text (meistens nur ein bis wenige Wörter) in einer Variable $text habe, wie kann ich für die oben gegebene Funktion

    [autoit]

    Func DrawTextOnBitmap(...)

    [/autoit]


    die größtmögliche Schritftgröße in Abhängigkeit von den maximalen Breite (@DesktopWidth-50) und Höhe (2/3*@DesktopWidth) errechnen?

  • Bilder trapezförmig skalieren und mit Text versehen

    • Thomas
    • 11. April 2015 um 19:37

    Super danke ;)
    Kann man eigentlich auf eine Bitmap nochmal eine Grafik oben "draufzeichnen"?

  • Bilder trapezförmig skalieren und mit Text versehen

    • Thomas
    • 10. April 2015 um 18:18

    Was gibt es denn noch für Möglichkeiten das ganze zu verschnellern, außer den Zeilenabstand zu erhöhen? Der Code lässt sich ja auch nicht viel effizienter gestalten.

  • Bilder trapezförmig skalieren und mit Text versehen

    • Thomas
    • 10. April 2015 um 01:28

    Das sieht sehr sehr gut aus, vorallem läuft es flüssig.
    Es gibt nur zwei Dinge die man noch ändern müsse:
    - Das Schwenken von rechts nach links und umgekehrt könnte man ganz rausnehmen. Das ist für den Zweck etwas unangebracht. Schön wäre es, wenn man diesen Effekt nur einseitig hätte.
    - Gleichzeitig müsste es zeitlich etwas zusammenschrumpfen. Bei mir dauert aktuell das Programm mit einem BIld von 1444x777 Pixel mehr als 16 Sekunden. Zur Verfügung steht aber gerade einmal eine 3/4 Sekunde für die komplette Animation von Beginn bis Ende.

  • Bilder trapezförmig skalieren und mit Text versehen

    • Thomas
    • 7. April 2015 um 16:37

    Ok schonmal danke. Das mit dem Text sollte jetzt laufen. Nur das Parallelogramm bringt mir nicht wirklich viel. Ich bin vorhin dann auf einen älteren Thread gestoßen (https://autoit.de/index.php/Thre…oints/?pageNo=1). Interessanter weise funktioniert nur das dort gepostete nicht wirklich. Aber vom Ansatz her wäre das vielleicht was.


    Ist zufällt mal jemandem aufgefallen, dass wenn man mit

    [autoit]

    _GDIPlus_GraphicsDrawStringEx(...)

    [/autoit]


    einen String ausgeben lässt, der bei größeren Schriftgrößen (>100) nicht mehr exakt bei der Koordinate beginnt, die man angegeben hat? Ich bekomme da immer eine Verschiebung von ca. 150 Pixeln(in Abhängigkeit von der Schriftgr.) nach rechts. Hat da jemand eine Idee wie man die weg bekommt?

  • Bilder trapezförmig skalieren und mit Text versehen

    • Thomas
    • 7. April 2015 um 13:21

    Das mit GDI+ war mir fast schon klar.

    UEZ:
    Ja, auf dem Bild ist das nicht gut erkennbar. Das ganze soll so aussehen, dass das ganze von oben heruntergeklappt kommt. Die Drehachse soll die vordere obere Kante sein und praktisch in der Bildschirmebene liegen . Von der Theorie her müsste die hintere Kante schmaler sein und daher kommt die Trapezform.

    Kennt jemand, bzw. könnte jemand mal die notwendigen Methoden aufschreiben, weil ich überhaupt keinen Ansatz habe, weder für den Text, noch für die Animation.

  • Bilder trapezförmig skalieren und mit Text versehen

    • Thomas
    • 7. April 2015 um 01:53

    Hallo Leute,
    kennt jemand einen Weg ein vorhandenes Bild...
    1. mit einem beliebigen Text zu versehen (also als weiße Schrift zentriert mitten drauf). Der Text ist bei jedem Programmaufruf verschieden.
    2. dieses neue Bild dann für eine Animation trapezförmig zu skalieren (das ist auf dem Bild nicht gut erkennbar).

    Wäre super wenn jemand einen guten Ansatz dafür hätte.


    Ani.jpg

  • Animation mit GDI+ und Bildern

    • Thomas
    • 25. November 2014 um 02:42

    Danke.

  • Animation mit GDI+ und Bildern

    • Thomas
    • 24. November 2014 um 21:17

    Das Problem ist: Selbst wenn ich alles auf den folgenden Umfang reduziere, zieht der immernoch so viel an Speicher, zwar etwas langsamer, aber immernoch viel...

    C
    #include <File.au3>
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>
    
    
    $high=@DesktopHeight/5
    
    
    $Form1 = GUICreate("Form1", @DesktopWidth, @DesktopHeight, 0, 0, BitOR($WS_POPUP,$DS_SETFOREGROUND), $WS_EX_TOPMOST)
    GUISetBkColor(0x000000)
    GUISetState(@SW_SHOW)
    
    
    _GDIPlus_Startup()
    $hImage = _GDIPlus_GraphicsCreateFromHWND($Form1)
    $handl= _GDIPlus_ImageLoadFromFile(@Scriptdir&"\3.jpg")
    Sleep(2000)
    
    
    While 1
        If GUIGetMsg()=$GUI_EVENT_CLOSE Then
            _GDIPlus_Shutdown()
            Exit
        Endif
    
    
        showpic($handl,300,300,$high,$high,true)
        delpic($handl,300,300,$high,$high,true)
    WEnd
    
    
    Func showpic($pichandle,$posx,$posy,$picwith,$pichigh,$fast)
    If $fast Then
    For $t=0 To $picwith
    _GDIPlus_GraphicsDrawImage($hImage,Scale_Image($pichandle, $t, $pichigh), $posx+($picwith/2)-($t/2), $posy)
    Next
    Else
    For $t=0 To $picwith
    _GDIPlus_GraphicsDrawImage($hImage,Scale_Image($pichandle, $t, $pichigh), $posx+($picwith/2)-($t/2), $posy)
    Sleep(5)
    Next
    Endif
    EndFunc
    
    
    Func delpic($pichandle,$posx,$posy,$picwith,$pichigh,$fast)
    If $fast Then
    For $t=0 To $picwith
    _GDIPlus_GraphicsDrawImage($hImage,Scale_Image($pichandle, $picwith-$t, $pichigh), $posx+($t/2), $posy)
    Next
    Else
    For $t=0 To $picwith
    _GDIPlus_GraphicsDrawImage($hImage,Scale_Image($pichandle, $picwith-$t, $pichigh), $posx+($t/2), $posy)
    Sleep(15)
    Next
    Endif
    EndFunc
    
    
    Func _ArrayCompare($avArray1, $avArray2)
    ; Array[0] = Anzahl an Treffer
    Local $avArray3[1] = [0], $iMax, $i
    For $i = 0 To UBound($avArray1) - 1
    If Not _c($avArray2, $avArray1[$i]) Then
    $iMax = UBound($avArray3)
    ReDim $avArray3[$iMax + 1]
    $avArray3[$iMax] = $avArray1[$i]
    EndIf
    Next
    $avArray3[0] = UBound($avArray3) - 1
    Return $avArray3
    EndFunc
    Func _c($a, $v)
    Local $i
    For $i = 0 To UBound($a) - 1
    If $a[$i] = $v Then Return True
    Next
    Return False
    EndFunc
    
    
    Func Scale_Image($hImage, $newW, $newH)
    Local $newImage = _GDIPlus_BitmapCreateFromScan0($newW, $newH)
    Local $hContext = _GDIPlus_ImageGetGraphicsContext($newImage)
    _GDIPlus_GraphicsSetInterpolationMode($hContext, 7)
    _GDIPlus_GraphicsDrawImageRect($hContext, $hImage, 0, 0, $newW, $newH)
    _GDIPlus_GraphicsDispose($hContext)
    Return SetError(0, 0, $newImage)
    EndFunc
    Func _GDIPlus_GraphicsSetInterpolationMode($hGraphics, $iInterpolationMode)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipSetInterpolationMode", "hwnd", $hGraphics, "int", $iInterpolationMode)
    If @error Then Return SetError(@error, @extended, False)
    Return $aResult[0] = 0
    EndFunc ;==>_GDIPlus_GraphicsSetInterpolationMode
    Func _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight, $iStride = 0, $iPixelFormat = 0x0026200A, $pScan0 = 0)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iWidth, "int", $iHeight, "int", $iStride, "int", $iPixelFormat, "ptr", $pScan0, "int*", 0)
    If @error Then Return SetError(@error, @extended, 0)
    Return $aResult[6]
    EndFunc ;==>_GDIPlus_BitmapCreateFromScan0
    Alles anzeigen
  • Animation mit GDI+ und Bildern

    • Thomas
    • 24. November 2014 um 20:34

    Habe ich auch schon probiert, er frisst aber interessanter Weise beim "Animieren" den Speicher, nicht vorher beim Laden.

  • Animation mit GDI+ und Bildern

    • Thomas
    • 24. November 2014 um 20:24

    Hallo Leute,

    ich habe da mal wieder ein kleines Problem. Ich habe ein kleines Programm geschrieben, dass Bilder aus einem Ordner lädt und diese dann mit einer kleinen Animation anzeigen soll. Das läuft in der aktuellen Version eingentlich auch alles sehr gut außer dass das Programm extrem viel Speicher zieht.
    Gibt es eine Möglichkeit die gleiche Animation zu erhalten, aber ohne soooo viel Speicherplatz?

    Hier noch der bisherige Quelltext:

    C
    #include <File.au3>
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>
    
    
    $high=@DesktopHeight/5
    
    
    $Form1 = GUICreate("Form1", @DesktopWidth, @DesktopHeight, 0, 0, BitOR($WS_POPUP,$DS_SETFOREGROUND), $WS_EX_TOPMOST)
    GUISetBkColor(0x000000)
    GUISetState(@SW_SHOW)
    
    
    _GDIPlus_Startup()
    $hImage = _GDIPlus_GraphicsCreateFromHWND($Form1)
    Sleep(2000)
    
    
    $pics=_FileListToArray(@Scriptdir&"\Pics","*.*",1)
    _ArrayDelete($pics,0)
    Dim $pichandles[Ubound($pics)]
    Dim $picnamen [Ubound($pics)]
    Dim $used [Ubound($pics)]
    
    
    For $t=0 To Ubound($pics)-1
    $pichandles[$t]= _GDIPlus_ImageLoadFromFile(@Scriptdir&"\Pics\"&$pics[$t])
    $used [$t]= false
    $picnamen [$t]= $pics[$t]
    Next
    
    
    While 1
    If GUIGetMsg()=$GUI_EVENT_CLOSE Then
    _GDIPlus_Shutdown()
    Exit
    Endif
    
    
    ;Bilder anzeigen
    $nr=Random(0,Ubound($pichandles)-1,1)
    showpic($pichandles[$nr],300,300,$high,$high,true)
    delpic($pichandles[$nr],300,300,$high,$high,true)
    WEnd
    
    
    Func showpic($pichandle,$posx,$posy,$picwith,$pichigh,$fast)
    If $fast Then
    For $t=0 To $picwith
    _GDIPlus_GraphicsDrawImage($hImage,Scale_Image($pichandle, $t, $pichigh), $posx+($picwith/2)-($t/2), $posy)
    Next
    Else
    For $t=0 To $picwith
    _GDIPlus_GraphicsDrawImage($hImage,Scale_Image($pichandle, $t, $pichigh), $posx+($picwith/2)-($t/2), $posy)
    Sleep(5)
    Next
    Endif
    EndFunc
    
    
    Func delpic($pichandle,$posx,$posy,$picwith,$pichigh,$fast)
    If $fast Then
    For $t=0 To $picwith
    _GDIPlus_GraphicsDrawImage($hImage,Scale_Image($pichandle, $picwith-$t, $pichigh), $posx+($t/2), $posy)
    Next
    Else
    For $t=0 To $picwith
    _GDIPlus_GraphicsDrawImage($hImage,Scale_Image($pichandle, $picwith-$t, $pichigh), $posx+($t/2), $posy)
    Sleep(15)
    Next
    Endif
    EndFunc
    
    
    Func _ArrayCompare($avArray1, $avArray2)
    ; Array[0] = Anzahl an Treffer
    Local $avArray3[1] = [0], $iMax, $i
    For $i = 0 To UBound($avArray1) - 1
    If Not _c($avArray2, $avArray1[$i]) Then
    $iMax = UBound($avArray3)
    ReDim $avArray3[$iMax + 1]
    $avArray3[$iMax] = $avArray1[$i]
    EndIf
    Next
    $avArray3[0] = UBound($avArray3) - 1
    Return $avArray3
    EndFunc
    Func _c($a, $v)
    Local $i
    For $i = 0 To UBound($a) - 1
    If $a[$i] = $v Then Return True
    Next
    Return False
    EndFunc
    
    
    Func Scale_Image($hImage, $newW, $newH)
    Local $newImage = _GDIPlus_BitmapCreateFromScan0($newW, $newH)
    Local $hContext = _GDIPlus_ImageGetGraphicsContext($newImage)
    _GDIPlus_GraphicsSetInterpolationMode($hContext, 7)
    _GDIPlus_GraphicsDrawImageRect($hContext, $hImage, 0, 0, $newW, $newH)
    _GDIPlus_GraphicsDispose($hContext)
    Return SetError(0, 0, $newImage)
    EndFunc
    Func _GDIPlus_GraphicsSetInterpolationMode($hGraphics, $iInterpolationMode)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipSetInterpolationMode", "hwnd", $hGraphics, "int", $iInterpolationMode)
    If @error Then Return SetError(@error, @extended, False)
    Return $aResult[0] = 0
    EndFunc ;==>_GDIPlus_GraphicsSetInterpolationMode
    Func _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight, $iStride = 0, $iPixelFormat = 0x0026200A, $pScan0 = 0)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iWidth, "int", $iHeight, "int", $iStride, "int", $iPixelFormat, "ptr", $pScan0, "int*", 0)
    If @error Then Return SetError(@error, @extended, 0)
    Return $aResult[6]
    EndFunc ;==>_GDIPlus_BitmapCreateFromScan0
    Alles anzeigen
  • ListView Items löschen

    • Thomas
    • 12. September 2012 um 10:25

    Hallo Leute,
    ich habe mal wieder ein Problem.

    Ich hab eine GUI mit 2 ListViews erstellt. Wenn ich jetzt ein Item von ListView1 in ListView2 schiebe, funktioniert das auch, d.b. in ListView1 verschwindet das Element, in ListView2 taucht es auf. Jedoch beim zurückschieben von dem Element in ListView2 ein Fehler. Es taucht es zwar in ListView1 wieder auf, wird aber in ListView2 nicht gelöscht. Wie kann man es beheben?

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIListView.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 634, 604, -1,-1, 0, 0)
    $ListView1 = GUICtrlCreateListView("ListView1", 8, 8, 305, 529)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 301)
    GUICtrlSetState($ListView1, $GUI_DROPACCEPTED)
    GUICtrlCreateListViewItem("Item1", $ListView1)
    GUICtrlCreateListViewItem("Item2", $ListView1)
    GUICtrlCreateListViewItem("Item3", $ListView1)
    $ListView2 = GUICtrlCreateListView("ListView2", 320, 8, 305, 529)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 301)
    GUICtrlSetState($ListView2, $GUI_DROPACCEPTED)
    GUICtrlCreateListViewItem("Item4", $ListView2)
    GUICtrlCreateListViewItem("Item5", $ListView2)
    GUICtrlCreateListViewItem("Item6", $ListView2)
    $Button1 = GUICtrlCreateButton("OK", 144, 544, 171, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Abbrechen", 320, 544, 171, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_DROPPED
    For $t=0 To _GUICtrlListView_GetItemCount($Listview1)
    If _GUICtrlListView_GetItemFocused($Listview1,$t) Then
    _GUICtrlListView_InsertItem($Listview2,_GUICtrlListView_GetItemText($Listview1,$t),_GUICtrlListView_GetItemCount($Listview2))
    _GUICtrlListView_DeleteItem($listview1,$t)
    Endif
    Next

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

    For $t=0 To _GUICtrlListView_GetItemCount($Listview2)
    If _GUICtrlListView_GetItemFocused($Listview2,$t) Then
    _GUICtrlListView_InsertItem($Listview1,_GUICtrlListView_GetItemText($Listview2,$t),_GUICtrlListView_GetItemCount($Listview1))
    _GUICtrlListView_DeleteItem($listview2,$t)
    Endif
    Next

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

    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    Exit
    EndSwitch
    Wend

    [/autoit]
  • Datei umschreiben

    • Thomas
    • 18. Mai 2012 um 19:00

    Hallo Leute,

    ich habe hier so eine Datei rumliegen, die ich in ein anderes Format umwandeln muss. Leider finde ich aber keinen Ansatz und auch keine Idee, wie man so was umsetzen kann...

    Spoiler anzeigen


    REGDIFF 3.5 - Freeware written by Gerson Kurz (http://www.p-nand-q.com)

    Reading C:\Dokumente und Einstellungen\Testbenutzer\Desktop\HKLM_before.reg
    Reading C:\Dokumente und Einstellungen\Testbenutzer\Desktop\HKLM_after.reg
    Comparing C:\Dokumente und Einstellungen\Testbenutzer\Desktop\HKLM_before.reg and C:\Dokumente und Einstellungen\Benutzer\Desktop\HKLM_after.reg

    The following value is missing in C:\Dokumente und Einstellungen\Testbenutzer\Desktop\HKLM_before.reg
    - HKEY_LOCAL_MACHINE\SOFTWARE\Test\Testordner\Testwert2

    The following 2 values have a data mismatch
    - HKEY_USERS\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\reg\MRUList
    Data in C:\Dokumente und EinstellungenTestbenutzer\Desktop\HKLM_before.reg: REG_SZ: u'decba'
    Data in C:\Dokumente und Einstellungen\Testbenutzer\Desktop\HKLM_after.reg: REG_SZ: u'edcba'
    - HKEY_USERS\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\*\MRUList
    Data in C:\Dokumente und Einstellungen\Testbenutzer\Desktop\HKLM_before.reg: REG_SZ: u'fgaiehdjbc'
    Data in C:\Dokumente und Einstellungen\Testbenutzer\Desktop\HKLM_after.reg: REG_SZ: u'gfaiehdjbc'

    A total of 3 differences detected


    Schön wäre es wenn man ne Funktion hinkiegen könnte, die als Rückgabewert nen Array wie folgendes hat:

    $array[0]=Anzahl der Elemente im Array
    $array[1][0]=HKEY_LOCAL_MACHINE\SOFTWARE\Test\Testordner\Testwert2
    $array[1][1]=REG_SZ
    $array[1][2]=Wert (ausgelesen aus HKLM_after.reg)

  • Datei in array

    • Thomas
    • 14. März 2012 um 22:42
    Zitat von Protex

    XD was davon willst du denn haben? die Keys? den Inhalt der Keys? oder ggf nur die Oberstrucktur? haha

    Gruß Marvin

    Es geht primär darum, die Unterschiede festzustellen und diese auszugeben z.B. so z.B.

    Spoiler anzeigen

    $array[0][0]="HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 1\Logical Unit Id 0"
    $array[0][1]="Type"
    $array[0][2]="CdRomPeripheral"
    $array[0][3]="REG_SZ"
    $array[0][4]="+" (+ für neu; ~ für verändert, - für gelöscht)

    Allerdings unter der Vorraussetzung, dass der Key in der 1.Datei nicht vorhanden ist, aber in der 2.Datei.
    Wenn das jemand hinkriegen würde, wäre das super :) .

  • Datei in array

    • Thomas
    • 14. März 2012 um 20:31

    Schonmal danke für die schnellen Antworten.

    Habt ihr für folgende Dateien auch eine Lösung?

    In diesem Fall ist mir persönlich das Ausgabeformat auch egal. (Wäre natürlich trotzdem schön, wenn es wieder ein array wäre.)

    Dateien

    Datei1.txt 195,87 kB – 434 Downloads Datei2.txt 195,95 kB – 350 Downloads
  • Datei in array

    • Thomas
    • 14. März 2012 um 13:09

    Hallo Leute,
    ich sitze mal wieder vor einem Projekt und habe gerade keine Ahnung, wie ich das realisieren soll.

    Es geht darum das eine Datei, wie die folgende

    Spoiler anzeigen


    Vergleichen der Dateien C:\UPDATE\filesbefore.fildb und C:\UPDATE\FILESSAFTER.FOLDB
    ***** C:\UPDATE\filesbefore.fildb
    C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\D-GISS\D-GISS 2009-2010 Externer Etikettendruck.lnk
    C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Informatik\bluej.exe.lnk
    ***** C:\UPDATE\FILESSAFTER.FOLDB
    C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\D-GISS\D-GISS 2009-2010 Externer Etikettendruck.lnk
    C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\IcoFX 1.6\IcoFX on the Web.lnk
    C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\IcoFX 1.6\IcoFX.lnk
    C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\IcoFX 1.6\Uninstall\Uninstall IcoFX.lnk
    C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Informatik\bluej.exe.lnk
    *****

    ***** C:\UPDATE\filesbefore.fildb
    C:\Dokumente und Einstellungen\Lokaler Benutzer\Anwendungsdaten\Macromedia\Flash Player\#Security\FlashPlayerTrust\air.1.0.trus
    .cfg
    ***** C:\UPDATE\FILESSAFTER.FOLDB
    C:\Dokumente und Einstellungen\Lokaler Benutzer\Anwendungsdaten\IcoFX\colors.dat
    C:\Dokumente und Einstellungen\Lokaler Benutzer\Anwendungsdaten\IcoFX\config.cfg
    C:\Dokumente und Einstellungen\Lokaler Benutzer\Anwendungsdaten\IcoFX\quickcolors.dat
    C:\Dokumente und Einstellungen\Lokaler Benutzer\Anwendungsdaten\Macromedia\Flash Player\#Security\FlashPlayerTrust\air.1.0.trus
    .cfg
    *****

    ***** C:\UPDATE\filesbefore.fildb
    C:\Programme\gs\gs8.70\lib\zeroline.ps
    C:\Programme\Informatic\ORFO 8.0\Add_Remove.exe
    ***** C:\UPDATE\FILESSAFTER.FOLDB
    C:\Programme\gs\gs8.70\lib\zeroline.ps
    C:\Programme\IcoFX 1.6\IcoFX.exe
    C:\Programme\IcoFX 1.6\IcoFX.url
    C:\Programme\IcoFX 1.6\library.dll
    C:\Programme\IcoFX 1.6\unins000.dat
    C:\Programme\IcoFX 1.6\unins000.exe
    C:\Programme\IcoFX 1.6\html\Error.html
    C:\Programme\IcoFX 1.6\html\logo.jpg
    C:\Programme\IcoFX 1.6\Languages\Deutsch.lng
    C:\Programme\IcoFX 1.6\Languages\English.lng
    C:\Programme\IcoFX 1.6\Languages\Español.lng
    C:\Programme\IcoFX 1.6\Languages\French.lng
    C:\Programme\IcoFX 1.6\Languages\Italiano.lng
    C:\Programme\IcoFX 1.6\Languages\Japanese.lng
    C:\Programme\IcoFX 1.6\Languages\Korean.lng
    C:\Programme\IcoFX 1.6\Languages\Magyar.lng
    C:\Programme\IcoFX 1.6\Languages\Readme.txt
    C:\Programme\IcoFX 1.6\Languages\Russian.lng
    C:\Programme\IcoFX 1.6\Objects\film.png
    C:\Programme\IcoFX 1.6\Objects\frame.png
    C:\Programme\IcoFX 1.6\Objects\picture.png
    C:\Programme\IcoFX 1.6\Objects\seal.png
    C:\Programme\IcoFX 1.6\Objects\stamp.png
    C:\Programme\IcoFX 1.6\Palettes\Blue.pal
    C:\Programme\IcoFX 1.6\Palettes\Cyan.pal
    C:\Programme\IcoFX 1.6\Palettes\Default.pal
    C:\Programme\IcoFX 1.6\Palettes\Grayscale.pal
    C:\Programme\IcoFX 1.6\Palettes\Green.pal
    C:\Programme\IcoFX 1.6\Palettes\Macintosh16.pal
    C:\Programme\IcoFX 1.6\Palettes\Macintosh2.pal
    C:\Programme\IcoFX 1.6\Palettes\Macintosh256.pal
    C:\Programme\IcoFX 1.6\Palettes\Magenta.pal
    C:\Programme\IcoFX 1.6\Palettes\Red.pal
    C:\Programme\IcoFX 1.6\Palettes\Windows16.pal
    C:\Programme\IcoFX 1.6\Palettes\Windows2.pal
    C:\Programme\IcoFX 1.6\Palettes\Yellow.pal
    C:\Programme\Informatic\ORFO 8.0\Add_Remove.exe
    *****

    verglichen wird, sodass ein array zurückegegeben wird, das alle "neuen" Elemente, wie folgt enthält:

    Spoiler anzeigen


    $array[0]=Anzahl der Elemente des Arrays
    $array[1]=C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\IcoFX 1.6\IcoFX on the Web.lnk
    $array[2]=C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\IcoFX 1.6\IcoFX.lnk
    $array[3]=C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\IcoFX 1.6\Uninstall\Uninstall IcoFX.lnk
    $array[4]=C:\Dokumente und Einstellungen\Lokaler Benutzer\Anwendungsdaten\IcoFX\colors.dat
    $array[5]=C:\Dokumente und Einstellungen\Lokaler Benutzer\Anwendungsdaten\IcoFX\config.cfg
    $array[6]=C:\Dokumente und Einstellungen\Lokaler Benutzer\Anwendungsdaten\IcoFX\quickcolors.dat

    usw...

  • Reg Einträge vergleichen

    • Thomas
    • 24. Februar 2012 um 22:14

    Hallo Leute,

    fällt euch irgendeine Möglichkeit ein, wie man Einträge und Veränderungen feststellen kann, die von einer Installation in der Registry gemacht werden?

    Ziel ist es, diese "Ergänzungen" in einer Datei abzuspeichern, um sie automatisch zurücksetzen zu lassen (Prog fast fertig, nur das fehlt noch).

    Beispiel:
    Ich installiere den VLC Media Player. Die Installation schreibt Einträge in die Registry und mein Programm speichert diese Änderungen als Datei ab. Wenn nun an den Einstellungen etwas verstellt wurde, oder ähnliches, setzt das Programm diese wieder in den Ursprungszustand zurück.
    Eine Neuinstallation wäre zwar auch eine Alternative, dauert aber bei vielen PCs lange.

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™