Mach vorher einen Ping auf den Computernamen, dann bekommst Du die IP frei Haus. ![]()
Edit: Oder noch einfacher: Schau Dir mal "TCPNameToIP" an.
Mach vorher einen Ping auf den Computernamen, dann bekommst Du die IP frei Haus. ![]()
Edit: Oder noch einfacher: Schau Dir mal "TCPNameToIP" an.
Um eine Variable auszuschließen, kannst Du eine If-Abfrage einbauen:
Global $1 = 11, $2 = 12, $3 = 13, $4 = 14, $5 = 15
$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
Func _msgbox($zahl)
MsgBox(0, "", $zahl)
EndFunc ;==>_msgbox
Wenn Du eine Variable ausschließen willst, dann trag sie einfach nicht in den String ein.
Oder habe ich das jetzt falsch verstanden?
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
Edit: Bei Eval müssen die Variablennamen ohne das Dollarzeichen übergeben werden!
Vielleicht solltest Du uns mal mitteilen, um welches Programm es hier geht, dann könnte das mal jemand nachvollziehen und bestätigen bzw. widerlegen.
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.
Oder so (Antwort auf beide Fragen):
[autoit]
#include <array.au3>
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)
_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)
_ArrayDisplay($array)
[/autoit]azunai: Kannst Du mal Dein Passwort posten?
Oder pee: Poste doch einfach mal alle Scripte. Ich würde mir die gern mal ansehen.
Danke!
Ohoh...118 Downloads in 2 Tagen...habe ich da jetzt eine Lawine losgetreten? ![]()
peethebee : Wurde angenommen!
Link zur Digitaluhr im Heise-Software-Archiv
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!
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
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?
@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.
Yeah! Das ist es!
Das mit den Dll-Calls habe ich nicht so drauf. Muss mich da mal mehr mit beschäftigen.
Vielen Dank!
Beispiel:
[autoit]
If MsgBox(4, 'Test', 'Programm starten?') = 6 Then
ConsoleWrite('Programm starten!' & @CRLF)
Else
ConsoleWrite('Dann eben nicht!' & @CRLF)
EndIf
Und wie verwende ich diese Funktionen? Aufruf?
Ah! Es geht doch! ![]()
So versteht man auch, was Du möchtest.
Und hier bekommst Du dann auch die Lösung:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]_Color_Example()
[/autoit] [autoit][/autoit] [autoit]Func _Color_Example()
Local $GUI, $Btn_RGB, $iMemo
$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()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Btn_RGB
GUICtrlSetData($iMemo, _ChooseColor(2, 0x0080C0, 2, $GUI))
EndSwitch
WEnd
EndFunc ;==>_Color_Example
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. ![]()
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')
While 1
Sleep(50)
WEnd
Func ON_WM_WTSSESSION_CHANGE($hWndGUI, $MsgID, $WParam, $LParam)
ConsoleWrite(@HOUR&':'&@MIN&':'&@SEC&@CRLF)
EndFunc
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:
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?