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

Beiträge von McPoldy

  • bestimmte stelle aus txt auslesen

    • McPoldy
    • 5. März 2008 um 11:55

    Das mit der Textdatei hab ich zuspät gesehen, meine sieht so aus:

    Spoiler anzeigen

    jsdafkljsdökjföasdkjf
    asdklfjalksdjfiejkfjasjke
    asejfawioefjöawefawe
    (monster (name 1) (index 1) (country 0) (race 0) (level 1) (ai 1) (range 20) (sight 160 240) (exp 20) (itemgroup 1 2)
    (str 21) (hth 1) (int 10) (wis 10) (dex 2) (hp 1) (mp 70) (aspeed 2400) (hit 0) (dodge 0)
    (attack 0 7 7) (magic 0 0) (defense 0 0) (absorb 0) (mspeed 1600 800)
    (quest (2 1 901 1) (3 1 902 1) (54 1 1025 1) (8001 1 933 1)))

    jsdafkljsdökjföasdkjf
    asdklfjalksdjfiejkfjasjke
    asejfawioefjöawefawe

    Und hier mal der AutoIT Code zum ersetzen:

    Spoiler anzeigen
    [autoit]

    ; Brauch ich für das einlesen der Datei und das schreiben
    #include <File.au3>

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

    ; Brav alle Variablen deklarieren
    Local $filename = @ScriptDir & '\testdatei.txt' ; Name der Datei
    Local $meinarray ; Darin lege ich die Datei ab und ändere den Wert auf den neuen
    Local $newEXP = 52 ; Der neue Wert der in exp rein soll
    Local $nLfd ; einfach ein Variable zum zählen

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

    ; Hier wird die Datei eingelesen und in ein Array gepackt
    _FileReadToArray($filename,$meinarray)

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

    ; Hier prüfe ich jede Zeile im Array (von 1 bis maximal Index, der in Index 0 steht)
    ; ob er was ersetzen kann
    For $nLfd = 1 To $meinarray[0]
    $meinarray[$nLfd] = StringRegExpReplace($meinarray[$nLfd],'\(exp (\d\d)\)','(exp ' & $newEXP & ')')
    Next

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

    ; Da (falls gefunden) die Ersetzung im Array stattgefunden hat, muss ich
    ; das Array wieder in die Datei schreiben
    _FileWriteFromArray($filename,$meinarray,1,$meinarray[0])

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

    ;FERITG
    Exit

    [/autoit]
  • bestimmte stelle aus txt auslesen

    • McPoldy
    • 5. März 2008 um 10:54

    Ich habe mir mal die Zeile genommen die Du abändern möchtest, schau es dir an, vielleicht hilft es dir, hoffe man steigt durch meine Kommentare durch.

    Spoiler anzeigen
    [autoit]


    ; Brauch ich nur für das Beispiel, um das Array anzuzeigen
    #include <array.au3>

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

    ; Der neue Wert der in exp rein soll
    $newEXP = 52

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

    ; Mein Beispielstring, könntest auch einen Datei zeilenweise einlesen und da erstetzen
    $str = '(monster (name 1) (index 1) (country 0) (race 0) (level 1) (ai 1) (range 20) (sight 160 240) (exp 20) (itemgroup 1 2)'

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

    ; Hier sucht er nach dem bisherigen Wert
    $arr = StringRegExp($str,'\(exp (\d\d)\)',3)

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

    ; Wenn nicht gefunden soll er das Skript verlassen
    If @error Then Exit

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

    ; Zeige mir den derzeitigen Wert an
    _ArrayDisplay($arr)

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

    ; Hier mache ich den Wechsel zum neuen Wert
    $str1 = StringRegExpReplace($str,'\(exp (\d\d)\)','(exp ' & $newEXP & ')')

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

    ; Anzeigen von altem Wert und neuen Wert, damit man den Unterschied sieht
    MsgBox(0,'',$str & @LF & $str1)

    [/autoit]
  • _runOnlyOnThis() UDF

    • McPoldy
    • 5. März 2008 um 10:31

    Finde ich gut, nur zwei Fragen habe ich.
    Erstens, ich müsste also immer wieder aktivieren wenn ich meinen PC/Notebook neu installiere?
    Zweitens, wenn erstens zutrifft, kann ich also eine VM nehmen, einmal aktiviren und die VM weiter geben? Das sind nur so mal meine ersten Gedanken gewesen :)

  • Kopiergeschwindigkeit beeinflussen

    • McPoldy
    • 5. März 2008 um 10:23

    Ich glaube nicht das es so ohne weiteres geht, wenn ich das damals richtig verstanden habe müsste es ja bei Windows so sein das du Dir alles was passiert wie ein Warteschlange vorstellen musst. Also wenn ich sage ich möchte Word öffnen, wird dieser Befehl in die Warteschlange geschoben, nun gibt es natürlich viele Sachen die "gleichzeitig" gemacht werden (Mausbewegen, Tastatur wurde gedrückt, Programme starten oder bearbeiten grade was, Dateien werden kopiert). Wenn ich mir das so vorstelle dürfte es eigentlich nur so gehen, dass Dein Arbeitsprogramm mit einer höheren Prozesspriorität laufen müsste, damit die Befehle in der Warteliste von Windows weiter vorne eingestellt werden.
    Hoffe ich hab es so richtig (oder wenigstens halbwegs richtig) erklärt, bitte nicht erschlagen falls ich es falsch in Erinnerung habe.

    Die Geschwindigkeit vom kopieren selbst zu beeinflussen ist (glaube ich) nicht möglich, sprich mit irgend einem Schlater oder so etwas, aber vielleicht kennt ja noch jemand einen RegHack dazu :)

  • TFT Auflösung ändern

    • McPoldy
    • 5. März 2008 um 09:41

    Hallo Anna,

    du hast eine While Schleife eingebaut, dein Fehler ist dabei eigentlich nur folgender das die While Schleife nicht weiß wann sie sich beenden soll bzw. wann sie nicht mehr durchlaufen werden soll. Also musst du eine Abbruch Bedingung einbauen, ich habe mir mal dein Skript angeschaut, und würde vorschlagen, das du die Zielgröße als Abbruch nimmst.

    Ich hab dir mal ein Beispiel gemacht:

    Spoiler anzeigen
    [autoit]


    Global $Regler_ID = 1808
    Global $Size_ID = 1814
    Global $bt_Uebernehmen = 12321
    Global $bt_OK = 1
    Global $txt
    Global $Width = 800
    Global $Height = 600

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

    Run("control.exe DESK.CPL,,3")
    WinWaitActive('Eigenschaften von Anzeige')
    ControlCommand("Eingenschaften von Aneige", "Farbqualität", "ComboBox2", "SelectString", "Mittlere (16 Bit)")

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

    ; Hier lese ich den derzeit aktuellen Wert ein
    $txt = ControlGetText('Eigenschaften von Anzeige', '', $Size_ID)

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

    ; Deine While Schleife begann mit: While true, da true immer true ist, wird die Schleife immer durchlaufen
    ; In der $txt wird ja der aktuelle Wert gespeichert, also zum Beispiel: 1600 x 1050 Pixel
    ; nun baue ich mir meinen eigenen Wert indem ich sage, bitte diese Schleife nur durchlaufen wenn in $txt nicht
    ; 800 x 600 Pixel steht.

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

    While $txt <> $Width & ' x ' & $Height & ' Pixel'
    ControlSend('Eigenschaften von Anzeige', '', $Regler_ID, '{LEFT}')
    $txt = ControlGetText('Eigenschaften von Anzeige', '', $Size_ID)
    WEnd

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

    ControlClick('Eigenschaften von Anzeige', '', $bt_Uebernehmen)
    ControlClick('Eigenschaften von Anzeige', '', $bt_OK)

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


    Noch ein Nachtrag, wenn man das Skript etwas erweitert, kann man auch prüfen lassen ob die Zielauflösung kleiner, größer oder gleich ist. Dann wird der Regler in die entsprechende Richtung geschoben.
    (Wegen meiner Änderung bzw. wie ich den ersten Wert da raushole bitte nicht steinigen :) )

    Spoiler anzeigen
    [autoit]


    Global $Regler_ID = 1808
    Global $Size_ID = 1814
    Global $bt_Uebernehmen = 12321
    Global $bt_OK = 1
    Global $txt
    Global $Width = 1680
    Global $Height = 1050

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

    Run("control.exe DESK.CPL,,3")
    WinWaitActive('Eigenschaften von Anzeige')
    ControlCommand("Eingenschaften von Aneige", "Farbqualität", "ComboBox2", "SelectString", "Mittlere (16 Bit)")

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

    $txt = ControlGetText('Eigenschaften von Anzeige', '', $Size_ID)

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

    While $txt <> $Width & ' x ' & $Height & ' Pixel'
    ;hier hole ich mir der ersten wert von der aktuellen einstellung
    $curWidth = Number(StringStripWS(StringLeft($txt,StringInStr(StringStripWS($txt,3),'x') - 1),3))

    ;ist die aktuelle einstellung grösser dann bitte nach links mit dem regeler
    If $curWidth > $Width Then
    ControlSend('Eigenschaften von Anzeige', '', $Regler_ID, '{LEFT}')
    ;falls kleiner nach rechts
    ElseIf $curWidth < $Width Then
    ControlSend('Eigenschaften von Anzeige', '', $Regler_ID, '{RIGHT}')
    ;ansonsten schleife verlassen, wenn z. b. die grösse schon gleich ist
    Else
    ExitLoop
    EndIf
    $txt = ControlGetText('Eigenschaften von Anzeige', '', $Size_ID)
    WEnd

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

    ControlClick('Eigenschaften von Anzeige', '', $bt_Uebernehmen)
    ControlClick('Eigenschaften von Anzeige', '', $bt_OK)

    [/autoit]
  • Glückwunsch JanSchmidt (30)

    • McPoldy
    • 2. März 2008 um 09:07

    Leider war ich gestern nicht mehr online, daher meinen herzlichen Glückwunsch nachträglich und Willkommen im Klub der alten Menschen ;)

  • PixelGetColor ohne bestimmte breiche

    • McPoldy
    • 27. Februar 2008 um 19:50

    Da PixelSearch immer den ersten Treffer zurückgibt, würde ich zwei Suchbereiche machen:

    [Blockierte Grafik: http://img169.imageshack.us/img169/1610/59750688pm8wi0.jpg]

    Spoiler anzeigen
    [autoit]


    Func _MyPixelSearch()
    $Suchbereich1 = PixelSearch(24,48,1050,722,0xEB1609)
    If Not @error Then
    MsgBox(64,'Gefunden in Suchbereich 1','X: ' & $Suchbereich1[0] & 'Y: ' & $Suchbereich1[1])
    EndIf
    $Suchbereich2 = PixelSearch(1050,117,1050,722,0xEB1609)
    If Not @error Then
    MsgBox(64,'Gefunden in Suchbereich 2','X: ' & $Suchbereich2[0] & 'Y: ' & $Suchbereich2[1])
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Problem mit

    • McPoldy
    • 27. Februar 2008 um 15:09

    Och nö :wacko:
    GUICtrlCreateListView = Returns the identifier (controlID) of the new control.
    _GUICtrlListView_Create = Returns Handle to the ListView control

    Mist wer lesen kann ist klar im Vorteil (hier fehlt der Smily der seinen Kopf vor die Wand haut), danke BugFix :)

  • Office 2003-Key-Auslese-Funktion falsch/fehlerhaft?

    • McPoldy
    • 27. Februar 2008 um 14:40

    Ich habe mal grade das Skritp was Mega gepostet hat getestet und bei mir zeigt er alle Daten richtig an, alle Seriennummern passen.
    @Mega, nettes Tool :thumbup:

  • Problem mit

    • McPoldy
    • 27. Februar 2008 um 14:36

    Mhh wenn ich diesen Code benutze:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <GuiListView.au3>

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

    $Form1 = GUICreate("Math Formel Generator - Beta", 531, 172, 191, 154)
    $Group1 = GUICtrlCreateGroup("", 8, 8, 513, 153)
    $x = GUICtrlCreateInput("x", 16, 24, 121, 21)
    $y = GUICtrlCreateInput("y", 160, 24, 121, 21)
    $label = GUICtrlCreateLabel("=", 144, 24, 15, 20)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    $hinzufuegen = GUICtrlCreateButton("Hinzufügen", 16, 48, 129, 25, 0)
    $Formeln = GUICtrlCreateListView("", 288, 24, 225, 71,$LVS_LIST)
    $generieren = GUICtrlCreateButton("Formel Generieren", 16, 72, 265, 25, 0)
    $MathFormel = GUICtrlCreateListView("", 16, 104, 497, 45,$LVS_LIST)
    $delete = GUICtrlCreateButton("Löschen", 152, 48, 129, 25, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $delete
    _GUICtrlListView_DeleteItemsSelected($Formeln) ;<= eingefügt
    _GUICtrlListView_DeleteItemsSelected($MathFormel) ;<= eingefügt
    Case $Hinzufuegen
    _GUICtrlListView_AddItem($Formeln,GUICtrlRead($X) &"="& GUICtrlRead($Y)) ;<= geändert
    _GUICtrlListView_AddItem($MathFormel,$Formeln) ;<= geändert
    EndSwitch
    WEnd

    [/autoit]

    kann ich zwar welche hinzufügen aber wenn ich ein ListViewItem makiere und auf Löschen klicke dann kommt dieser Fehler:

    [Blockierte Grafik: http://img180.imageshack.us/img180/8346/fehlerjq4.th.jpg]

  • Problem mit

    • McPoldy
    • 27. Februar 2008 um 14:06
    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiListView.au3>

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

    $Form1 = GUICreate("Math Formel Generator - Beta", 531, 172, 191, 154)
    $Group1 = GUICtrlCreateGroup("", 8, 8, 513, 153)
    $x = GUICtrlCreateInput("x", 16, 24, 121, 21)
    $y = GUICtrlCreateInput("y", 160, 24, 121, 21)
    $label = GUICtrlCreateLabel("=", 144, 24, 15, 20)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    $hinzufuegen = GUICtrlCreateButton("Hinzufügen", 16, 48, 129, 25, 0)
    $Formeln = _GUICtrlListView_Create ($Form1,'', 288, 24, 225, 71,$LVS_LIST) ;<= geändert
    $generieren = GUICtrlCreateButton("Formel Generieren", 16, 72, 265, 25, 0)
    $MathFormel = _GUICtrlListView_Create ($Form1,'', 16, 104, 497, 45,$LVS_LIST) ;<= geändert
    $delete = GUICtrlCreateButton("Löschen", 152, 48, 129, 25, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $delete
    _GUICtrlListView_DeleteItemsSelected($Formeln) ;<= eingefügt
    _GUICtrlListView_DeleteItemsSelected($MathFormel) ;<= eingefügt
    Case $Hinzufuegen
    _GUICtrlListView_AddItem($Formeln,GUICtrlRead($X) &"="& GUICtrlRead($Y)) ;<= geändert
    _GUICtrlListView_AddItem($MathFormel,$Formeln) ;<= geändert
    EndSwitch
    WEnd

    [/autoit]
  • Userpics von euch :)

    • McPoldy
    • 27. Februar 2008 um 12:47

    Och ich mag die Simpsons :) und die Brille verdanke ich den guten alten "strahlungsarmen" Röhrenmonitoren X(

  • Installation verschiedener Programme

    • McPoldy
    • 27. Februar 2008 um 12:18

    Mir gefällt die Lösung von Apollo wegen der Kategorien gut, wie gesagt, ich habe mir das nur mal so gemacht, wenn ich ehrlich bin, hab ich sie noch nie (nur zum testen) benutzt :)
    @Apollo jau, darf frei genutzt werden :)

  • Userpics von euch :)

    • McPoldy
    • 27. Februar 2008 um 12:00

    Glaube das ist das einzige Bild was ich von mir habe (und das ist auch besser so ;) )

    [Blockierte Grafik: http://blog.kroegers-web.de/img/foto.jpg]

  • Installation verschiedener Programme

    • McPoldy
    • 27. Februar 2008 um 11:20

    Moin,

    ich hatte mir auch mal ein kleines Skript gebastelt, zwar nicht sooo schön wie das von Apollo aber ich wollte auch nur was haben wo ich mal schnell was hinzufügen kann oder entfernen.
    So, was ist zum Skript zu sagen, der Aufbau ist recht einfach, mal angenommen Dein Hauptskript liegt unter C:\Installer\Hauptskript.exe und du möchtest Office2003 einfügen dann sieht die Ordnerstrucktur wie folgt aus:
    C:\Installer\Hauptskript.exe <-- Das Übersichtsfenster
    C:\Installer\Office2003\Office2003.exe <-- Dein Installskript
    Ich habe dann noch immer einen Unterordner gemacht wo meine Installationsdateien drin sind
    C:\Installer\Office2003\Installfiles\

    Um zu testen ob die einzelnen Installationen richtig durchgelaufen sind habe ich meine Installationsskripte immer mit EXIT 2 beendet, wenn dem so ist, zeigt das Hauptskript einen erfolg an ansonsten einen Fehler :)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <Array.au3>
    Opt("GUIOnEventMode", 1)

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

    #cs
    Programm: Software Installer
    Autor: J. Kröger
    Datum: Jan. 2008
    ---------------------------------------------------------------------------
    Das Programm installiert alle in Unterordner liegenden Programme.
    Ordnerstrucktur (z. B. C:\INSTALLER)
    C:\INSTALLER\Software Installer
    C:\INSTALLER\Office 2900\Office 2900.exe
    C:\INSTALLER\Office 2900\INSTALL
    C:\INSTALLER\Adobe Reader\Adobe Reader.exe
    C:\INSTALLER\Adobe Reader\Adobe Reader_Versoin 555.exe

    Es ist also wichtig das die Datei die aufgerufen werden soll, so benannt
    ist wie der Ordner.

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

    Ebenfalls ist zu beachten, das die von Euch erstellten Scripte mit Exit 2
    beendet werden, da dieses Skritpt sagt nur was mit 2 endet ist gut :)
    #ce

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

    ; Variabeln
    Dim $Path, $AnzFolders,$Hoehe,$Element
    Dim $avInstFiles[1]
    Dim $avInstFolderName[1]

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

    ; Standart Variablen setzen
    $Path = @ScriptDir & "\"
    $Hoehe = 68
    $Element = 20

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

    ; Funktion für die Überürüfung auf Existenz der Installationsporgramme
    GetAnzFolders()

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

    ; Wenn keine Installationsporgramme gefunden wurden wird das Skript beendet
    If ($AnzFolders = 0 ) Then Exit

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

    ; Entfernen des leeren Array Eintrags 0
    _ArrayDelete($avInstFiles,0)
    _ArrayDelete($avInstFolderName,0)

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

    ; Hier wird die Variabel um 1 verkleinert, damit man besser mit dem Arry arbeiten
    ; kann, z. B. für Schleifen
    $AnzFolders = $AnzFolders - 1

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

    ; Form erstellung
    $frmMain = GUICreate("Software Installer", 385, (68+($AnzFolders * 33)+30), 193, 125)

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

    ; Variabel für Checkboxen und Infofelder und Hilfetexte (txt-Datei), ich gehe mal davon aus das man nicht mehr als 100 Skripte laufen lässt :) ansonsten diesen Wert erhöhen
    Global $chkbox[100]
    Global $Info[100]
    Global $Txt[100]

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

    ; Je nachdem wieviel Unterordner es gibt wird hier die Schleife durchlaufen und die Checkboxen werden angelegt
    For $i = 0 To $AnzFolders
    $chkbox[$i] = GUICtrlCreateCheckbox($avInstFolderName[$i], 24, $Element, 161, 25)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Info[$i] = GUICtrlCreateLabel ("", 208, $Element, 161, 16)
    $Element = $Element + 33
    Next

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

    ; Button für den Start
    $cmdStart = GUICtrlCreateButton("Gewählte &Installationen starten", 16, $Element, 161, 33, 0)
    GUICtrlSetOnEvent(-1, "Install")

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

    ; Button für das beenden
    $cmdClose = GUICtrlCreateButton("Programm &schliessen", 208, $Element, 161, 33, 0)
    GUICtrlSetOnEvent(-1, "ProgEnde")
    GUISetState(@SW_SHOW)

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

    ; Dauerschleife für den OnEventModus
    While 1
    Sleep(10)
    WEnd

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

    #region Funktionen

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

    ; Programm beenden
    Func ProgEnde()
    Exit
    EndFunc

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

    ; Hier wird Installaton aufgerufen, es wird gegenzeichnet ob sie OK war und dann wird die nächste aufgerufen, etc.
    Func Install()
    For $i = 0 to $AnzFolders
    If (GUICtrlRead($chkbox[$i]) = $GUI_CHECKED) Then
    If (RunWait($avInstFiles[$i]) = 2) then
    GUICtrlSetData ($Info[$i],"Erfolgreich")
    GUICtrlSetColor($Info[$i],0x00ff00) ; Grün
    GUICtrlSetFont($Info[$i],11,400,2)
    Else
    GUICtrlSetData ($Info[$i],"Fehler")
    GUICtrlSetColor($Info[$i],0xff0000) ; Rot
    GUICtrlSetFont($Info[$i],11,400,2)
    EndIf
    EndIf
    Next
    EndFunc

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

    ; Zum einen ziehe ich mir hier die Anzahl der Ordner zum anderen wird geprüft ob es die passende Datei gibt
    Func GetAnzFolders()
    ; Einleiten der Suche
    $search = FileFindFirstFile($Path & "*")

    ; Anzahl auf 0 setzen
    $AnzFolders = 0

    ; Wenn die Suche nicht erfolgreich war Funktion verlassen
    If $search = -1 Then
    Exit
    EndIf

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

    ; Wenn die Suche ausgeführt werden konnte
    While 1
    ; Zuweisen der gefundenen Datei/Ordners
    $file = FileFindNextFile($search)

    ; Bei Fehler Schleife verlassen
    If @error Then ExitLoop

    ; $file ignorieren wenn es sich um dieses Skript handelt (Es sollte nur die kompelierte EXE in dem Verzeichniss sein!!!)
    If ($file <> @ScriptName) Then

    ; Aufbau der Installationsdatei
    $InstFile = $Path & $file & "\" & $file & ".exe"

    ; Prüfen ob die Installationsdatei vorhanden ist
    If (FileExists($InstFile)) Then

    ; Anzahl um 1 erhöhen
    $AnzFolders = $AnzFolders + 1

    ; Array mit dem Pfad erweitern
    _ArrayAdd($avInstFiles,$InstFile)
    _ArrayAdd($avInstFolderName,$file)
    EndIf
    EndIf
    WEnd

    ; Schliessen des Search Handels
    FileClose($search)
    EndFunc
    #endregion

    [/autoit]
  • Script Idee BgInfo

    • McPoldy
    • 26. Februar 2008 um 18:43

    Nabend, am meisten macht mir Kopfzerbrechen wie man das WordPad in eine AutoIT Gui einbaut....

  • Neuling hat einige Fragen

    • McPoldy
    • 26. Februar 2008 um 11:39

    Kassifiziern ist einfach, würde sagen Statusfenster.

  • Anzeige eines Kalenders wenn Maus auf Tray möglich?

    • McPoldy
    • 26. Februar 2008 um 10:59

    Die Idee find ich gut, hab mir mal grade was zusammengebastelt. Ich brauche nur die Kalenderfunktion, aber kannst ja mal schauen wie ich es mit den drei Kalendern gemacht habe.
    Ich bastele aber auch noch an deinem weiter :) [Edit: Brauch ich wohl nicht mehr, Jan war schneller]

    Spoiler anzeigen
    [autoit]


    #NoTrayIcon
    #Include <GuiConstants.au3>
    #include <Date.au3>

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

    Opt("GuiOnEventMode",1)
    Opt("TrayIconHide", 0)
    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1)
    TraySetIcon("shell32.dll",21)
    TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "_LinksKlick")
    $trayexit = TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"_Exit")

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

    TraySetState()
    TraySetClick(16)
    ;~ HotKeySet('{ESC}', "_Exit")

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

    $sDatePre = _DateAdd( 'm',-1, _NowCalcDate())
    $sDateFut = _DateAdd( 'm',1, _NowCalcDate())
    $frmCal = GUICreate( "Get date", 600,190, @DesktopWidth - 570, @DesktopHeight - 210, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW )
    $DatePre = GUICtrlCreateMonthCal ($sDatePre,0, 0,190,190,bitor($MCS_NOTODAY , $MCS_NOTODAYCIRCLE,$MCS_WEEKNUMBERS))
    $DateNow = GUICtrlCreateMonthCal (_NowCalcDate(),190, 0,190,190,$MCS_WEEKNUMBERS)
    $DateFut = GUICtrlCreateMonthCal ($sDateFut,380, 0,190,190,bitor($MCS_NOTODAY , $MCS_NOTODAYCIRCLE,$MCS_WEEKNUMBERS))

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

    GUICtrlSetOnEvent($DateNow, "_CalChange")

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

    While 1
    Sleep(1000)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

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

    Func _LinksKlick()
    $winstate = WinGetState($frmCal,'')
    If BitAnd($winstate, 2) Then
    WinSetState($frmCal,'',@SW_HIDE)
    AdlibDisable()
    Else
    WinSetState($frmCal,'',@SW_SHOW)
    AdlibEnable('_CalChange',300)
    EndIf
    EndFunc

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

    Func _CalChange()
    $sDatePre = _DateAdd( 'm',-1, GUICtrlRead($DateNow))
    $sDateFut = _DateAdd( 'm',1, GUICtrlRead($DateNow))
    GUICtrlSetData($DatePre,$sDatePre)
    GUICtrlSetData($DateFut,$sDateFut)
    EndFunc

    [/autoit]

    EDIT:
    @Jan wenn die beiden äußeren nicht geändert werden sollen einfach in Adlib raus nehmen, hatte ich nur drinne, weil sc4ry in seinem ersten Post sowas angefragt hatte :)

  • textsuche random

    • McPoldy
    • 26. Februar 2008 um 08:46

    Moinsen, du bekommst ein Array zurück, in deinem Fall:
    x = $SearchPixel[0]
    y = $SearchPixel[1]
    Du hast nur die hübschen eckigen Klammern vergessen ;)

    [autoit]


    $SearchPixel = PixelSearch(0, 0, 800, 600, 0xEB1609)
    If @error then
    Sleep (10)
    Else
    Mouseclick ( "left" , $SearchPixel[0] + 10, $SearchPixel[1] + 10 )
    EndIf

    [/autoit]
  • Frage zu "stdout"

    • McPoldy
    • 25. Februar 2008 um 20:49

    Nimm doch einfach @IPAddress1 oder ...2 oder ...3

    Spoiler anzeigen
    [autoit]

    msgbox (64,'Meine IP',@IPAddress1)

    [/autoit]

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™