James Posted February 9, 2008 Posted February 9, 2008 Hi, I was wandering if it was possible so that when you type a word such as hello it would change it to say howdy? I tried using Mandars 1337 thing but it only does the first letter. Thanks, James Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ
JustinReno Posted February 9, 2008 Posted February 9, 2008 (edited) This is definetly possible, I asked the same question and got a great response, here is an example: This will work. $GUI = GUICreate("Example", 315, 98) GUICtrlCreateLabel("Type Something!", 0, 0, 84, 17) $Input = GUICtrlCreateInput("", 0, 16, 313, 21) GUICtrlCreateLabel("Words supported:", 0, 64, 88, 17) GUICtrlCreateLabel("Hello - Howdy", 0, 80, 70, 17) GUISetState(@SW_SHOW) While 1 _ReplaceWords(GUICtrlRead($Input), "Hello", "Howdy", $Input) _ReplaceWords(GUICtrlRead($Input), "Hi", "Hello", $Input) Switch GUIGetMsg() Case - 3 Exit EndSwitch WEnd ; $String = The string of words to replace. $Word = The word to replace. $ReplaceWord = The word to replace $Word. $Control = The control to set the data. Func _ReplaceWords($String, $Word, $ReplaceWord, $Control) If StringInStr($String, $Word) Then GUICtrlSetData($Control, StringReplace($String, $Word, $ReplaceWord)) EndFunc Edited February 9, 2008 by JustinReno
James Posted February 9, 2008 Author Posted February 9, 2008 Not quite what I was after. When you type in anything it changes the word: $Hotkey = "i,o,a,s,e,b,t,I,O,S,E,B,T"; l3tt3r$ d13 0mg3z3t m033t3n word3n $l33t = "1,0,4,$,3,8,7,1,0,$,3,8,7"; d3 n44r om t3 z3tt3n l3tt3r$ Global Const $aHotkey = StringSplit($Hotkey,",") Global Const $al33t = StringSplit($l33t,",") For $x = 1 to $aHotkey[0] HotKeySet($aHotkey[$x],"l33tfunc") Next While 1 Sleep(1000) WEnd Func l33tfunc() For $x = 1 to $aHotkey[0] If $aHotkey[$x] = @HotKeyPressed Then Send($al33t[$x]) Next EndFunc Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ
Scriptonize Posted February 9, 2008 Posted February 9, 2008 I tried the solution from JustInReno and it works fine for me. It does exactly what you asked for in the first post. Can you please tell us what exactly is wrong or what you are looking for? If you learn from It, it's not a mistake
Swift Posted February 9, 2008 Posted February 9, 2008 Hes looking for a script that runs in the background and parses typing...so...if your typing here...and its running...you type: Hello...it will AUTOmatically change it to Howdy...but wont type Hello...understand now?
Mast3rpyr0 Posted February 9, 2008 Posted February 9, 2008 ahh so somethign like MS word's auto correct feature outside the program. hmm you could check each key entered and if it = this key then if the next key is this and so on then if all those are in the right order, backspace however many letters there are and send the new word, if that makes since lol My UDF's : _INetUpdateCheck() My Programs : GameLauncher vAlpha, InfoCrypt, WindowDesigner, ScreenCap, DailyRemindersPick3GeneratorBackupUtility! Other : Bored? Click Here!
LarryDalooza Posted February 9, 2008 Posted February 9, 2008 I wrote the exact thing ... for me it was a "shorthand" script. I used a Keyboard hook and would evaluate words whenever a non-alphanumeric key was pressed (with a few other exceptions). If the eval fell though, I left the word alone, otherwise I backspaced and Send() the replacement. I had to backspace to make it work in all apps. You see the problem if you type too fast... But I never set it for more than just short words. Ignore the hook when Send()ing. Anyway... it was a useful script that I believe I have deleted. Good luck. Lar. AutoIt has helped make me wealthy
Achilles Posted February 9, 2008 Posted February 9, 2008 Here's what Larry created, I changed it a bit and don't remember how he got it to work. Now, if you type "hello" it will send backspace until "h" and then send "owdy" but it still sends the "o" after that and I'm not sure how to stop it in an efficient way. expandcollapse popup#include <DllCallBack.au3> Opt("OnExitFunc", "_FuncTest") Global Const $WH_KEYBOARD_LL = 13 Global $hHook Global $pStub_KeyProc = _DllCallBack("_KeyProc","int;ptr;ptr") Global $hmod = DllCall("kernel32.dll","hwnd","GetModuleHandle","ptr",0) Global $hHook = DllCall("user32.dll","hwnd","SetWindowsHookEx","int", _ $WH_KEYBOARD_LL,"ptr",$pStub_KeyProc,"hwnd",$hmod[0],"dword",0) Global $buffer = "" While 1 Sleep(30) WEnd Func EvaluateKey($keycode) If (($keycode > 64) And ($keycode < 91)) _ Or (($keycode > 47) And ($keycode < 58)) Then $buffer &= Chr($keycode) If $buffer = "hello" then Send('{BS 3}owdy') $buffer = "" EndIf EndIf EndFunc Func _KeyProc($nCode, $wParam, $lParam) Local $ret,$KEYHOOKSTRUCT If $nCode < 0 Then $ret = DllCall("user32.dll","long","CallNextHookEx","hwnd",$hHook[0], _ "int",$nCode,"ptr",$wParam,"ptr",$lParam) Return $ret[0] EndIf If $wparam = 256 Then $KEYHOOKSTRUCT = DllStructCreate("dword;dword;dword;dword;ptr",$lParam) EvaluateKey(DllStructGetData($KEYHOOKSTRUCT,1)) EndIf $ret = DllCall("user32.dll","long","CallNextHookEx","hwnd",$hHook[0], _ "int",$nCode,"ptr",$wParam,"ptr",$lParam) Return $ret[0] EndFunc Func _FuncTest() DllCall("user32.dll","int","UnhookWindowsHookEx","hwnd",$hHook[0]) _DllCallBack_Free ($pStub_KeyProc) EndFunc My Programs[list][*]Knight Media Player[*]Multiple Desktops[*]Daily Comics[*]Journal[/list]
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now