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

  • GDI+ Spielerei: Rolle aus Rechtecken

    • Oscar
    • 6. August 2012 um 04:42

    Ich denke auch, dass das eher nach Skripte gehört. [verschoben]

    P.S.: Gut gemacht. :thumbup:

  • Zeile in XML-Datei mittels AutoIT-Fenster ändern

    • Oscar
    • 3. August 2012 um 16:44

    Ich habe die Posts wiederhergestellt.
    SendXP: Bitte nicht Deine Posts löschen. Damit weiss man nicht mehr, worauf sich der Antwortende bezieht.

  • _StringRegExp Frage

    • Oscar
    • 1. August 2012 um 22:17

    Hier die RegExp-Variante:

    [autoit]


    #include <Array.au3>
    $sData = 'Unterschiedlicher Text1 den ich haben will Schlüsselwort1 Unterschiedlicher Text den ich nicht haben will' &@CRLF
    $sData &= 'Unterschiedlicher Text2 den ich haben will Schlüsselwort1 Unterschiedlicher Text den ich nicht haben will Schlüsselwort2 Unterschiedlicher Text den ich nicht haben will' & @CRLF
    $sData &= 'Unterschiedlicher Text3 den ich haben will Schlüsselwort2 Unterschiedlicher Text den ich nicht haben will' & @CRLF
    $sData &= 'Unterschiedlicher Text4 den ich haben will' & @CRLF
    $aData = StringRegExp($sData, '(?:\A|\v)(.+?)(?:Schlüsselwort1|Schlüsselwort2|\v)', 3)
    _ArrayDisplay($aData)

    [/autoit]
  • Contextmenü für dimesionierte Icons

    • Oscar
    • 31. Juli 2012 um 19:41

    Hier noch eine Variante im OnEventMode:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Global $iButtons = 10 ; Anzahl der Buttons
    Global $aIDButtons[$iButtons], $IDContext, $IDStart, $IDEnd, $iDiv

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

    $hGui = GUICreate("ContextMenu Example by Oscar", 400, 100)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_End")

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

    $IDStart = GUICtrlCreateDummy()
    For $i = 0 To $iButtons - 1
    $aIDButtons[$i] = GUICtrlCreateButton($i + 1, 5 + $i * 40, 40, 30, 30)
    GUICtrlSetOnEvent(-1, "_Button")
    $IDContext = GUICtrlCreateContextMenu($aIDButtons[$i])
    GUICtrlCreateMenuItem("Test-Item 1", $IDContext, 0)
    GUICtrlSetOnEvent(-1, "_Context1")
    GUICtrlCreateMenuItem("Test-Item 2", $IDContext, 1)
    GUICtrlSetOnEvent(-1, "_Context2")
    GUICtrlCreateMenuItem("Test-Item 3", $IDContext, 2)
    GUICtrlSetOnEvent(-1, "_Context3")
    Next
    $IDEnd = GUICtrlCreateDummy()

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

    $iDiv = ($IDEnd - $IDStart - 1) / $iButtons
    GUISetState()

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

    While Sleep(1000)
    WEnd

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

    Func _End()
    Exit
    EndFunc

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

    Func _Button()
    Local $iButton = (@GUI_CtrlId - $aIDButtons[0]) / $iDiv + 1
    MsgBox(0, "Button", "ButtonClick" & @CR & "Button = " & $iButton)
    EndFunc

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

    Func _Context1()
    Local $iButton = (@GUI_CtrlId - $aIDButtons[0] - 2) / $iDiv + 1
    MsgBox(0, "Context1", "ContextClick 1" & @CR & "Button = " & $iButton)
    EndFunc

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

    Func _Context2()
    Local $iButton = (@GUI_CtrlId - $aIDButtons[0] - 3) / $iDiv + 1
    MsgBox(0, "Context2", "ContextClick 2" & @CR & "Button = " & $iButton)
    EndFunc

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

    Func _Context3()
    Local $iButton = (@GUI_CtrlId - $aIDButtons[0] - 4) / $iDiv + 1
    MsgBox(0, "Context3", "ContextClick 3" & @CR & "Button = " & $iButton)
    EndFunc

    [/autoit]
  • Daten aus CSV Datei in ein Array Übernehmen

    • Oscar
    • 31. Juli 2012 um 10:49

    AutoBert, da hast Du jetzt aber den Datensatz absichtlich verkürzt.
    Eine csv-Datei enthält bei leeren Felder aber den jeweiligen Trenner (hier Kommata) und dann würde es funktionieren.

  • Daten aus CSV Datei in ein Array Übernehmen

    • Oscar
    • 31. Juli 2012 um 09:39

    Ausgehend von dem Datensatz in Post#1 klappt das mit RegExp so:

    [autoit]


    #include <Array.au3>
    $sData = FileRead(@ScriptDir & '\data.csv') & ',' ; Datei einlesen und ein Komma anhängen für den letzten Datensatz
    $sData = StringReplace($sData, @CRLF, ',') ; alle Zeilenenden durch ein Komma ersetzen
    $aData = StringRegExp($sData, '(".+?"|.*?),', 3)
    _ArrayDisplay($aData)

    [/autoit]


    Dann erhält man ein Array mit 40 Elementen (0-39). Jeweils 10 Elemente ergeben dann eine Zeile.

  • UDP Datenstau vermeiden

    • Oscar
    • 16. Juli 2012 um 16:16

    Bau mal das Script um auf den OnEventMode. Beim MessageLoopModus wird das Script langsamer, wenn man die Maus nicht bewegt bzw. nicht auf der Tastatur tippt.
    Eventuell liegt es schon daran. 40 Hz halte ich nicht für so viel. Das sollte mit einem halbwegs aktuellem PC zu schaffen sein. Wieviel Zeit braucht denn Deine Auswertungs-/Anzeigefunktion? Hast Du mal gemessen?

  • Suche Anregung für Bonus System

    • Oscar
    • 12. Juli 2012 um 10:46

    Ich hatte mal eine Funktion zum generieren von Seriennummern geschrieben. Dabei werden keine doppelten Nummern generiert.
    Und es wird außerdem eine Datei mit den MD5-Checksummen erzeugt, die man dann auf dem Zielcomputer zum vergleichen verwenden kann.

    Hier die Funktion:

    Spoiler anzeigen
    [autoit]


    #include <Crypt.au3>
    _GenSerials(1000, @ScriptDir & '\_Nummern.txt', @ScriptDir & '\_MD5Checksummen.txt')
    ;~ If @error Then MsgBox(0, 'Fehler aufgetreten!', 'Fehlernummer: ' & @error)

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

    #cs
    ======================================================================================================================
    Function Name: _GenSerials($iCount, $sSerialFile, $sMD5File)
    Description: Seriennummern nach folgendem Muster "AAAA-BBBB-CCCC-DDDD-EEEE" generieren (keine Doppelten)
    Parameter(s): $iCount = Anzahl der Seriennummern
    $sSerialFile = Datei, in der die Seriennummern gespeichert werden
    $sMD5File = Datei, in der die MD5-Hashwerte gespeichert werden
    Author(s): Oscar (http://www.autoit.de)
    ======================================================================================================================
    #ce
    Func _GenSerials($iCount, $sSerialFile, $sMD5File)
    If $iCount < 1 Or Not IsNumber($iCount) Then Return SetError(1, 0, 0)
    Local $hFile1 = FileOpen($sSerialFile, 2)
    Local $hFile2 = FileOpen($sMD5File, 2)
    If $hFile1 <> -1 And $hFile2 <> -1 Then
    Local $sSerialOut = '', $sMD5Out = ''
    For $i = 1 To $iCount
    ToolTip('Generiere Seriennummer: ' & $i, @DesktopWidth/2-100, 0)
    Do
    Local $sTmp = ''
    For $j = 1 To 20
    $sTmp &= StringMid('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', Random(1, 36, 1), 1)
    If $j/4 = Int($j/4) And $j < 20 Then $sTmp &= '-'
    Next
    Until Not StringInStr($sSerialOut, $sTmp)
    $sSerialOut &= $sTmp & @CRLF
    $sMD5Out &= _Crypt_HashData($sTmp, $CALG_MD5) & @CRLF
    Next
    FileWrite($hFile1, StringTrimRight($sSerialOut, 2))
    FileClose($hFile1)
    FileWrite($hFile2, StringTrimRight($sMD5Out, 2))
    FileClose($hFile2)
    Return 1
    Else
    Return SetError(2, 0, 0)
    EndIf
    EndFunc

    [/autoit]
  • verneinte IF Schleife mit OR in der Bedingung

    • Oscar
    • 10. Juli 2012 um 18:29

    Hier eine Variante ohne RegExp:

    [autoit]


    $ID = "W442525"
    If Not StringInStr("WHSZMKFCE", StringLeft($ID, 1)) Then
    MsgBox(0, "D.3-ID Agent", "Es handelt sich um keine gültige Identnummer.")
    $Fehler = 1
    EndIf

    [/autoit]
  • OwnContext UDF (vorher MenuEx)

    • Oscar
    • 10. Juli 2012 um 16:17

    Die UDF ist klasse! :thumbup:
    Funktioniert auch im OnEventMode (gerade getestet). Super gemacht! Kann ich bestimmt mal gebrauchen.

  • upload von einer Datei über FTP

    • Oscar
    • 4. Juli 2012 um 09:33
    Zitat

    Connecting to port 49450


    Das solltest Du in Deinem Script auch mal eintragen, wenn auf dem Server nicht der Standard-FTP-Port (21) benutzt wird.

  • Problem mit FileGetVersion und javaw.exe

    • Oscar
    • 29. Juni 2012 um 16:42

    Was sollen die zusätzlichen Anführungszeichen bei FileGetVersion?
    Lass die weg und es funktioniert:

    Spoiler anzeigen
    [autoit]


    Func _JREGetVersion()
    Local $ver1 = FileGetVersion("javaw.exe")
    Local $ver2 = FileGetVersion(@ProgramFilesDir & "\java\jre6\bin\javaw.exe")
    MsgBox(0, "Pfad zu $ver2:",'"' & @ProgramFilesDir & "\java\jre6\bin\javaw.exe" & '"')
    MsgBox(0," Version 1", $ver1)
    MsgBox(0," Version 2", $ver2)
    EndFunc ;==>_JREGetVersion

    [/autoit]
  • Schnuffel hat Geburtstag :)

    • Oscar
    • 28. Juni 2012 um 18:20

    Auch von mir alles Gute zum Geburtstag!
    Eine schöne Feier und viele Geschenke. ;)

  • Eine Kugel mit sehr vielen Punkten...

    • Oscar
    • 28. Juni 2012 um 18:17

    [verschoben nach Hilfe & Unterstützung]


    Zitat von Grimbizo

    Wo kann man eig AutoIT lehrling werden und was macht man da? Ich wusste gar nicht, dass das geht.


    :rofl:

  • Sonderzeichen in Inputboxen nicht erlauben

    • Oscar
    • 28. Juni 2012 um 18:07

    Mit Hilfe der Timer-UDF kann man auch den normalen FileSaveDialog benutzen, um Fehleingaben rauszufiltern:

    Spoiler anzeigen
    [autoit]


    #include <Timers.au3>
    Global $hGUI = GUICreate("Test", 600, 400)

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

    Global $sTitle = "Bitte Datei zum speichern wählen..."

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

    _Timer_SetTimer($hGUI, 100, "_CheckInput")
    Global $sFilename = FileSaveDialog($sTitle, @MyDocumentsDir, "Scripts (*.aut;*.au3)", 2)
    _Timer_KillAllTimers($hGUI)
    Exit

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

    Func _CheckInput($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime
    Local $sPattern = "[^a-zA-Z 0-9]" ; <- das sind die erlaubten Zeichen, alle anderen werden entfernt
    Local $sInput = ControlGetText($sTitle, "", "[CLASS:Edit; INSTANCE:1]")
    If StringRegExp($sInput, $sPattern) Then
    _PlayDefaultSystemSound("SystemHand")
    $sInput = StringRegExpReplace($sInput, $sPattern, "")
    ControlSetText($sTitle, "", "[CLASS:Edit; INSTANCE:1]", $sInput, 1)
    ControlSend($sTitle, "", "[CLASS:Edit; INSTANCE:1]", "{END}")
    EndIf
    EndFunc

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _PlayDefaultSystemSound()
    ; Description ...: Spielt einen Systemklang, welcher in der Registry definiert ist.
    ; Syntax.........: _PlayDefaultSystemSound($sSoundName, $iWait = 0)
    ; Parameters ....: $sSoundName - Name des SystemSound's
    ; | Default - Standardton Warnsignal / Default Beep
    ; | CriticalBatteryAlarm - Alarm bei kritischem Batteriestand / when battery is critical
    ; | DeviceConnect - Geräteanschluß / when a device is connect
    ; | DeviceDisconnect - Gerätetrennung / when a device is disconnect
    ; | DeviceFail - Geräteanschluß fehlgeschlagen / when a deviceconnect is fail
    ; | LowBatteryAlarm - Alarm bei niedrigem Batteriestand / when battery is low
    ; | MailBeep - Posteingangsbenachrichtigung / when email is received
    ; | SystemAsterisk - Stern / Asterisk
    ; | SystemExclamation - Hinweis / when windows shows a warning
    ; | SystemExit - Windows beenden / when Windows shuts down
    ; | SystemHand - Kritischer Abbruch / when a critical stop occurs
    ; | SystemNotification - Sprechblase / when a critical stop occurs
    ; | SystemStart - Windows starten / when Windows starts up
    ; | WindowsLogoff - beim Windows abmelden / when logging off Windows
    ; | WindowsLogon - beim Windows anmelden / when logging on Windows
    ; | EmptyRecycleBin - Löschen des Papierkorbs / when recycle bin is emptied
    ; | Navigating - Browser Klick / navigating in browser

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

    ; $iWait - Warten bis SoundPlay beendet? (0 = nein / 1 = ja)
    ; Return values .: -----
    ; Author ........: funkey (AutoIt.de)
    ; ===============================================================================================================================
    Func _PlayDefaultSystemSound($sSoundName, $iWait = 0) ; funkey
    Local $sKey = 'HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default'
    If $sSoundName = 'EmptyRecycleBin' Or $sSoundName = 'Navigating' Then $sKey = 'HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Explorer'
    Local $sFile = StringReplace(RegRead($sKey &'\' & $sSoundName & '\.Default', ''), '%SystemRoot%', @WindowsDir)
    If $sFile = "" Then
    SoundPlay(StringReplace(RegRead($sKey &'\.Default\.Default', ''), '%SystemRoot%', @WindowsDir), $iWait)
    Else
    SoundPlay($sFile, $iWait)
    EndIf
    EndFunc ;==>_PlaySystemSound

    [/autoit]

    P.S.: Hier mal wieder mit der Verwendung Deiner "_PlayDefaultSystemSound"-Funktion, funkey. Danke dafür! Die habe ich schon öfter benutzt. :thumbup:

  • !Hilfe! Problem mit einem Progress, der mit einem Button gestartet werden soll!

    • Oscar
    • 27. Juni 2012 um 15:15

    [verschoben nach H&U]

    So wird Dir niemand helfen können. Poste bitte Dein komplettes Script!

  • *.txt Datei auslesen & "auswerten"

    • Oscar
    • 21. Juni 2012 um 19:19

    Oder so:

    [autoit]


    $string = '<marker id="7" type="cylinder" color="#FF000099" size="4" interior="0" dimension="0" posX="-2861.3000488281" posY="-905.09997558594" posZ="8.1999998092651" rotX="0" rotY="0" rotZ="0"></marker>' & @CRLF & '<marker id="7" type="cylinder" color="#FF000099" size="4" interior="0" dimension="0" posX="-2861.3000488281" posY="-905.09997558594" posZ="8.1999998092651" rotX="0" rotY="0" rotZ="0"></marker>' & @CRLF & '<marker id="7" type="cylinder" color="#FF000099" size="4" interior="0" dimension="0" posX="-2861.3000488281" posY="-905.09997558594" posZ="8.1999998092651" rotX="0" rotY="0" rotZ="0"></marker>' & @CRLF
    $out = StringRegExpReplace($string, '<marker.+posX="(.+?)" posY="(.+?)" posZ="(.+?)".+</marker>', '$1, $2, $3')
    ConsoleWrite($out & @CR)

    [/autoit]
  • Alina hat Geburtstag

    • Oscar
    • 19. Juni 2012 um 16:01

    Ich schliesse mich dem mal an: Alles Gute zum Geburtstag, Alina!
    Feier schön und lass Dich beschenken! Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • daten auslesen und an Google Maps übergeben

    • Oscar
    • 18. Juni 2012 um 07:37

    Laut Nutzungsbedingungen der Seite ist das nicht erlaubt:

    Zitat

    5. Die Inhalte der Web-Site sind urheberrechtlich geschützt. Nur die zur Weiterverwendung ausdrücklich freigegebenen Inhalte dürfen von der Web-Site durch die Nutzer, soweit die Freigabe auch ihnen gegenüber erfolgt ist, heruntergeladen und vervielfältigt werden. Hierbei dürfen die Inhalte nicht verändert oder verfälscht werden. Die Erstellung einer angemessenen Anzahl von Kopien auf elektronischen Datenträgern oder im Printverfahren ist zulässig, soweit diese Kopien ausschließlich zum persönlichen Gebrauch erstellt und genutzt werden. Die ABDA - Bundesvereinigung Deutscher Apothekerverbände ist als Quelle ausdrücklich zu nennen. Jede weitergehende Nutzung der Inhalte der Web-Site ist urheberrechtswidrig.

    Somit: [closed]

  • PrintReminder

    • Oscar
    • 17. Juni 2012 um 21:52
    Zitat von Cheater Dieter

    Wirklich ein nützliches Script. Das Eintragen in den Autostart wird unter Windows 7 (und Vista ?) mit aktivierter UAC jedoch nicht gehen; das Setzen erstellen einer Verknüpfung im Autostartordner erfordert dort nämlich Adminrechte.


    Ich besitze Windows 7 (mit aktiviertem UAC) und bei mir funktioniert das problemlos (ohne Adminrechte).
    Ist das von Dir also nur eine Vermutung oder klappt das bei Dir nicht?

    Zitat von Cheater Dieter

    Und dann hab' ich noch eine Frage: Funktioniert das Script auch, wenn ich etwas über das Netzwerk drucke? Also PC 1 steht beim Drucker und ist mit dem Drucker per USB Kabel verbunden. Der an PC 1 angeschlossene Drucker ist im Netzwerk freigegeben. PC 2 steht irgendwo anderst in der Wohnung. Um von PC 2 aus zu drucken, muss PC 1 und der Drucker angeschaltet sein. Dann kann man mit PC 2 auf den freigegebenen Drucker zugreifen und eben drucken. Registriert das auf PC 1 laufende Script dann den Druckauftrag von PC 2?


    Ich habe das gerade mal bei mir getestet.
    Ja, das funktioniert! Zumindest unter Windows 7.

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™