Jaja mit STRG-ALT und dergleichen das ist klar aber ich hääte es gerne OHNE sowas. Also wenn ich zum Bleristift NUR die taste 1 auf dem NUMBLOCK tippe soll etwas ausgelöst werden
Beiträge von akira2012
-
-
DAs werd ich mal ausprobieren - Danke Jonk
-
Hallo,
ich habe mal eine generelle Frage an die die sich schon was besser auskennen in AUTOIT. Also: Ist es möglich die Tasten der Tastatur neu zu belegen? So das - wenn ich z.B. Tasten den NUM-Blocks tippe eine bestimmte tastensequenz ausgelöst wird? z.B. Ich drücke die Taste 7 und es wird ein Text geschrieben wie: "Hallo wie gehts" (Ich weiß sehr einfallsreich). Wenn das so ist hab ich glaube ich bald ein neues Projekt xD.
MfG und danke schonmal
akira2012
-
klingt so als bräuchte er das für ein Computerspiel wenn ihr mich fragt xD
-
Super jetzt funzt das 2. _Stringreverse nicht und es kommt schwachsinn raus. Wieso dreht der mir das nicht nochmal um wenn ich den selben befehl wieder verwende? Versteh ich nicht -.-
-
Also es tut jetzt soweit:
[autoit]
[/autoit][autoit][/autoit][autoit]
dim $sort[1], $akt[40]
$ort = "S:\Fehlermeldungen\"$Listing=_FileListToArray($ort, "*", 2)
[/autoit][autoit][/autoit][autoit]
For $i = 1 to $Listing[0]
$Listing[$i]=stringReplace($Listing[$i], ".", "")
$Listing[$i]=_StringReverse($Listing[$i])
Next
_ArraySort($Listing, 1, 1)
_ArrayDisplay($Listing, "")
for $i=1 to $Listing[0]
$Listing[$i]=_StringReverse($Listing[$i])NEXT
[/autoit]
Opt("GUIOnEventMode", 0)Aber ich habe ein Problem... Wie wandle ich die Werte zurück um? Ich mein einfach den Punkt zu entfernen war einfach aber was nu?
BugFix die Werte sind nicht geheim. Ein Wert wäre z.B. 19.04.2007 ein anderer 26.03.2007 usw also stinknormale Daten.MfG
-
Ja ist es mir gerade geworden du warst nur wieder mal 1 sek schneller

