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

  • RegEx Problem beim verarbeiten einer Binären Datei

    • Oscar
    • 15. Februar 2011 um 19:29

    Meinst Du so:

    [autoit]


    #include <Array.au3>
    $sPath = @ScriptDir & "\index.dat"
    $sData = FileRead($sPath)
    $aRet = StringRegExp($sData, "(\d+:\s.+?@[[:print:]]+)", 3)
    _ArrayDisplay($aRet)

    [/autoit]
  • nähestgelegene Zahl

    • Oscar
    • 14. Februar 2011 um 11:03

    Ich würde es so machen:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Dim $wert = 43
    Dim $final = -1
    Dim $avArray = StringSplit("23,57,13,59,73", ",", 2)
    _ArraySort($avArray)
    ;~ _ArrayDisplay($avArray)
    For $i = 0 To UBound($avArray) - 1
    Select
    Case $wert = $avArray[$i]
    $final = $avArray[$i]
    ExitLoop
    Case $wert < $avArray[$i]
    If ($avArray[$i] - $wert) < ($avArray[$i + 1] - $wert) Then
    $final = $avArray[$i]
    ExitLoop
    Else
    $final = $avArray[$i + 1]
    ExitLoop
    EndIf
    EndSelect
    Next
    If $final = -1 Then $final = $avArray[UBound($avArray) - 1]
    MsgBox(0, "", $final)

    [/autoit]
  • Tablet-PC-Fragen

    • Oscar
    • 14. Februar 2011 um 04:37
    Zitat von AntiSpeed

    Oscar : Hast du nicht mal einen Link zu einem Tablet-PC für Studenten mit Linux gepostet unter 100€ ?

    Äh? Nein! Jedenfalls kann ich mich nicht daran erinnern. ;)

    Ich habe auch gar keinen Tablet-PC oder ein Smartphone oder ein Netbook. Von daher ist es sehr unwahrscheinlich, dass ich mal so einen Link gepostet habe. ^^

  • mein erstes script (was geht besser)?

    • Oscar
    • 14. Februar 2011 um 04:21

    Zitat von der Website des Betreibers:

    Zitat

    Jegliches Weiterverbreiten oder Zitieren unserer Informationen -auch auszugsweise- bedarf der ausdrücklichen Genehmigung von clever-tanken.de.

    Wenn Du eine solche Genehmigung nicht besitzt, ist dieses Skript leider nicht zulässig.

  • Überprüfen von Werten eines Objekts

    • Oscar
    • 13. Februar 2011 um 10:22

    So habe ich es in meinem ComputerInfo gemacht:

    Spoiler anzeigen
    [autoit]


    Func _CI_GetHarddrives($strComputer = '.')
    Local $aReturn[1][8] = [[ _
    'Bezeichnung:', 'Größe:', 'Anschluss:', 'Bytes/Sektor:', 'Anzahl der Sektoren:', _
    'PNPDeviceID:', 'Status:', 'Seriennr. (Hardware):']]
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][8]
    $aReturn[$x][0] = $objItem.Model
    $aReturn[$x][1] = _ByteAutoSize($objItem.Size)
    $aReturn[$x][2] = $objItem.InterfaceType
    $aReturn[$x][3] = $objItem.BytesPerSector
    $aReturn[$x][4] = $objItem.TotalSectors
    $aReturn[$x][5] = $objItem.PNPDeviceID
    $aReturn[$x][6] = $objItem.Status
    Switch @OSVersion
    Case 'WIN_VISTA', 'WIN_7'
    If Number($objItem.SerialNumber) > 0 Then
    $aReturn[$x][7] = $objItem.SerialNumber & ' ("' & _CI_SerialToString($objItem.SerialNumber) & '")'
    Else
    $aReturn[$x][7] = 'nicht vorhanden'
    EndIf
    Case Else
    $aReturn[$x][7] = 'Wird von ' & @OSVersion & ' nicht unterstützt!'
    EndSwitch
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetHarddrives

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

    Func _CI_SerialToString($sSerial)
    Local $sOut = ''
    For $i = 1 To StringLen($sSerial) Step 2
    $sOut &= Chr(Dec(StringMid($sSerial, $i, 2)))
    Next
    Return $sOut
    EndFunc ;==>_CI_SerialToString

    [/autoit]
  • Mainboard Modell _eindeutig_ identifizieren

    • Oscar
    • 13. Februar 2011 um 10:19

    Hast Du es mal mit meiner GetMainboard-Funktion aus meinem ComputerInfo probiert?

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $aMainboard = _CI_GetMainBoard()
    _ArrayDisplay($aMainboard)

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

    Func _CI_GetMainBoard($strComputer = '.')
    Local $aReturn[2][12] = [[ _
    'Hersteller:', 'Produkt:', 'Version:', 'Seriennummer:', 'Ext. Anschlüsse:', _
    'Int. Anschlüsse:', '', 'BIOS-Hersteller:', 'Name:', 'Version:', 'Datum:', 'Seriennummer:']]
    Local $x = 1, $objWMIService, $colItems, $sExtConnector = '', $sIntConnector = '', $sTmp
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_PortConnector', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $sTmp = $objItem.ExternalReferenceDesignator
    If StringLen($sTmp) > 1 Then
    $sExtConnector &= $sTmp & ' ** '
    ContinueLoop
    EndIf
    $sTmp = $objItem.InternalReferenceDesignator
    If StringLen($sTmp) > 1 Then $sIntConnector &= $sTmp & ' ** '
    Next
    EndIf
    $sExtConnector = StringTrimRight($sExtConnector, 4)
    $sIntConnector = StringTrimRight($sIntConnector, 4)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_BaseBoard', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $aReturn[$x][0] = $objItem.Manufacturer
    $aReturn[$x][1] = $objItem.Product
    $aReturn[$x][2] = $objItem.Version
    $aReturn[$x][3] = $objItem.SerialNumber
    $aReturn[$x][4] = $sExtConnector
    $aReturn[$x][5] = $sIntConnector
    Next
    EndIf
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_BIOS', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $aReturn[$x][7] = $objItem.Manufacturer
    $aReturn[$x][8] = $objItem.Name
    $aReturn[$x][9] = $objItem.BIOSVersion(0)
    $aReturn[$x][10] = _WMIDateStringToDate($objItem.ReleaseDate)
    $aReturn[$x][11] = $objItem.SerialNumber
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetMainBoard

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

    Func _WMIDateStringToDate($dtmDate)
    Return (StringMid($dtmDate, 7, 2) & '.' & StringMid($dtmDate, 5, 2) & '.' & StringLeft($dtmDate, 4) _
    & ' ' & StringMid($dtmDate, 9, 2) & ':' & StringMid($dtmDate, 11, 2) & ':' & StringMid($dtmDate, 13, 2))
    EndFunc ;==>_WMIDateStringToDate

    [/autoit]
  • SSD - Hilfe bei Kaufentscheidung

    • Oscar
    • 13. Februar 2011 um 10:13

    Noch ein kurzer Nachtrag:
    Mein Rechner bootet jetzt innerhalb von einer Minute (genau 63 sek.), wobei einen Großteil (35 sek.) das BIOS verbrät. Anmerkung: Ich habe einen Fingerabdruckscanner, sodass ich mein Windows-Passwort nicht eingeben muss.
    Und auch wie sich das Windows jetzt "anfühlt" gefällt mir sehr gut. Das starten der Programme geschieht auch viel schneller.
    Alles in allem bin ich sehr zufrieden damit. :thumbup:
    So eine SSD kann ich also weiterempfehlen (für diejenigen, die sie sich leisten können, da der Preis/GB ja doch relativ hoch ist).

  • Maus-O-Meter wie viel Meter hat die Maus zurückgelegt? | Jetzt mit Speicherfunktion

    • Oscar
    • 12. Februar 2011 um 23:09

    Das habe ich mir damals archiviert:

    Spoiler anzeigen
    [autoit]


    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _StringAddThousandsSep
    ; Description ...: Returns the original numbered string with the Thousands delimiter inserted.
    ; Syntax.........: _StringAddThousandsSep($sString[, $sThousands = -1[, $sDecimal = -1]])
    ; Parameters ....: $sString - The string to be converted.
    ; $sThousands - Optional: The Thousands delimiter
    ; $sDecimal - Optional: The decimal delimiter
    ; Return values .: Success - The string with Thousands delimiter added.
    ; Author ........: SmOke_N (orignal _StringAddComma
    ; Modified.......: Valik (complete re-write, new function name)
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......; Yes
    ; ===============================================================================================================================
    Func _StringAddThousandsSep($sString, $sThousands = -1, $sDecimal = -1)
    Local $sResult = "" ; Force string
    Local $rKey = "HKCU\Control Panel\International"
    If $sDecimal = -1 Then $sDecimal = RegRead($rKey, "sDecimal")
    If $sThousands = -1 Then $sThousands = RegRead($rKey, "sThousand")
    Local $aNumber = StringRegExp($sString, "(\D?\d+)\D?(\d*)", 1) ; This one works for negatives.
    If UBound($aNumber) = 2 Then
    Local $sLeft = $aNumber[0]
    While StringLen($sLeft)
    $sResult = $sThousands & StringRight($sLeft, 3) & $sResult
    $sLeft = StringTrimRight($sLeft, 3)
    WEnd
    $sResult = StringTrimLeft($sResult, StringLen($sThousands)) ; Strip leading thousands separator
    If $aNumber[1] <> "" Then $sResult &= $sDecimal & $aNumber[1]
    EndIf
    Return $sResult
    EndFunc ;==>_StringAddThousandsSep

    [/autoit]
  • Prozent Uhr - Mal eine ganz andere Uhr

    • Oscar
    • 12. Februar 2011 um 18:29

    Das flackern bekommst Du in den Griff, wenn Du die jeweilige Anzeige nur dann änderst, wenn sich auch der Wert ändert (bisherigen Wert in einer Variablen speichern und dann mit dem neuen Wert vergleichen).
    Die Prozentwerte solltest Du auch auf ein oder zwei Stellen nach dem Komma runden.

    Ansonsten: schönes Skript! :thumbup:

  • Maus-O-Meter wie viel Meter hat die Maus zurückgelegt? | Jetzt mit Speicherfunktion

    • Oscar
    • 12. Februar 2011 um 18:13

    Progandy hatte damals (für mein Bildschirm-Lineal) ein cooles Skript-Beispiel gepostet: Bildschirm-Lineal (mm/cm)

  • Taste für selbstgebautes Schaltpult gedrückt halten

    • Oscar
    • 12. Februar 2011 um 18:05

    Hast Du es mal mit SendKeepActive versucht?
    Möglicherweise muss das Fenster während des Send aktiv sein.

  • Mainboard Modell _eindeutig_ identifizieren

    • Oscar
    • 12. Februar 2011 um 17:16

    Beim schreiben und testen meines Skripts ist mir aber auch aufgefallen, dass diese BIOS-Daten keineswegs immer vollständig ausgefüllt sind.
    Ich würde mal vermuten, dass die bei AIDA eine eigene ID (mit Datenbank) verwenden, die anhand der verbauten Chipsätze/Slots/CPU/Controller etc. generiert wird.
    Wenn es sich "nur" um ein paar bestimmte Mainboards handelt, könnte man da etwas in dieser Richtung raussuchen und entsprechend die Auswahl treffen.

  • Script schließen -> batch datei ausführen

    • Oscar
    • 12. Februar 2011 um 16:59

    autoBert: Anhand eines Dateinamens so etwas herzuleiten halte ich für überzogen. Aber, und das geht jetzt an Dich McGangster:
    Wenn Du nicht endlich Dein Skript sowie die Batchdatei hier postest, dann verschwindet auch dieser Thread im "Nirvana". Ständig neue Threads aufzumachen mit völlig wirren Erklärungen und total unzureichenden Problembeschreibungen werden wir hier nicht länger hinnehmen. X(

  • Datei im Forum anhängen inkl. Downloadzähler.

    • Oscar
    • 12. Februar 2011 um 16:44

    Du darfst nicht auf "In den Beitrag einfügen" klicken, sondern musst es einfach so als Anhang belassen.
    Der Rest geschieht automatisch.

  • Autoit Dropdownliste

    • Oscar
    • 11. Februar 2011 um 17:49

    Als erstes ein Hinweis: Du darfst auf keinen Fall den OnEvent- und den MessageLoop-Modus gleichzeitig benutzen. Das funktioniert nicht!

    Hier mal Dein Beispiel, wie es funktioniert:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    GUICreate("combotest", 240, 200)
    $combo = GUICtrlCreateCombo("", 5, 5)
    GUICtrlSetData($combo, "|item1|item2|")
    $button1 = GUICtrlCreateButton("OK", 10, 40)
    $button2 = GUICtrlCreateButton("Schließen", 50, 40)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $button1
    $read = GUICtrlRead($combo)
    Switch $read
    Case 'item1'
    ; hier können weitere Befehle stehen
    MsgBox(0, "Combobox", $read)
    Case 'item2'
    ; hier können weitere Befehle stehen
    MsgBox(0, "Combobox", $read)
    EndSwitch
    Case $msg = $button2
    _exit()
    EndSelect
    WEnd

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

    Func _exit()
    Exit
    EndFunc ;==>_exit

    [/autoit]
  • Fenster 'ziehen'

    • Oscar
    • 9. Februar 2011 um 19:14
    Zitat von Raupi

    Na Super, wieder mal ein Style der in der Hilfe verschwiegen wird.
    Damit kann man sich das ganze $GUI_WS_EX_PARENTDRAG auch sparen. Ein Hoch auf BugFix der diesen Style gefunden hat. :thumbup:
    Der Style ist zwar in der WindowsConstant.au3 definiert aber nirgends beschrieben.


    Steht doch in der Hilfe (GUICreate):

    Zitat

    You can enable window draging for GUI without $WS_CAPTION by using $WS_EX_CONTROLPARENT in the exStyle parameter.

  • SSD - Hilfe bei Kaufentscheidung

    • Oscar
    • 7. Februar 2011 um 20:28

    Es ist vollbracht. :D
    Ich habe mir die "OCZ Vertex2"-SSD gegönnt. Ich habe sie allerdings hier vor Ort (bei K&M) gekauft. War gerade vorrätig und ich hatte noch einen Gutschein. :)
    Nachdem ich jetzt Windows 7 neu installiert habe, bin ich gerade noch dabei alle Programme wieder zu installieren, aber ich muss jetzt schon sagen, dass das ein enormer Unterschied ist.
    Der Win7-Leistungsindex liegt für die SSD übrigens bei 7,7 Punkten.

    Danke, für eure Hilfe! :thumbup:

  • DragListBox

    • Oscar
    • 7. Februar 2011 um 20:14

    Ja, das ist egal. Wird vermutlich vorher das Skript dahingehend durchsucht.

  • DragListBox

    • Oscar
    • 7. Februar 2011 um 15:24

    Nein! Funktioniert im 64 Bit-Modus immer noch nicht. Es stürzt nicht ab und es kommt auch keine Fehlermeldung. Man kann einfach keinen Eintrag ziehen.

  • Schnitzel hat Geburtstag!

    • Oscar
    • 6. Februar 2011 um 22:43

    Oh, da hätten wir fast unseren Schnitzel vergessen (wir brauchen unbedingt wieder unsere Geburtstagsliste).
    Herzlichen Glückwunsch zum Geburtstag! :party:

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™