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

  • Farm Helper

    • Oscar
    • 31. März 2010 um 18:03

    Da kannst Du Dich drauf verlassen, dass wir unsere Forenregeln ganz genau nehmen! :cursing:
    [Thread closed]

  • Happy Birthday, FireFlyer

    • Oscar
    • 30. März 2010 um 19:31

    Alles Gute zum Geburtstag!
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • TTT - Techmix' Tausch Thread

    • Oscar
    • 30. März 2010 um 00:02

    Die Idee ist eigentlich ganz gut. Kann ich hier mal aufräumen... :)

    kostenlos (gegen Porto):
    - SCSI DVD-ROM-Laufwerk (Pioneer DVD-U05S, Intern, Slot-In)
    - SCSI Hostadapter (Tekram DC-315U, PCI-Karte)
    - SCSI Hostadapter (Advance 2911U, PCI-Karte)
    - Leadtek TV-Karte (WinFast TV2000 XP, PCI-Karte) inkl. allen Kabeln, Fernbedienung, Software <- es handelt sich bei der Karte um eine alte analoge TV-Karte (nicht DVB fähig)
    - Magneto-Optical Drive (Fujitsu Gigamo MCD3130AP)

    Für 10 € (plus Porto) gibt's:
    - Casio PocketViewer PV-S660 (6 MB Speicher) inkl. RS232 Datenkabel

    Für 5 € (plus Porto) gibt's:
    - Creative Soundblaster Audigy 2 ZS (PCI-Karte)
    - Zwei 256 MB DDR-RAM-Module (SO-DIMM für Notebook) PC2700, 333 MHz, CL2.5

    Falls jemand etwas davon gebrauchen kann, einfach eine PN an mich. Bei mehreren Teilen fällt natürlich nur einmal Porto an.

  • Excel Zeileninhaltzähler

    • Oscar
    • 29. März 2010 um 09:40

    Wenn die Excel-Datei nur eine Spalte hat, ja. ;)

    Ok, habe ich überlesen, sorry.

  • Excel Zeileninhaltzähler

    • Oscar
    • 29. März 2010 um 09:05

    Warum so kompliziert?
    Geht doch auch so:

    [autoit]


    #include <Excel.au3>
    $oExcel = _ExcelBookOpen(@ScriptDir & '\test.xls')
    $aArray = _ExcelReadSheetToArray($oExcel)
    _ExcelBookClose($oExcel)
    MsgBox(0, 'Anzahl der Zeilen', $aArray[0][0])
    MsgBox(0, 'Anzahl der Spalten', $aArray[0][1])

    [/autoit]
  • Alle Pixel auslesen und auf eine bestimmte Farbe reagieren

    • Oscar
    • 28. März 2010 um 11:21

    SuFu = Suche hier im Forum (rechts oben)

    Aber schon mal rein prophylaktisch: Forenregeln lesen! :)

  • Stringregexp und Pattern

    • Oscar
    • 27. März 2010 um 12:38
    Zitat von billemg

    Gibt es keinen Befehl, der in der txt datei erkennt in welcher Reihe das Wort vorkommt, damit ich dann die Reihe in ein Var packen kann, um später mit StringSplit zu arbeiten. Oder gibt es eine Möglichkeit allen Strings von einem Wort bis zu nächsten zu erfassen. An meinem Beispiel also alles zwischen Bestellung und Geliefert, weil manche Kunden, haben mehr bestellt und somit gibt es mehr Reihen.

    Es gibt auch noch den Befehl "StringInStr". Damit kannst Du in einem String (der geladenen Textdatei) nach einem anderen String (z.B. "Bestellung") suchen lassen. Als Ergebnis erhälst Du die Position des Suchstrings.
    Dann suchst Du noch nach "Geliefert" und schon hast Du die beiden Positionen und kannst den dazwischenliegenden Text mit StringMid extrahieren.

  • Stringregexp und Pattern

    • Oscar
    • 27. März 2010 um 11:09

    Deine Beschreibung ist ziemlich dürftig. Gibt es bloß einen Kunden pro Datei?

    Wenn ja, dann vielleicht so:

    Spoiler anzeigen
    [autoit]


    $sDaten = FileRead(@ScriptDir & '\0815v2.txt')
    $sKunde = StringRegExpReplace($sDaten, '(?s).*Kunde\t*(.+?)\r.*', '$1')
    $sFirma = StringRegExpReplace($sDaten, '(?s).*Firma\t*(.+?)\r.*', '$1')
    $sStrasse = StringRegExpReplace($sDaten, '(?s).*Strasse\t*(.+?)\r.*', '$1')
    $sOrt = StringRegExpReplace($sDaten, '(?s).*Ort\t*(.+?)\r.*', '$1')
    MsgBox(0, 'Kundendaten', $sKunde & @CR & $sFirma & @CR & $sStrasse & @CR & $sOrt)

    [/autoit]
  • Laufwerk Typ erkennen ( ZIP-LW, eSATA-Stick, USB-Stick)

    • Oscar
    • 26. März 2010 um 08:09

    Ich hatte mal eine Funktion dazu geschrieben:

    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]
  • "und wurde für dich interessiert"

    • Oscar
    • 24. März 2010 um 20:26

    Ja, habe ich auch bekommen und hatte es bereits an Pee gemeldet gehabt, der den User dann auch gleich entfernt hat.

  • Star Wars Intro NEU

    • Oscar
    • 24. März 2010 um 20:16

    Wow! Sieht klasse aus. :thumbup:
    Musste allerdings die Auflösung niedriger einstellen. Die 1920x1200 von meinem 24er sind dann doch etwas viel für das Skript. ;)

  • Apfelmaennchen in FASM-Assembler Update incl. FLUG!

    • Oscar
    • 24. März 2010 um 19:56

    Bei meinem Win7-Rechner bekomme ich immer einen Absturz, auch mit den Änderungen aus Post#29. Sowohl als 32Bit-Exe, als auch als Skript. :S

    Auf meinem WinXP-Rechner (32 Bit) hingegen funktioniert das Skript einwandfrei. Sieht übrigens toll aus. :thumbup:

    Edit: funkey: wie hast Du das getestet? Einfach ein "Return" an den Anfang der Funktion? Das funktioniert bei mir trotzdem nicht.

  • Apfelmaennchen in FASM-Assembler Update incl. FLUG!

    • Oscar
    • 24. März 2010 um 17:04

    Gibt bei mir einen Absturz von AutoIt:

    Zitat


    Assembler Bytecode: 0x559BDBE38B6C2408DD4510DD4518DD4500DD4508D9C1D9C18B7D288B452C8B5D30F7E3C1E00201F889C3B800000000B9000000008B55208B7538EB2DB8000000005253890731D2BBFF000000F7F38B453CC1E20201C28B420189065B5A83C70483C60439DF75D35DC3DDD8DDD8D9C3DEC2B8000000003B4D2C7C1EB9000000009BDD7540608B4534FFD061DD6540D9C2DEC1DD4500D9CADDD841D9C1D9C1D9C1D8C8D9C1D8C8DEE9D8C4D9CADEC9D8C0D8C2D9C0D8C8D9C2D8C8DEC1DB5D209B3955200F8778FFFFFF3B45240F876AFFFFFF40EBC9
    !>16:59:46 AutoIT3.exe ended.rc:-1073741819
    >Exit code: -1073741819 Time: 4.828

    Prozessor: AMD Phenom II X4 940 (4x3.0 GHz, nicht übertaktet)
    Betriebssystem: Win7 64 Bit (4 GByte DDR-2 RAM)

  • Problem mit Sleep() Timerdiff()

    • Oscar
    • 24. März 2010 um 16:53

    Das kann ich nicht bestätigen. Bei mir läuft das einwandfrei immer 5 sekunden (Abweichung im Millisekundenbereich).

    Code
    52:38
    5003.60636563408 milliseconds
    52:43
    52:43
    5009.0251777003 milliseconds
    52:48

    hab das Skript noch etwas angepasst, um wirklich nur die Sleepzeit zu messen:

    Spoiler anzeigen
    [autoit]


    _zeit()
    $timer=TimerInit()
    Sleep(5000)
    ConsoleWrite(TimerDiff($timer)&" milliseconds"&@CRLF)
    _zeit()

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

    $dll=DllOpen("kernel32.dll")
    _zeit()
    $timer=TimerInit()
    DllCall($dll,"none","Sleep","dword",5000)
    ConsoleWrite(TimerDiff($timer)&" milliseconds"&@CRLF)
    _zeit()

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

    Func _zeit()
    ConsoleWrite(@MIN & ":" & @SEC & @CRLF)
    EndFunc

    [/autoit]
  • Contextmenü: Radiobutton anderem Menü-Item zuweisen

    • Oscar
    • 24. März 2010 um 04:24

    Andy: Bei den UDFs am besten immer das Handle (nicht die Control-ID) benutzen, dann klappt das auch. :)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GuiMenu.au3>

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

    ;right click on gui to bring up context Menu.
    GUICreate("My GUI Context Menu", 300, 200)
    $button = GUICtrlCreateButton("Set Item4", 50, 50)

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

    $context = GUICtrlCreateContextMenu(-1)
    $item6 = GUICtrlCreateMenu("Items", $context)
    $item6_1 = GUICtrlCreateMenuItem("Item1", $item6, 0, 1)
    $item6_2 = GUICtrlCreateMenuItem("Item2", $item6, 1, 1)
    $item6_3 = GUICtrlCreateMenuItem("Item3", $item6, 2, 1)
    $item6_4 = GUICtrlCreateMenuItem("Item4", $item6, 3, 1)
    GUICtrlSetState($item6_1, $gui_checked) ;Item1 bekommt Markierung

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

    GUISetState()

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    If $msg = $button Then
    ;~ GUICtrlSetState($item6_4, $gui_checked);Item3 bekommt Markierung, aber die schon bestehende Markierung bleibt
    _GUICtrlMenu_CheckRadioItem(GUICtrlGetHandle($item6), 0, 3, 3) ; bei den UDFs am besten immer das Handle benutzen
    ;~ GUICtrlSetState($item6_4, $MFT_RADIOCHECK ) ;Item wird in fetter Schrift dargestellt
    ;GUICtrlSetState($item6_4, $MFS_CHECKED ) ;funktioniert nicht
    EndIf

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

    WEnd
    GUIDelete()

    [/autoit]
  • Verzweiflung mit ftp

    • Oscar
    • 21. März 2010 um 15:55

    Vor allem: existiert das Zielverzeichnis?
    _FTP_FilePut() erstellt das nämlich nicht.

  • Verzweiflung mit ftp

    • Oscar
    • 21. März 2010 um 15:23

    Ohne Skript können wir Dir da kaum helfen. :whistling:

  • "Master" und "Slave"-Fenster EDIT: und FensterRahmen entfernen...

    • Oscar
    • 21. März 2010 um 15:20

    XovoxKingdom: an sich schön erklärt, nur diese Zeile

    [autoit]

    Sleep(10); damit der Prozessor sich nicht überarbeitet

    [/autoit]


    ist in einer GUIGetMsg-Schleife überflüssig bzw. sogar kontraproduktiv (weil GUIGetMsg in dieser Zeit nicht abgefragt wird).
    Die Prozessorlast wird im MessageLoop-Modus automatisch geregelt:

    Zitat

    This function automatically idles the CPU when required so that it can be safely used in tight loops without hogging all the CPU.

    Beim OnEvent-Mode hingegen ist der Sleep-Befehl wichtig, weil dort in der Endlosschleife sonst der Prozessor ausgelastet würde.

  • Videos abspielen

    • Oscar
    • 21. März 2010 um 08:53

    Schau Dir mal die Funktionen (_GUICtrlAVI...) aus der "GuiAVI.au3" an.

  • TSAdress (Adressverwaltung)

    • Oscar
    • 21. März 2010 um 08:22

    Es gibt mal wieder eine neue Version (Post #1).
    Änderungen: siehe History!

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™