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

  • Design ?! Windows

    • Oscar
    • 23. April 2009 um 18:16

    @MatthiasG: Ich hab's mal verschoben!

  • Hilfe Wie Kann Ich Passwort Setzten An Ein Programm

    • Oscar
    • 23. April 2009 um 18:11

    Und was möchtest Du mir damit jetzt sagen?

  • Hilfe Wie Kann Ich Passwort Setzten An Ein Programm

    • Oscar
    • 23. April 2009 um 17:56

    Hier mal mein Script (hatte mal eine Funktion dafür geschrieben):

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GuiComboBoxEx.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <WindowsConstants.au3>

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

    ; Array mit den korrekten Daten (jeweils: 'Benutzername', 'Passwort')
    Global $aCorrect[5][2] = [['abcd', '123'],['efgh', '456'],['ijkl', '789'],['mnop', '012'],['qrst', '345']]

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

    Global $iTry = 0 ; Variable zum zählen der Versuche
    Do
    ; Mögliche Werte für die Sprache: 'Dansk|Deutsch|English|Français'
    Global $aInput = _LogInBox('Test', 3, 'Deutsch', False) ; Fenstertitel = "Test", Passwort = min. 3 Zeichen, Sprache = Deutsch
    If @error Then Exit ; wenn der Benutzer auf [Abbrechen] geklickt hat
    $iLoginID = -1
    For $i = 0 To UBound($aCorrect) - 1
    If $aInput[0] == $aCorrect[$i][0] And $aInput[1] == $aCorrect[$i][1] Then ; "==" Groß-/Kleinschreibung beachten!
    MsgBox(0, 'Test', 'Benutzername und Passwort sind richtig!')
    $iLoginID = $i
    ExitLoop
    EndIf
    Next
    If $iLoginID = -1 Then $iTry += MsgBox(0, $iTry + 1 & '. Versuch', 'Benutzername und/oder Passwort falsch!')
    If $iTry = 3 Then Exit ; nach 3 Versuchen beenden
    Until $iLoginID <> -1
    MsgBox(0, 'Test', 'Benutzer "' & $aCorrect[$iLoginID][0] & '" hat sich angemeldet!')

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

    ; Ab hier für das eigentliche Hauptprogramm
    ; \/

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

    #cs
    ======================================================================================================================
    Function Name: _LogInBox($sTitle [, $iMinLen [,$sStartLang [, $bPassVisible=True [, $iXPos=-1 [, $iYPos=-1]]]]])
    Description: Eingabefenster für Benutzername und Passwort
    Parameter(s): $sTitle = Fenstertitel
    optional: $iMinLen = Mindestlänge des Passworts (Standard = keine Mindestlänge)
    optional: $sStartLang = die Sprache auswählen (Standard = Deutsch)
    optional: $bPassVisible = True/False = Passwort sichtbar anzeigen Ja/Nein (Standard = Ja)
    optional: $iXPos = Horizontale Position des Fensters (Standard = zentriert)
    optional: $iYPos = Vertikale Position des Fensters (Standard = zentriert)
    Return Value(s): Array mit 2 Elementen (Benutzername und Passwort)
    Bei "Abbrechen" oder "Schließen" wird @error = 1
    Required: #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiComboBoxEx.au3>
    #include <GuiImageList.au3>
    #include <WindowsConstants.au3>
    Author(s): Oscar (http://www.autoit.de)
    ======================================================================================================================
    #ce
    Func _LogInBox($sTitle, $iMinLen = 0, $sStartLang = 'Deutsch', $bPassVisible = True, $iXPos = -1, $iYPos = -1)
    If $iMinLen < 0 Or $iMinLen = Default Then $iMinLen = 0
    If $sStartLang = -1 Or $sStartLang = Default Then $sStartLang = 'Deutsch'
    If $bPassVisible = -1 Or $bPassVisible = 'Default' Then $bPassVisible = True
    If $iXPos < 0 Or $iXPos = Default Or $iXPos > @DesktopWidth Then $iXPos = -1
    If $iYPos < 0 Or $iYPos = Default Or $iXPos > @DesktopHeight Then $iYPos = -1
    Local $hGui, $hUserLabel, $hUser, $hPass, $hCheck, $hLanguage, $hCancel, $hOk
    Local $iOpt, $sStyle, $sTmp, $aLanguage, $iLanguage, $hImage
    Local $iErr, $sFont = 'Arial', $aOut[2]
    Local $iBGColorInner = 0xBBBBBB, $iBGColorOuter = 0xEEEEEE
    Local $sIconsPath = @ScriptDir & '\icons.icl'
    Local $sLang = 'Dansk|Deutsch|English|Français'
    Local $aTranslation[4][7] = [ _
    ['Brugernavn:' & @CRLF & '(påkrævet)', _ ; Dänisch
    'Password:', _
    @CRLF & '(mindst ' & $iMinLen & ' tegn)', _
    '&Password synlige', _
    'Abonner...', _
    'Annuller', ''], _
    ['Benutzername:' & @CRLF & '(erforderlich)', _ ; Deutsch
    'Passwort:', _
    @CRLF & '(min. ' & $iMinLen & ' Zeichen)', _
    '&Passwort sichtbar', _
    'Anmelden...', _
    'Abbrechen', ''], _
    ['Username:' & @CRLF & '(needed)', _ ; Englisch
    'Password:', _
    @CRLF & '(min. ' & $iMinLen & ' Chars)', _
    '&Password visible', _
    'Log in...', _
    'Cancel', ''], _
    ['Nom:' & @CRLF & '(nécessaire)', _ ; Französisch
    'mot de passe:', _
    @CRLF & '(min. ' & $iMinLen & ' lettre)', _
    '&mot de passe visible', _
    'déclarer...', _
    'Annuler', '']]
    $aLanguage = StringSplit($sLang, '|')
    For $i = 1 To $aLanguage[0]
    If $sStartLang = $aLanguage[$i] Then $iLanguage = $i - 1
    Next
    $iOpt = Opt('GUIOnEventMode', 0)
    $hGui = GUICreate($sTitle, 343, 200, $iXPos, $iYPos, BitOR($WS_SYSMENU, $WS_VISIBLE))
    GUISetIcon(@SystemDir & '\shell32.dll', -212)
    GUISetBkColor($iBGColorOuter)
    GUICtrlCreateLabel('', 5, 5, 325, 120, -1, $WS_EX_CLIENTEDGE)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    $hUserLabel = GUICtrlCreateLabel($aTranslation[$iLanguage][0], 12, 17, 90, 35)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    $hUser = GUICtrlCreateInput('', 115, 20, 205, 25)
    GUICtrlSetFont(-1, 10, 400, 0, $sFont)
    If $iMinLen > 0 Then
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1] & $aTranslation[$iLanguage][2]
    Else
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1]
    EndIf
    $hPassLabel = GUICtrlCreateLabel($aTranslation[$iLanguage][6], 12, 63 + ($iMinLen = 0) * 6, 100, 35)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    $hPass = GUICtrlCreateInput('', 115, 65, 205, 25)
    GUICtrlSetFont(-1, 10, 400, 0, $sFont)
    GUICtrlSendMsg($hPass, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck = GUICtrlCreateCheckbox($aTranslation[$iLanguage][3], 120, 92, 200, 25)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $hLanguage = _GUICtrlComboBoxEx_Create($hGui, '', 10, 135, 110, 140, $CBS_DROPDOWNLIST)
    If FileExists($sIconsPath) Then
    $hImage = _GUIImageList_Create(32, 20, 5, 4, 4)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 0, True)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 1, True)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 2, True)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 3, True)
    _GUICtrlComboBoxEx_SetImageList($hLanguage, $hImage)
    EndIf
    _GUICtrlComboBoxEx_SetItemHeight($hLanguage, 0, 25)
    For $i = 1 To $aLanguage[0]
    _GUICtrlComboBoxEx_AddString($hLanguage, $aLanguage[$i], $i-1, $i-1)
    Next
    _GUICtrlComboBoxEx_SetCurSel($hLanguage, $iLanguage)
    $hCancel = GUICtrlCreateButton($aTranslation[$iLanguage][5], 250, 135, 80, 25)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    $hOk = GUICtrlCreateButton($aTranslation[$iLanguage][4], 160, 135, 80, 25, $BS_DEFPUSHBUTTON)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetState(-1, $GUI_DISABLE)
    WinSetOnTop($hGui, '', 1)
    GUICtrlSetState($hUser, $GUI_FOCUS)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $hCancel
    $iErr = 1
    ExitLoop
    Case $hCheck
    GUICtrlSendMsg($hPass, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($hPass, $GUI_FOCUS)
    Case $hOk
    $aOut[0] = GUICtrlRead($hUser)
    $aOut[1] = GUICtrlRead($hPass)
    ExitLoop
    EndSwitch
    If Not _GUICtrlComboBoxEx_GetDroppedState($hLanguage) Then
    If _GUICtrlComboBoxEx_GetCurSel($hLanguage) <> $iLanguage Then
    $iLanguage = _GUICtrlComboBoxEx_GetCurSel($hLanguage)
    If $iMinLen > 0 Then
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1] & $aTranslation[$iLanguage][2]
    Else
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1]
    EndIf
    GUICtrlSetData($hUserLabel, $aTranslation[$iLanguage][0])
    GUICtrlSetData($hPassLabel, $aTranslation[$iLanguage][6])
    GUICtrlSetData($hCheck, $aTranslation[$iLanguage][3])
    GUICtrlSetData($hCancel, $aTranslation[$iLanguage][5])
    GUICtrlSetData($hOk, $aTranslation[$iLanguage][4])
    GUICtrlSetState($hUser, $GUI_FOCUS)
    EndIf
    EndIf
    If GUICtrlRead($hUser) <> '' And StringLen(GUICtrlRead($hPass)) >= $iMinLen Then
    If BitAND(GUICtrlGetState($hOk), $GUI_DISABLE) Then GUICtrlSetState($hOk, $GUI_ENABLE)
    Else
    If BitAND(GUICtrlGetState($hOk), $GUI_ENABLE) Then GUICtrlSetState($hOk, $GUI_DISABLE)
    EndIf
    WEnd
    Opt('GUIOnEventMode', $iOpt)
    GUIDelete($hGui)
    Return SetError($iErr, 0, $aOut)
    EndFunc ;==>_LogInBox

    [/autoit]

    Hiweis: Für die Anzeige der Landes-Flaggen muss sich die Datei "icons.icl" aus dem Anhang im Scriptverzeichnis befinden!

  • FTP Server [Versuch #2]

    • Oscar
    • 22. April 2009 um 20:52

    Das Thema ist erledigt, denke ich.
    Ich habe ihm per ICQ bei der Router-Konfiguration (DynDNS-Eintrag, Portweiterleitung), den PC-Netzwerk-Einstellungen (statische IP-Adresse) und der Konfiguration des HTTP-Fileservers (HFS) geholfen.
    Das läuft jetzt! :)

  • Func als Goto ersatz

    • Oscar
    • 22. April 2009 um 04:17

    Wenn innerhalb einer Funktion, diese Funktion wieder aufgerufen wird...

    [autoit]


    Func _inprog()
    Do
    $msg = GUIGetMsg()
    Until $r = 100

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

    If $r = 100 Then $r = 1
    _inprog() ; <-- hier
    EndFunc

    [/autoit]


    ...spricht man von Rekursion. Das ist nicht generell verboten, manchmal ist das sogar erforderlich, aber dann muss man für eine Abbruchbedingung sorgen (nicht wie hier eine unendliche Rekursion).
    Bei AutoIt ist die max. Rekursions-Tiefe auf 5100 festgelegt. Oder anders ausgedrückt, das obige Script hätte sich nach 5100 Aufrufen mit einer Fehlermeldung beendet!

  • _Tiks to time Mod

    • Oscar
    • 21. April 2009 um 22:51

    Ja, genau.
    Das Beispiel stammt übrigens aus der Hilfedatei. Ist nicht von mir.

  • Suchen von Files ( wie bei Windows ) mit AutoIt - dazu eine Frage

    • Oscar
    • 21. April 2009 um 21:10

    Schau Dir mal diese Funktion von BugFix an: Dateisuche in Ordner und allen Unterordnern - eine weitere Variante

  • _Tiks to time Mod

    • Oscar
    • 21. April 2009 um 21:04
    Zitat von Der_Doc

    Wenn würde ich gerne ne Funktion haben um das aktuelle Datum i den Timestamp umzuwandeln. ;)

    Gibt's doch schon! Steht sogar in der Hilfe zu _DateDiff():

    [autoit]


    #include <Date.au3>
    ; Calculated the number of seconds since EPOCH (1970/01/01 00:00:00)
    $iDateCalc = _DateDiff( 's',"1970/01/01 00:00:00",_NowCalc())
    MsgBox( 4096, "", "Number of seconds since EPOCH: " & $iDateCalc )

    [/autoit]
  • Drei Probleme mit der Editbox

    • Oscar
    • 21. April 2009 um 16:47

    Das ist ja ein merkwürdiges Phänomen. Es gab früher mal eine Beschränkung auf 30.000 Zeichen. Das wurde offenbar geändert.
    Jetzt gibt es eine Beschränkung auf 260.091 Zeichen und man kann diese nicht mehr erweitern. ?(
    Hier ein Testscript:

    [autoit]


    GUICreate('Edit-Test', 640, 480)
    Global $sText
    For $i = 1 To 260091 ; 260092 geht nicht mehr
    $sText &= 'a'
    Next
    $hEdit = GUICtrlCreateEdit($sText, 5, 5, 630, 470)
    GUICtrlSetLimit(-1, 500000) ; keine Wirkung
    GUISetState()
    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • Frage zu Random

    • Oscar
    • 21. April 2009 um 16:28

    @SiLenCa: Dein Script scheitert, weil Du das "-1" nach UBound vergessen hast. UBound($array) liefert 3 zurück. Die For-Schleife fängt aber bei Null an und darf somit nur bis 2 gehen (0-2 = 3 Array-Elemente).

    @Commander21: Wolltest Du nur Zahlen haben? Dann kann man das direkt mit Random machen. Ohne StringMid. Ich nahm jetzt aber mal an, dass das nur als Beispiel gedacht war und Du dort auch Buchstaben zulassen willst.

  • Func als Goto ersatz

    • Oscar
    • 21. April 2009 um 15:43

    Nein Conan10, so wird Dir AutoIt einen Fehler auswerfen. Du darfst nicht gleichzeitig einen Befehl hinter Then schreiben und ein EndIf benutzen.

    Abgesehen davon würde Dein Script, Piccolo1986, nicht lange laufen durch die rekursiven Funktionsaufrufe.

    Man kann das aber viel einfacher lösen:

    [autoit]


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

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

    guicreate("Progressbar",53,10,-1,-1,$WS_POPUP)
    GUISetBkColor(0xffffff)
    $name = guictrlcreateprogress(0,0,53,10)
    GUICtrlSetBkColor(-1,0xffffff); Hintergrundfarbe der Progressbar
    guisetstate()

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

    $r = 1
    AdlibEnable("_zaehler",10)
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    Func _zaehler()
    guictrlsetdata($name,$r)
    $r+=1
    If $r = 100 Then $r = 1
    EndFunc

    [/autoit]
  • Frage zu Random

    • Oscar
    • 21. April 2009 um 15:36

    Oder eine Schleife:

    [autoit]


    #include <Array.au3>
    Global $array[3]
    For $i = 0 To 2
    $array[$i] = StringMid(" 1,2,3,4,5,6,7,8,9", Random(1,9,1)*2, 1)
    Next
    _ArrayDisplay($array)

    [/autoit]
  • Papierformate beim Ausdruck bestimmen

    • Oscar
    • 21. April 2009 um 15:16

    Naja, AutoIt und ausdrucken. Da treffen zwei Welten aufeinander. ;)
    Am einfachsten wäre wohl eine Textverarbeitung fernsteuern. Für Word gibt's eine UDF. Schau Dir die Befehle einfach mal in der Hilfe an.

  • For-Schleifen, Würfelpoker...

    • Oscar
    • 21. April 2009 um 04:22

    Da sind viel zu viele Ifs drin. Das geht auch einfacher: :)

    [autoit]


    #include <Array.au3>
    Global $a[5] = [1, 1, 6, 6, 6]
    _ArrayDisplay($a)
    Global $h[6] = [0, 0, 0, 0, 0, 0]
    For $i = 0 To 4
    $h[$a[$i]-1] += 1
    Next
    _ArrayDisplay($h)
    Global $hh[6] = [0, 0, 0, 0, 0, 0]
    For $i = 0 To 5 Step 1
    If $h[$i] <> 0 Then $hh[$h[$i]-1] += 1
    Next
    _ArrayDisplay($hh)

    [/autoit]
  • Dateien leicht verschlüsseln

    • Oscar
    • 20. April 2009 um 22:17

    Ganzen Thread lesen! ;)

    Zitat

    Funktioniert aber nicht bei externen Subprogrammen (nicht von mir programmiert). ?!

  • Lottogewinn

    • Oscar
    • 20. April 2009 um 22:10

    Ich bin mir nicht sicher, ob man das nach 1.000.000 Durchgängen schon sagen kann. Das hört sich vielleicht viel an, aber ich denke bei den Wahrscheinlichkeitswerten beim Lotto sind diese Zahlen noch nicht aussagekräftig.

    Mein Rechner braucht für 1.000.000 Ziehungen 165 sek.
    Aber einen Vergleich zwischen 64 und 32Bit System musst Du doch wohl auf ein und demselben Rechner durchführen. Sonst ist das kein Vergleich.

  • Ini Datei online auslesen lassen

    • Oscar
    • 20. April 2009 um 19:59

    _INetGetSource könnte funktionieren, wenn auch nicht als richtige Ini.
    Aber _FileReadToArray geht doch nicht per FTP/HTTP, oder habe ich da was übersehen?

  • Mehrere If-Konditionen

    • Oscar
    • 20. April 2009 um 19:29

    Naja, ein Blick in die Hilfe hilft hier weiter. ;)

    Zitat


    Wenn mehr als ein Operator in einem Ausdruck verwendet wird, bestimmt die Operator Priorität die Reihenfolge der Verwendung. Die Priorität, die in AutoIt verwendet wird steht unten. Wenn zwei Operatoren die gleiche Priorität besitzen, wird der Ausdruck von links nach rechts ausgewertet.

    Von der höchsten zur niedrigsten Priorität:

    NOT
    ^
    * /
    + -
    &
    < > <= >= = <> ==
    AND OR

    Alles anzeigen
  • TCP

    • Oscar
    • 20. April 2009 um 18:27

    Der Client muss Deine "öffentliche" IP-Adresse eingeben. Auf Deinem Rechner _GetIP() ausführen und ihm mitteilen.
    Außerdem muss auf Deinem Router eine Port-Weiterleitung eingerichtet sein.

  • FTP Server [Versuch #2]

    • Oscar
    • 20. April 2009 um 12:52

    Ich weiß, dass man mit entsprechender Suche viele Seiten dazu finden kann, aber ich kenne auch viele, die mit der Netzwerk-Konfiguration so ihre Schwierigkeiten haben.
    Wie bereits geschrieben, ist die Netzwerk-Konfiguration ja auch sehr von der verwendeten Hard- und Software abhängig, von daher sollten wir nicht allzu streng sein, wenn er es trotz der Suche (ich glaube ihm das jetzt mal) nicht geschafft hat.

    Für eine weitergehende Hilfe ist er aber dann doch gefordert, indem er Infos über seine verwendete Hard-/Software postet.

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™