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

Beiträge von bernd670

  • Arrays begrenzt?

    • bernd670
    • 8. September 2009 um 16:56

    Einfach an die Syntax halten!

    Spoiler anzeigen
    [autoit]

    Dim $pixel[131][97]

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

    For $i = 0 To 2 * 65
    For $o = 0 To 2 * 48
    $pixel[$i][$o] = GUICtrlCreateLabel("", 2 * $i, 2 * $o, 2 * 1, 2 * 1)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    Next
    Next

    [/autoit]
  • Ini in 3D Array einlesen?

    • bernd670
    • 6. September 2009 um 20:26

    Hallo,

    Redim ist immer eine Bremse aber man kann es beschleunigen wenn man das Array um mehr als 1 vergrößert.

    Beispiel
    [autoit]

    Dim $test1[1][3]
    Dim $test2[1][3]
    Dim $test3[1][3]
    Dim $test4[1][3]

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

    $Start1 = TimerInit()
    For $i = 1 To 20000
    If UBound($test1) < $i Then ReDim $test1[UBound($test1)+1][3]
    Next
    $Time1 = TimerDiff($Start1)

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

    $Start2 = TimerInit()
    For $i = 1 To 20000
    If UBound($test2) < $i Then ReDim $test2[UBound($test2)+10][3]
    Next
    $Time2 = TimerDiff($Start2)

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

    $Start3 = TimerInit()
    For $i = 1 To 20000
    If UBound($test3) < $i Then ReDim $test3[UBound($test3)+100][3]
    Next
    $Time3 = TimerDiff($Start3)

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

    $Start4 = TimerInit()
    For $i = 1 To 20000
    If UBound($test4) < $i Then ReDim $test4[UBound($test4)+1000][3]
    Next
    $Time4 = TimerDiff($Start4)

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

    $Out = "1 - Zeilen: " & UBound($test1) & " Dauer: " & $Time1 & " ms" & @CRLF
    $Out &= "2 - Zeilen: " & UBound($test2) & " Dauer: " & $Time2 & " ms" & @CRLF
    $Out &= "3 - Zeilen: " & UBound($test3) & " Dauer: " & $Time3 & " ms" & @CRLF
    $Out &= "4 - Zeilen: " & UBound($test4) & " Dauer: " & $Time4 & " ms" & @CRLF

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

    MsgBox(0, "", $Out)

    [/autoit]
  • Browser Hilfe Vor - und Zurück

    • bernd670
    • 6. September 2009 um 19:12

    Hallo,

    Du musst doch nur mitzählen wie oft die Seite gewechselt wurde und wie oft Du schon zurück bzw. vor gegangen bist oder Du schreibst die Seiten in ein Array dann hast Du auch gleich eine History.

  • BIOS mag keine Bootmediumsauswahl mehr anbieten!?

    • bernd670
    • 6. September 2009 um 18:03

    Hallo,

    bei meinem Phönix-Bios wird mit F9 das Bootmedium ausgewählt.
    Ansonsten hilft es vllt. wenn Du die Platte in einem anderen Notebook oder externen Gehäuse erst mal platt machst, wenn nichts auf der Platte ist wird normaler das nächst Bootdevice gewählt. Zum testen kann Du dein Notebook ja einfach mal ohne Platte strarten.

  • DllCall und Array als Parameter

    • bernd670
    • 4. September 2009 um 22:39

    Hallo,

    Arrays werden so erzeugt!

    Spoiler anzeigen
    [autoit]

    Global Const $ADDPROP_NONE = 0x00000000
    Global Const $ADDPROP_GUID = 0x00000002
    Global Const $ADDPROP_KEY = 0x00000008
    Global Const $ADDPROP_ARRAY = 0x00000010
    Global Const $ADDPROP_NAME = 0x00000044
    Global Const $MAX_STRING = 255 ; hier die max. Stringlänge
    ; For SMS 2003, this value cannot be greater than 900 characters.
    ; For SMS 2.0, this value cannot be greater than 255 characters.

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

    FileDelete("TEST.DDR")

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

    Global $strSite = "P01"
    Global $strComputer = "TESTPC"
    Global $strDdrFileName = "TEST.DDR"
    Global $strOS = "Windows XP Professional"
    Global $strDomainName = "TEST.LOCAL"

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

    Global $arrGroups = DllStructCreate ("ptr[2];char [" & $MAX_STRING & "];" & _
    "char [" & $MAX_STRING & "];")

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

    DllStructSetData($arrGroups, 1, DllStructGetPtr($arrGroups, 2), 1)
    DllStructSetData($arrGroups, 1, DllStructGetPtr($arrGroups, 3), 2)
    DllStructSetData ($arrGroups, 2, "GROUP1")
    DllStructSetData ($arrGroups, 3, "GROUP2")

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

    Global $arrOUs = DllStructCreate ("ptr[2];char [" & $MAX_STRING & "];" & _
    "char [" & $MAX_STRING & "];")

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

    DllStructSetData($arrOUs, 1, DllStructGetPtr($arrOUs, 2), 1)
    DllStructSetData($arrOUs, 1, DllStructGetPtr($arrOUs, 3), 2)
    DllStructSetData ($arrOUs, 2, "OU1")
    DllStructSetData ($arrOUs, 3, "OU2")

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

    Global $arrContainer = DllStructCreate ("ptr[1];char [" & $MAX_STRING & "];")

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

    DllStructSetData($arrContainer, 1, DllStructGetPtr($arrContainer, 2), 1)
    DllStructSetData ($arrContainer, 2, "")

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

    Global $SMSRsGendll = DllOpen("SMSRsGen.dll")
    DDRNew("System", "SMS_AD_SYSTEM_GROUP_DISCOVERY_AGENT", $strSite)
    DDRAddString("Netbios Name", $strComputer, 64, $ADDPROP_KEY)
    DDRAddString("Operating System Name and Version", $strOS, 64, $ADDPROP_KEY)
    DDRAddString("Resource Domain OR Workgroup", $strDomainName, 64, $ADDPROP_KEY)
    DDRAddStringArray("System Group Name", DllStructGetPtr($arrGroups, 1), 2, $MAX_STRING, $ADDPROP_ARRAY)
    DDRAddStringArray("System OU Name", DllStructGetPtr($arrOUs, 1), 2, $MAX_STRING, $ADDPROP_ARRAY)
    DDRAddStringArray("System Container Name", DllStructGetPtr($arrContainer, 1), 1, $MAX_STRING, $ADDPROP_ARRAY)
    DDRWrite($strDdrFileName)
    DllClose($SMSRsGendll)

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

    Func DDRNew ($sArchitecture, $sAgentName, $sSiteCode)
    Local $aRes = DllCall($SMSRsGendll, "int", "DDRNew", _
    "str", $sArchitecture, _
    "str", $sAgentName, _
    "str", $sSiteCode)
    Return $aRes[0]
    EndFunc

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

    Func DDRAddStringArray ($sName, $sArray, $nArraySize, $nSQLWidth, $dwFlags)
    Local $aRes = DllCall($SMSRsGendll, "int", "DDRAddStringArray", _
    "str", $sName, _
    "ptr", $sArray, _
    "int", $nArraySize, _
    "int", $nSQLWidth, _
    "dword", $dwFlags)
    Return $aRes[0]
    EndFunc

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

    Func DDRAddString ($sName, $sValue, $nSQLWidth, $dwFlags)
    Local $aRes = DllCall($SMSRsGendll, "int", "DDRAddString", _
    "str", $sName, _
    "str", $sValue, _
    "int", $nSQLWidth, _
    "dword", $dwFlags)
    Return $aRes[0]
    EndFunc

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

    Func DDRWrite ($sFileName)
    Local $aRes = DllCall($SMSRsGendll, "int", "DDRWrite", _
    "str", $sFileName)
    Return $aRes[0]
    EndFunc

    [/autoit]
  • Mathematisches Problem IParam-Speicherung

    • bernd670
    • 1. September 2009 um 17:04

    Hallo,

    benutze doch einfach das höchste Bit als Vorzeichen-Bit ist es 0 ist die Zahl positiv und bei 1 ist sie negativ.

  • Der Große Open-Source-Thread

    • bernd670
    • 31. August 2009 um 22:13

    Hallo,

    ich habe kürzlich Inkscape gefunden. (OpenSource-Pendant zu CorelDraw)

  • Internetradio empfangen

    • bernd670
    • 31. August 2009 um 21:41

    Hallo,

    zum Thema Webradio-Sammellisten!

    Für Set-Top-Boxen gibt es ein StreamOnTV-Client. Für diesen SOT-Client gibt es auch ein Add-On für Internet-Radio das eine umfangreiche Sammlung an Adressen (ca. 230) für Webradio beinhaltet. Lade einfach die Zip-Datei runter und entpacke sie in einen neuen Ordner. Im Verzeichnis <Ordner mit entpacker Zip-Datei>\Hard Disk\Sonstiges\Internet-Radio\ findest Du die Sammlung der Adressen in m3u-Dateien.

  • _FileListToArrayEx - Umlaute -.-

    • bernd670
    • 31. August 2009 um 20:12

    Hallo,

    der Grund warum _FileListToArrayEx keine Umlaute anzeigt liegt daran das der Dir-Befehl die Zeichen im ASCII-Format zurückgibt und die Ausgabe erfolgt im ANSI-Format.

    So passt es wieder!

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    Func _FileListToArrayEx($sPath, $sFilter = '*.*', $iFlag = 0, $sExclude = '')
    If Not FileExists($sPath) Then Return SetError(1, 1, '')
    If $sFilter = -1 Or $sFilter = Default Then $sFilter = '*.*'
    If $iFlag = -1 Or $iFlag = Default Then $iFlag = 0
    If $sExclude = -1 Or $sExclude = Default Then $sExclude = ''
    Local $aBadChar[6] = ['\', '/', ':', '>', '<', '|']
    For $iCC = 0 To 5
    If StringInStr($sFilter, $aBadChar[$iCC]) Or _
    StringInStr($sExclude, $aBadChar[$iCC]) Then Return SetError(2, 2, '')
    Next
    If StringStripWS($sFilter, 8) = '' Then Return SetError(2, 2, '')
    If Not ($iFlag = 0 Or $iFlag = 1 Or $iFlag = 2) Then Return SetError(3, 3, '')
    Local $oFSO = ObjCreate("Scripting.FileSystemObject"), $sTFolder
    $sTFolder = $oFSO.GetSpecialFolder(2)
    Local $hOutFile = @TempDir & $oFSO.GetTempName
    If Not StringInStr($sFilter, ';') Then $sFilter &= ';'
    Local $aSplit = StringSplit(StringStripWS($sFilter, 8), ';'), $sRead
    For $iCC = 1 To $aSplit[0]
    If StringStripWS($aSplit[$iCC], 8) = '' Then ContinueLoop
    If StringLeft($aSplit[$iCC], 1) = '.' And _
    UBound(StringSplit($aSplit[$iCC], '.')) - 2 = 1 Then $aSplit[$iCC] = '*' & $aSplit[$iCC]
    RunWait(@ComSpec & ' /c ' & 'dir "' & $sPath & '\' & $aSplit[$iCC] _
    & '" /b /o-e /od > "' & $hOutFile & '"', '', @SW_HIDE)
    $sRead &= OemToChar(FileRead($hOutFile))
    If Not FileExists($hOutFile) Then Return SetError(4, 4, '')
    FileDelete($hOutFile)
    Next
    If StringStripWS($sRead, 8) = '' Then SetError(4, 4, '')
    Local $aFSplit = StringSplit(StringTrimRight(StringStripCR($sRead), 1), @LF)
    Local $sHold
    For $iCC = 1 To $aFSplit[0]
    If $sExclude And StringLeft($aFSplit[$iCC], _
    StringLen(StringReplace($sExclude, '*', ''))) = StringReplace($sExclude, '*', '') Then ContinueLoop
    Switch $iFlag
    Case 0
    $sHold &= $aFSplit[$iCC] & Chr(1)
    Case 1
    If StringInStr(FileGetAttrib($sPath & '\' & $aFSplit[$iCC]), 'd') Then ContinueLoop
    $sHold &= $aFSplit[$iCC] & Chr(1)
    Case 2
    If Not StringInStr(FileGetAttrib($sPath & '\' & $aFSplit[$iCC]), 'd') Then ContinueLoop
    $sHold &= $aFSplit[$iCC] & Chr(1)
    EndSwitch
    Next
    If StringTrimRight($sHold, 1) Then Return StringSplit(StringTrimRight($sHold, 1), Chr(1))
    Return SetError(4, 4, '')
    EndFunc

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

    ;===============================================================================
    ; Name: OemToChar
    ; Description: Wandelt einen ASCII- in einen ANSI-String
    ; Parameter(s): $szSrc = String der umgewandelt werden soll
    ; Requirement(s): keine
    ; Return Value(s): bei Erfolg: umgewandelter String
    ; bei Fehler: "" und @error = 1
    ; Author(s): bernd670
    ;
    ;===============================================================================
    Func OemToChar ($szSrc)
    ;~ Private Declare Function OemToChar Lib "user32.dll" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

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

    Local $strSrc = DllStructCreate("char[" & StringLen($szSrc) + 1 & "]")
    Local $strDst = DllStructCreate("char[" & StringLen($szSrc) * 2 + 1 & "]")
    DllStructSetData($strSrc,1,$szSrc)
    DllStructSetData($strDst,1,0)

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

    Local $lRetVal = DllCall("user32.dll", "long", "OemToChar", "ptr", DllStructGetPtr($strSrc), "ptr", DllStructGetPtr($strDst))
    If IsArray($lRetVal) And $lRetVal[0] = 1 Then
    Return SetError(0,0,DllStructGetData($strDst,1))
    EndIf

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

    Return SetError(1,0,"")
    EndFunc

    [/autoit]
  • Klassifikation eines "removable device"

    • bernd670
    • 30. Juni 2009 um 20:11

    @Current, hast Du den ersten Beitrag mal genau gelesen?

  • Für alle Mathematiker und Knobler in diesem forum! Los Einsteins macht euch ans Werk die Autoit Welt benötigt eine neue Wahrscheinlichkeits theorie xd

    • bernd670
    • 18. Juni 2009 um 22:01

    Klar ist es zum Fliesenlegen! Das bekommst Du doch bestimmt alleine hin, dass ist doch nur das kleine einmaleins.

    BreiteRest = Flächenbreite - Floor(Flächenbreite / (Fliesenbreite + Abstand)) * (Fliesenbreite + Abstand)
    HöheRest = Flächenhöhe - Floor(Flächenhöhe / (Fliesenhöhe + Abstand)) * (Fliesenhöhe + Abstand)

    @Edit: Ein kleines Beispielprogramm, den Rest bekommt Du bestimmt selbst hin!

    Spoiler anzeigen
    [autoit]

    $Flaechenbreite = 8
    $Flaechenhoehe = 8
    $Fliesenbreite = 0.30
    $Fliesenhoehe = 0.20
    $Abstand = 0.003

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

    ; Ringsum ein Rand von 3mm lassen
    $Flaechenbreite -= 0.006
    $Flaechenhoehe -= 0.006

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

    $BreiteAnzahlGanzeFliesen = Floor($Flaechenbreite / ($Fliesenbreite + $Abstand))
    $BreiteRest = Round($Flaechenbreite - $BreiteAnzahlGanzeFliesen * ($Fliesenbreite + $Abstand), 2)
    $HoeheAnzahlGanzeFliesen = Floor($Flaechenhoehe / ($Fliesenhoehe + $Abstand))
    $HoeheRest = Round($Flaechenhoehe - $HoeheAnzahlGanzeFliesen * ($Fliesenhoehe + $Abstand), 2)

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

    ; Korrektur wenn der Rest noch so breit ist wie eine ganze Fliese
    If $BreiteRest >= $Fliesenbreite Then
    $BreiteAnzahlGanzeFliesen += 1
    $BreiteRest -= $Fliesenbreite
    EndIf

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

    ; Korrektur wenn der Rest noch so hoch ist wie eine ganze Fliese
    If $HoeheRest >= $Fliesenhoehe Then
    $HoeheAnzahlGanzeFliesen += 1
    $HoeheRest -= $Fliesenhoehe
    EndIf

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

    MsgBox(0,"",StringFormat("Es werden %d ganze Fliese benötigt.\r\nZusätzlich werden noch %d Fliesen mit einer Breite von %.2f cm,\r\n%d Fliesen mit einer Höhe von %.2f cm benötigt und\r\neine Fliese muss %.2f cm x %.2f cm gross sein.", $BreiteAnzahlGanzeFliesen * $HoeheAnzahlGanzeFliesen, $HoeheAnzahlGanzeFliesen, $BreiteRest *100, $BreiteAnzahlGanzeFliesen, $HoeheRest*100, $BreiteRest*100, $HoeheRest *100))

    [/autoit]
  • Leerzeilen in einer *.txt Datei löschen

    • bernd670
    • 17. Juni 2009 um 16:23

    Nein das geht nicht, so werden auch Leerzeichen innerhalb einer Zeile gelöscht. Bei mir werden nur Leerzeichen am Zeilenende und Leerzeilen gelöscht!

  • Leerzeilen in einer *.txt Datei löschen

    • bernd670
    • 17. Juni 2009 um 10:39

    Das geht aber auch kürzer:

    [autoit]

    $szTxt = StringRegExpReplace(FileRead("test.txt"), '\s{2,}\r\n', @CRLF)
    ConsoleWrite($szTxt & @CRLF)
    FileDelete("test.txt")
    FileWrite("test.txt", $szTxt)

    [/autoit]
  • hohe CPU-Auslastung

    • bernd670
    • 16. Juni 2009 um 12:41

    @ChaosKeks und @N8wolf, in einer schleife in der GuiGetMsg() aufgerufen wird sollte man es tunlichst unterlassen ein Sleep mit einzusetzen. GuiGetMsg() sorgt selbst dafür das die CPU-Last gering bleibt, ein Sleep würde nur zur Verzögerung bei Aktionen führen! Vllt. solltet ihr auch mal die Bemerkungen in der Hilfe lesen.

  • Tic Tac Toe - Computergegner

    • bernd670
    • 16. Juni 2009 um 09:20

    Mal ein klener Tip, Du musst nicht immer mit

    [autoit]


    GUICtrlDelete ( $Pic1 )
    $Pic1 = GUICtrlCreatePic(@TempDir & "\Tictactoe(x).bmp", 0, 0, 100, 100)

    [/autoit]

    die Bilder aktualisieren, es reicht auch

    [autoit]


    GUICtrlSetImage($Pic1, @TempDir & "\Tictactoe(x).bmp")

    [/autoit]
  • Befehl an die Powershell übergeben

    • bernd670
    • 15. Juni 2009 um 16:19

    Kann es sien das V ein Netzlaufwerk ist?
    Wenn ja, dann kopiere die copy.ps1 mal auf eine lokale Partition auf dem Zielrechner und starte mal mit dieser!

  • Befehl an die Powershell übergeben

    • bernd670
    • 15. Juni 2009 um 15:43

    Zwischen die Parameter von psexec kommen keine kommata und braucht powershell nicht noch den Paramter -psconsolefile!?

    probiers mal so: (ohne gewähr)

    Spoiler anzeigen
    [autoit]

    ShellExecuteWait("psexec", '\\172.16.1.16 -i 0 -u domain\meinadmin -p meinpasswort powershell.exe -psconsolefile "V:\copy.ps1"')

    [/autoit]
  • TCP IP des Anfragenden Clients aulesen

    • bernd670
    • 15. Juni 2009 um 12:02

    Die IP-Adresse sollte mit netstat gehen und die MAC-Adresse mit arp.

  • Internetgeschwindigkeit begrenzen?!?

    • bernd670
    • 15. Juni 2009 um 10:20

    20000 kBit/s = 20 MBit/s

  • Rapidshare macht probleme

    • bernd670
    • 15. Juni 2009 um 05:25

    Lass dir doch einfach dein Passwort zuschicken!

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™