Kannst du dein Vorhaben anhand der Textdatei etwas näher beschreiben? Was soll wo, wie und wann verändert werden?
Dafür gibt es meist weitaus bessere Wege als FileGetPos(), FileSetPos() etc.
Beiträge von i2c
-
-
Du könntest dir eine lokale, formatierte HTML mit den Links zu den Bildern erstellen und die dann in einem embeded IE wiedergeben.
Obligatorisch der kleine Hinweis das auch Bilder einem Copyright unterliegen können und einige Anbieter die externe Verwendung ihrer Seiteninhalte untersagen.
-
Natürlich nicht, dafür wirst du dir das Bild schon vorher laden müssen.
-
[autoit]
#include <array.au3>
[/autoit]
$string ='blablabla-"Bild1.jpg"-irgendetwas anderes.._blablabla-"Bild2.jpg"-irgendetwas anderes.._blablabla-"Bild3.jpg"'
$aResult = StringRegExp($string, '"Bild\d+\.jpg"', 3)
_ArrayDisplay($aResult) -
Also ich hab's jetzt mal kurz in einer VM getestet, es scheint zu funktionieren.
Du hast hoffentlich vorher die alten Schlüssel deines Programms aus der Registry entfernt.edit:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIComboBox.au3>
#include <String.au3>
#include <GuiComboBoxEx.au3>#RequireAdmin
[/autoit] [autoit][/autoit] [autoit]
Global $regok = 10
Global $anzahl = 0
Global $i = 0
#region ### START Koda GUI section ### Form=I:\Users\Xedon\Desktop\manage sys.kxf
$Form2_1 = GUICreate("Form1", 676, 121, 193, 124)
$Pic1 = GUICtrlCreatePic("I:\Users\Xedon\Pictures\cod5-7.jpg", 0, 0, 676, 436, 0)
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
$Beenden = GUICtrlCreateButton("Beenden", 328, 40, 155, 25, 0)
$Label1 = GUICtrlCreateLabel("", 8, 8, 660, 17)
$Starten = GUICtrlCreateButton("Starten", 8, 40, 99, 25, 0)
$add = GUICtrlCreateButton("Programm Hinzufügen ", 136, 40, 155, 25, 0)
$liste = GUICtrlCreateCombo("", 264, 80, 145, 25)
$delet = GUICtrlCreateButton("Auswahl Löschen", 520, 40, 139, 25, 0)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###$regok = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "registrierung")
[/autoit] [autoit][/autoit] [autoit]If $regok = "" Then
[/autoit] [autoit][/autoit] [autoit]
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "registrierung", "REG_SZ", "0")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "Listenanzahl", "REG_SZ", "0")
EndIf
;-------Namenszuweisung-----------
$read = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "Listenanzahl")
If $read > 0 Then
For $i = 1 To $read
$name = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\starter", $i)
_GUICtrlComboBox_AddString($liste, $name)
Next
EndIfWhile 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Beenden
Exit
Case $Starten
_run()
Case $add
_add()
Case $delet
_delete()
Case $liste
_setLabel()
EndSwitch
WEndFunc _run()
[/autoit] [autoit][/autoit] [autoit]
$index = _GUICtrlComboBox_GetCurSel($liste)
$item = _GUICtrlComboBoxEx_GetItem($liste, $index)
$start = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\starter", $item[0])
Run($start)
EndFunc ;==>_runFunc _add()
[/autoit] [autoit][/autoit] [autoit]
$path = FileOpenDialog("Choose file...", @TempDir, "Excute Files (*.exe)")
If Not @error Then
$name = InputBox("Namenseingabe", "Geben sie den namen des Spiels an")
EndIf
$anzahl = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "Listenanzahl")
$anzahl += 1
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\starter", $name, "REG_SZ", $path)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "Listenanzahl", "REG_SZ", $anzahl)
_GUICtrlComboBox_BeginUpdate($liste)
_GUICtrlComboBox_AddString($liste, $name)
_GUICtrlComboBox_EndUpdate($liste)
EndFunc ;==>_addFunc _delete()
[/autoit] [autoit][/autoit] [autoit]
$anzahl = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "Listenanzahl")
$anzahl -= 1
$index = _GUICtrlComboBox_GetCurSel($liste)
$item = _GUICtrlComboBoxEx_GetItem($liste, $index)
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\starter", $item[0])
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "Listenanzahl", "REG_SZ", $anzahl)
_GUICtrlComboBox_BeginUpdate($liste)
_GUICtrlComboBox_DeleteString($liste, $item[0])
_GUICtrlComboBox_EndUpdate($liste)
EndFunc ;==>_deleteFunc _setLabel()
[/autoit]
$index = _GUICtrlComboBox_GetCurSel($liste)
$item = _GUICtrlComboBoxEx_GetItem($liste, $index)
$path = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\starter", $item[0])
GUICtrlSetData($Label1, $path)
EndFunc ;==>_setLabel -
Und wozu überhaupt eine FOR-Schleife um in die .ini zu schreiben?
[autoit]
Es soll doch nur ein neuer Eintrag eingfügt werden?IniWrite("Vok.ini","Vok","Vok" & $vokread[0][0]+1, $put & "/" & $put2)
[/autoit] -
Mal abgesehen davon das der Thread genauso sinnvoll ist wie der "Wo wohnt ihr" Thread (steht nunmal alles in den Profilen), was wählen die 20, 30, 40jährigen in der Umfrage?
- unter 20
- 20 bis 29
- 30 bis 39
- 40 bis 50
- über 50
-
[autoit]
GUICtrlSetBkColor($Label, -2)
[/autoit]edit: edit übersehen :wacko:
-
-
Ja, sorry bin bissle pissed.
[autoit]GUICtrlCreateEdit("", 30, 30, 185, 90, $ES_WANTRETURN)
[/autoit]
Dann solltest du keine Scrollbalken haben.Wenn du trotzdem Autoscroll haben möchtest ....
[autoit]BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN)
[/autoit] -
Ja dann entferne doch einfach den Style.
-
[autoit]
run("c:Programme/blabla/deine.exe")
[/autoit][autoit]run("c:Programme\blabla\deine.exe")
[/autoit]
einer der beidenKeiner der beiden! Hinter c: fehlt ein \.
edit:
[autoit]Shellexecute("engine.exe", "/load /config debug")
[/autoit] -
[autoit]
ShellExecute()
[/autoit]
Run()
_RunDOS() -
Aus der Do-Until zu springen würde den Download nicht unterbrechen, sondern lediglich die Auswertung des Fortschritts.
Zitat von "Deutsche Hilfe zu InetGet()"Um einen Download abzubrechen, ist InetClose() aufzurufen und das von InetGet() zurückgegebene Handle zu übergeben.
-
Danke für den Hinweis.
Dateianhang aktualisiert. -
Ach was soll's, ich frag einfach mal ... wo und wozu das?
-
ungetestet
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIComboBox.au3>
#include <String.au3>
#Include <GuiComboBoxEx.au3>#RequireAdmin
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $regok = 10
Global $anzahl = 0
Global $i = 0
#Region ### START Koda GUI section ### Form=I:\Users\Xedon\Desktop\manage sys.kxf
$Form2_1 = GUICreate("Form1", 676, 121, 193, 124)
$Pic1 = GUICtrlCreatePic("I:\Users\Xedon\Pictures\cod5-7.jpg", 0, 0, 676, 436, 0)
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
$Beenden = GUICtrlCreateButton("Beenden", 328, 40, 155, 25, 0)
$Label1 = GUICtrlCreateLabel("", 8, 8, 660, 17)
$Starten = GUICtrlCreateButton("Starten", 8, 40, 99, 25, 0)
$add = GUICtrlCreateButton("Programm Hinzufügen ", 136, 40, 155, 25, 0)
$liste = GUICtrlCreateCombo("", 264, 80, 145, 25)
$delet = GUICtrlCreateButton("Auswahl Löschen", 520, 40, 139, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###$regok = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "registrierung")
[/autoit] [autoit][/autoit] [autoit]If $regok = "" Then
[/autoit] [autoit][/autoit] [autoit]
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "registrierung", "REG_SZ", "0")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "Listenanzahl", "REG_SZ", "-1")
EndIf
;-------Namenszuweisung-----------
$anzahl = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "Listenanzahl")
If $anzahl > 0 Then
For $i = 1 To $anzahl
$name = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\starter", $i)
_GUICtrlComboBox_AddString($liste, $name)
Next
EndIfWhile 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Beenden
Exit
;------------Ausführen----------------
Case $Starten
$index = _GUICtrlComboBox_GetCurSel($liste)
$select = _GUICtrlComboBoxEx_GetItem($liste, $index)
$start = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\starter", $select[0])
Run($start)
;---------------Hinzufügen---------------
Case $add
$pufer = FileOpenDialog("Choose file...", @TempDir, "Excute Files (*.exe)")
If @error = 1 Then
Exit
EndIf
$name = InputBox("Namenseingabe", "Geben sie den namen des Spiels an")
If @error = 1 Then
Exit
EndIf
$anzahl += 1
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\starter", $name, "REG_SZ", $pufer)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "Listenanzahl", "REG_SZ", $anzahl)
_GUICtrlComboBox_BeginUpdate($liste)
_GUICtrlComboBox_AddString($liste, $name)
_GUICtrlComboBox_EndUpdate($liste);------Dellet Funktion bis Jetzt------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Case $delet
$anzahl +=1
$index = _GUICtrlComboBox_GetCurSel($liste)
$select = _GUICtrlComboBoxEx_GetItem($liste, $index)
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\starter", $select[0])
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\starter\settings", "Listenanzahl", "REG_SZ", $anzahl)
_GUICtrlComboBox_BeginUpdate($liste)
_GUICtrlComboBox_DeleteString($liste, $select[0])
_GUICtrlComboBox_EndUpdate($liste)
;------------------------------------------------------------
Case $liste
$index = _GUICtrlComboBox_GetCurSel($liste)
$item = _guictrlcomboboxex_getitem($liste, $index)
$labeln = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\starter", $item[0])
GUICtrlSetData($Label1, $labeln)EndSwitch
[/autoit]
WEnd -
Ohne WIndows leider etwas schwierig aber ich glaube ich verstehe das Problem.
Ich denke du könntest das gesammte Skript etwas einfacher gestalten wenn du die Struktur deiner Schlüssel veränderst und dich von dem fortlaufenden Index trennst.-starter
--Zeichenfolge: Name des 1ten Programms -> Wert: Pfad zum Programm
--Zeichenfolge: Name des 2ten Programms -> Wert: Prad zum Porgramm
usw.Die Werte für Anzahl und Registrierung speicherst du in einem anderen Schlüssel, vlt. in einem Unterschlüssel settings.
Die Einträge für die Combobox könntest du dann in einer FOR Schleife mit RegEnumVal() ermitteln. Anzahl der Durchläufe = Anzahl der Einträge
Welche Einträge aus der Registry gelöscht werden sollen, ermittelst du mit _GUICtrlComboBoxEx_GetItem().Im 1ten Arrayelement steht dann der Itemtext = Name der zu löschenden Zeichenfolge. -
Also als erstes würde ich den Inputs mal ein Handel geben.
[autoit]$input1=GUICtrlCreateInput("", 8, 8, 33, 21)
[/autoit]
[autoit]
Und dann, anstelle von ...$a = GuiCtrlRead($Label1)
[/autoit]
[autoit]
lieber...$a = GuiCtrlRead($input1)
[/autoit]
-
Spoiler anzeigen
[autoit]
[/autoit]
#include <array.au3>
Local $result[1]
For $i= 1 to 10
$tmp = RegEnumKey("HKLM\Software\Microsoft\.NETFramework", $i)
If @error <> 0 then ExitLoop
If StringLeft($tmp, 1) = "v" Then
$tmp = StringTrimLeft($tmp, 1)
_ArrayAdd($result, $tmp)
EndIf
Next
MsgBox(0, "","Framework Version: " & _ArrayMax($result,0))