Die eckigen Klammern rausnehmen - die bedeuten in der Syntaxbeschreibung, dass diese Parameter optional sind.
Beiträge von BugFix
-
-
Hi,
[autoit]
so kannst du LeftShift und RightShift auseinanderhalten:While 1
[/autoit][autoit][/autoit][autoit]
Sleep(20)
If _IsPressedAsync('A0') Then
MsgBox(0, '', 'LeftShift')
ElseIf _IsPressedAsync('A1') Then
MsgBox(0, '', 'RightShift')
ElseIf _IsPressedAsync('51') Then
Exit
EndIf
WEndFunc _IsPressedAsync($sHexKey)
[/autoit]
Local $ret, $i
For $i = 1 To 256
$ret = DllCall("user32.dll", "int", "GetAsyncKeyState", "int", '0x' & Hex($i, 2))
If $ret[0] <> 0 And Hex($i, 2) = $sHexKey Then Return True
Next
Return False
EndFunc -
Und wenn du genau hinschaust, wirst du feststellen, dass die Sternzeichenzuordnung eh horrender Blödsinn ist, da alles auf der Ansicht des Sternenhimmels von vor ca. 2000 Jahren beruht. Da gehört ein Shift rein, der die reale Position der Himmelskörper zur jeweiligen Zeit ermittelt
-- Viel Spaß beim Rechnen 
-
SuFu richtig nutzen!
IMMER erweiterte Suche benutzen und den Haken bei "Exakter Treffer" entfernen. - Dann klappts auch mit dem Nachbarn
-
Wozu das Rad neu erfinden? - Hat doch GtaSpider schon geschrieben:
G15 LCD Fernsteuern mit Acitve-X -
Wie hast du das Listview erzeugt?
[autoit]
Die UDF arbeiten zuverlässig, wenn das Handle verwendet wird. Dieses wird auch von _GUICtrlListView_Create() zurückgegeben. Falls du mit GUICtrlCreateListView() gearbeitet hast, lass dir das Handle ausgeben:$ListView = GUICtrlCreateListView()
[/autoit]
$hListView = GUICtrlGetHandle($ListView) -
Schau dir mal GUICtrlRead() an.
-
Deine Angabe ist aber kein UTC-Format. Es gibt verschiedene Darstellungsformen aber die Zeit wird in jedem Fall 6-stellig ausgegeben und das Offset 4-stellig. Wobei Datum und Uhrzeit durch T getrennt sind.
[autoit]
So könntest du es verwenden:ConsoleWrite(_GetUTC('19.10.2008') & @CRLF)
[/autoit][autoit][/autoit][autoit]Func _GetUTC($TTMMJJJJ, $OFFSET='+0100')
[/autoit]
Return StringMid($TTMMJJJJ, 7, 4) & StringMid($TTMMJJJJ, 4, 2) & StringLeft($TTMMJJJJ, 2) & 'T000000' & $OFFSET
EndFunc -
Die Idee eines "Board Manager" ist OK. Aber vielleicht wäre es sinnvoll Elemente so zu bezeichnen, dass deren Bedeutung intuitiv erkannt wird. z.B. würde Copy-Container o.ä. sofort klären, worum es geht.
Weiter so.Edit:
Anhand der vorigen Beiträge sehe ich, dass DeInstall-Probleme auftauchen. Mal als Tipp: Bietet Euer Tool, solange es in der Erprobungsphase ist, installationsfrei an. Denn solche Bugs, wie Zerschießen des Kontextmenüs, dürfen nicht passieren. Wer hat schon Lust, sein System zu reparieren, wenn er ein Programm getestet hat. -
Oder gleich die Farbe zurückgeben und nicht erst einer Variablen zuweisen
[autoit]
Func Farbezuordnen($Button)
[/autoit]
If FileExists("C:\Programme\Cliptomatik\Settings\Settings" & $Button & ".ini") Then
Return 0xff0000
Else
Return 0x008000
EndIf
EndFunc ;==>Farbezuordnen -
for to next geht hier nicht!
Was bitte, sollen wir jetzt damit anfangen?
Woraus schließt du, das diese Schleifenform für deinen Fall nicht möglich sei? -
jetz funktioniert der _arraysearch befehl anscheinend nicht mit mehrdimensionalen arrays - kann ich das irgendwie bewerkstelligen?
Doch, tut es - Syntaxbeschreibung lesen. Du kannst die Dimension, in der gesucht werden soll angeben. -
Ist es möglich eine markierte zeile zu "updaten" also mit neuen daten zu füllen wenn eine zeile angeklickt wurde?
Möglich ist es - aber ohne zu wissen, aus welcher Quelle du die Daten für das Listview zusammenstellst, kann man nichts konkretes sagen.
Also bitte mehr Infos. -
Bitte

