Schau dir mal
[autoit]_GUICtrlListBox_SetSel()
[/autoit]
an
Schau dir mal
[autoit]_GUICtrlListBox_SetSel()
[/autoit]
an
Probier mal:
[autoit]$b = GUICtrlRead($Combo1)
HotKeySet("{"&$b&"}", "start_b")
oder kürzer:
[autoit]HotKeySet("{"&GUICtrlRead($Combo1)&"}", "start_b")
[/autoit]Das soll ja kein Bot etc. werden, sondern eine simulierte Zusatztaste die es ja auf diversen Mäusen von Haus aus gibt. Wenn sich die Taste mit einem Treiber umstellen ließe müsste man nicht darüber diskutieren.
Gibt ja mittlerweile Mäuse mit 12 Daumentasten, welche frei belegbar sind, da stellt sich die Frage auch niemand
Grüße euch!
Da ich mit den WinAPI sachen nicht klar komme und eine solide Lösung für mein Problem haben möchte wende ich mich hier mal an die Profis
Folgendes Problem:
Ich habe eine Maus mit "Doppelklick-Taste", diese sendet "PrimaryDown - PrimaryUp - PrimaryDown - PrimaryUp" in einer Zeit kleiner 20ms
Nun möchte ich diese Taste alternativ belegt haben um sie in einem MMO als zusätzliche Taste belegen zu können (ähnlich der Daumentasten)
Ich bräuchte also ein Script welches alle Doppelklicks die schneller als 20ms sind hooked und stattdessen eine andere Maustaste (Zusatztaste) simuliert.
Die Primary - also linke Maustaste - und normal durchgeführte Doppelklicks sollen natürlich ganz normal durchgehen
Danke im Voraus
Shadow667
Gefällt mir gut!
Müsste die Seite nicht aus rechtlicher Sicht ein Impressum haben?
Alles anzeigenHi,
ich hätte folgende Fragen:
1. Wie kann man ein HotKey temporär deaktivieren?2. Wie kann ich abfragen ob ein Fenster aktiv ist?
- habe versucht mit WinActive zu arbeiten, hat aber leider ÜBERHAUPT nicht funktioniert. Damit hat er mir lediglich das Fenster in den Vordergrund geholt, nicht aber abgefragt ob es im Vordergrund ist._____
Insgesamt möchte ich Folgendes bewerkstelligen:
Wenn das GUI-Fenster bzw. ein bestimmtes Tabitem aktiv ist sollen bestimmte Tasten mit HotKeySet abgefragt werden, ansonsten soll ganz normal die vorher abgefragte Taste "gesendet" werden - also am besten HotKeySet deaktiviert werden.Ich möchte nur äußerst ungerne in den GUI-Loop eine derartige Abfrage einbauen, da ich ja eigentlich eben explizit versuche eine Geschwindigkeitsabnahme zu verhindern.
Ideen?
Zu 1: hast du evtl. WinActivate() statt WinActive() verwendet?
Zu 2: HotKeySet() mit deinem Hotkey ohne den 2. Parameter zu verwenden deaktiviert den Hotkey
[autoit]HotKeySet("{ESC}", "_exit") ;aktiviert den HotKey
HotKeySet("{ESC}") ;deaktiviert den HotKey
Edit: Hier noch ein Beispiel für Hotkeyset per aktivem Tab
HotKeySet("{Space}", "_Beep")
[/autoit] [autoit][/autoit] [autoit]$GUI = GUICreate("Tab-Beispiel", 500,500)
$Tab = GUICtrlCreateTab(5,5,490,490)
GUICtrlCreateTabItem("Tab 1")
GUICtrlCreateTabItem("Tab 2")
GUICtrlCreateTabItem("")
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
Switch GUIGetMsg()
Case -3
Exit
Case $Tab
Switch GUICtrlRead($Tab)
Case 0
HotKeySet("{Space}", "_Beep")
Case 1
HotKeySet("{Space}")
EndSwitch
EndSwitch
WEnd
Func _Beep()
HotKeySet("{Space}") ; es bietet sich an den HotKey am Anfang der Funktion zu deaktivieren
Beep(2000, 100)
HotKeySet("{Space}", "_Beep") ; und am Ende wieder zu aktivieren
EndFunc
Was genau hast du denn vor zu scripten?
Ich hoffe doch nicht, dass es den AGB des Betreibers widerspricht
8 Manipulationen und unerlaubte Eingriffe
8.1 Die Nutzung der Leistungen ist nur mittels eines Internetbrowsers oder spezieller von FARBFLUT zur Verfügung gestellter oder ausdrücklich zugelassener Anwendungen, Tools oder Skripten zulässig.
8.2 Nutzer sind ausdrücklich nicht berechtigt, Maßnahmen, Mechanismen oder Software in Verbindung mit den von FARBFLUT bereitgestellten Leistungen zu verwenden, die den störungsfreien Ablauf gefährden können. Der Nutzer darf generell keine Maßnahmen ergreifen, die eine unzumutbare und/oder übermäßige Belastung der technischen Kapazitäten zur Folge haben können oder in sonstiger Weise störend in den Betrieb der Leistungen eingreifen. Insbesondere ist die Modifikation oder das Blockieren von Inhalten (explizit auch Werbeinhalte) der Leistungen nicht gestattet. Ebenso ist es insbesondere untersagt, sich durch Hacking oder andere Mittel und Methoden unbefugt Zugang zu den Dienstleistungen, Benutzerkonten oder Netzwerken zu verschaffen.
8.3 Der Einsatz von Software zur systematischen oder automatisierten Steuerung und/oder Reproduktion bzw. Auswertung der Leistungen oder einzelner Funktionen (durch z.B. Bots, Makros, Skripte, etc.) ist unzulässig.
8.4 Der Login der Nutzer in ein von FARBFLUT betriebenes Spiel oder eine Anwendung ist nur über die zugehörige Webseite und die bereitgestellte Eingabemaske erlaubt. Ein automatisierter Login ist nicht erlaubt, unabhängig davon, ob die bereitgestellte Eingabemaske genutzt wird oder nicht.
$String = "?Freitag, ?12. ?April ?2013 11:55:44"
$StringNeu = StringReplace($String,"?","")
ConsoleWrite("Alt: "&$String&@CRLF&"Neu: "&$StringNeu&@CRLF)
GUICtrlSetData($Edit, "")
[/autoit]Hab mal das Script entknotet, ansonsten unverändert:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#RequireAdmin
#NoTrayIcon
$ini = "cfg.ini"
If FileExists($ini) Then
$rx = IniRead($ini, "active", "x", "ERROR")
$ry = IniRead($ini, "active", "y", "ERROR")
$rt = IniRead($ini, "active", "t", "ERROR")
$rd = IniRead($ini, "active", "d", "ERROR")
$rk = IniRead($ini, "active", "k", "ERROR")
$fd = IniRead($ini, "flick", "d", "ERROR")
$raged = IniRead($ini, "rage", "d", "ERROR")
$ld = IniRead($ini, "legit", "d", "ERROR")
$od = IniRead($ini, "own", "d", "ERROR")
$fk = IniRead($ini, "flick", "k", "ERROR")
$ragek = IniRead($ini, "rage", "k", "ERROR")
$lk = IniRead($ini, "legit", "k", "ERROR")
$ok = IniRead($ini, "own", "k", "ERROR")
Else
IniWrite($ini, "active", "x", "-")
IniWrite($ini, "active", "y", "-")
IniWrite($ini, "active", "t", "-")
IniWrite($ini, "active", "d", "-")
IniWrite($ini, "active", "k", "-")
IniWrite($ini, "flick", "d", "0")
IniWrite($ini, "flick", "k", "0")
IniWrite($ini, "rage", "d", "25")
IniWrite($ini, "rage", "k", "0")
IniWrite($ini, "legit", "d", "85")
IniWrite($ini, "legit", "k", "?")
IniWrite($ini, "own", "d", "?")
IniWrite($ini, "own", "k", "?")
$rx = IniRead($ini, "active", "x", "ERROR")
$ry = IniRead($ini, "active", "y", "ERROR")
$rt = IniRead($ini, "active", "t", "ERROR")
$rd = IniRead($ini, "active", "d", "ERROR")
$rk = IniRead($ini, "active", "k", "ERROR")
$fd = IniRead($ini, "flick", "d", "ERROR")
$raged = IniRead($ini, "rage", "d", "ERROR")
$ld = IniRead($ini, "legit", "d", "ERROR")
$od = IniRead($ini, "own", "d", "ERROR")
$fk = IniRead($ini, "flick", "k", "ERROR")
$ragek = IniRead($ini, "rage", "k", "ERROR")
$lk = IniRead($ini, "legit", "k", "ERROR")
$ok = IniRead($ini, "own", "k", "ERROR")
Sleep(1000)
EndIf
#region ### START Koda GUI section ### Form=C:\Users\Tim\Documents\Form1_1.kxf
$Form1_1 = GUICreate("Settings", 273, 133, 509, 485, $WS_POPUP)
GUISetBkColor(0x000000)
$resolution = GUICtrlCreateLabel("Screenresolution:", 8, 8, 145, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$exit = GUICtrlCreateLabel("x", 200, 0, 20, 41)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$tolerance = GUICtrlCreateLabel("Tolerance:", 64, 40, 88, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$delay = GUICtrlCreateLabel("Delay:", 96, 72, 54, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$key = GUICtrlCreateLabel("Triggerkey:", 56, 104, 92, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$ix = GUICtrlCreateInput($rx * 2, 152, 8, 41, 21)
$iy = GUICtrlCreateInput($ry * 2, 224, 8, 41, 21)
$it = GUICtrlCreateInput($rt, 152, 40, 41, 21)
$id = GUICtrlCreateInput($rd, 152, 72, 41, 21)
$ik = GUICtrlCreateInput($rk, 152, 104, 41, 21)
$save = GUICtrlCreateButton("Save!", 200, 40, 67, 57)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$settings = GUICtrlCreateButton("Settings", 200, 104, 67, 25)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
#region ### START Koda GUI section ### Form=
$settingsform = GUICreate("Settings", 178, 75, 192, 114, $WS_POPUP)
GUISetBkColor(0x000000)
$flick = GUICtrlCreateButton("Flick", 8, 8, 75, 25)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$rage = GUICtrlCreateButton("RAGE", 96, 8, 75, 25)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$legit = GUICtrlCreateButton("legit", 8, 40, 75, 25)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$own = GUICtrlCreateButton("Your Settings", 96, 40, 75, 25)
GUICtrlSetBkColor(-1, 0xFFFFFF)
#endregion ### END Koda GUI section ###
#region ### START Koda GUI section ### Form=
$Form3 = GUICreate("Settings", 211, 66, 433, 388, $WS_POPUP)
GUISetBkColor(0x000000)
$delay = GUICtrlCreateLabel("Delay:", 48, 8, 54, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$key = GUICtrlCreateLabel("Triggerkey:", 8, 32, 92, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$id3 = GUICtrlCreateInput($fd, 104, 8, 41, 21)
$ik3 = GUICtrlCreateInput($fk, 104, 32, 41, 21)
$save3 = GUICtrlCreateButton("Save!", 152, 8, 49, 49)
GUICtrlSetBkColor(-1, 0xFFFFFF)
#endregion ### END Koda GUI section ###
#region ### START Koda GUI section ### Form=
$Form4 = GUICreate("Settings", 211, 66, 433, 388, $WS_POPUP)
GUISetBkColor(0x000000)
$delay = GUICtrlCreateLabel("Delay:", 48, 8, 54, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$key = GUICtrlCreateLabel("Triggerkey:", 8, 32, 92, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$id4 = GUICtrlCreateInput($raged, 104, 8, 41, 21)
$ik4 = GUICtrlCreateInput($ragek, 104, 32, 41, 21)
$save4 = GUICtrlCreateButton("Save!", 152, 8, 49, 49)
GUICtrlSetBkColor(-1, 0xFFFFFF)
#endregion ### END Koda GUI section ###
#region ### START Koda GUI section ### Form=
$Form5 = GUICreate("Settings", 211, 66, 433, 388, $WS_POPUP)
GUISetBkColor(0x000000)
$delay = GUICtrlCreateLabel("Delay:", 48, 8, 54, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$key = GUICtrlCreateLabel("Triggerkey:", 8, 32, 92, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$id5 = GUICtrlCreateInput($ld, 104, 8, 41, 21)
$ik5 = GUICtrlCreateInput($lk, 104, 32, 41, 21)
$save5 = GUICtrlCreateButton("Save!", 152, 8, 49, 49)
GUICtrlSetBkColor(-1, 0xFFFFFF)
#endregion ### END Koda GUI section ###
#region ### START Koda GUI section ### Form=
$Form6 = GUICreate("Settings", 211, 66, 433, 388, $WS_POPUP)
GUISetBkColor(0x000000)
$delay = GUICtrlCreateLabel("Delay:", 48, 8, 54, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$key = GUICtrlCreateLabel("Triggerkey:", 8, 32, 92, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$id6 = GUICtrlCreateInput($od, 104, 8, 41, 21)
$ik6 = GUICtrlCreateInput($ok, 104, 32, 41, 21)
$save6 = GUICtrlCreateButton("Save!", 152, 8, 49, 49)
GUICtrlSetBkColor(-1, 0xFFFFFF)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $save
$x = GUICtrlRead($ix)
$y = GUICtrlRead($iy)
$t = GUICtrlRead($it)
$d = GUICtrlRead($id)
$k = GUICtrlRead($ik)
IniWrite($ini, "active", "x", $x / 2)
IniWrite($ini, "active", "y", $y / 2)
IniWrite($ini, "active", "t", $t)
IniWrite($ini, "active", "d", $d)
IniWrite($ini, "active", "k", $k)
If FileExists("cfg.ini") Then
MsgBox(4096, "Settings", "Config was sucessfully created!")
Exit
Else
MsgBox(4096, "Settings", "FAILED! Please read the README!")
EndIf
Case $exit
Exit
Case $resolution
MsgBox(64, "Settings", "Just write your screenresolution in the input")
Case $tolerance
MsgBox(64, "Settings", "Write the tolerance in pixels (I use 5 for FullHD)")
Case $delay
MsgBox(64, "Settings", "Write a delay in ms")
Case $key
MsgBox(64, "Settings", "The key numbers can you see in the key.txt. It will be automaticaly open!")
ShellExecute("key.txt")
Case $settings
GUISetState(@SW_SHOW, $settingsform)
Case $flick
GUISetState(@SW_SHOW, $Form3)
Case $rage
GUISetState(@SW_SHOW, $Form4)
Case $legit
GUISetState(@SW_SHOW, $Form4)
Case $own
GUISetState(@SW_SHOW, $Form4)
Case $save3
$fd2 = GUICtrlRead($id3)
$fk2 = GUICtrlRead($ik3)
IniWrite($ini, "flick", "d", $fd2)
IniWrite($ini, "flick", "k", $fk2)
GUISetState(@SW_HIDE, $Form3)
GUISetState(@SW_HIDE, $settingsform)
Case $save4
$raged2 = GUICtrlRead($id4)
$ragek2 = GUICtrlRead($ik4)
IniWrite($ini, "rage", "d", $raged2)
IniWrite($ini, "rage", "k", $ragek2)
GUISetState(@SW_HIDE, $Form4)
GUISetState(@SW_HIDE, $settingsform)
Case $save5
$ld2 = GUICtrlRead($id5)
$lk2 = GUICtrlRead($ik5)
IniWrite($ini, "legit", "d", $ld2)
IniWrite($ini, "legit", "k", $lk2)
GUISetState(@SW_HIDE, $Form5)
GUISetState(@SW_HIDE, $settingsform)
Case $save6
$od2 = GUICtrlRead($id6)
$ok2 = GUICtrlRead($ik6)
IniWrite($ini, "own", "d", $od2)
IniWrite($ini, "own", "k", $ok2)
GUISetState(@SW_HIDE, $Form6)
GUISetState(@SW_HIDE, $settingsform)
EndSwitch
WEnd
Edit: Alcros: wenn die .ini nicht existiert wird sie neu erstellt
Irgendwo is aber nen Fehler drin:
Eingabe:1002
Ausgabe: zweitausendundzwei
scheint als würde die tausenderstelle von der einerstelle beeinflusst denn
Eingabe 1004 ergibt viertausendundvier
Edit: auch sehr interessant:
Eingabe: 60077
Ausgabe: siebenundzigtausendsiebenundzig
Hier sollte
[autoit]_ExcelSheetActivate()
[/autoit]helfen
Recht hast du, allerdings nutzt er die UDF FileListToArray ja so oder so mit default Parametern sprich das erste bleibt die Anzahl von daher
Ich würde sagen wichtiger ist sich das zu merken und den Fehler nicht nochmal zu machen
Grüße
Der Tipp war ja auch nicht speziell für diese Funktion sondern für den allgemeinen Umgang mit Arrays gedacht
Entweder du machst es so:
#include <File.au3>
#include <Array.au3>
$Files = _FileListToArray(@ScriptDir)
For $i = 1 to Ubound($Files)-1
$Open = FileOpen($Files[$i])
$Read = FileRead($Open)
ConsoleWrite($Read)
FileClose($Open)
Next
oder so:
#include <File.au3>
#include <Array.au3>
$Files = _FileListToArray(@ScriptDir)
For $i = 1 to $Files[0]
$Open = FileOpen($Files[$i])
$Read = FileRead($Open)
ConsoleWrite($Read)
FileClose($Open)
Next
Ich persönlich würde Variante 1 benutzen, da nicht alle Arrays im ersten Element die Anzahl der Elemente haben
Wenn alle .txt in einem Verzeichnis liegen würd ich _FileListToArray() verwenden und dieses Array dann in einer For-Schleife abarbeiten
Wie wärs so:
#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]#region ### START Koda GUI section ### Form=C:\Users\Jo\Desktop\Form1.kxf
$Form1_1 = GUICreate("Form1", 421, 187, 200, 171)
$basis = GUICtrlCreateInput("", 240, 12, 121, 21)
$BasisText = GUICtrlCreateLabel("Basis Belichtungszeit in Sekunden", 56, 16, 166, 17)
$faktor = GUICtrlCreateCombo("200", 240, 68, 121, 21) ; der Einfachheit halber ComboBox
GUICtrlSetData(-1, "400|800|1600|3200|6400|12800", "200") ; hiermit wird die ComboBox befüllt
$ISOText = GUICtrlCreateLabel("Welche ISO-Zahl wurde verwendet?", 56, 72, 177, 17)
$Filtertext = GUICtrlCreateLabel("Soll der Filter eingesetzt werden?", 56, 120, 159, 17)
$filter = GUICtrlCreateCheckbox("Ja", 240, 118, 97, 17)
$Fertig = GUICtrlCreateButton("Fertig", 154, 152, 113, 25)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Fertig
_Auswertung() ; Funktion die durch Buttonklick aufgerufen wird
EndSwitch
WEnd
Func _Auswertung()
If BitAND(GUICtrlRead($filter), $GUI_CHECKED) Then ; Wenn Checkbox geckecked
MsgBox("0", "Ergebniss", "Ihr gewünschtes Ergebniss lautet: " & GUICtrlRead($basis) * GUICtrlRead($faktor) / 100)
Else ; Sonst
MsgBox("0", "Ergebniss", "Ihr gewünschtes Ergebniss lautet: " & GUICtrlRead($basis))
EndIf
EndFunc ;==>_Auswertung
Ich denke das hier sollte sich auch auf dein aktuelles Spiel anwenden lassen, natürlich in abgewandelter Form
Wenn alles geklärt ist, setz doch bitte den ersten Beitrag auf gelöst