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

  • Split String

    • Oscar
    • 29. August 2013 um 16:51

    Hast Du schon mal ermittelt, ob es sich bei den Zeichen zwischen den Einträgen wirklich um Leerzeichen "chr(32)" handelt?
    Mal mit StringToASCIIArray prüfen. Eventuell lässt sich das viel einfacher trennen...

  • AutoIt.de Logo Wettbewerb

    • Oscar
    • 28. August 2013 um 20:03

    Mars: Das sieht schon ganz gut aus. Animation halte ich aber für überflüssig. Der Zahlenstrahl sollte außerdem unterhalb von AutoIt.de stehen (IMHO).

  • Latenzzeiten Telecolumbus (Internetanbieter)

    • Oscar
    • 28. August 2013 um 19:59

    Internet per SAT hat BugFix schon alles geschrieben und ich denke, dass sind Minimumwerte. Es gibt wohl auch Anbieter (habe ich gelesen), die zusätzlich (als Upload für kürzere Latenzen) einen DSL-Anschluss anbieten. Das dürfte aber teurer sein. Damit habe ich aber keine Erfahrung.
    ADSL wird über die alten Telefon-Kupferkabel übertragen. Dort sind bis zu 16 MBit DL möglich. Betonung auf "bis zu", weil das ganz erheblich von der Länge des Kabels bis zum nächsten Anschlusskasten abhängig ist. Ich habe hier bei mir nur 2 MBit.
    Bei VDSL bekommst Du garantierte Werte (meist 25 oder 50 MBit). ADSL/VDSL haben kürzere Laufzeiten/Latenzen als SAT, aufgrund der relativ kurzen Laufzeit durch das Kabel.
    Außerdem gibt es noch Internet über das TV-Kabel (z.B. bei Kabel Deutschland). Dort gibt es bis zu 100 MBit. Wobei das Kabel von mehreren genutzt wird und Du in Spitzenzeiten keine garantierten Werte erhälst. Das kommt aber auch auf das Nutzungsverhalten der User an und hängt außerdem von der Anbindung des Knotens beim Anbieter ab.

  • Abfrageproblem von einem Kontextmenü

    • Oscar
    • 26. August 2013 um 15:22

    Dein Fehler ist, dass Du die Tab-Definition nicht beendest. Es fehlte ein: GUICtrlCreateTabItem("")
    Außerdem würde ich Dir empfehlen Switch statt Select zu verwenden:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    $hWnd = GUICreate("WhoIsInTheHouse", 700, 700)
    $tab = GUICtrlCreateTab(0, 0, 600, 600)
    Local $tabs[7]
    For $i = 0 To 5
    $tabs[$i] = GUICtrlCreateTabItem($i & ". Stock")
    Next
    $tabs[6] = GUICtrlCreateTabItem("Aktualisieren")
    GUICtrlCreateTabItem("") ; Beendet die Tab Definition

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

    $mainContextMenu = GUICtrlCreateContextMenu($tab)
    Global $mainContextMenuItem[5] ;Hauptkontextmenü
    $mainContextMenuItem[0] = GUICtrlCreateMenuItem("create Computer", $mainContextMenu) ;neuen Computer erstellen
    $mainContextMenuItem[1] = GUICtrlCreateMenuItem("edit Computer", $mainContextMenu) ;vorhandenen Computer bearbeiten
    $mainContextMenuItem[2] = GUICtrlCreateMenuItem("delete Computer", $mainContextMenu) ;vorhanden Computer löschen
    $mainContextMenuItem[3] = GUICtrlCreateMenuItem("", $mainContextMenu) ;Strich
    $mainContextMenuItem[4] = GUICtrlCreateMenuItem("show Log", $mainContextMenu) ;show Log-File
    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case $mainContextMenuItem[0] ; create Computer
    MsgBox(0, "", "create Computer")
    Case $mainContextMenuItem[1] ; edit Computer
    MsgBox(0, "", "edit Computer")
    Case $mainContextMenuItem[2] ; delete Computer
    MsgBox(0, "", "delete Computer")
    Case $mainContextMenuItem[4] ; delete Computer
    MsgBox(0, "", "show Log")
    Case $GUI_EVENT_CLOSE
    GUIDelete()
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Passwort aus .ini lesen

    • Oscar
    • 25. August 2013 um 12:58

    Ich hatte jetzt weniger an einen "Schutz" des Programms gedacht, als vielmehr an einen Schutz der Daten, die mit dem Programm erstellt werden.
    Also eine verschlüsselte Ablage der Daten und ein ablegen des Hashwertes des verwendeten Passwortes.
    Einen 100% sicheren Programmschutz gibt es nicht. Da sind wir uns einig. :)

  • Passwort aus .ini lesen

    • Oscar
    • 24. August 2013 um 07:40
    Zitat von DaveTDancer

    kurze frage denn an ein ähnliches problem sitz ich auch, was passsiert wenn man die ini öffnet und den passwortparameter entfernt fragt er dann nicht wieder nach einen neuen passwort und mit diesen lässt erdann doch den zugriff auf die gesicherten daten zu


    Man sollte die gesicherten Daten auch mit dem eingegebenen Passwort verschlüsseln, dann ist der Zugriff darauf nur mit diesem Passwort möglich.
    Ein löschen des Passworts in der Ini führt dann dazu, dass man nicht mehr auf die Daten zugreifen kann. Oder man muss das so programmieren, dass dann nach dem alten Passwort gefragt wird.

    Einen Passwortwechsel sollte man dem User aber ermöglichen. Das geschieht, indem man zuerst das alte Passwort eingeben lässt, mit diesen werden dann die Daten entschlüsselt, dann fragt man nach einem neuen Passwort und mit dem werden dann die Daten zukünftig verschlüsselt.

    funkey: Danke, dass Du schon für mich geantwortet hast. Dem habe ich nichts hinzuzufügen. :)

  • Passwort aus .ini lesen

    • Oscar
    • 22. August 2013 um 18:16

    Zum Einen solltest Du das Passwort nicht im Klartext ablegen. Erstelle einen Hash-Wert (z.B. mit SHA1) von dem Passwort und speichere diesen ab.
    Zum Anderen benutze statt des Scriptverzeichnisses das @AppDataDir (Anwendungsdaten) und erstelle dort einen Ordner für Dein Programm. In diesen Ordner packst Du dann die Ini. Dann ist es egal, wo das Script/die Exe gespeichert ist. Alternativ könntest Du auch die Registry benutzen.

  • Problem mit if Abfrage (denkfehler meinerseits ?)

    • Oscar
    • 21. August 2013 um 19:43

    Ich finde Switch in so einem Fall "lesbarer":

    [autoit]


    Switch $1
    Case 5, 15, 21, 27, 29, 48
    GUICtrlSetState($Checkbox1,$GUI_CHECKED)
    EndSwitch

    [/autoit]
  • Geklickte Linie in einem Raster erkennen

    • Oscar
    • 21. August 2013 um 08:03

    Ich würde das Ganze mit GDI+ zeichnen. Dann kannst Du auch anschließend die einzelnen Linien besser darstellen.
    Hier mal ein Anfang:

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Opt('GUIOnEventMode', 1)

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

    _GDIPlus_Startup()
    Global $iEdge = 32, $iCount = 10, $iRect = $iEdge * $iCount + $iEdge * 2

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

    $hGui = GUICreate('Test', $iRect, $iRect)
    GUISetState()
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    GUISetOnEvent($GUI_EVENT_PRIMARYUP, '_Click')

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iRect, $iRect, $hGraphic)
    $hGraphicBuff = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsClear($hGraphic, 0xFFFFFFFF)
    $hPen = _GDIPlus_PenCreate(0xFFAAAAAA)
    For $y = 0 To $iCount - 1
    For $x = 0 To $iCount - 1
    _GDIPlus_GraphicsDrawRect($hGraphicBuff, $iEdge + $x * $iEdge, $iEdge + $y * $iEdge, $iEdge, $iEdge, $hPen)
    Next
    Next
    _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)

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

    GUIRegisterMsg($WM_PAINT, 'WM_PAINT')

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

    WinWaitClose($hGui)
    Exit

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

    Func _End()
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    GUIDelete($hGui)
    EndFunc ;==>_End

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

    Func _Click()
    Local $aInfo = GUIGetCursorInfo($hGui), $iX, $iY
    $iX = Int($aInfo[0] / $iEdge)
    $iY = Int($aInfo[1] / $iEdge)
    ToolTip(StringFormat('Spalte:\t%i\nZeile:\t%i', $iX, $iY))
    EndFunc ;==>_Click

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

    Func WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)
    EndFunc ;==>WM_PAINT

    [/autoit]
  • sofortiges Beenden des Programms; flackerndes Label

    • Oscar
    • 21. August 2013 um 07:56

    Beim OnEventMode sollte (im Gegensatz zum MsgLoopMode) innerhalb der While...Wend-Schleife immer auch ein Sleep vorhanden sein, weil sonst die Prozessorlast auf 100% steigt.
    Also z.B. ein Sleep(20) hinzufügen reicht schon. Je nachdem, wie oft der Rest aktualisiert werden soll (könnte man übrigens auch per AdlibRegister machen), kann der Sleep-Befehl auch größer ausfallen.

  • Bei Random Befehl einzelne (bereits erstellte) Zahlen ausschließen

    • Oscar
    • 19. August 2013 um 20:01

    Hier mal meine Variante:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $aLotto = _Lotto()
    _ArrayDisplay($aLotto)

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

    Func _Lotto()
    Local $aNumbers[49], $aWin[6]
    For $i = 0 To UBound($aNumbers) - 1
    $aNumbers[$i] = $i + 1
    Next
    For $i = 0 To UBound($aWin) - 1
    $iRandom = Random(0, 48 - $i, 1)
    $aWin[$i] = $aNumbers[$iRandom]
    $aNumbers[$iRandom] = $aNumbers[48 - $i]
    Next
    _ArraySort($aWin)
    Return $aWin
    EndFunc ;==>_Lotto

    [/autoit]
  • MP3-Datei mit BASS auf 5.1 Soundsystem abspielen

    • Oscar
    • 16. August 2013 um 18:21

    Zu Split_Streams konnte ich nichts finden. Das mit dem syncen ist aber klasse! :thumbup:

    Ist das so ok?

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_UseX64=n
    ;~ #include <Array.au3>
    #include 'Bass.au3'

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

    OnAutoItExitRegister('_Exit')
    HotKeySet('{ESC}', '_Exit')

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

    ; BASS starten
    _BASS_Startup(@ScriptDir & '\bass.dll')

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

    ; Deviceliste anzeigen
    Global $iIndex = 0, $sDevices = '', $aInfo = '', $error = 0
    Do
    $iIndex += 1
    $aInfo = _BASS_GetDeviceInfo($iIndex)
    If IsArray($aInfo) Then $sDevices &= '[' & $iIndex & '] ' & $aInfo[0] & @CRLF
    Until $aInfo = 0
    MsgBox(0, 'Devicelist', $sDevices)

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

    ; Device auswählen
    $idDevice = Int(InputBox('Choose Device', 'Enter Device Id', '1'))
    If $idDevice >= $iIndex Or @error Then Exit MsgBox(16, 'Wrong Device', 'Device does not exist!')

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

    ; Device initialisieren
    If Not _BASS_Init(0, $idDevice, 44100, '', 0) Then Exit MsgBox(16, 'Device error', 'Device could not be initialized.')
    ;~ $aInfo = _BASS_GetInfo()
    ;~ _ArrayDisplay($aInfo)
    ;~ _Exit()

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

    ; Audiodatei laden
    $sMP3File = FileOpenDialog('Bitte MP3-Datei auswählen', '', 'MP3s (*.mp3)')
    If Not FileExists($sMP3File) Then Exit MsgBox(16, 'Datei nicht gefunden!', $sMP3File)

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

    ; Stream erstellen
    $hStream1 = _BASS_StreamCreateFile(0, $sMP3File, 0, 0, $BASS_STREAM_AUTOFREE + $BASS_SPEAKER_FRONT)
    $hStream2 = _BASS_StreamCreateFile(0, $sMP3File, 0, 0, $BASS_STREAM_AUTOFREE + $BASS_SPEAKER_REAR)
    $hStream3 = _BASS_StreamCreateFile(0, $sMP3File, 0, 0, $BASS_STREAM_AUTOFREE + $BASS_SPEAKER_CENLFE)
    _BASS_ChannelSetLink($hStream1, $hStream2)
    _BASS_ChannelSetLink($hStream1, $hStream3)

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

    ; Stream abspielen
    _BASS_ChannelPlay($hStream1, 1)

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

    $iSongLenght = _BASS_ChannelGetLength($hStream1, $BASS_POS_BYTE)
    $iSongSeconds = Int(_BASS_ChannelBytes2Seconds($hStream1, $iSongLenght))
    Do
    $iPos = _BASS_ChannelGetPosition($hStream1, $BASS_POS_BYTE)
    $iSeconds = Int(_BASS_ChannelBytes2Seconds($hStream1, $iPos))
    ToolTip($iSeconds & ' / ' & $iSongSeconds)
    Sleep(500)
    Until $iSeconds >= $iSongSeconds
    _Exit()

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

    Func _Exit()
    _BASS_ChannelRemoveLink($hStream1, $hStream3)
    _BASS_ChannelRemoveLink($hStream1, $hStream2)
    ; Bass freigeben
    _BASS_Free()
    Exit
    EndFunc ;==>_Exit

    [/autoit]
  • MP3-Datei mit BASS auf 5.1 Soundsystem abspielen

    • Oscar
    • 16. August 2013 um 17:59

    Ich habs selbst gelöst! :D
    Man erstelle einfach 3 Streams und spiele alle ab. :rolleyes:
    Hier das Lösungsscript:

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_UseX64=n
    ;~ #include <Array.au3>
    #include 'Bass.au3'

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

    OnAutoItExitRegister('_Exit')
    HotKeySet('{ESC}', '_Exit')

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

    ; BASS starten
    _BASS_Startup(@ScriptDir & '\bass.dll')

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

    ; Deviceliste anzeigen
    Global $iIndex = 0, $sDevices = '', $aInfo = '', $error = 0
    Do
    $iIndex += 1
    $aInfo = _BASS_GetDeviceInfo($iIndex)
    If IsArray($aInfo) Then $sDevices &= '[' & $iIndex & '] ' & $aInfo[0] & @CRLF
    Until $aInfo = 0
    MsgBox(0, 'Devicelist', $sDevices)

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

    ; Device auswählen
    $idDevice = Int(InputBox('Choose Device', 'Enter Device Id', '1'))
    If $idDevice >= $iIndex Or @error Then Exit MsgBox(16, 'Wrong Device', 'Device does not exist!')

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

    ; Device initialisieren
    If Not _BASS_Init(0, $idDevice, 44100, '', 0) Then Exit MsgBox(16, 'Device error', 'Device could not be initialized.')
    ;~ $aInfo = _BASS_GetInfo()
    ;~ _ArrayDisplay($aInfo)
    ;~ _Exit()

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

    ; Audiodatei laden
    $sMP3File = FileOpenDialog('Bitte MP3-Datei auswählen', '', 'MP3s (*.mp3)')
    If Not FileExists($sMP3File) Then Exit MsgBox(16, 'Datei nicht gefunden!', $sMP3File)

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

    ; Stream erstellen
    $hStream1 = _BASS_StreamCreateFile(0, $sMP3File, 0, 0, $BASS_STREAM_AUTOFREE + $BASS_SPEAKER_FRONT)
    $hStream2 = _BASS_StreamCreateFile(0, $sMP3File, 0, 0, $BASS_STREAM_AUTOFREE + $BASS_SPEAKER_REAR)
    $hStream3 = _BASS_StreamCreateFile(0, $sMP3File, 0, 0, $BASS_STREAM_AUTOFREE + $BASS_SPEAKER_CENLFE)

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

    ; Stream abspielen
    _BASS_ChannelPlay($hStream1, 1)
    _BASS_ChannelPlay($hStream2, 1)
    _BASS_ChannelPlay($hStream3, 1)

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

    $iSongLenght = _BASS_ChannelGetLength($hStream1, $BASS_POS_BYTE)
    $iSongSeconds = Int(_BASS_ChannelBytes2Seconds($hStream1, $iSongLenght))
    Do
    $iPos = _BASS_ChannelGetPosition($hStream1, $BASS_POS_BYTE)
    $iSeconds = Int(_BASS_ChannelBytes2Seconds($hStream1, $iPos))
    ToolTip($iSeconds & ' / ' & $iSongSeconds)
    Sleep(500)
    Until $iSeconds >= $iSongSeconds
    _Exit()

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

    Func _Exit()
    ; Bass freigeben
    _BASS_Free()
    Exit
    EndFunc ;==>_Exit

    [/autoit]
  • MP3-Datei mit BASS auf 5.1 Soundsystem abspielen

    • Oscar
    • 16. August 2013 um 15:25

    Ich bin schon seit Stunden damit beschäftigt, zu versuchen eine MP3-Datei auf einem 5.1 Soundsystem auszugeben.
    Irgendwas übersehe ich wahrscheinlich dabei. Hier mal mein Testscript:

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_UseX64=n
    ;~ #include <Array.au3>
    #include 'Bass.au3'

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

    OnAutoItExitRegister('_Exit')
    HotKeySet('{ESC}', '_Exit')

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

    ; BASS starten
    _BASS_Startup(@ScriptDir & '\bass.dll')

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

    ; Deviceliste anzeigen
    Global $iIndex = 0, $sDevices = '', $aInfo = '', $error = 0
    Do
    $iIndex += 1
    $aInfo = _BASS_GetDeviceInfo($iIndex)
    If IsArray($aInfo) Then $sDevices &= '[' & $iIndex & '] ' & $aInfo[0] & @CRLF
    Until $aInfo = 0
    MsgBox(0, 'Devicelist', $sDevices)

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

    ; Device auswählen
    $idDevice = Int(InputBox('Choose Device', 'Enter Device Id', '1'))
    If $idDevice >= $iIndex Or @error Then Exit MsgBox(16, 'Wrong Device', 'Device does not exist!')

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

    ; Device initialisieren
    If Not _BASS_Init(0, $idDevice, 44100, '', 0) Then Exit MsgBox(16, 'Device error', 'Device could not be initialized.')
    ;~ $aInfo = _BASS_GetInfo()
    ;~ _ArrayDisplay($aInfo)
    ;~ _Exit()

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

    ; Audiodatei laden
    $sMP3File = FileOpenDialog('Bitte MP3-Datei auswählen', '', 'MP3s (*.mp3)')
    If Not FileExists($sMP3File) Then Exit MsgBox(16, 'Datei nicht gefunden!', $sMP3File)

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

    ; Stream erstellen
    $hStream = _BASS_StreamCreateFile(0, $sMP3File, 0, 0, $BASS_STREAM_AUTOFREE + $BASS_SPEAKER_REAR) ; $BASS_SPEAKER_FRONT oder $BASS_SPEAKER_REAR

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

    ; Stream abspielen
    _BASS_ChannelPlay($hStream, 1)

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

    $iSongLenght = _BASS_ChannelGetLength($hStream, $BASS_POS_BYTE)
    $iSongSeconds = Int(_BASS_ChannelBytes2Seconds($hStream, $iSongLenght))
    Do
    $iPos = _BASS_ChannelGetPosition($hStream, $BASS_POS_BYTE)
    $iSeconds = Int(_BASS_ChannelBytes2Seconds($hStream, $iPos))
    ToolTip($iSeconds & ' / ' & $iSongSeconds)
    Sleep(500)
    Until $iSeconds >= $iSongSeconds
    _Exit()

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

    Func _Exit()
    ; Bass freigeben
    _BASS_Free()
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    Die Infos von _BASS_GetInfo() sehen so aus:

    Spoiler anzeigen
    Code
    0 = 3871
     1 = 0
     2 = 0
     3 = 0
     4 = 0
     5 = 100
     6 = 200000
     7 = 0
     8 = 4294967295
     9 = 9
    10 = 4294967295
    11 = 0
    12 = 6
    13 = 48000
    Alles anzeigen


    [12] = 6 es werden also 6 Lautsprecher erkannt. :huh:

    Ich habs auch schon versucht mit:

    [autoit]

    _BASS_SetConfig($BASS_CONFIG_3DALGORITHM, $BASS_3DALG_DEFAULT)

    [/autoit]


    aber das alles hilft nichts. Die MP3-Datei wird immer nur über die Front- oder die Rear-Lautsprecher ausgegeben.
    Ich möchte aber gern eine Ausgabe auf allen Lautsprechern. Jemand eine Idee?

  • Ordner + Unterordner nach .avi suchen lassen und kopieren

    • Oscar
    • 13. August 2013 um 09:56

    [verschoben nach "Hilfe & Unterstützung"]

  • USB Spannung absenken via Software / Autoit möglich ?

    • Oscar
    • 6. August 2013 um 19:44

    Einen Trafo sicherlich nicht. Es handelt sich bei der Spannung am USB-Port um Gleichspannung. Einen Widerstand könnte man zwar dazwischenschalten, das wäre dann aber nicht (per Software) regelbar.
    Ein Festwiderstand besitzt einen festen Widerstandswert. Das heißt, die Spannung, die am zusätzlichen Widerstand abfällt, steht dem Ventilator nicht mehr zur Verfügung und dieser dreht dann entsprechend langsamer.
    Um das regelbar zu machen könnte man zu einem Poti (einstellbarer Widerstand) greifen.
    Soweit die Theorie. In der Praxis muss man sehr viel mehr bedenken:
    - Reicht die verringerte Spannung noch aus, um den Ventilator anlaufen zu lassen?
    - Der Strom, der durch den Ventilator fließt, der fließt auch durch den Widerstand. Dieser Strom mal der Spannung, die an dem Widerstand abfällt ergibt die Verlustleistung des Widerstands. Das sollte man beachten, sonst raucht der Widerstand ab (qualmt und stinkt).

    Diese Lösung ist aber sowieso eher schlecht, weil die Leistung, die nicht zum Venti soll, einfach "verbraten" wird.
    Sieht man sich mal die Steuerung auf einem Mainboard an, so sieht man, dass dort eine Pulsweitenmodulation (PWM) für die Lüfter verwendet wird.

    Es wäre also eine Alternative, einen Lüfter am Mainboard anzuschließen und diesen dann per Software zu steuern (viele Mainboards unterstützen das). :D

  • Mouseclick Counter Problem

    • Oscar
    • 5. August 2013 um 19:12

    Dein Script kann man ziemlich kürzen (_IsPressed und die Funktion sind überflüssig):

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    #region ### START Koda GUI section ### Form=
    Global $Left = 0
    $Form1 = GUICreate("Form1", 272, 100, 192, 124)
    $Label1 = GUICtrlCreateLabel("LeftClicks:", 24, 48, 156, 17)
    $Label2 = GUICtrlCreateLabel($Left, 96, 48, 50, 17)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_EVENT_PRIMARYUP
    $Left += 1
    GUICtrlSetData($Label2, $Left)
    EndSwitch
    WEnd

    [/autoit]
  • FileGetTime mit Varriable?

    • Oscar
    • 5. August 2013 um 15:43

    Das, was Du von FileFindNextFile zurück bekommst, ist nur der Dateiname. Das heißt, Du musst noch den Pfad hinzufügen, bevor Du mit FileGetTime das Datum auslesen kannst.

  • USB Spannung absenken via Software / Autoit möglich ?

    • Oscar
    • 5. August 2013 um 15:15

    Ein normaler USB-Port ist für sowas nicht vorgesehen! Dort liegen immer 5 Volt (+- Toleranz) an.
    Das heißt: ohne Zusatzschaltung (Hardware) wird das nicht funktionieren.

  • WebCam Aktivität prüfen und protokollieren.

    • Oscar
    • 2. August 2013 um 18:33

    Das sind nur die Jungs vom BND, die kurz nachschauen wollen, was Du gerade so treibst. SCNR :D

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™