hier mal in einer Schleife:Spoiler anzeigen
[autoit]Global $arPeriodSys[2][3] = [ _
[/autoit] [autoit][/autoit] [autoit]
["H", "Wasserstoff", "Wasserstoff: Gasförmig, Atommasse: 1,01u"], _
["He", "Helium", "Helium: Gasförmig, Atommasse: 4u"]]While True
[/autoit]
$sOut = ''
Do
$Input = InputBox('Eingabe', 'Bitte Namen oder Kürzel des Elements eingeben.' & @LF & 'Mit "Ende" wird das Programm beendet.')
Until $Input <> ''
If $Input = 'Ende' Then Exit
For $i = 0 To UBound($arPeriodSys) -1
If $arPeriodSys[$i][0] == $Input Or $arPeriodSys[$i][1] == $Input Then
$sOut = $arPeriodSys[$i][2]
ExitLoop
EndIf
Next
If $sOut <> '' Then MsgBox(0, 'Info', $sOut)
WEnd -
Das ist ein Paradebeispiel für den Einsatz von Arrays.
[autoit]Global $arPeriodSys[2][3] = [ _
[/autoit][autoit][/autoit][autoit]
["H", "Wasserstoff", "Wasserstoff: Gasförmig, Atommasse: 1,01u"], _
["He", "Helium", "Helium: Gasförmig, Atommasse: 4u"]]$Input = 'He'
[/autoit][autoit][/autoit][autoit]For $i = 0 To UBound($arPeriodSys) -1
[/autoit]
If $arPeriodSys[$i][0] == $Input Or $arPeriodSys[$i][1] == $Input Then ExitLoop
Next
MsgBox(0, 'Info', $arPeriodSys[$i][2]) -
Leg doch 'ne FullSize-GUI auf den Desktop und in dieser GUI hast du als Hintergrund den Screenshot. Aber machs mit Timer, damit der User spätestens nach 30 sec weiß - Das war ein Joke. Ansonsten sind evtl. schädliche Aktionen des Users die Folge.
-
Hab mal die Erweiterung für MIC gemacht, einfach über CheckBox auf Mikro switchen.
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <SliderConstants.au3>
#include <WindowsConstants.au3>
#include <audio.au3>
Opt("GUIOnEventMode", 1)
HotKeySet("^+{F6}", "_exitVol")Global $pos1[2] = [@DesktopWidth-3, @DesktopHeight/2 -108]
[/autoit] [autoit][/autoit] [autoit]
Global $pos2[2] = [@DesktopWidth-43, @DesktopHeight/2 -108]
Global $moved = False$guiSpeaker = GUICreate("PC", 38, 256, $pos1[0], $pos1[1], BitOR($WS_MINIMIZEBOX,$WS_CAPTION, _
[/autoit] [autoit][/autoit] [autoit]
$WS_POPUP,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
$slVol = GUICtrlCreateSlider(8, 16, 20, 150, BitOR($TBS_VERT,$TBS_TOP,$TBS_LEFT,$TBS_NOTICKS))
GUICtrlSetOnEvent(-1, "slVolChange")
GUICtrlSetData(-1, 100-_SoundGetMasterVolume())
$cbMute = GUICtrlCreateCheckbox("", 11, 173, 17, 17)
GUICtrlSetOnEvent(-1, "cbMuteClick")
If _isMute() Then
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetState($slVol, $GUI_DISABLE)
EndIf
$Label1 = GUICtrlCreateLabel("Aus", 9, 194, 22, 17)
$cbMic = GUICtrlCreateCheckbox("", 11, 215, 17, 17)
GUICtrlSetOnEvent(-1, "cbMicClick")
$LabelMic = GUICtrlCreateLabel("Mic", 9, 234, 22, 17)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
_checkPos()
WEndFunc _exitVol()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc cbMuteClick()
[/autoit] [autoit][/autoit] [autoit]
Local $id
If BitAND(GUICtrlRead($cbMic), $GUI_CHECKED) Then
$id = 5000
Else
$id = 1000
EndIf
If BitAND(GUICtrlRead($cbMute), $GUI_CHECKED) Then
GUICtrlSetState($slVol, $GUI_DISABLE)
_MuteVol($id)
Else
GUICtrlSetState($slVol, $GUI_ENABLE)
_UnMuteVol($id)
EndIf
EndFuncFunc cbMicClick()
[/autoit] [autoit][/autoit] [autoit]
If BitAND(GUICtrlRead($cbMic), $GUI_CHECKED) Then
WinSetTitle($guiSpeaker, '', 'MIC')
If Not _isMute(5000) Then
GUICtrlSetState($cbMute, $GUI_UNCHECKED)
Else
GUICtrlSetState($cbMute, $GUI_CHECKED)
EndIf
GUICtrlSetData($slVol, 100-_SoundGetMicrophoneVolume())
Else
WinSetTitle($guiSpeaker, '', 'PC')
If Not _isMute() Then
GUICtrlSetState($cbMute, $GUI_UNCHECKED)
Else
GUICtrlSetState($cbMute, $GUI_CHECKED)
EndIf
GUICtrlSetData($slVol, 100-_SoundGetMasterVolume())
EndIf
EndFuncFunc slVolChange()
[/autoit] [autoit][/autoit] [autoit]
If BitAND(GUICtrlRead($cbMic), $GUI_CHECKED) Then
_SoundSetMicrophoneVolume(100- GUICtrlRead($slVol))
Else
_SoundSetMasterVolume(100- GUICtrlRead($slVol))
EndIf
EndFuncFunc _checkPos()
[/autoit] [autoit][/autoit] [autoit]
Local $mouse = MouseGetPos()
If ($mouse[0] > $pos1[0]) Then
WinMove($guiSpeaker, '', $pos2[0], $pos2[1])
$moved = True
ElseIf $moved And ($mouse[0] < $pos1[0]-50) Then
WinMove($guiSpeaker, '', $pos1[0], $pos1[1])
$moved = False
EndIf
EndFuncFunc _MuteVol($opt = 1000)
[/autoit] [autoit][/autoit] [autoit]
Local $retVal = 0, $ex = False
If Not WinExists('[CLASS:Volume Control]') Then
Run('sndvol32', '', @SW_HIDE)
$ex = True
EndIf
If WinWait('[CLASS:Volume Control]', '', 2) = 0 Then Return -1
$retVal = ControlCommand('[CLASS:Volume Control]', '', $opt, 'isChecked')
If @error Then Return -2
If Not $retVal Then
ControlCommand('[CLASS:Volume Control]', '', $opt, 'Check')
If @error Then Return -2
EndIf
If $ex = True Then WinClose('[CLASS:Volume Control]')
Return
EndFunc ;==>_MuteVolFunc _UnMuteVol($opt = 1000)
[/autoit]
Local $retVal = 0, $ex = False
If Not WinExists('[CLASS:Volume Control]') Then
Run('sndvol32', '', @SW_HIDE)
$ex = True
EndIf
If WinWait('[CLASS:Volume Control]', '', 2) = 0 Then Return -1
$retVal = ControlCommand('[CLASS:Volume Control]', '', $opt, 'isChecked')
If @error Then Return -2
If $retVal Then
ControlCommand('[CLASS:Volume Control]', '', $opt, 'UnCheck')
If @error Then Return -2
EndIf
If $ex = True Then WinClose('[CLASS:Volume Control]')
Return
EndFunc ;==>_UnMuteVol -
Das ist allgemeingültig. Ausnahmen bilden Run() und ShellExecute(), da wird das aufrufende Skript sofort fortgesetzt. Deshalb gibt es beide Befehle auch mit der Ergänzung ~Wait.
-
wo krieg ich dir her

Lesen?ZitatBenötigt wird dafür die audio.au3 von hier
Da steht im ersten Post der Link.

-
1. Statt der While-Schleife, verwende einer zählergesteuerte Schleife (For-To-Next).
2. Es macht wenig Sinn, wenn du einen String splittest, und mit jedem enthaltenen Buchstaben einen HotKey generierst, die dann alle dieselbe Funktion benutzen. (zumindest erschließt sich mir der Sinn nicht)Übrigens brauchst du eine Schleife nicht verlassen, um eine Funktion auszuführen.
[autoit]
Wenn du innerhalb der Schleife die Funktion aufrufst, wird diese ausgeführt und erst dann die Schleife fortgesetzt.
Hier mal ein Muster, alle 10 min wird eine Funktion aufgerufen:$start = Timerinit()
[/autoit][autoit][/autoit][autoit]
While True
If TimerDiff($start) > 10*60*1000 Then ; alle 10 min
_myFunc() ; Aufruf der Funktion
$start = Timerinit() ; Timer neu initialisieren
EndIf
WEndFunc _myFunc()
[/autoit]
; Code der Funktion
EndFunc