My AutoTextHighlighter app in C# gave me trouble for a little while when I use it in Windows 7 desktop. Was I using Vista before?
Short story version:
1. http://stackoverflow.com/questions/2346281/vb-net-sendkeys-letters-duplicate
2. http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.sendwait.aspx
3. http://msdn.microsoft.com/en-us/library/ms184658.aspx
4. Be sure to keep the app.config (*.exe.config) file next to the exe app.
Long Story version:
SendKeys.SendWait was doing unpredictable repeats ({ENTER} key). It turns out Microsoft was aware of it and blames it on .NET Framework 3.0 timing issues. Before this, I had lost the latest source code for my application due to Desktop HDD reformat/upgrade. So I used JetBrain dotPeek to disassemble my exe file. After that, there was a Callback issue with "garbage collected delegate...invoke" stuff. I had no idea and no time. So I fixed it via comments on the site of the globalkeyboardhook script:
you have no reference of the callback-method.
  After:
public delegate int keyboardHookProc(int code, int wParam, ref keyboardHookStruct lParam);
just add a new line with:
private keyboardHookProc _keyboardHookProc;
 And in function "hook" you have to change code to:
hInstance = LoadLibrary("User32"); _keyboardHookProc = new keyboardHookProc(hookProc); hhook = SetWindowsHookEx(WH_KEYBOARD_LL, _keyboardHookProc, hInstance, 0);
Then, the source code is fully back. To fix the SendKeys.SendWait issue, I have to add:
<appSettings>
<add key="SendKeys" value="SendInput"/>
</appSettings>
to my app.config file. This is in the Solution Explorer -> program name-> app.config. Just before the text </configuration>.
After the build, in bin folder, there is another *.exe.config file which is the same as app.config. I made sure both exe and exe.config files are together. Perhaps it could release both files as one single exe file, but I don't have time to find that out now.
