Please dont laugh at my method, its quite stupid but it works. Your end product will look something like this (Note the picture in background is my desktop, my actual program is just a button"

Lets start by making a new program, you can call it Auto Login.
Add (lol i know) 7 timers.
1 button
2 textboxes
Now in textbox1 change the text property to your username.
In the second textbox change the text property to your password (might wanna toss a password char on that just for safety.)
Heres what mine looks like so far:

now make your form small so that you cant see the textboxes and you can only see the button. Now the fun part
Open Button one and type
Code:
System.Diagnostics.Process.Start("C:\program files\world of warcraft\wow.exe")
Timer1.start
The code for Timer1 Is
Code:
Timer2.Start()
Timer1.Stop()
Timer2
Code:
Timer3.Start()
Timer2.Stop()
Timer3
Code:
SendKeys.Send(TextBox1.Text)
Timer4.Start()
Timer3.Stop()
Timer4
Code:
SendKeys.Send("{TAB}")
Timer5.Start()
Timer4.Stop()
Timer5
Code:
SendKeys.Send(TextBox2.Text)
Timer6.Start()
Timer5.Stop()
Timer6
Code:
SendKeys.Send("{ENTER}")
Timer7.Start()
Timer6.Stop()
Timer7
Now you need to change the intervals for each timer
Timer 1 = 1000
Timer 2 = 5000
Timer 3 = 1000
Timer 4 = 1000
Timer 5 = 1000
Timer 6 = 1000
Timer 7 = 4000
If your computer is too slow and these speeds are not slow enough, adjust them accordingly. The intervals are in milliseconds and found in the properties:

I've been using this technique for over 2 months and havent gotten banned.
I asked a GM today he said it probably ISNT bannable, but im posting on the wow forums just to make sure 