Jump to content

EchaniDrgn

Members
  • Posts

    11
  • Joined

  • Last visited

EchaniDrgn's Achievements

Seeker

Seeker (1/7)

0

Reputation

  1. Already DMCA'd on the video. what 24 hours? :-(
  2. That's cool, I hadn't noticed the level of error you had in there before. I guess my OCR could be made to resemble your definition comparison by doing a bitwise and with 2^i numbers through each row and figuring out how many matches you get. I'm fortunate that the flash game I'm using my OCR with has the characters in the same place and the color I've chosen to look for is unique to the letters I'm comparing to. Unfortunately the CAPTCHA images aren't so predictable. Would be great if it was. :-)
  3. Thanks for the suggestions, I think I'll toss them together. I was already thinking of doing the clear button, but getting rid of the grab and put buttons makes sense. I was also thinking of making a small amount of what is to be pasted in the tooltip, but I don't want to muddy up the instructions on how to cancel out. Maybe I'll put that in anyways. Thanks for the suggestions. :-)
  4. This is a little clipboard script I cobbled together because I hated using notepad for code scraps when I had to paste functions into multiple files. It's pretty easy to extend this script including adding buttons and adding clipboard rows. Any suggestions? CODE #include <GUIConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Misc.au3> #Region GUI_CONSTANTS Global $TITLE_STRING = "Super Clipboard by EchaniDrgn"; Global Const $BUTTON_HEIGHT = 20; Global Const $BUTTON_WIDTH = 60; Global Const $BUTTON_COLUMNS = 5; Global Const $BUTTON_ROWS = 12; Global Const $BORDER = 10; Global Const $GUI_WINDOW_WIDTH = $BUTTON_WIDTH * $BUTTON_COLUMNS + $BORDER * 2; Global Const $GUI_WINDOW_HEIGHT = $BUTTON_HEIGHT * $BUTTON_ROWS + $BORDER * 2; Global Const $GUI_WINDOW_DEFAULT_X = Number(IniRead(@ScriptDir & "\SuperClipboard.ini", "Startup", "default_x", "-1")); Global Const $GUI_WINDOW_DEFAULT_Y = Number(IniRead(@ScriptDir & "\SuperClipboard.ini", "Startup", "default_y", "-1")); #EndRegion #Region GLOBALS Global Enum $MAIN_WINDOW, _ $COPY_PASTE_BUTTON_1, _ $DATA_SET_BUTTON_1, _ $COPY_PASTE_AREA_1, _ $COPY_PASTE_BUTTON_2, _ $DATA_SET_BUTTON_2, _ $COPY_PASTE_AREA_2, _ $COPY_PASTE_BUTTON_3, _ $DATA_SET_BUTTON_3, _ $COPY_PASTE_AREA_3, _ $COPY_PASTE_BUTTON_4, _ $DATA_SET_BUTTON_4, _ $COPY_PASTE_AREA_4, _ $GUI_LIST_SIZE; Global Enum $GUI_NAME, _ $GUI_LABEL, _ $GUI_TYPE, _ $GUI_LEFT, _ $GUI_TOP, _ $GUI_HEIGHT, _ $GUI_WIDTH, _ $GUI_HANDLE, _ $GUI_ATTRIBUTES_LENGTH; Global Enum $TYPE_COPY_PASTE_BUTTON, _ $TYPE_EDIT_BOX, _ $TYPE_DATA_SET_BUTTON, _ $TYPES_LENGTH; Global $GUI_ARRAY[$GUI_LIST_SIZE][$GUI_ATTRIBUTES_LENGTH]; Global $dll = DllOpen("user32.dll") #EndRegion Main() Func Main() Setup() While 1 Sleep(1000) WEnd EndFunc ; Support Functions =================================================================================================== Func Setup() Opt("GUIOnEventMode", 1) ; Change to OnEvent mode PopulateGuiElement($COPY_PASTE_BUTTON_1, "CopyPasteButton1", "Grab", $TYPE_COPY_PASTE_BUTTON, 0, 0, 1, 3); PopulateGuiElement($COPY_PASTE_BUTTON_2, "CopyPasteButton2", "Grab", $TYPE_COPY_PASTE_BUTTON, 0, 3, 1, 3); PopulateGuiElement($COPY_PASTE_BUTTON_3, "CopyPasteButton3", "Grab", $TYPE_COPY_PASTE_BUTTON, 0, 6, 1, 3); PopulateGuiElement($COPY_PASTE_BUTTON_4, "CopyPasteButton4", "Grab", $TYPE_COPY_PASTE_BUTTON, 0, 9, 1, 3); PopulateGuiElement($DATA_SET_BUTTON_1, "DataSetButton1", "Put", $TYPE_DATA_SET_BUTTON, 1, 0, 1, 3); PopulateGuiElement($DATA_SET_BUTTON_2, "DataSetButton2", "Put", $TYPE_DATA_SET_BUTTON, 1, 3, 1, 3); PopulateGuiElement($DATA_SET_BUTTON_3, "DataSetButton3", "Put", $TYPE_DATA_SET_BUTTON, 1, 6, 1, 3); PopulateGuiElement($DATA_SET_BUTTON_4, "DataSetButton4", "Put", $TYPE_DATA_SET_BUTTON, 1, 9, 1, 3); PopulateGuiElement($COPY_PASTE_AREA_1, "CopyPasteArea1", "", $TYPE_EDIT_BOX, 2, 0, 3, 3); PopulateGuiElement($COPY_PASTE_AREA_2, "CopyPasteArea2", "", $TYPE_EDIT_BOX, 2, 3, 3, 3); PopulateGuiElement($COPY_PASTE_AREA_3, "CopyPasteArea3", "", $TYPE_EDIT_BOX, 2, 6, 3, 3); PopulateGuiElement($COPY_PASTE_AREA_4, "CopyPasteArea4", "", $TYPE_EDIT_BOX, 2, 9, 3, 3); GUICreate($TITLE_STRING, _ $GUI_WINDOW_WIDTH, _ $GUI_WINDOW_HEIGHT, _ $GUI_WINDOW_DEFAULT_X, _ $GUI_WINDOW_DEFAULT_Y); GUISetOnEvent($GUI_EVENT_CLOSE, "Cleanup"); CreateGuis(); GUISetState(@SW_SHOW); EndFunc Func Cleanup() Local $winPos = WinGetPos($TITLE_STRING); IniWrite(@ScriptDir & "\SuperClipboard.ini", "Startup", "default_x", String($winPos[0])); IniWrite(@ScriptDir & "\SuperClipboard.ini", "Startup", "default_y", String($winPos[1])); WriteOutToFile($COPY_PASTE_AREA_1); WriteOutToFile($COPY_PASTE_AREA_2); WriteOutToFile($COPY_PASTE_AREA_3); WriteOutToFile($COPY_PASTE_AREA_4); DllClose($dll); Exit; EndFunc Func WriteOutToFile(Const $guiEnum) If FileExists(GuiEnumToFile($guiEnum)) Then FileDelete(GuiEnumToFile($guiEnum)) FileWrite(GuiEnumToFile($guiEnum), GUICtrlRead($GUI_ARRAY[$guiEnum][$GUI_HANDLE])); EndFunc Func GuiEnumToFile(Const $guiEnum) Return @ScriptDir & "\" & $GUI_ARRAY[$guiEnum][$GUI_NAME] & ".txt"; EndFunc Func PopulateGuiElement(Const $guiEnum, Const $name, Const $label, Const $guiType, Const $column, Const $row, Const $width = 1, Const $height = 1) $GUI_ARRAY[$guiEnum][$GUI_NAME] = $name; $GUI_ARRAY[$guiEnum][$GUI_LABEL] = $label; $GUI_ARRAY[$guiEnum][$GUI_TYPE] = $guiType; $GUI_ARRAY[$guiEnum][$GUI_LEFT] = ColumnToCoordinate($column); $GUI_ARRAY[$guiEnum][$GUI_TOP] = RowToCoordinate($row); $GUI_ARRAY[$guiEnum][$GUI_WIDTH] = $width * $BUTTON_WIDTH; $GUI_ARRAY[$guiEnum][$GUI_HEIGHT] = $height * $BUTTON_HEIGHT; EndFunc Func ColumnToCoordinate(Const $column) Return $BORDER + ($BUTTON_WIDTH * $column); EndFunc Func RowToCoordinate (Const $row) Return $BORDER + ($BUTTON_HEIGHT * $row); EndFunc Func CreateGuis() For $i = 0 to $GUI_LIST_SIZE - 1 CreateGuiFromArray($i); Next EndFunc Func CreateGuiFromArray(Const $guiEnum) Local $tempString = ""; Switch $GUI_ARRAY[$guiEnum][$GUI_TYPE] Case $TYPE_EDIT_BOX $GUI_ARRAY[$guiEnum][$GUI_HANDLE] = GUICtrlCreateEdit($GUI_ARRAY[$guiEnum][$GUI_LABEL], _ $GUI_ARRAY[$guiEnum][$GUI_LEFT], _ $GUI_ARRAY[$guiEnum][$GUI_TOP], _ $GUI_ARRAY[$guiEnum][$GUI_WIDTH], _ $GUI_ARRAY[$guiEnum][$GUI_HEIGHT]); If FileExists(GuiEnumToFile($guiEnum)) Then $tempString = FileRead(GuiEnumToFile($guiEnum)); GUICtrlSetData($GUI_ARRAY[$guiEnum][$GUI_HANDLE], $tempString); FileDelete(GuiEnumToFile($guiEnum)); EndIf Case $TYPE_COPY_PASTE_BUTTON $GUI_ARRAY[$guiEnum][$GUI_HANDLE] = GUICtrlCreateButton($GUI_ARRAY[$guiEnum][$GUI_LABEL], _ $GUI_ARRAY[$guiEnum][$GUI_LEFT], _ $GUI_ARRAY[$guiEnum][$GUI_TOP], _ $GUI_ARRAY[$guiEnum][$GUI_WIDTH], _ $GUI_ARRAY[$guiEnum][$GUI_HEIGHT]); GUICtrlSetOnEvent($GUI_ARRAY[$guiEnum][$GUI_HANDLE], "CopyPasteButtonX") Case $TYPE_DATA_SET_BUTTON $GUI_ARRAY[$guiEnum][$GUI_HANDLE] = GUICtrlCreateButton($GUI_ARRAY[$guiEnum][$GUI_LABEL], _ $GUI_ARRAY[$guiEnum][$GUI_LEFT], _ $GUI_ARRAY[$guiEnum][$GUI_TOP], _ $GUI_ARRAY[$guiEnum][$GUI_WIDTH], _ $GUI_ARRAY[$guiEnum][$GUI_HEIGHT]); GUICtrlSetOnEvent($GUI_ARRAY[$guiEnum][$GUI_HANDLE], "DataSetButtonX") Case Else MsgBox(0, "Error", "Bad Type in CreateGuiFromArray"); EndSwitch EndFunc Func CopyPasteButtonX() Local $targetGuiEnum = GuiCtrlIdToEnum(@GUI_CtrlId) + 2; Local $tempString = ClipGet(); ClipPut(GUICtrlRead($GUI_ARRAY[$targetGuiEnum][$GUI_HANDLE])); While(Not _IsPressed("01", $dll)) Sleep(50); ToolTip("Click Location to paste" & @CR & "or select text to replace." & @CR & "Right-click to cancel."); If _IsPressed("02", $dll) Then ClipPut($tempString); ToolTip(""); Return False; EndIf WEnd While(_IsPressed("01", $dll)) Sleep(50); ToolTip("ESC to cancel"); If _IsPressed("1B", $dll) Then ClipPut($tempString); ToolTip(""); Return False; EndIf WEnd Send("^v"); ClipPut($tempString); ToolTip(""); Return True; EndFunc Func DataSetButtonX() Local $targetGuiEnum = GuiCtrlIdToEnum(@GUI_CtrlId) + 1; GUICtrlSetData($GUI_ARRAY[$targetGuiEnum][$GUI_HANDLE], ClipGet()); EndFunc Func GuiCtrlIdToEnum(Const $guiCtrlId) For $i = 0 to $GUI_LIST_SIZE - 1 If $guiCtrlId = $GUI_ARRAY[$i][$GUI_HANDLE] Then Return $i Next Return -1; EndFunc
  5. I'm curious why you don't turn the definition into say a 32 or less bit integer. I haven't read this entire thread to see, but this would lower your number of comparisons to one per array rather than one per element of the array. I have some home-brew OCR in a bot of my own that searches a given area for a "signature" of pixels of a certain color. Creates a definition on the fly and compares that definition against a flat database (2d array). As each signature is checked it only continues the comparison if it continues to get a match. This isn't bulletproof OCR but it does allow me to consistently read the characters I'm looking for. Here's a code snippet from my bot. I get the definition and turn it into an array of 16 integers only using the lowest 16 bits. For $index = 0 to 6 $currentOffset[0] = $OCR_LETTER_OFFSET_ARRAYS[$game][$index][0] + $windowPosition[0]; $currentOffset[1] = $OCR_LETTER_OFFSET_ARRAYS[$game][$index][1] + $windowPosition[1] + $BROWSER_OFFSET[$target]; $currentOffset = PixelSearch($currentOffset[0], $currentOffset[1], $currentOffset[0] + 30, _ $currentOffset[1] + 30, $OCR_TEXT_COLOR[$game]); If @error = 1 Then MsgBox(0, "OCR reading Error", "Letter " & String($index + 1) & " not present or" & @LF & _ "broswer offset not correct, attempting to fix.") If $error = 0 Then ControlSend($TARGET_STRINGS[$target], "", $CONTROL_ID_STRINGS[$target], "{BACKSPACE 7}"); Sleep(500); Wait for the letters to re-populate Return GetOcrLetters(1); ElseIf $error = 1 Then $BROWSER_OFFSET[$target] = InputBox("Possible Incorrect Browser Offset", _ "Enter a new Browser Offset" & @LF & _ "Just Title Bar (0)" & @LF & _ "Title Bar and Address Bar (30)" & @LF & _ "Other (?)", "0", ""); Return GetOcrLetters(2); Else MsgBox(0, "OCR Failed", "Could not determine OCR Letters"); EndIf EndIf For $i = 0 to 15 $tempLetter[$i] = 0; Next For $j = 0 to 15 For $i = 0 to 15 $color = PixelGetColor($currentOffset[0] + $i, $currentOffset[1] + $j); If $color = $OCR_TEXT_COLOR[$game] Then $tempLetter[$j] = BitOR($tempLetter[$j], 2 ^ $i); EndIf Next Next $i = 0; While $i < $letterDefinitionLength[$game] AND NOT $found $j = 0; While $j < 16 AND NOT $found If $tempLetter[$j] <> $letterDefinitionArray[$game][$i][$j] Then ExitLoop ElseIf $j = 15 Then $found = True EndIf $j += 1; WEnd $i += 1; WEnd If $found Then $tempString = $tempString & $letterDefinitionArray[$game][$i - 1][16]; 16th index is the letter itself $found = False; Else If GUICtrlRead($guiArray[$SOUND_CHECKBOX][$GUI_HANDLE]) = $GUI_CHECKED Then SoundPlay(@WindowsDir & "\media\ding.wav") EndIf $tempChar = InputBox("Identify Letter", "What is the " & String($index + 1) & " (st/nd/rd/th) letter?", _ "", " 1", 125, 95, $windowPosition[0], $windowPosition[1]) $tempString = $tempString & $tempChar; $letterDefinitionArray[$game][$letterDefinitionLength[$game]][16] = $tempChar; For $i = 0 to 15 $letterDefinitionArray[$game][$letterDefinitionLength[$game]][$i] = $tempLetter[$i]; Next $letterDefinitionLength[$game] += 1; EndIf Next
  6. Well, you could use a for loop to loop through an array like so for $i = 1 to $processArray[0] KillProcess($processArray[$i]) next for the array in the first place do something like $processArray = _FileToArray('ProcessList.txt") or something of the like.
  7. Basically this is a GUI with four edit boxes into which you place the text you want to be able to insert easily. You click on the Grab button and it puts the text on the clipboard awaiting your click. Click where you want the text inserted and it pastes it for you. I got this idea wishing that stupid clipboard in Word was better. Any ideas?
  8. Here's a clipboard script that I wrote recently. Not allowed to post in the examples scripts forum, so I figured I'd ask for any suggestions here. CODE #include <GUIConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Misc.au3> #Region GUI_CONSTANTS Global $TITLE_STRING = "Super Clipboard by EchaniDrgn"; Global Const $BUTTON_HEIGHT = 20; Global Const $BUTTON_WIDTH = 60; Global Const $BUTTON_COLUMNS = 5; Global Const $BUTTON_ROWS = 12; Global Const $BORDER = 10; Global Const $GUI_WINDOW_WIDTH = $BUTTON_WIDTH * $BUTTON_COLUMNS + $BORDER * 2; Global Const $GUI_WINDOW_HEIGHT = $BUTTON_HEIGHT * $BUTTON_ROWS + $BORDER * 2; Global Const $GUI_WINDOW_DEFAULT_X = Number(IniRead(@ScriptDir & "\SuperClipboard.ini", "Startup", "default_x", "-1")); Global Const $GUI_WINDOW_DEFAULT_Y = Number(IniRead(@ScriptDir & "\SuperClipboard.ini", "Startup", "default_y", "-1")); #EndRegion #Region GLOBALS Global Enum $MAIN_WINDOW, _ $COPY_PASTE_BUTTON_1, _ $COPY_PASTE_AREA_1, _ $COPY_PASTE_BUTTON_2, _ $COPY_PASTE_AREA_2, _ $COPY_PASTE_BUTTON_3, _ $COPY_PASTE_AREA_3, _ $COPY_PASTE_BUTTON_4, _ $COPY_PASTE_AREA_4, _ $GUI_LIST_SIZE; Global Enum $GUI_NAME, _ $GUI_LABEL, _ $GUI_TYPE, _ $GUI_LEFT, _ $GUI_TOP, _ $GUI_HEIGHT, _ $GUI_WIDTH, _ $GUI_HANDLE, _ $GUI_ATTRIBUTES_LENGTH; Global Enum $TYPE_BUTTON, _ $TYPE_EDIT_BOX, _ $TYPES_LENGTH; Global $GUI_ARRAY[$GUI_LIST_SIZE][$GUI_ATTRIBUTES_LENGTH]; Global $dll = DllOpen("user32.dll") #EndRegion Main() Func Main() Setup() While 1 Sleep(1000) WEnd EndFunc ; Support Functions =================================================================================================== Func Setup() Opt("GUIOnEventMode", 1) ; Change to OnEvent mode PopulateGuiElement($COPY_PASTE_BUTTON_1, "CopyPasteButton1", "Grab", $TYPE_BUTTON, 0, 0, 1, 3); PopulateGuiElement($COPY_PASTE_BUTTON_2, "CopyPasteButton2", "Grab", $TYPE_BUTTON, 0, 3, 1, 3); PopulateGuiElement($COPY_PASTE_BUTTON_3, "CopyPasteButton3", "Grab", $TYPE_BUTTON, 0, 6, 1, 3); PopulateGuiElement($COPY_PASTE_BUTTON_4, "CopyPasteButton4", "Grab", $TYPE_BUTTON, 0, 9, 1, 3); PopulateGuiElement($COPY_PASTE_AREA_1, "CopyPasteArea1", "", $TYPE_EDIT_BOX, 1, 0, 4, 3); PopulateGuiElement($COPY_PASTE_AREA_2, "CopyPasteArea2", "", $TYPE_EDIT_BOX, 1, 3, 4, 3); PopulateGuiElement($COPY_PASTE_AREA_3, "CopyPasteArea3", "", $TYPE_EDIT_BOX, 1, 6, 4, 3); PopulateGuiElement($COPY_PASTE_AREA_4, "CopyPasteArea4", "", $TYPE_EDIT_BOX, 1, 9, 4, 3); GUICreate($TITLE_STRING, _ $GUI_WINDOW_WIDTH, _ $GUI_WINDOW_HEIGHT, _ $GUI_WINDOW_DEFAULT_X, _ $GUI_WINDOW_DEFAULT_Y); GUISetOnEvent($GUI_EVENT_CLOSE, "Cleanup"); CreateGuis(); GUISetState(@SW_SHOW); EndFunc Func Cleanup() Local $winPos = WinGetPos($TITLE_STRING); IniWrite(@ScriptDir & "\SuperClipboard.ini", "Startup", "default_x", String($winPos[0])); IniWrite(@ScriptDir & "\SuperClipboard.ini", "Startup", "default_y", String($winPos[1])); WriteOutToFile($COPY_PASTE_AREA_1); WriteOutToFile($COPY_PASTE_AREA_2); WriteOutToFile($COPY_PASTE_AREA_3); WriteOutToFile($COPY_PASTE_AREA_4); DllClose($dll); Exit; EndFunc Func WriteOutToFile(Const $guiEnum) If FileExists(GuiEnumToFile($guiEnum)) Then FileDelete(GuiEnumToFile($guiEnum)) FileWrite(GuiEnumToFile($guiEnum), GUICtrlRead($GUI_ARRAY[$guiEnum][$GUI_HANDLE])); EndFunc Func GuiEnumToFile(Const $guiEnum) Return @ScriptDir & "\" & $GUI_ARRAY[$guiEnum][$GUI_NAME] & ".txt"; EndFunc Func PopulateGuiElement(Const $guiEnum, Const $name, Const $label, Const $guiType, Const $column, Const $row, Const $width = 1, Const $height = 1) $GUI_ARRAY[$guiEnum][$GUI_NAME] = $name; $GUI_ARRAY[$guiEnum][$GUI_LABEL] = $label; $GUI_ARRAY[$guiEnum][$GUI_TYPE] = $guiType; $GUI_ARRAY[$guiEnum][$GUI_LEFT] = ColumnToCoordinate($column); $GUI_ARRAY[$guiEnum][$GUI_TOP] = RowToCoordinate($row); $GUI_ARRAY[$guiEnum][$GUI_WIDTH] = $width * $BUTTON_WIDTH; $GUI_ARRAY[$guiEnum][$GUI_HEIGHT] = $height * $BUTTON_HEIGHT; EndFunc Func ColumnToCoordinate(Const $column) Return $BORDER + ($BUTTON_WIDTH * $column); EndFunc Func RowToCoordinate (Const $row) Return $BORDER + ($BUTTON_HEIGHT * $row); EndFunc Func CreateGuis() For $i = 0 to $GUI_LIST_SIZE - 1 CreateGuiFromArray($i); Next EndFunc Func CreateGuiFromArray(Const $guiEnum) Local $tempString = ""; Switch $GUI_ARRAY[$guiEnum][$GUI_TYPE] Case $TYPE_EDIT_BOX $GUI_ARRAY[$guiEnum][$GUI_HANDLE] = GUICtrlCreateEdit($GUI_ARRAY[$guiEnum][$GUI_LABEL], _ $GUI_ARRAY[$guiEnum][$GUI_LEFT], _ $GUI_ARRAY[$guiEnum][$GUI_TOP], _ $GUI_ARRAY[$guiEnum][$GUI_WIDTH], _ $GUI_ARRAY[$guiEnum][$GUI_HEIGHT]); If FileExists(GuiEnumToFile($guiEnum)) Then $tempString = FileRead(GuiEnumToFile($guiEnum)); GUICtrlSetData($GUI_ARRAY[$guiEnum][$GUI_HANDLE], $tempString); FileDelete(GuiEnumToFile($guiEnum)); EndIf Case $TYPE_BUTTON $GUI_ARRAY[$guiEnum][$GUI_HANDLE] = GUICtrlCreateButton($GUI_ARRAY[$guiEnum][$GUI_LABEL], _ $GUI_ARRAY[$guiEnum][$GUI_LEFT], _ $GUI_ARRAY[$guiEnum][$GUI_TOP], _ $GUI_ARRAY[$guiEnum][$GUI_WIDTH], _ $GUI_ARRAY[$guiEnum][$GUI_HEIGHT]); GUICtrlSetOnEvent($GUI_ARRAY[$guiEnum][$GUI_HANDLE], "CopyPasteButtonX") Case Else MsgBox(0, "Error", "Bad Type in CreateGuiFromArray"); EndSwitch EndFunc Func CopyPasteButtonX() $targetGuiEnum = GuiCtrlIdToEnum(@GUI_CtrlId) + 1; ClipPut(GUICtrlRead($GUI_ARRAY[$targetGuiEnum][$GUI_HANDLE])); While(Not _IsPressed("01", $dll)) Sleep(50); ToolTip("Click Location to paste" & @CR & "or select text to replace." & @CR & "Right-click to cancel."); If _IsPressed("02", $dll) Then ToolTip(""); Return False; EndIf WEnd While(_IsPressed("01", $dll)) Sleep(50); ToolTip("ESC to cancel"); If _IsPressed("1B", $dll) Then ToolTip(""); Return False; EndIf WEnd Send("^v"); ToolTip(""); Return True; EndFunc Func GuiCtrlIdToEnum(Const $guiCtrlId) For $i = 0 to $GUI_LIST_SIZE - 1 If $guiCtrlId = $GUI_ARRAY[$i][$GUI_HANDLE] Then Return $i Next Return -1; EndFunc
  9. This looks like something I was considering writing myself, I'll be sure to try it out when I get home tonight. I was wondering if anyone knows how AIM does sending pictures. Is it more of a FTP kind of protocol? Basically I want to be able to send a small .BMP to my cell phone and be able to text back an answer. I was using it as part of a trading bot for an online game. I have the screen grab stuff all in place and can do this interaction through email, but my phone isn't web enabled so it'd be great to be able to send the pic through AIM. Does this work with Cell phones? My current workaround would be to send the pic via email to my carrier's phone email address/domain and add a tag, then prompt via IM to get the response. But doing it all in AIM in the same window would be great. Thanks again for this great work, I'll be checking it out soon. :-)
  10. I guess I was confusing in my description of the problem. I created the GUI in question, I'm not trying to get my script to traverse some other GUI. I would like for the down arrow to go to the next button down (default behavior), the up button to go to the next button up (default behavior), but for the left and right arrow keys to switch columns. The buttons are generated by column and where if I were to trap the left and right arrow keys and send a ton of tabs and sift-tabs to the gui I was hoping for something a little more elegant, as in an option of such.
  11. As the title suggests I'm trying to use the arrow keys to switch between buttons in an AutoIt GUI. Is there an easy way to do this other than trapping the buttons and calculating which button to focus on? I have 5 columns of dynamically generated buttons that disappear when clicked, I would like to be able to traverse this "grid" of buttons using the arrow keys as tab will just take me to the next button in creation order. I'd post source, but the code is rather long, and pretty ugly. BUTTONA1 BUTTONB1 BUTTONC1 BUTTOND1 BUTTONE1 BUTTONA2 BUTTONB2 BUTTONC2 BUTTOND2 BUTTONE2 BUTTONA3 BUTTONB3 BUTTONC3 BUTTOND3 BUTTONE3 BUTTONA4 BUTTONB4 BUTTONC4 BUTTOND4 BUTTONE4 BUTTONA5 BUTTONB5 BUTTONC5 BUTTOND5 BUTTONE5 BUTTONA6 BUTTONB6 BUTTONC6 BUTTOND6 BUTTONE6 If anyone has any simple ideas I'm all ears, just trying to make it so I don't have to use my mouse. Clicking BUTTONA1 yields BUTTONA2 BUTTONB1 BUTTONC1 BUTTOND1 BUTTONE1 BUTTONA3 BUTTONB2 BUTTONC2 BUTTOND2 BUTTONE2 BUTTONA4 BUTTONB3 BUTTONC3 BUTTOND3 BUTTONE3 BUTTONA5 BUTTONB4 BUTTONC4 BUTTOND4 BUTTONE4 BUTTONA6 BUTTONB5 BUTTONC5 BUTTOND5 BUTTONE5 BUTTONB6 BUTTONC6 BUTTOND6 BUTTONE6
×
×
  • Create New...