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

  • PrimA - der Primzahlengenerator

    • Oscar
    • 21. Januar 2009 um 10:34

    Ich habe mal einen Laufzeittest von Deinem ( anno2008 ) und von Bernd's Code gemacht:

    Spoiler anzeigen
    [autoit]


    ;===============================================================================
    $timer = TimerInit()
    $o = 100000
    $out = ''
    For $i = 2 To $o Step 1
    If IsPrime($i) Then $out &= $i & @CRLF
    Next
    $diff = TimerDiff($timer)
    _StringDisplay(Round($diff/1000, 3) & ' sek.' & @CRLF & $Out, 'Funktion von Bernd670')

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

    Func IsPrime($iValue)
    $maxText = Sqrt($iValue)
    For $i = 2 To $maxText
    If Mod($iValue, $i) = 0 Then Return False
    Next
    Return True
    EndFunc ;==>IsPrime
    ;===============================================================================

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

    ;===============================================================================
    $timer = TimerInit()
    Global Const $max = 100001
    Global $string = ''
    Dim $prim[$max + 1]

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

    For $i = 1 To $max - 1
    $prim[$i - 1] = False
    Next

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

    For $i = 2 To $max / 2
    For $j = 2 To $max / $i
    $prim[$i * $j] = True
    Next
    Next

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

    For $i = 2 To $max
    If Not $prim[$i] Then $string &= $i & @CRLF
    Next
    $diff = TimerDiff($timer)
    _StringDisplay(Round($diff/1000, 3) & ' sek.' & @CRLF & $string, 'Funktion von Anno2008')
    ;===============================================================================

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

    ;===============================================================================
    Func _StringDisplay($sText, $sTitle = 'StringDisplay', $sEditStyle = -1, $iWidth = 400, $iHeight = 300, $iLeft = -1, $iTop = -1)
    If Not IsDeclared('BS_DEFPUSHBUTTON') Then Local Const $BS_DEFPUSHBUTTON = 0x00000001
    If Not IsDeclared('GUI_EVENT_CLOSE') Then Local Const $GUI_EVENT_CLOSE = 0xFFFFFFFD
    If Not IsDeclared('WS_EX_COMPOSITED') Then Local Const $WS_EX_COMPOSITED = 0x02000000
    If Not IsDeclared('WS_MAXIMIZEBOX') Then Local Const $WS_MAXIMIZEBOX = 0x00010000
    If Not IsDeclared('WS_MINIMIZEBOX') Then Local Const $WS_MINIMIZEBOX = 0x00020000
    If Not IsDeclared('WS_SIZEBOX') Then Local Const $WS_SIZEBOX = 0x00040000
    Local $iEventMode = Opt('GUIOnEventMode', 0)
    Local $hGui = GUICreate($sTitle, $iWidth, $iHeight, $iLeft, $iTop, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_COMPOSITED)
    Local $hEdit = GUICtrlCreateEdit($sText, 5, 5, $iWidth - 10, $iHeight - 65, $sEditStyle)
    GUICtrlSetResizing(-1, 2 + 4 + 32 + 64)
    Local $hClose = GUICtrlCreateButton('Close', $iWidth / 2 - 25, $iHeight - 55, 50, 22, $BS_DEFPUSHBUTTON)
    GUICtrlSetResizing(-1, 64 + 256 + 512)
    ControlFocus($hGui, '', $hClose)
    GUISetState(@SW_SHOW, $hGui)
    While True
    Switch GUIGetMsg()
    Case $hClose, $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd
    ControlFocus($hGui, '', $hEdit)
    Local $sSelectedText = ControlCommand($hGui, '', $hEdit, 'GetSelected', '')
    If @error Then $sSelectedText = ''
    GUIDelete($hGui)
    Opt('GUIOnEventMode', $iEventMode)
    Return $sSelectedText
    EndFunc ;==>_StringDisplay

    [/autoit]

    Deine Funktion ist fast 4 mal so schnell. Nicht schlecht! :thumbup:
    Habe ich mir mal archiviert...

  • Seagate-Festplatten

    • Oscar
    • 21. Januar 2009 um 05:09

    Was ist das für ein Support bei Seagate? ?(

    Es werden Listen mit betroffenen Festplatten bereitgestellt, dann werden die wieder entfernt und durch andere ersetzt, die werden dann auch wieder entfernt...

    Es werden Firmwareupdates bereitgestellt...
    http://www.heise.de/newsticker/Sea…/meldung/121940

    und wieder zurückgezogen...
    http://www.heise.de/newsticker/Sea…/meldung/122008

    Laut der einen Liste (siehe Screenshot) sind meine beiden Platten betroffen. Es soll angeblich auch eine aktuellere Firmware (SN06) geben, nur bekomme ich die nirgends, denn die gibt es nur auf EMail-Anfrage. Aber auf EMails antwortet dort keiner. :wacko:
    Screenshot:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Es geht mir nicht um die Daten auf den beiden Platten, da habe ich Backups von. Nur liegen die Platten ausgebaut hier rum und warten auf ein Firmwareupdate und ich habe mir die Platten nicht gekauft, damit sie hier im Regal Staub ansetzen.

    Bei dieser Firmenpolitik waren das meine letzten Festplatten von Seagate. :thumbdown:


    P.S.: Mal sehen, wann ich meine Platten wieder benutzen kann. Ich halte euch auf dem Laufenden.

  • PrimA - der Primzahlengenerator

    • Oscar
    • 20. Januar 2009 um 23:03

    Eine recht schnelle Routine ist diese hier:

    [autoit]


    $o = 100000

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

    $file = FileOpen("prim.txt", 2)

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

    For $i = 2 To $o Step 1
    If IsPrime($i) Then FileWrite($file, $i & @CRLF)
    Next
    FileClose($file)

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

    Func IsPrime($iValue)
    $maxText = Sqrt($iValue)
    For $i = 2 To $maxText
    If Mod($iValue, $i) = 0 Then Return False
    Next
    Return True
    EndFunc ;==>IsPrime

    [/autoit]

    Wenn ich mich recht erinnere hat Bernd670 die geschrieben.

  • MouseClick in Inputbox feststellen

    • Oscar
    • 20. Januar 2009 um 22:55

    Ändere mal die Funktion "MY_WM_COMMAND":

    [autoit]


    Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0x0000FFFF)
    If $nNotifyCode = 256 Then ControlClick($hWnd, '', $nID, 'Left', 2)
    $inhalt = GUICtrlRead($nID)
    $inhalt_pur = StringReplace(StringReplace($inhalt, " ", ""), ":", "")
    If $nNotifyCode = $EN_CHANGE Then
    zeit_pruefen($nID, $inhalt_pur)
    Return
    EndIf
    If $nNotifyCode = $EN_KILLFOCUS Then
    en_killfocus($nID, $inhalt_pur)
    Return
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>MY_WM_COMMAND

    [/autoit]
  • Anwendung in den Vordergrund holen

    • Oscar
    • 20. Januar 2009 um 18:37

    Schau Dir mal "WinActivate" in der Hilfe an.

  • paar fragen^^

    • Oscar
    • 20. Januar 2009 um 13:20

    Dann poste mal Deine _FTP.au3, weil bei meiner muss man das Handle von FTPConnect benutzen.

  • Übersetzung in dänisch

    • Oscar
    • 20. Januar 2009 um 08:37

    Naja, wenn man ein Programm mehrsprachig erstellt, warum dann nicht auch dänisch anbieten?
    Gerade wo Alina ihre Mithilfe hier anbietet. Finde ich gut! :)

    P.S.: Mit der Nordseeküste von Dänemark gebe ich Dir recht. Die finde ich auch schöner. :)

  • GAMES von Netzwerkfreigabe kopieren

    • Oscar
    • 20. Januar 2009 um 08:27

    Nein, denn für den Progressbalken werden ja ebenfalls diese Daten benötigt (ausrechnen der Gesamtgröße).
    Also entweder ganz ohne (DirCopy) oder mit allem (MultiFileCopy). Nur ein bißchen geht nicht (genauso wie: nur ein bißchen schwanger ;) ).

  • Programm Pfad aus ini datei mit variablen buttons

    • Oscar
    • 20. Januar 2009 um 00:59

    Ich habe mal Dein Programm ausführbar gemacht. So funktioniert es jetzt mit Deiner Inidatei.
    Musst nur noch entscheiden, was Du dann mit dem Pfad machen willst.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1) ; Change to OnEvent mode

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

    Local $y = 20, $btn[99]
    If Not FileExists("install.ini") Then
    Exit MsgBox(0, "Fehler", "install.ini Anweisungsdatei nicht gefunden !!!")
    Else
    $installSections = IniReadSectionNames("install.ini")
    EndIf
    $Height = $installSections[0] * 40 + 30
    $hWnd = GUICreate("Auto Install", 400, $Height)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    ;$iMemo = GUICtrlCreateEdit("", 119, 10, 276, 374, 0)
    $SectionOutput = ""
    Global $btn[$installSections[0]]
    For $i = 1 To $installSections[0]
    $btn[$i - 1] = GUICtrlCreateButton($installSections[$i], 100, 10 + ($i - 1) * 40, 200, 30)
    GUICtrlSetOnEvent(-1, '_Buttons')
    Next
    GUISetState(@SW_SHOW)

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

    While True
    Sleep(50)
    WEnd

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

    Func _End()
    Exit
    EndFunc ;==>_End

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

    Func _Buttons()
    Local $iProg = @GUI_CtrlId - $btn[0] + 1
    Local $sPath = IniRead("install.ini", $installSections[$iProg], "key", "")
    MsgBox(0, 0, $sPath)
    EndFunc ;==>_Buttons

    [/autoit]
  • Hinter GUI sperren

    • Oscar
    • 20. Januar 2009 um 00:33

    Ich weiß eigentlich immer noch nicht, was Du willst, aber meine Kristallkugel meint, dass Du vielleicht ein eigenes GUI-Fenster so groß wie der Desktop (Stichworte: @DesktopWidth, @DesktopHeight) erstellen möchtest. Dieses willst Du dann immer in den Vordergrund holen (Stichwort: WinSetOnTop). Auf das GUI-Fenster erstellst Du dann eine "Tastatur" für die Codeeingabe (Stichwort: GUICtrlCreateButton).
    Dann vielleicht noch den Aufruf des Taskmanagers verhindern und das Fenster in einer Schleife immer aktivieren (Stichwort: WinActivate).

    Tja, und die anderen Fragen hast Du ja nach wie vor offen gelassen... :whistling:

  • MouseClick in Inputbox feststellen

    • Oscar
    • 20. Januar 2009 um 00:18

    WM_COMMAND

    Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    GUICreate('Test', 400, 80)
    $hInput1 = GUICtrlCreateInput('blablabla', 10, 10, 380, 20)
    $hInput2 = GUICtrlCreateInput('blablabla', 10, 40, 380, 20)
    GUISetState()

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

    GUIRegisterMsg($WM_COMMAND, 'MY_WM_COMMAND')

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

    Do
    Until GUIGetMsg() = -3

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

    Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0x0000FFFF)
    If BitAND($nNotifyCode, 256) Then GUICtrlSetData($nID, '')
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • paar fragen^^

    • Oscar
    • 19. Januar 2009 um 23:57

    Du musst auch den Identifier von FTPConnect benutzen:

    Spoiler anzeigen
    [autoit]


    #include <_FTP.au3>

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

    $Folder = "/" & @UserName & "@" & @ComputerName & "_" & @MDAY & ":" & @MON & ":" & @YEAR & "/"
    $server = '******'
    $username = '*****'
    $pass = '******'

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

    $Hand = _FTPOpen('Doesnt Matter')
    $FTPConn = _FTPConnect($Hand, $server, $username, $pass)

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

    _FTPMakeDir($FTPConn, $Folder) ;Make directory in current directory
    if @error then msgbox(0,"Error","MakeDir")

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

    _FtpPutFile($FTPConn, 'C:\test.exe', $Folder & "Test.exe") ;Upload to top level directory with different file name
    if @error then msgbox(0,"Error","PutFile 2")

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

    _FTPClose($FTPConn)
    _FTPClose($Hand);Close ftp session

    [/autoit]
  • GAMES von Netzwerkfreigabe kopieren

    • Oscar
    • 19. Januar 2009 um 23:47

    Entweder...oder!
    MultiFileCopy muss erstmal die Verzeichnisstruktur einlesen. Wenn das Quellverzeichnis viele kleine Dateien in zahlreichen Unterverzeichnissen beinhaltet, dann dauert das halt so lange.
    Das läßt sich nicht verhindern. Irgendwoher müssen die Daten (Größe, Dateinamen) ja kommen.
    DirCopy kann da gleich loslegen, weil es diese Daten nicht anzeigt. Du musst Dich also entscheiden...

  • Tray Item auslesen

    • Oscar
    • 19. Januar 2009 um 15:14

    Wie wäre es mit: @TRAY_ID

  • Hinter GUI sperren

    • Oscar
    • 18. Januar 2009 um 23:25

    Wenn Du es nicht selbst umsetzen kannst, würde es die Aussicht auf Hilfe durch die anderen deutlich erhöhen, wenn Du Deine Absicht mal ausführlich beschreiben würdest.
    Was soll wann wo gesperrt werden? Und was soll nach Eingabe des Passwortes freigegeben werden? Und wie lange soll diese Freigabe bestehen?

    Ist es denn wirklich so schwer, die Fragen etwas präziser zu stellen (sodass man nicht etliche Male nachfragen muss)?

  • Browserstart überwachen

    • Oscar
    • 18. Januar 2009 um 23:14

    Update mal Dein AutoIt auf Version 3.3, denn erst dort gibt es die "2" als dritten Parameter für StringSplit.

  • Happy Birthday Oscar

    • Oscar
    • 18. Januar 2009 um 22:38

    Vielen Dank für die vielen Glückwünsche.
    Aber Wein ist nicht so mein Getränk, eher Weinbrand (Osborne). Aber in meinem Alter ist das dann auch nicht mehr ganz so arg mit dem Feiern (man wird ruhiger ;) ).

    Es ist aber klasse, wie hier an die Geburtstage gedacht wird. Ein tolles Forum!
    Ihr seid mir alle irgendwie ans Herz gewachsen. Fast schon wie eine große Familie.

    Danke! :)

  • TCP wird immer blockiert

    • Oscar
    • 18. Januar 2009 um 13:51

    Weil die das per HTTP (Port: 80) tun und der ist standardmäßig freigeschaltet.

  • Listbox in .txt Datei speichern / automatisches scrollen einer textbox

    • Oscar
    • 17. Januar 2009 um 21:50

    Dann stell Deine Fragen aber auch allgemeingültig und poste ein Beispielscript anhand dessen man das Problem nachvollziehen kann.
    Wir werden hier nicht Deinen Bot supporten! X(

  • Input dynmisch verwalten? (Passwort)

    • Oscar
    • 17. Januar 2009 um 20:31

    Uih! Das klappt!
    Kannte ich noch nicht. Werde ich gleich mal einbauen. :thumbup:

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™