-
Ja aber ich habe schon beide Varianten ausprobiert und irgendwie funzt keine. Hab bestimmt Syntaxmäßig was falsch gemacht.
Also mitStringReplace($Listing[$i], ".", "")
klappts nicht.
EDIT:
Wenn ich das ganze in eine Variable ausgebe:
$var=StringReplace($Listing[$i], ".", "")
dann gehts. Aber halt nur für die Variable. Kann ich keine Arraywerte ändern mit Stringreplace?
-
Sry ich sollte vielleicht doch mal das GANZE Script vorstellen.
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Date.au3>
#include <GUIConstants.au3>
#include <Array.au3>
#Include <File.au3>
#include <GUIConstants.au3>
#include <GuiCombo.au3>
#include <GuiList.au3>
#include <GuiEdit.au3>dim $sort[1]
[/autoit] [autoit][/autoit] [autoit]
$ort = "S:\Fehlermeldungen\"$Listing=_FileListToArray($ort, "*", 2)
[/autoit] [autoit][/autoit] [autoit]
_ArraySort($Listing, 1)Opt("GUIOnEventMode", 0)
[/autoit] [autoit][/autoit] [autoit]$Fehleransicht=GUICreate("Öffnen", 380, 450)
[/autoit] [autoit][/autoit] [autoit]$2=GUICtrlCreateList("", 20, 30, 200, 150)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel("Ordner wählen", 20, 10)
$3=GUICtrlCreateList("", 20, 220, 200, 150)
GUICtrlCreateLabel("Datei wählen", 20, 200)
$open=GUICtrlCreateButton("Öffnen", 245, 220, 110, 25)
$information=GUICtrlCreateButton("Info", 245, 260, 110, 25)
$neuste=GUICtrlCreateButton("Neuste Datei öffnen", 245, 300, 110, 25)
$zusammenfassen=GUICtrlCreateButton("Zusammenfassen", 245, 340, 110, 25)
$beenden=GUICtrlCreateButton("Beenden", 150, 400, 110, 25)
GUICtrlSetState($3, @sw_hide)
$max = $Listing[0]
For $i = 1 to $max
_GUICtrlListAddItem($2, $Listing[$i])
Next
GUISetState(@sw_show)While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()Select
[/autoit] [autoit][/autoit] [autoit]
Case $msg = $2
_GUICtrlListClear($3)
$Auslesen = GUICtrlRead($2)
$Ordner=_FileListToArray($Ort&$Auslesen&"\", "*", 1)
$max2 = $Ordner[0]
For $i = 1 to $max2
_GUICtrlListAddItem($3, $Ordner[$i])
Next
GUICtrlSetState($3, @sw_show)
Case $msg = $open
$auswahl=GUICtrlRead($3)
If NOT $auswahl = "" Then$alri=FileRead($Ort&$Auslesen&"\"&$auswahl)
[/autoit] [autoit][/autoit] [autoit]
$open1=GUICreate($auswahl)
$edit = GUICtrlCreateButton("Editieren", 50, 350, 100, 25)
$druck = GUICtrlCreateButton("Drucken", 150, 350, 100, 25)
$beende=GUICtrlCreateButton("Beenden", 250, 350, 100, 25)
$groesse=_FileCountLines($Ort&$Auslesen&"\"&$auswahl)
$hoehe = $groesse*17
$breite = 400
$label=GUICtrlCreateLabel($alri, "1", "1", $breite, $hoehe, $SS_SUNKEN )
GUICtrlSetBkColor($label, 0X000000)
GUICtrlSetColor($label, 0XFFFFFF)
GUISetState(@sw_show, $open1)
GUISwitch($open1)
While 1
$msg1 = GUIGetMsg()
Select
Case $msg1=$edit
run("notepad "&$auswahl, $Ort&$Auslesen)
Case $msg1=$druck
_FilePrint($Ort&$Auslesen&"\"&$auswahl)
Case $msg1 = $GUI_EVENT_CLOSE
GUISetState(@sw_hide)
ExitLoop
Case $msg1 = $beende
GUISetState(@sw_hide)
ExitLoop
EndSelect
WEnd;MsgBox(0, $auswahl, $alri)
[/autoit] [autoit][/autoit] [autoit][/autoit]
Else
MsgBox(0x10, "Fehler!", "Sie haben keine Datei ausgewählt")
EndIf
Case $msg = $information
$auswahl=GUICtrlRead($3)
If NOT $auswahl = "" Then
$da=FileGetTime($Ort&$Auslesen&"\"&$auswahl, 1, 0)
$Filedatum = "Diese Datei wurde erstellt am: " & $da[2] & "." & $da[1] & "." & $da[0] & " um " & $da[3] & ":" & $da[4] & " Uhr"
$test=$Ort&$Auslesen&"\"&$auswahl
ToolTip($Filedatum, 500, 500, "Info", 1)
sleep(2000)
ToolTip("")
Else
MsgBox(0x10, "Fehler!", "Sie haben keine Datei ausgewählt")
EndIf
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
case $msg = $neuste
$inhalt = _FileListToArray($Ort, "*", 2)
$max3 = $inhalt[0]
for $i = 1 to $max3
IF FileExists($Ort&$inhalt[$i]&"\*.txt") Then
$dateien = _FileListToArray($Ort&$inhalt[$i], "*", 1)
$max4 = $dateien[0]
for $id = 1 to $max4
$da=FileGetTime($Ort&$inhalt[$i]&"\"&$dateien[$id], 1, 0)
IF NOT $id = $max4 Then
$da2=FileGetTime($Ort&$inhalt[$i]&"\"&$dateien[$id+1], 1, 0)
Else
$da2=FileGetTime($Ort&$inhalt[$i]&"\"&$dateien[$id], 1, 0)
EndIf
$test = $da[2]&$da[1]&$da[3]&$da[4]&$da[5]
$test2 = $da2[2]&$da2[1]&$da[3]&$da[4]&$da[5]
If $test < $test Then
_ArrayInsert($sort, $i, $test)
Else
_ArrayInsert($sort, $i, $test2)
EndIf
$da=0
_ArraySort($sort, 1, 1)
Next
EndIf
Next
$inhalt = _FileListToArray($Ort, "*", 2)
$max3 = $inhalt[0]
for $i = 1 to $max3
IF FileExists($Ort&$inhalt[$i]&"\*.txt") Then
$dateien = _FileListToArray($Ort&$inhalt[$i], "*", 1)
$max4 = $dateien[0]
for $id = 1 to $max4
$da=FileGetTime($Ort&$inhalt[$i]&"\"&$dateien[$id], 1, 0)
$test = $da[2]&$da[1]&$da[3]&$da[4]&$da[5]
If $test = $sort[1] THEN
run("notepad "&$Ort&$inhalt[$i]&"\"&$dateien[$id])
EndIf
$da=0
Next
EndIf
Next
Case $msg = $zusammenfassen
$auswahl=GUICtrlRead($3)
$Auslesen = GUICtrlRead($2)
IF NOT $Auslesen = "" Then
$dateien = _FileListToArray($Ort&$Auslesen, "*", 1)
$da=FileGetTime($Ort&$Auslesen&"\"&$dateien[$dateien[0]], 1, 0)
$max5 = $dateien[0]
for $i = 1 to $max5
FileOpen($Ort&$Auslesen&"\Zusammenfassung vom "&$da[2]&"."&$da[1]&".txt", 1)
$zf=FileRead($Ort&$Auslesen&"\"&$dateien[$i])
FileWriteLine($Ort&$Auslesen&"\"&"Zusammenfassung vom "&$da[2]&"."&$da[1]&".txt", " ")
FileWriteLine($Ort&$Auslesen&"\"&"Zusammenfassung vom "&$da[2]&"."&$da[1]&".txt", $zf)
FileClose($Ort&$Auslesen&"\Zusammenfassung vom "&$da[2]&"."&$da[1]&".txt")
Next
$msg = MsgBox(4, "Drucken?", "Wollen Sie die Zusammenfassung jetzt ausdrucken?")
IF $msg = "6" Then
_FilePrint($Ort&$Auslesen&"\Zusammenfassung vom "&$da[2]&"."&$da[1]&".txt")
Else
EndIf
Else
MsgBox(0x10, "Fehler!", "Sie haben keinen Ordner zum Zusammenfassen ausgewählt! Bitte wählen Sie zuerst einen Ordner aus dem oberen Fenster!")
EndIf
Case $msg = $beenden
Exit
EndSelect
WEndSo das ganze resultiert aus diesem Script:
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]#include <Date.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>
#include <Array.au3>
#Include <File.au3>
#include <GUIConstants.au3>
#include <GuiCombo.au3>
#include <GuiEdit.au3>
dim $datum,$i$ort="S:\Fehlermeldungen\"
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
sleep(1000)$Liste=_FileListToArray("s:\Fehlermeldungen", "*", 1)
[/autoit] [autoit][/autoit] [autoit][/autoit]
$i=0
IF $Liste[0] > 1 Then
do
$i=$i+1
If $Liste[$i] <> "Fehlermeldungen.exe" THEN
$da = FileGetTime($ort&$Liste[$i], 1)
$Filedatum = $da[2] & "." & $da[1] & "." & $da[0]
$aktudatum=_NowCalcDate()
If FileExists($ort&"*.txt") THEN
$akt=StringRegExpReplace($aktudatum, "/", ".")
DirCreate($ort&$Filedatum)
$Zeit=$da[3]&"."&$da[4]&" Uhr am "
FileMove($ort&$Liste[$i], $ort&$Filedatum&"\"&$Zeit&$Liste[$i])
EndIf
EndIf
until $Liste[0] = $i
IF FileExists($ort&$Filedatum&"\"&$Zeit&$Liste[$i]) Then
MsgBox(0, "ACHTUNG!", "Es liegen neue Fehlerbeschreibungen vor!")
Opt("GUIOnEventMode", 1)
$Abfrage=MsgBox(4, "Öffnen?", "Wollen sie die Fehlermeldung jetzt öffnen?")
IF $Abfrage = "6" Then
run("Fehleransicht.exe")
Else
sleep(5000)
EndIf
EndIf
EndIf
WEndIch hab jetzt deine Variante versucht Bugfix aber wenn ich eingebe:
Spoiler anzeigen
[autoit]
[/autoit]
$Listing=_FileListToArray($ort, "*", 2)
For $i = 1 to $Listing[0]
StringRegExpReplace($Listing[$i], ".", "")
_StringReverse($Listing[$i])
Next
_ArraySort($Listing, 1)
_ArrayDisplay($Listing, "")Passiert garnichts. Wo ist der Fehler?
MfG
akira2012
-
Na? Spiel schon fertig? Ich warte sehnsüchtig! xD

-
Hallo,
ich habe ein Problem mit der Sortierung eines Arrays. Der Array beinhaltet Ordnernamen die wiederum in einer gui-liste angezeigt werden- Leider nicht oder besser gesagt !falsch! sortiert. Die Werte im Array sind alle im Format dd.mm.jjjj aber er sortiert nur dd und nicht wie es sein sollte das komplette packet. Habe schon verschiedene Sachen ausprobiert aber komme nicht weiter. hier der Ausschnitt um den es geht:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Date.au3>
#include <GUIConstants.au3>
#include <Array.au3>
#Include <File.au3>
#include <GUIConstants.au3>
#include <GuiCombo.au3>
#include <GuiList.au3>
#include <GuiEdit.au3>dim $sort[1]
[/autoit] [autoit][/autoit] [autoit]
$ort = "S:\Fehlermeldungen\"$Listing=_FileListToArray($ort, "*", 2)
[/autoit] [autoit][/autoit] [autoit]
_ArraySort($Listing, 1)Opt("GUIOnEventMode", 0)
[/autoit] [autoit][/autoit] [autoit]$Fehleransicht=GUICreate("Öffnen", 380, 450)
[/autoit] [autoit][/autoit] [autoit]$2=GUICtrlCreateList("", 20, 30, 200, 150)
[/autoit]
GUICtrlCreateLabel("Ordner wählen", 20, 10)
$3=GUICtrlCreateList("", 20, 220, 200, 150)
GUICtrlCreateLabel("Datei wählen", 20, 200)
$open=GUICtrlCreateButton("Öffnen", 245, 220, 110, 25)
$information=GUICtrlCreateButton("Info", 245, 260, 110, 25)
$neuste=GUICtrlCreateButton("Neuste Datei öffnen", 245, 300, 110, 25)
$zusammenfassen=GUICtrlCreateButton("Zusammenfassen", 245, 340, 110, 25)
$beenden=GUICtrlCreateButton("Beenden", 150, 400, 110, 25)
GUICtrlSetState($3, @sw_hide)
$max = $Listing[0]
For $i = 1 to $max
_GUICtrlListAddItem($2, $Listing[$i])
Next
GUISetState(@sw_show)Der Array "Listing" soll hiert sortiert werden.
Danke schonmal für eure Hilfe.
MfG
akira
-
Find ich klasse! auch wenns sowas schon gibt. Aber was ich gut fänden würde wäre ein Script mit dem man sich remote an eine Domäne ANMELDEN kann
Aber ich denke mal das das keiner hin, naja ich jedenfalls nicht 
MfG
akira2012
-
Ich habs geschafft und bin fertig. Habe die Speicherfunktion geändert und die Möglichkeit hinzugefügt Programme auch wieder zu löschen. Ich bin zufrieden mit dem Ergebnis und hoffe das jemand es mal testet und mir seine Meinung sagt. Mein Spinnchen ist natürlich als Mitentwickler aufgeführt und nun das Script!:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#cs ----------------------------------------------------------------------------AutoIt Version: 3.2.2.0
[/autoit] [autoit][/autoit] [autoit]
Author: akira2012 & gtaSpiderScript Function:
[/autoit] [autoit][/autoit] [autoit]
Ein Programm in das man andere Programme eintragen und bequem von dort aus starten kann.#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <string.au3>
#include <array.au3>
#include <File.au3>Opt("GuiOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]
Global $msg = 0, $buttons[1][2], $left = 10, $top = 40, $liste[16][2], $test[16], $listing, $listing2, $listing3, $listing4, $listing5, $hoch = 50
$spiele=GUICreate("Das ultimative Programmstartetool ^_^", 375, 420)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$search = GUICtrlCreateButton(">>> Programm auswählen <<<", 10, 10, 355, 25)
GUICtrlSetOnEvent(-1, "_search")
$delete = GUICtrlCreateButton(">>> Programm entfernen <<<", 10, 380, 355, 25)
GUICtrlSetOnEvent(-1, "_delete")
GUISetState()If FileExists(@ScriptDir &"\Daten.ini") Then
[/autoit] [autoit][/autoit] [autoit]
$liste=IniReadSectionNames(@ScriptDir &"\Daten.ini")IF $liste="1" Then
[/autoit] [autoit][/autoit] [autoit]
Sleep(50)
Else
For $i = 1 to ($liste[0])
ReDim $buttons[$i + 1][2]
$buttons[$i][0] = GUICtrlCreateButton("", $left, $top, 85, 85, $BS_ICON)
$buttons[$i][1] = $liste[$i]
GUICtrlSetImage(-1, $liste[$i], 0)
$ttip=IniReadSection(@ScriptDir &"\Daten.ini", $liste[$i])
If @Error Then
MsgBox(0, "ERROR", "ERROR")
Else
EndIfGUICtrlSetTip(-1, $ttip[1][1])
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent(-1,"_button")
If $left = 10 Then
$left = 100
ElseIf $left = 100 Then
$left = 190
ElseIf $left = 190 Then
$left = 280
Else
$top += 90
$left = 10
EndIf
Next
EndIf
EndIfWhile 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc _back ()
[/autoit] [autoit][/autoit] [autoit]GUIDelete("Programm entfernen")
[/autoit] [autoit][/autoit] [autoit]
GUIDelete($Spiele)
$left = 10
$top = 40
$spiele=GUICreate("Das ultimative Programmstartetool ^_^", 375, 420)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$search = GUICtrlCreateButton(">>> Programm auswählen <<<", 10, 10, 355, 25)
GUICtrlSetOnEvent(-1, "_search")
$delete = GUICtrlCreateButton(">>> Programm entfernen <<<", 10, 380, 355, 25)
GUICtrlSetOnEvent(-1, "_delete")
GUISetState()
If FileExists(@ScriptDir &"\Daten.ini") Then
$liste=IniReadSectionNames(@ScriptDir &"\Daten.ini")
IF $liste = "1" Then
Else
For $i = 1 to ($liste[0])
ReDim $buttons[$i + 1][2]
$buttons[$i][0] = GUICtrlCreateButton("", $left, $top, 85, 85, $BS_ICON)
$buttons[$i][1] = $liste[$i]
GUICtrlSetImage(-1, $liste[$i], 0)
$ttip=IniReadSection(@ScriptDir &"\Daten.ini", $liste[$i])
If @Error Then
MsgBox(0, "ERROR", "ERROR")
EndIf
GUICtrlSetTip(-1, $ttip[1][1])
GUICtrlSetOnEvent(-1,"_button")
If $left = 10 Then
$left = 100
ElseIf $left = 100 Then
$left = 190
ElseIf $left = 190 Then
$left = 280
Else
$top += 90
$left = 10
EndIf
Next
EndIf
EndIfEndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _button()
[/autoit] [autoit][/autoit] [autoit]Local $found = False
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To UBound($buttons) - 1
If $buttons[$i][0] = @GUI_CtrlId Then
$found = True
ExitLoop
EndIf
Next
If Not $found Then Return MsgBox(0, "FEHLER!!", "Programm nicht gefunden!")
Run($buttons[$i][1])EndFunc ;==>_button
[/autoit] [autoit][/autoit] [autoit]
Func _search()If UBound($buttons, 1) = 17 Then Return MsgBox(48, "", "Es wurde die Maximale anzahl an Buttons erreicht!")
[/autoit] [autoit][/autoit] [autoit]
ReDim $buttons[UBound($buttons) + 1][2]
$fileop = FileOpenDialog("Exe auswählen...", "", "EXE Dateien(*.exe)")
If @error Then Return
$buttons[UBound($buttons) - 1][0] = GUICtrlCreateButton("", $left, $top, 85, 85, $BS_ICON)
$tooltip=InputBox("Tooltip festlegen", "Bitte den Programmnamen eingeben.")
GUICtrlSetTip(-1, $tooltip)
GUICtrlSetImage(-1, $fileop, 0)
IniWrite(@ScriptDir &"\Daten.ini", $fileop, "tooltip", $tooltip)
GUICtrlSetOnEvent(-1,"_button")
$buttons[UBound($buttons) - 1][1] = $fileop
If $left = 10 Then
$left = 100
ElseIf $left = 100 Then
$left = 190
ElseIf $left = 190 Then
$left = 280
Else
$top += 90
$left = 10
EndIfEndFunc ;==>_search
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _delete ()
[/autoit] [autoit][/autoit] [autoit]$loeschen=GUICreate("Programm entfernen")
[/autoit] [autoit][/autoit] [autoit]
$loeschen2=GUICtrlCreateButton("Entfernen", 300, 350, 80, 25)
GUICtrlSetOnEvent(-1, "_entfernen")
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit2")
$back=GUICtrlCreateButton("Zurück", 20, 350, 80, 25)
GUICtrlSetOnEvent(-1, "_back")
$listing2=IniReadSectionNames(@ScriptDir &"\Daten.ini")
for $x=1 to $listing2[0]
$hoch=$hoch+10
Next
$listing=GUICtrlCreateList("", 10, 10, 380, $hoch)for $x=1 to $listing2[0]
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($listing, $listing2[$x])
GUISetState(@sw_show)
NextEndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _entfernen ()
[/autoit] [autoit][/autoit] [autoit]
$listing5=GUICtrlRead($listing)
IniDelete(@ScriptDir &"\Daten.ini", $listing5)
GUICtrlDelete($listing)
$listing2=""
$listing2=IniReadSectionNames(@ScriptDir &"\Daten.ini")
$listing=""
$listing=GUICtrlCreateList("", 10, 10, 380, $hoch)
IF $listing2 = "" Then
MsgBox(0, "Info", "Keine weiteren Programme zum löschen vorhanden.")
EndIfIF $listing2="1" Then
[/autoit] [autoit][/autoit] [autoit]
Sleep(50)
Elsefor $x=1 to $listing2[0]
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($listing, $listing2[$x])
Next
EndIfEndFunc
[/autoit] [autoit][/autoit] [autoit]
[/autoit] [autoit][/autoit] [autoit]
Func _exit ()Exit
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_exit
[/autoit] [autoit][/autoit] [autoit]Func _exit2 ()
[/autoit] [autoit][/autoit] [autoit]GUIDelete("Programm entfernen")
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit]Wenn jemand noch verbesserungsvorschläge hat IMMER HeR DAMIT

bis dahin verbleibe ich MfG
akira2012
-
aua -.- mir fällts wie schuppen aus den augen oder wie das heißt -.-
Ist ja klar ich hab einfach nicht an die 2. Dimension des Buttons Arrays gedacht bzw wusste nicht genau wie ich die anspreche aber jetzt ist alles sonnenklar - besten Dank. Auch wenn ichs nicht wirklich alleine geschafft habe hat mich das doch wieder weitergebracht. Naja aber die Speicherfunktion habe ich immerhin teilweise realisiert xD. Ich werde mich jetzt noch ein wenig ans design machen und daran wie man einzelne Buttons wieder löschen kann

MfG
akira2012
-
Also öhm ich habe schon geschafft das die Buttons "gespeichert" werden (falls man das so nennen kann). Allerdings habe ich ein Problem beim ausführen der Datei und deiner _buttons function. Die Aus der Datei ausgelesenen Buttons haben natürlich keine CTRLID oder besser gesagt die ist logischerweise nicht in $buttons[$i][0] gespeichert. Wie komme ich an die ctrlid und weise Sie den erstellten Buttons zu so das ich die richtigen ausführen kann. Hier erstmal mein wischiwaschiscript ^^. Ich hoffe du / ihr bekommt keine Kopfschmerzen beim dem Versuch meine Wirren gedankengänge als AutoITNub zu verstehen...
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <GUIConstants.au3>
#include <string.au3>
#include <array.au3>
#include <File.au3>Opt("GuiOnEventMode", 1)
[/autoit][autoit][/autoit][autoit]
Global $msg = 0, $buttons[1][2], $left = 10, $top = 40, $liste[16][2], $test[16]
GUICreate("Spiele..", 375, 420)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$search = GUICtrlCreateButton(">>> Programm auswählen <<<", 10, 10, 355, 25)
GUICtrlSetOnEvent(-1, "_search")
GUISetState()
FileOpen(@ScriptDir &"\inhalt.txt", 1)
_FileReadToArray(@ScriptDir &"\inhalt.txt", $liste)
_ArrayDisplay($liste, "")For $i = 1 to ($liste[0]-1)
[/autoit][autoit][/autoit][autoit]
GUICtrlCreateButton($liste[$i], $left, $top, 85, 85, $BS_ICON)
;_ArrayDisplay($test, "")
GUICtrlSetImage(-1, $liste[$i], 0)
GUICtrlSetTip(-1,_StringProper(StringTrimRight(StringTrimLeft($liste[$i],StringInStr($liste[$i],"\",-1,-1)),4)))
GUICtrlSetOnEvent(-1,"_button")
If $left = 10 Then
$left = 100
ElseIf $left = 100 Then
$left = 190
ElseIf $left = 190 Then
$left = 280
Else
$top += 90
$left = 10
EndIf
NextWhile 1
[/autoit][autoit][/autoit][autoit]
Sleep(100)
WEnd
Func _button()
Local $found = FalseFor $i = 1 To $liste[0]-1
[/autoit][autoit][/autoit][autoit]
If $liste[$i][0] = @GUI_CtrlId Then
$found = True
ExitLoop
EndIf
Next
If Not $found Then Return MsgBox(0,"FEHLER!!","Programm nicht gefunden!")
_FileWriteFromArray(@Scriptdir & "\inhalt.txt", $buttons)
Run($liste[$i][1])
EndFunc
Func _search()
If UBound($buttons, 1) = 17 Then Return MsgBox(48, "", "Es wurde die Maximale anzahl an Buttons erreicht!")
ReDim $buttons[UBound($buttons) + 1][2]
$fileop = FileOpenDialog("Exe auswählen...", "", "EXE Dateien(*.exe)")
If @error Then Return
$buttons[UBound($buttons) - 1][0] = GUICtrlCreateButton("", $left, $top, 85, 85, $BS_ICON)
FileWriteLine(@ScriptDir &"\inhalt.txt", $fileop)
GUICtrlSetTip(-1,_StringProper(StringTrimRight(StringTrimLeft($fileop,StringInStr($fileop,"\",-1,-1)),4)))
GUICtrlSetImage(-1, $fileop, 0)
GUICtrlSetOnEvent(-1,"_button")
$buttons[UBound($buttons) - 1][1] = $fileop
If $left = 10 Then
$left = 100
ElseIf $left = 100 Then
$left = 190
ElseIf $left = 190 Then
$left = 280
Else
$top += 90
$left = 10
EndIf;
[/autoit]
;_ArrayDisplay($Liste, "")
EndFunc ;==>_search
Func _exit ()
Exit
EndFunc ;==>_exit -
Hast du die richtige AutoIT Version? Und auch alles 1 zu 1 kopiert? Also einen Iconlauncher ist da nirgens im Programm zu finden. Ansonsten warte bis Morgen dann stelle ich meine überarbeitete Version online.
MfG
akira2012
-
Besten Dank. Gehe ich Morgen mal durch

-
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <string.au3>
Opt("GuiOnEventMode", 1)Global $msg = 0, $buttons[1][2], $left = 10, $top = 40
[/autoit] [autoit][/autoit] [autoit]GUICreate("Spiele..", 195, 400)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$search = GUICtrlCreateButton(">>> Spiel auswählen <<<", 10, 10, 175, 25)
GUICtrlSetOnEvent(-1, "_search")
GUISetState()While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc _button()
[/autoit] [autoit][/autoit] [autoit]
Local $found = False
For $i = 1 To UBound($buttons,1)-1
If $buttons[$i][0] = @GUI_CtrlId Then
$found = True
ExitLoop
EndIf
Next
If Not $found Then Return MsgBox(0,"","")
Run($buttons[$i][1])
EndFunc
[/autoit] [autoit][/autoit] [autoit]
Func _search()
If UBound($buttons, 1) = 9 Then Return MsgBox(48, "", "Es wurde die Maximale anzahl an Buttons erreicht!")
ReDim $buttons[UBound($buttons) + 1][2]
$fileop = FileOpenDialog("Exe auswählen...", "", "EXE Dateien(*.exe)")
If @error Then Return
$buttons[UBound($buttons) - 1][0] = GUICtrlCreateButton("", $left, $top, 85, 85, $BS_ICON)
GUICtrlSetTip(-1,_StringProper(StringTrimRight(StringTrimLeft($fileop,StringInStr($fileop,"\",-1,-1)),4)))
GUICtrlSetImage(-1, $fileop, 0)
GUICtrlSetOnEvent(-1,"_button")
$buttons[UBound($buttons) - 1][1] = $fileop
If $left = 10 Then
$left = 100
Else
$top += 90
$left = 10
EndIf
EndFunc ;==>_searchFunc _exit ()
[/autoit]
Exit
EndFunc ;==>_exitSo habe mir das jetzt alles mal angeschaut und gemerkt das ich mit FAST nichts von dem was du da verwendest bis jetzt gearbeitet habe ^^. Die genaue Funktion des Befehls UBound versteh ich irgendwie nicht. In der Erklärung steht das man damit Arrays auswerten kann aber HEH? Ich steig noch nicht so recht durch. Werde mich noch einige male durchforsten aber ein paar comments wären nett

MfGMarko
P.S. Ich wünschte ich hätte dein Vertrauen in mich xD
Edit GtaSpider: habe mal Spoiler ( [SPOILER ][/SPOILER ] ,ohne leerzeichen) hinzugefügt. Bin ein Scroll hasser

-
Zitat
Original von gtaspider
HalloSo ich hab dir einfach mal ein skript gemacht
wenn du fragen zu dem skript hast (wie irgendwas funktioniert) dann frag mich einfach 
Hoffe konnte helfen..
Mfg Spdíder
....
bin beeindruckt
Echt nicht schlecht werde das ganze mal studieren und ausbauen und dann wieder hier einstellen. Die Speicherfunktion fehlt ja immerhin noch ^^. Vielen dank echt saubere arbeit!!MfG
-
Ja das klingt als hättest dus doch verstanden
