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

Beiträge von BugFix

  • Zeitansage (Standard Std:Min und Umgangssprachlich)

    • BugFix
    • 30. März 2011 um 11:36

    Hi,
    auch von mir eine kleine Spielerei mit TextToSpeech - eine Zeitansage.
    Voraussetzung ist also ein installiertes TextToSpeech mit deutschem Sprachpaket.
    Die Zeit wird standardmäßig angegeben in der Form: "12 Uhr und 15 Minuten"
    In der Slang-Variante heißt dieselbe Zeit dann: "Viertel 1" :D
    Ich habe in der Slang-Variante die in unserer Region üblichen Zeitregeln verwendet:
    1 - 14 min = Minuten nach Stunde
    15 = Viertel der Folgestunde
    16 - 29 = Minuten bis Halb der Folgestunde (z.B. "10 Minuten vor Halb 1")
    30 = Halb der Folgestunde
    31 - 44 = Minuten nach Halb der Folgestunde (z.B. "5 Minuten nach Halb 3")
    45 = DreiViertel der Folgestunde
    46 - 59 = Minuten bis zur Folgestunde
    Das könnt ihr ja bei Bedarf eurem Regionalen Gusto anpassen. :D

    _SpeakingClock
    [autoit]

    _SpeakingClock()
    ;~ _SpeakingClock(1)

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

    ;===============================================================================
    ; Function Name...: _SpeakingClock
    ; Description.....: Ansage der aktuellen Zeit in Stunde:Minute (Standard) od. Slang
    ; Parameter(s)....: $fSlang 0-Aus (Standard), Umgangssprachliche Zeitansage, regional jedoch sehr verschieden
    ; Requirements....: TextToSpeech muß installiert sein mit einer deutschen Stimme
    ; Return Value(s).: Erfolg 1 (und Zeitansage)
    ; Fehler 0 und @error
    ; Author(s).......: BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _SpeakingClock($fSlang=0)
    Local $hour = @HOUR, $min = @MIN, $time, $speak1 = '', $speak2 = ' Minuten'
    Local $oTalk = ObjCreate('SAPI.SpVoice')
    If @error Then Return SetError(@error,0,0)
    If Not $fSlang Then
    If StringLeft($hour,1) = '0' Then $hour = StringTrimLeft($hour,1)
    Select
    Case $min = '00'
    $speak2 = ''
    Case StringLeft($min,1) = '0'
    $min = StringTrimLeft($min,1)
    If $min = 1 Then
    $speak1 = 'und Eine'
    $speak2 = ' Minute'
    Else
    $speak1 = 'und ' & $min
    EndIf
    Case Else
    $speak1 = 'und ' & $min
    EndSelect
    $time = $hour & ' Uhr ' & $speak1 & $speak2
    Else
    ; Stundenwert verweist auf nächste Stunde, da fast alle Zeitansagen dieses verwenden
    $hour += 1
    If $hour > 12 Then $hour -= 12
    Switch $min
    Case 46 To 59
    $min = 60 - $min
    $speak1 = $min
    $speak2 = ' vor ' & $hour
    Case 45
    $speak1 = -1
    $speak2 = 'Drei Viertel ' & $hour
    Case 31 To 44
    $min = $min -30
    $speak1 = $min
    $speak2 = ' nach Halb ' & $hour
    Case 30
    $speak1 = -1
    $speak2 = 'Halb ' & $hour
    Case 16 To 29
    $min = 30 - $min
    $speak1 = $min
    $speak2 = ' vor Halb ' & $hour
    Case 15
    $speak1 = -1
    $speak2 = 'Viertel ' & $hour
    Case 1 To 14
    $hour -= 1 ; hier wieder Bezug zur tatsächlichen Stunde
    If $hour = -1 then $hour = 12
    $speak1 = $min
    $speak2 = ' nach ' & $hour
    Case 0
    $hour -= 1 ; hier wieder Bezug zur tatsächlichen Stunde
    If $hour = -1 Then $hour = 12
    $speak1 = -1
    $speak2 = $hour & ' Uhr'
    EndSwitch
    Switch $speak1
    Case -1
    $speak1 = ''
    Case 1
    $speak1 = 'Eine Minute'
    Case Else
    $speak1 &= ' Minuten'
    EndSwitch
    $time = $speak1 & $speak2
    EndIf
    $oTalk.Speak('Die Zeit: ' & $time)
    Return 1
    EndFunc ;==>_SpeakingClock

    [/autoit]

    Dateien

    _SpeakingClock.au3 2,53 kB – 599 Downloads
  • PDF erstellen + zusammenfügen

    • BugFix
    • 30. März 2011 um 09:27

    Ich kann pPanther nur zustimmen: Verwende PDFCreator, damit hast du auch fast keinen Aufwand und kannst sicher sein, dass das gewünschte Ergebnis bei rauskommt. ;)
    Es gibt eine UDF, die auf die Kommandozeilenbefehle des PDFCreators zugreift, bemühe mal die Hilfe. Aber wenn es nichts ständig wiederkehrendes ist, was du vorhast, bist du schneller, wenn du die Dokumente per Hand alle in die Warteschlange druckst und dann zusammenfügst.

    Zitat

    bzw mind. das umbenennen

    Was willst du denn Umbenennen?? - Wenn du die Dokumente zusammenführst bleibt doch nur eine Datei übrig!

  • Medion Akoya Laptop - "PC Beep" abstellen - Wie?

    • BugFix
    • 29. März 2011 um 11:43

    Für Slider kannst du unter Windows i.A. folgendes verwenden:

    [autoit]

    #Include <SendMessage.au3>
    Const $WM_USER = 0x400
    Const $TBM_GETPOS = ($WM_USER)
    Const $TBM_SETPOS = ($WM_USER + 5)

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

    ; hol dir das Handle
    $hWnd = ControlGetHandle('..')

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

    ; zieh den Regler auf 0 und lies den Wert dafür aus
    $val = _SendMessage($hWnd, $TBM_GETPOS, 0, 0)

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

    ; mit folgendem Aufruf kannst du den Slider automatisch setzen
    _SendMessage($hWnd, $TBM_SETPOS, -1, $val)

    [/autoit]
  • Listbox. Scollbars, Spaltenbreiten

    • BugFix
    • 28. März 2011 um 22:34
    Zitat von Raupi

    Wenn alle Einträge die selbe Schrift haben sollen, dann reicht auch GUICtrlSetFont


    :whistling: Konnt ich mich gar nicht mehr dran erinnern..

  • Listbox. Scollbars, Spaltenbreiten

    • BugFix
    • 28. März 2011 um 22:13

    Also Schriftart ändern geht nicht so ohne weiteres. Aber wenn du für alle Einträge dieselbe Schriftart wünschst, kannst du folgendes Bsp. verwenden:
    Falls du einzelne Zeilen anders darstellen möchtest:

    Spoiler anzeigen
    [autoit]

    #include <FontConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    $GUI = GUICreate("Listview Custom Draw", 400, 440)
    $cListView = GUICtrlCreateListView("", 2, 2, 394, 268, -1, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
    $hListView = GUICtrlGetHandle($cListView)
    _GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 100)
    _GUICtrlListView_InsertColumn($hListView, 1, "Column 2", 100)
    _GUICtrlListView_InsertColumn($hListView, 2, "Column 3", 100)
    For $i = 1 To 30
    _GUICtrlListView_AddItem($hListView, "Row" & $i & ": Col 1", $i-1)
    For $j = 1 To 2
    _GUICtrlListView_AddSubItem ($hListView, $i-1, "Row" & $i & ": Col " & $j+1, $j)
    Next
    Next

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

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUISetState()

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

    Do
    Until GUIGetMsg() = -3

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

    Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hListView
    Switch $iCode
    Case $NM_CUSTOMDRAW
    If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG
    Local $tCustDraw = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam)
    Local $iDrawStage, $hDC, $iItem
    $iDrawStage = DllStructGetData($tCustDraw, 'dwDrawStage')
    Switch $iDrawStage
    Case $CDDS_ITEMPREPAINT
    Return $CDRF_NOTIFYSUBITEMDRAW
    Case BitOR($CDDS_ITEMPREPAINT, $CDDS_SUBITEM)
    $hDC = DllStructGetData($tCustDraw, 'hdc')
    $iItem = DllStructGetData($tCustDraw, 'dwItemSpec')
    Switch $iItem
    Case 1,3,5,7
    $hFont = _WinAPI_CreateFont(14,0,0,0,$FW_NORMAL,False,False,False,$DEFAULT_CHARSET,$OUT_DEFAULT_PRECIS, _
    $CLIP_DEFAULT_PRECIS,$DEFAULT_QUALITY,0,'Courier New')
    _WinAPI_SelectObject($hDC, $hFont)
    EndSwitch
    Return $CDRF_NEWFONT
    EndSwitch
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]


    Ansonsten kannst du meine ListviewFormat-UDF verwenden.

  • Funnktionsfehler in_Array2D_DeleteRowCol() beheben

    • BugFix
    • 28. März 2011 um 08:23
    Zitat von xXMurmelkotzeXx

    Kann mir jemand den fehler beheben, dass diese Funktion das ergebnis immer 2D ausspuckt, obwohl es bei _ArrayDisplay 1-D ist?


    ?( Diese Funktion wird dir niemals ein 2D-Array zurückgeben, wie kommst du denn dadrauf?
    In der Funktion wird ein 1D-Array mit den gefundenen Dateien/Ordnern befüllt und dann zurückgegeben. Dort findet nirgendwo eine wundersame Wandlung zu einem 2D-Array statt. ^^

  • Höchsten Farbanteil ausgeben.

    • BugFix
    • 27. März 2011 um 22:23

    Wozu soll es denn dienen? Willst du wissen ob dein Bild rot/gelb/blau -stichig ist?
    Wenn es genau sein soll mußt du schon Pixel für Pixel prüfen.

  • Windows 7 Aero Farbe ändern

    • BugFix
    • 27. März 2011 um 20:53
    Zitat von pretrojaner

    bei mir bewirkt das setzten der Tranzparenz genau das gegenteil True=deaktiviert und false=Aktiviert.


    Ahh, mein Fehler - habe die Beschreibung falsch gelesen. Ist ja eigentlich auch etwas widersinnig, mit True die Transparenz abzuschalten. ;)
    Ich ändere das einfach in der Funktion so, dass True zu Transparenz Ein wird.

  • Windows 7 Aero Farbe ändern

    • BugFix
    • 27. März 2011 um 20:10

    Liest du überhaupt meine Postings? :S
    Post #4, 2.ter Spoiler, da werte ich die Farbe aus.
    Ansonsten einfach:

    [autoit]

    ConsoleWrite( "0x" & Hex($retColor, 6) & @CRLF )

    [/autoit]


    AutoIt schreibt dir die Hex-Zahl sonst als Dezimalwert, daher diese lange Zahl.

  • Windows 7 Aero Farbe ändern

    • BugFix
    • 27. März 2011 um 16:38

    Na als Hex RGB: 0xFFFFFF

  • Windows 7 Aero Farbe ändern

    • BugFix
    • 27. März 2011 um 13:23

    Also ich habe das mal kurz erstellt:

    Spoiler anzeigen
    [autoit]

    Local $tDwmColorParams = DllStructCreate('uint;uint;uint;uint;uint;uint;bool;')
    Local $pDwmColorParams = DllStructGetPtr($tDwmColorParams)
    Local $ret = DllCall("dwmapi.dll", "int", "DwmpGetColorizationParameters", "ptr", $pDwmColorParams)
    If Not @error Then
    ConsoleWrite(DllStructGetData($tDwmColorParams, 1) & @CRLF)
    Else
    ConsoleWrite('@error: ' & @error & @CRLF)
    EndIf

    [/autoit]


    Ich bekomme @error = 3 ==> Funktion nicht gefunden.
    Daraufhin habe ich mir die Dll mal mit DependencyWalker angesehen - sie beinhaltet weder eine Funktion "DwmpGetColorizationParameters" noch "DwmpSetColorizationParameters". Dann kann der Aufruf so natürlich nicht erfolgreich sein.
    Bleibt noch der Versuch mit der Ordinalnummer die Funktion aufzurufen.
    Und siehe da, das funzt ;)

    Spoiler anzeigen
    [autoit]


    Local $tDwmColorParams = DllStructCreate('uint;uint;uint;uint;uint;uint;bool;')
    Local $pDwmColorParams = DllStructGetPtr($tDwmColorParams)
    Local $ret = DllCall("dwmapi.dll", "int", 127, "ptr", $pDwmColorParams)
    If Not @error Then
    Local $col = DllStructGetData($tDwmColorParams, 1)
    Local $blau = BitAND(BitShift($col, 16), 255)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $blau = ' & $blau & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    Local $gruen = BitAND(BitShift($col, 8), 255)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $gruen = ' & $gruen & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    Local $rot = BitAND($col, 255)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $rot = ' & $rot & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    Else
    ConsoleWrite('@error: ' & @error & @CRLF)
    EndIf

    [/autoit]


    Analog mußt du mit der Set-Funktion umgehen.


    Edit2:
    Ich hab das mal in eine Funktion gepackt:
    - True/False für Transparenz war falsch, korrigiert - Aufruf bleibt wie gehabt

    &gt;_AeroColor_Set
    [autoit]

    ;===============================================================================
    ; Function Name....: _AeroColor_Set
    ; Description......: Ändert die Aero-Farbe oder fragt die aktuelle ab
    ; Parameter(s).....: $iColor die neue Farbe (RGB 0xFFFFFF), -1 (Standard) gibt die aktuelle Farbe zurück ohne Änderung
    ; $fTrans Transparenz aktivieren/deaktivieren, True=aktivieren (Standard)
    ; Return Value(s)..: Erfolg Der alte Farbwert bei Setzen eines neuen, bzw. mit Col=-1 der aktuelle Farbwert
    ; Fehler -1 @error des DllCalls ..Get
    ; -2 @error des DllCalls ..Set
    ; Author(s)........: BugFix ([email='bugfi@autoit.de'][/email])
    ;===============================================================================
    Func _AeroColor_Set($iColor=-1, $fTrans=True)
    Local $tDwmColorParams = DllStructCreate('uint;uint;uint;uint;uint;uint;bool;')
    Local $pDwmColorParams = DllStructGetPtr($tDwmColorParams)
    Local $ret, $iOldColor
    $ret = DllCall("dwmapi.dll", "int", 127, "ptr", $pDwmColorParams)
    If Not @error Then
    $iOldColor = DllStructGetData($tDwmColorParams, 1)
    Else
    Return SetError(@error,0,-1)
    EndIf
    If $iColor = -1 Then Return $iOldColor
    DllStructSetData($tDwmColorParams, 1, $iColor)
    DllStructSetData($tDwmColorParams, 7, Not $fTrans)
    $ret = DllCall("dwmapi.dll", "int", 131, "ptr", $pDwmColorParams, "bool", True)
    If Not @error Then
    Return $iOldColor
    Else
    Return SetError(@error,0,-2)
    EndIf
    EndFunc ;==>_AeroColor_Set

    [/autoit]


    Ich hab mal noch probiert: Parameter 3 scheint die Helligkeit zu sein, je kleiner desto heller. Bei 4 und 5 sehe ich keine Änderungen, 6 ist evtl die Sättigung - aber das ist auch nur zu ahnen.

  • Windows 7 Aero Farbe ändern

    • BugFix
    • 27. März 2011 um 10:51

    Hab nur mal kurz draufgeschaut: Du verwendest in deiner Struktur als Alias der Parameter var1, var2... - Wie kommst du dadrauf? Die heißen doch: nIntensity usw.
    Entweder verwendest du die Original Parameternamen oder läßt sie ganz weg. Du kannst also die Struktur nur aus den Datentypen (ohne Aliasnamen) erstellen.
    Auch stimmen deine Datentypen nicht: der letzte ist BOOL und die ersten beiden sind die Struktur COLORREF - wie die aussieht mußt du mal suchen.

    Edit: Hab mal kurz gesucht und eine andere Umsetzung gefunden. Hier werden die Parameter deutlicher: s. hier

  • Console-UDF - lesen und schreiben in einer Konsole

    • BugFix
    • 27. März 2011 um 10:13

    - Variante 1: Transparentes Child über das X packen
    - Variante 2: Probier mal ob du dem Fenster nachträglich einen Style (Popup) zuweisen kannst
    Dann aber einen Ausstieg programmieren ("exit" in Konsole geschrieben beendet diese).

  • LTS 21 SW zu 3.5 mm klinke??

    • BugFix
    • 26. März 2011 um 22:45

    Das ist natürlich eine Frage der gewünschten Qualität.
    Für reine "Beschallung" könntest du sogar mit diesem Bausatz hinkommen.

  • LTS 21 SW zu 3.5 mm klinke??

    • BugFix
    • 26. März 2011 um 22:23

    Der Verstärker wird vermutlich einen Klinkenanschluß haben oder Neutrik.
    Also den LTS21 abschneiden und für Verstärker passenden Stecker anlöten. Für Verbindung Laptop-Verstärker bastelst du dir einen Adapter 3,5 mm Klinke auf Verstärkerstecker.

  • LTS 21 SW zu 3.5 mm klinke??

    • BugFix
    • 26. März 2011 um 21:59

    Den Adapter kannst du dir zwar bauen - aber dann qualmt dein Laptop ab. ;)
    Die Lautsprecher sind viel zu niedrigohmig für deinen mW-Audioausgang. Diese Stecker waren in der DDR Standard, also vermute ich mal, dass auch eine entsprechende Box dranhängt. Und diese waren durchweg qualitativ absolut hochwertig und bringen bei 10 Watt Nennleistung einen besseren Sound als der heutige Schrott, der (angeblich) 100 Watt Leistung oder mehr haben soll.
    Hinter diesen 10 Watt steckt i.A. ein Lautsprecher mit 4 Ohm. Wenn du den direkt ohne Vorverstärker mit deinem Laptop verbindest, gibt es eine kurze Qualmwolke und das wars. Defakto ein Kurzschluss.
    Also zwingend einen Vorverstärker davor hängen mit ausreichender Ausgangsleistung für die Lautsprecher.

  • Array funktioniert nach _ArrayDelet nicht mehr...

    • BugFix
    • 26. März 2011 um 21:07

    Die Lösung ist:
    For $i = $Array[0] To 1 Step -1
    Einfach rückwärts durchgehen. ;)

  • Array funktioniert nach _ArrayDelet nicht mehr...

    • BugFix
    • 26. März 2011 um 20:47

    Nach kurzem Drüberschauen:
    Wenn du ein Array von vorn nach hinten durchgehst und dann den Eintrag, indem du dich gerade befindest löschst - was passiert dann wohl? ;)
    Das nennt man, den Ast absägen auf dem man sitzt. :D

    Bitte setze deinen Code in SPOILER und AutoIt-Tags

  • Abkürzungen in SciTE verwalten

    • BugFix
    • 26. März 2011 um 20:36
    Zitat von peethebee

    Wie ist das aktuell jetzt geregelt mit Robustheit gegen SciTE-Updates?


    In der letzten Version hatte ich eingefügt, dass alle eigenen Abbrevs zusätzlich in: @UserProfileDir & '\abbrev.properties.my' hinterlegt werden. Nach einem SciTE-Update kann dann über Menüpunkt "Wiederherstellen" diese Datei in die aktuelle Version eingespielt werden.

  • Quellcode verwalten Scite

    • BugFix
    • 26. März 2011 um 13:52
    Zitat von Ilse

    \AppDate\Roaming
    \AppDate\Local


    Das sind nicht die @UserProfileDir ;)
    Diese lauten : "Lw:\Users\USER_NAME", Lw ist im Allgemeinen C:

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™