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

  • TCPListen Adressbereich??

    • Oscar
    • 12. Oktober 2008 um 16:42

    Mach vorher einen Ping auf den Computernamen, dann bekommst Du die IP frei Haus. :)

    Edit: Oder noch einfacher: Schau Dir mal "TCPNameToIP" an.

  • Frage zu Bitand (Variablen zusammenfassen)

    • Oscar
    • 12. Oktober 2008 um 16:40

    Um eine Variable auszuschließen, kannst Du eine If-Abfrage einbauen:

    Spoiler anzeigen
    [autoit]


    Global $1 = 11, $2 = 12, $3 = 13, $4 = 14, $5 = 15

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

    $raus = 14

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

    $array = StringSplit('1,2,3,4,5', ',') ; hier die Namen der Variablen (ohne $) eingeben
    For $i = 1 To $array[0]
    If Eval($array[$i]) <> $raus Then _msgbox(Eval($array[$i]))
    Next

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

    Func _msgbox($zahl)
    MsgBox(0, "", $zahl)
    EndFunc ;==>_msgbox

    [/autoit]
  • Frage zu Bitand (Variablen zusammenfassen)

    • Oscar
    • 12. Oktober 2008 um 16:26

    Wenn Du eine Variable ausschließen willst, dann trag sie einfach nicht in den String ein.
    Oder habe ich das jetzt falsch verstanden?

  • Frage zu Bitand (Variablen zusammenfassen)

    • Oscar
    • 12. Oktober 2008 um 14:04

    nuts: wenn ich das richtig verstanden habe, dann suchst Du so etwas:

    [autoit]


    $array = StringSplit('1,2,3,4,5,6,7', ',') ; hier die Namen der Variablen (ohne $) eingeben
    For $i = 1 To $array[0]
    _HauptReset(Eval($array[$i]))
    Next

    [/autoit]

    Edit: Bei Eval müssen die Variablennamen ohne das Dollarzeichen übergeben werden!

  • .exe auf "natürlichem wege" starten?

    • Oscar
    • 11. Oktober 2008 um 19:41

    Vielleicht solltest Du uns mal mitteilen, um welches Programm es hier geht, dann könnte das mal jemand nachvollziehen und bestätigen bzw. widerlegen.

  • Wie viele Gamepads unterstützt Windows XP (gleichzeitig)?

    • Oscar
    • 11. Oktober 2008 um 19:38

    Also ich habe jetzt schonmal 3 Gamepads (1 ist noch bestellt). Angeschlossen -> funktionieren! :)
    Habe aber noch die Treiber installiert, weil das so "Dual Shock Controller" sind. Mit Hilfe der Suche bin ich dann auf dieses Script gestossen, mit dem man die Eingabe der Gamepads auslesen kann. Klappt auch alles. Soweit bin ich schon sehr zufrieden damit und ich könnte mit der Umsetzung meines Programms beginnen.

    Wenn...ja, wenn da nicht noch das I-Tüpfelchen wäre. Da ich ja nun diese Force-Feedback-Gamepads besitze, könnte man dieses Feature ja auch noch verwenden. Weiß jemand, wie man diese Funktion der Gamepads in AutoIt ansteuern kann.

  • Array für Beginner

    • Oscar
    • 11. Oktober 2008 um 18:55

    Oder so (Antwort auf beide Fragen):

    [autoit]


    #include <array.au3>

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

    For $i = 1 to 25
    FileWrite("test1.txt", Random(10, 99, 1) & @CRLF)
    Next
    $File = StringTrimRight(FileRead("test1.txt"), 2)
    $array = StringSplit($File, @CRLF, 1)

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

    _ArrayDisplay($array)

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

    For $i = 1 to 25
    FileWrite("test2.txt", Random(10, 99, 1) & ", ")
    Next
    $File = StringTrimRight(FileRead("test2.txt"), 2)
    $array = StringSplit($File, ", ", 1)

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

    _ArrayDisplay($array)

    [/autoit]
  • µit - September

    • Oscar
    • 11. Oktober 2008 um 16:05

    azunai: Kannst Du mal Dein Passwort posten?

    Oder pee: Poste doch einfach mal alle Scripte. Ich würde mir die gern mal ansehen.

  • Digitaluhr

    • Oscar
    • 11. Oktober 2008 um 15:53

    Danke!
    Ohoh...118 Downloads in 2 Tagen...habe ich da jetzt eine Lawine losgetreten? :rolleyes:

  • Digitaluhr

    • Oscar
    • 11. Oktober 2008 um 13:15

    peethebee : Wurde angenommen! :)
    Link zur Digitaluhr im Heise-Software-Archiv

  • Wie viele Gamepads unterstützt Windows XP (gleichzeitig)?

    • Oscar
    • 10. Oktober 2008 um 22:12

    Das ist super!
    Ich dachte an 4 Gamepads, aber wenn bis zu 16 funktionieren umso besser.
    Dann werde ich morgen mal losziehen und mir ein paar Gamepads besorgen. :)

    Vielen Dank euch beiden!

  • Windows Fenster erweitern

    • Oscar
    • 10. Oktober 2008 um 19:34

    Zum Beispiel so:

    [autoit]


    $ret = 0
    While $ret <> 2
    $ret = MsgBox(3, 'Test', 'Programm starten?')
    If $ret = 6 Then
    ShellExecute("iexplore.exe")
    Exit
    ElseIf $ret = 7 Then
    MsgBox(0, 'Test', 'Du musst auf "Ja" klicken!')
    EndIf
    WEnd

    [/autoit]
  • Wie viele Gamepads unterstützt Windows XP (gleichzeitig)?

    • Oscar
    • 10. Oktober 2008 um 19:16

    Ich möchte eine Idee umsetzen. Und zwar möchte ich mein Programm "Musik-Quiz" dahingehend ausbauen, dass man mit mehreren Leuten spielen kann.
    Nun wäre es aber blöd, wenn sich alle um die Tastatur versammeln müssen, deshalb dachte ich daran, jeden mit einem USB-Gamepad auszustatten und diese per USB-Hub und Verlängerungskabel an den Rechner anzuschließen.
    Um diese Idee weiter zu spinnen, habe ich mal ein wenig gegoogelt und ein Programm namens "JoyToKey" gefunden, mit dem man Joystick-Tasten in Tastatureingaben umsetzen kann. Soweit so gut.
    Allerdings taucht dabei jetzt die Frage auf: Wie viele Gamepads unterstützt Windows XP eigentlich gleichzeitig?

    Bevor ich mir nun mehrere Gamepads kaufe, wollte ich diese Frage erstmal geklärt wissen. Konnte über Google aber nichts brauchbares finden. Weiß jemand von euch, ob mein Vorhaben möglich ist?

  • Digitaluhr

    • Oscar
    • 9. Oktober 2008 um 18:37

    @Apollo13: Du musst jetzt die Uhr nicht mehr extra anklicken. Mit der neuen Version (siehe Post #1) aktualisiert sie sich automatisch. Nochmal ein Danke an progandy!
    Und ich habe auch wieder die schwarze Umrandung sichtbar gemacht (war vorher transparent). Sieht auf hellem Untergrund besser aus. Da hast Du recht.


    Edit: Habe das Programm jetzt mal bei Heise registriert.

  • Auf Benutzerwechsel, An-/Abmelden und Lock/Unlock reagieren

    • Oscar
    • 9. Oktober 2008 um 17:53

    Yeah! Das ist es! :)
    Das mit den Dll-Calls habe ich nicht so drauf. Muss mich da mal mehr mit beschäftigen.

    Vielen Dank!

  • Windows Fenster^^

    • Oscar
    • 9. Oktober 2008 um 17:47

    Beispiel:

    [autoit]


    If MsgBox(4, 'Test', 'Programm starten?') = 6 Then
    ConsoleWrite('Programm starten!' & @CRLF)
    Else
    ConsoleWrite('Dann eben nicht!' & @CRLF)
    EndIf

    [/autoit]
  • Auf Benutzerwechsel, An-/Abmelden und Lock/Unlock reagieren

    • Oscar
    • 9. Oktober 2008 um 17:36

    Und wie verwende ich diese Funktionen? Aufruf?

  • Farbe genauer definieren....??? wie

    • Oscar
    • 9. Oktober 2008 um 15:14

    Ah! Es geht doch! :)

    So versteht man auch, was Du möchtest.
    Und hier bekommst Du dann auch die Lösung:

    Spoiler anzeigen
    [autoit]


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

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

    Opt('MustDeclareVars', 1)

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

    _Color_Example()

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

    Func _Color_Example()
    Local $GUI, $Btn_RGB, $iMemo

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

    $GUI = GUICreate("_ChooseColor() Example", 400, 300)
    $iMemo = GUICtrlCreateEdit("", 2, 55, 396, 200, BitOR($WS_VSCROLL, $WS_HSCROLL))
    GUICtrlSetFont($iMemo, 10, 400, 0, "Courier New")
    $Btn_RGB = GUICtrlCreateButton("RGB", 250, 10, 80, 40)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $Btn_RGB
    GUICtrlSetData($iMemo, _ChooseColor(2, 0x0080C0, 2, $GUI))
    EndSwitch
    WEnd
    EndFunc ;==>_Color_Example

    [/autoit]
  • Farbe genauer definieren....??? wie

    • Oscar
    • 9. Oktober 2008 um 15:02

    Wie bitte?

    Kannst Du Deine Frage mal etwas präziser formulieren und bitte mit Groß-/Kleinschreibung. Und ein paar Satzzeichen würden der Lesbarkeit auch ganz gut tun. :)

  • Auf Benutzerwechsel, An-/Abmelden und Lock/Unlock reagieren

    • Oscar
    • 9. Oktober 2008 um 14:43

    Ich brauche mal eure Hilfe bei einer Funktion zum reagieren auf Benutzerwechsel, An-/Abmelden und Lock/Unlock.

    Mein erster Versuch war das hier:

    [autoit]


    Global Const $WM_WTSSESSION_CHANGE = 0x02B1
    GUIRegisterMsg($WM_WTSSESSION_CHANGE, 'ON_WM_WTSSESSION_CHANGE')

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

    While 1
    Sleep(50)
    WEnd

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

    Func ON_WM_WTSSESSION_CHANGE($hWndGUI, $MsgID, $WParam, $LParam)
    ConsoleWrite(@HOUR&':'&@MIN&':'&@SEC&@CRLF)
    EndFunc

    [/autoit]

    Da tut sich aber nichts (sprich: die Funktion wird nie aufgerufen).
    Nach ein bißchen rumgoogeln habe ich dann rausbekommen, dass man WTSRegisterSessionNotification registrieren muss, um diese Message auswerten zu können. Weiteres rumgoogeln brachte dann ein VB-Programm zu Tage:

    Spoiler anzeigen
    Code
    Declare Function CallWindowProc Lib "user32" Alias _
        "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
        ByVal hWnd As Long, ByVal MSG As Long, _
        ByVal wParam As Long, ByVal lParam As Long) As Long
    
    
    Declare Function SetWindowLong Lib "user32" Alias _
        "SetWindowLongA" (ByVal hWnd As Long, _
        ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    
    
    Public Declare Function WTSRegisterSessionNotificationA Lib "WtsApi32.dll" Alias _
        "WTSRegisterSessionNotification" (ByVal hWnd As Long, ByVal dwFlags As Long) As Long
    
    Public Declare Function WTSUnRegisterSessionNotificationA Lib "WtsApi32.dll" Alias _
        "WTSUnRegisterSessionNotification" (ByVal hWnd As Long) As Long
    
    Private Const GWL_WNDPROC As Long = -4&
    Private Const WM_WTSSESSION_CHANGE As Long = &H2B1
    Private Const WTS_SESSION_LOCK As Long = 7
    Private Const WTS_SESSION_UNLOCK As Long = 8
    Public Const WTS_SESSION_LOGON As Long = 5
    Public Const WTS_SESSION_LOGOFF As Long = 6
    Private Const NOTIFY_FOR_THIS_SESSION As Long = &H0
    
    
    Private gHW As Long
    Private lpPrevWndProc As Long
    
    
    Public Sub Hook(hWnd As Long)
        gHW = hWnd
        lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, AddressOf WindowProc)
        Call WTSRegisterSessionNotificationA(hWnd, NOTIFY_FOR_ALL_SESSIONS)
    End Sub
    
    
    Public Sub Unhook()
        Call SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)
        Call WTSUnRegisterSessionNotificationA(gHW)
    End Sub
    
    
    Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, _
        ByVal wParam As Long, ByVal lParam As Long) As Long
    
        Select Case uMsg
          Case WM_WTSSESSION_CHANGE
            Select Case wParam
              Case WTS_SESSION_LOCK
                'Sitzung wird gesperrt
                  '...
              Case WTS_SESSION_UNLOCK
                'Sitzung wird entsperrt
                  '...
            End Select
        End Select
          'Auf jeden Fall die Standardverarbeitung aufrufen
        WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
    End Function
    Alles anzeigen

    Nun habe ich von VB aber keinen Plan. Kann mir da mal jemand helfen, das in AutoIt zu übersetzen?

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™