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

  • IP == vergleichen

    • Oscar
    • 1. Juli 2009 um 16:28

    So:

    [autoit]


    If StringRegExpReplace(@IPAddress1, '(.+)\..+', '$1') = '10.1.0' Then
    MsgBox(1, "", "Correct")
    Else
    MsgBox(1, "", "Incorrect")
    Exit
    EndIf

    [/autoit]
  • µit - Juli

    • Oscar
    • 1. Juli 2009 um 16:07

    Also mein Script hat bloß 18 Zeilen. :D

    Und Delimeter nicht getrennt, sondern als ganzes.

  • Klassifikation eines "removable device"

    • Oscar
    • 1. Juli 2009 um 04:07

    Stimmt! Hatte kurz vorm posten noch was geändert. Sorry!
    Hab das Script jetzt angepasst. So funktioniert es.

  • Comboeinträge mit $WM_COMMAND

    • Oscar
    • 30. Juni 2009 um 23:05

    Wenn die Funktion aufgerufen wird, wird in der Übergabe-Variable $wParam im LoWord die ID des angeklickten GUI-Control-Elements übergeben. Da im HiWord der Notification-Code übergeben wird, muss man diesen ausmaskieren. Das geschieht mit BitAND($wParam, 0x0000FFFF). So bleibt nur der Wert des LoWords über und den kann man dann mit der ID des GUI-Elements (hier der Combobox) vergleichen.

  • µit - Juli

    • Oscar
    • 30. Juni 2009 um 22:45

    Das verrate ich hier nicht. :P
    Nachher geben wir alle das gleiche Script ab. ;)

    Edit: Mein Script besteht Deinen Test übrigens fehlerfrei.

    Edit2: Sollte man nicht noch einen Timer starten?

    [autoit]


    $iTimer = TimerInit()
    _Check(1, _StringInStrCount($sText, "und", False, False, "", False), 8)
    ; [...]
    _Check(17, _StringInStrCount($sText, "", False, True, " ", False), 104)
    ConsoleWrite(TimerDiff($iTimer) / 1000 & @CRLF)

    [/autoit]
  • µit - Juli

    • Oscar
    • 30. Juni 2009 um 22:37

    Das kann man auch so:

    [autoit]


    $sText = "Und Bund rund Undelete und Fundbüro; Und. und! und? und'" & ' und" ' & "Und" & @LF & "Rund" & @CR & "Rund" & @CRLF & "Rund;" & @CRLF & "Aber Aberglaube labern makaber aber"
    $tmp = StringRegExpReplace($sText, '\S', '')
    MsgBox(0,0,@extended)

    [/autoit]
  • Virtuelle Ini-Datei?

    • Oscar
    • 30. Juni 2009 um 22:23

    Lies die Inidatei einfach in ein Array, sortiere das Array und schreibe die Datei neu. Eine Inidatei ist doch auch bloß eine Txt-Datei.
    Wobei man sich über den Sinn einer sortierten Inidatei streiten kann... ;)

  • Klassifikation eines "removable device"

    • Oscar
    • 30. Juni 2009 um 22:17

    Ich hatte mal eine Funktion geschrieben, wo man nach Eingabe des Laufwerksbuchstabens einige Informationen (als Array) bekommt:

    Spoiler anzeigen
    [autoit]


    ; Anfang Beispiel
    #include<Array.au3> ; wird nur für _ArrayDisplay benötigt
    $sDrive = 'c:'
    $Ret = _GetDriveInfo($sDrive)
    If IsArray($Ret) Then
    _ArrayDisplay($Ret, 'Informationen über Laufwerk "' & $sDrive & '"')
    Else
    MsgBox(0, 'Fehler', $Ret)
    EndIf
    ; Ende Beispiel

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

    ;===============================================================================
    ; Function Name: _GetDriveInfo($sDrive)
    ; Description:: Erweiterte Informationen zu einer Festplatte/USB-Stick
    ; Parameter(s): $sDrive = Laufwerksbuchstabe
    ; Requirement(s): ---
    ; Return Value(s): 2D-Array mit Bezeichnung und Wert (siehe Beispiel)
    ; Author(s): Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _GetDriveInfo($sDrive)
    $sDrive = StringRegExpReplace($sDrive, '(?i)(.*)([a-z]{1}:)(.*)', '$2')
    Local $sDriveType = DriveGetType($sDrive)
    If $sDriveType <> 'Fixed' And $sDriveType <> 'Removable' Then SetError(1, 0, 1)
    If Not FileExists($sDrive) Then Return SetError(1, 0, 1)
    Local $wbemFlagReturnImmediately = 0x10
    Local $wbemFlagForwardOnly = 0x20
    Local $colItems = ''
    Local $aPartition, $aPhysicalDrive, $aOut[14][2]
    $objWMIService = ObjGet('winmgmts:\\localhost\root\CIMV2')
    If Not IsObj($objWMIService) Then Return SetError(2, 0, 2)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_LogicalDiskToPartition', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) then
    For $objItem In $colItems
    If StringInStr($objItem.Dependent, '"' & $sDrive & '"') Then
    $aPartition = StringRegExp($objItem.Antecedent, 'DeviceID="(.*)"', 3)
    EndIf
    Next
    Endif
    If Not IsArray($aPartition) Then Return SetError(3, 0, 3)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DiskDriveToDiskPartition', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) then
    For $objItem In $colItems
    If StringInStr($objItem.Dependent, '"' & $aPartition[0] & '"') Then
    $aPhysicalDrive = StringRegExp($objItem.Antecedent, 'DeviceID="(.*)"', 3)
    EndIf
    Next
    Endif
    If Not IsArray($aPhysicalDrive) Then Return SetError(4, 0, 4)
    $aPhysicalDrive[0] = StringReplace($aPhysicalDrive[0], '\\', '\')
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) then
    For $objItem In $colItems
    If StringInStr($objItem.DeviceID, $aPhysicalDrive[0]) Then
    $aOut[0][0] = 'Volume-Label'
    $aOut[0][1] = DriveGetLabel($sDrive)
    $aOut[1][0] = 'Serial-Nr. (Volume)'
    $aOut[1][1] = DriveGetSerial($sDrive)
    $aOut[2][0] = 'Model'
    $aOut[2][1] = $objItem.Model
    $aOut[3][0] = 'Serial-Nr. (Drive)'
    $aOut[3][1] = StringMid($objItem.PNPDeviceID, StringInStr($objItem.PNPDeviceID, '\', 0, -1) + 1)
    $aOut[3][1] = StringReplace($aOut[3][1], '&0', '')
    $aOut[4][0] = 'Interface'
    $aOut[4][1] = $objItem.InterfaceType
    $aOut[5][0] = 'Size (Bytes)'
    $aOut[5][1] = $objItem.Size
    $aOut[6][0] = 'Media Type'
    $aOut[6][1] = StringRegExpReplace($objItem.MediaType, '[^[:print:]]', ' ')
    $aOut[7][0] = 'Total Cylinders'
    $aOut[7][1] = $objItem.TotalCylinders
    $aOut[8][0] = 'Total Heads'
    $aOut[8][1] = $objItem.TotalHeads
    $aOut[9][0] = 'Total Tracks'
    $aOut[9][1] = $objItem.TotalTracks
    $aOut[10][0] = 'Total Sectors'
    $aOut[10][1] = $objItem.TotalSectors
    $aOut[11][0] = 'Tracks Per Cylinder'
    $aOut[11][1] = $objItem.TracksPerCylinder
    $aOut[12][0] = 'Sectors Per Track'
    $aOut[12][1] = $objItem.SectorsPerTrack
    $aOut[13][0] = 'Bytes Per Sector'
    $aOut[13][1] = $objItem.BytesPerSector
    EndIf
    Next
    Endif
    $objWMIService = ''
    Return $aOut
    EndFunc

    [/autoit]
  • µit - Juli

    • Oscar
    • 30. Juni 2009 um 22:02

    Ein Leerstring als Suchwort ist an sich schon nicht praxisorientiert, IMHO. Mir fällt jedenfalls kein Beispiel ein, wo man sowas gebrauchen könnte.
    Ich würde sogar so weit gehen zu sagen, dass dann eine Fehlermeldung zurückgegeben werden sollte.
    Und wie Du ja bereits geschrieben hast, gibt es für die Stringlänge bereits einen Befehl.

  • RegExp??

    • Oscar
    • 30. Juni 2009 um 17:43

    Sieht gut aus! Sollte passen!
    Meinen StringRexExpReplace-Pattern habe ich mit den Beispielen von oben getestet und damit passt das.
    Wenn da doch noch andere Einträge auftauchen, dann musst Du (subzero007) mir so eine Datei mal per PN schicken, damit ich das Pattern anpassen kann.

  • RegExp??

    • Oscar
    • 30. Juni 2009 um 15:13

    Die erste Zeile löschen/überspringen wirst Du wohl allein hinkriegen, oder?
    Und dann einfach jede Zeile so bearbeiten:

    [autoit]


    $string = 'CN=Server001,OU=Servers,OU=Test3,OU=ML,DC=xx,DC=Test,DC=com Beschreibung 1'
    $string = StringRegExpReplace($string, 'CN=(.+?),OU=.+?,OU=.+?,OU=(.+?),.+DC=com (.+)', '$1, $2, $3')
    MsgBox(0,0,$string)

    [/autoit]
  • Comboeinträge mit $WM_COMMAND

    • Oscar
    • 30. Juni 2009 um 04:50

    Und damit man in den anderen Comboboxen auch etwas auswählen kann, sollte man eine Abfrage einfügen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>

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

    GUICreate("Test", 300, 300)

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

    $combo = GUICtrlCreateCombo("Test", 10, 10, 200, 25, $CBS_DROPDOWNLIST)
    GUICtrlSetData(-1, "Test 2|Test 3")
    $combo_2 = GUICtrlCreateCombo("", 10, 50, 200, 25, $CBS_DROPDOWNLIST)
    $combo_3 = GUICtrlCreateCombo("", 10, 90, 200, 25, $CBS_DROPDOWNLIST)

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

    GUIRegisterMsg($WM_COMMAND, "_WM_COMMAND")

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()

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

    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nID = BitAND($wParam, 0x0000FFFF)
    If $nID = $combo Then
    If GUICtrlRead($combo) = "Test" Then
    GUICtrlSetData($combo_2, "|Combo|Combo 2|Combo 3|Combo 4")
    GUICtrlSetData($combo_3, "|Benutzer|Benutzer 2|Benutzer 3|Benutzer 4")
    ElseIf GUICtrlRead($combo) = "Test 2" Then
    GUICtrlSetData($combo_2, "|Auto|Auto 2|Auto 3|Auto 4")
    GUICtrlSetData($combo_3, "|User|User 2|User 3|User 4")
    Else
    GUICtrlSetData($combo_2, "|PC|PC 2|PC 3|PC 4")
    GUICtrlSetData($combo_3, "|Notebook|Notebook 2|Notebook 3|Notebook 4")
    EndIf
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Klassifikation eines "removable device"

    • Oscar
    • 30. Juni 2009 um 04:12

    Wie kommst Du denn auf so eine Behauptung?
    Natürlich gibt es USB-Sticks mit mehr als 40 GB (Beispiel).

  • Email Creator - Eine Email für 10 Minuten

    • Oscar
    • 29. Juni 2009 um 16:23

    Es gibt doch jede Menge Anbieter für temporäre (Wegwerf-) EMail-Adressen.
    Einfach mal Google befragen: "temp email" und als erstes Ergebnis kommt: http://www.tempemail.net/

  • Kann mir das jemand von C# in autoit umschreiben?

    • Oscar
    • 29. Juni 2009 um 16:07

    Zitat aus unseren Forenregeln:

    Zitat

    Folgende Inhalte sind nicht erwünscht oder gar komplett verboten. [...]
    - Automatisierung von Webseiten oder Tools, die das in ihren AGBs verbieten

    Wir drehen den Spiess jetzt mal um: Zeig mir die Stelle in den AGBs von SO, in dem solch eine Automatisierung erlaubt ist.

  • Hilfe

    • Oscar
    • 29. Juni 2009 um 15:59

    Ich bin kurz vorm aufgeben... ;(
    Also...letzter Versuch: Bitte gehe meine obige Fragenliste Punkt für Punkt durch und versuche sie, so gut es geht, zu beantworten.

  • Hilfe

    • Oscar
    • 29. Juni 2009 um 15:38

    Meine Glaskugel ist gerade beim Polierer (war schon ganz schön abgenutzt). ;)

    Beschreibe Dein Problem genauer:
    - Was steht in der Datei (am besten Datei posten)?
    - Was kann dort noch alles drinstehen?
    - Befinden sich die Werte immer in der gleichen Zeile? Immer hinter/vor einem Schlüsselwort?
    - Was sind das für Vorgaben, die Du machst?
    - Mit wie vielen Vorgaben soll der Wert verglichen werden?
    - Wie und wo sind diese Vorgaben gespeichert?
    - Was soll nach dem Vergleich geschehen?
    - Wo ist Dein bisheriges Script?

    Immer dran denken: Wir können keine Gedanken lesen!

  • Hilfe

    • Oscar
    • 29. Juni 2009 um 15:14

    Ich versuche mal aus Deinem Geschreibsel etwas herauszulesen... :P
    Wenn die Datei nicht geöffnet wird, dann liegt sie vielleicht nicht im selben Verzeichnis wie das Script?!
    Falls dem so ist, solltest Du bei FileOpen den Pfad zu der Datei mit angeben.

    Außerdem: In Deinem Script gibt es gar kein FileReadLine().

  • Hilfe

    • Oscar
    • 29. Juni 2009 um 14:55

    Und was verstehst Du an FileReadLine nicht? ;)

  • Hilfe bei Tray-Menü

    • Oscar
    • 29. Juni 2009 um 14:45

    Ich hätte Dir ja jetzt den OnEvent-Mode empfohlen, aber mit dem Sleep in Deiner Schleife kann das nichts werden.
    Während des Sleep-Befehls gibt Dein Script die Rechenzeit komplett an Windows ab.

    Du musst also das TrayMenü im OnEvent-Modus benutzen und den Sleep-Befehl durch eine Timer-Schleife ersetzen.

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™