Heya
Here's the C# class I use to interact with WoW's console, mainly for registering my own functions (such as morphers, scalers...)
Most important methods are:
bool RegisterConsoleCommand(uint pFunc, string szCallName)
Takes a pointer to your codecave, registers it to a name for use in /console szCallName. Example: RegisterConsoleCommand(0xDEADBEEF, "Morph");
bool PrintLn(string szMessage, eConsolePrintColor FontColor)
Prints a string to the console, easy enough
bool ConsoleExec(string szCommand)
Executes a command as if it was used in the console
Class:
NoMorePasting.com
Example: Emulating MoveForwardStart
Code:
uint pMoveForward = Memory.AllocateMemory(0x1024);
Memory.Asm.Clear();
Memory.Asm.AddLine("mov ebx, [{0}]", C_ObjectManager.GCLIENTCONNECTION);
Memory.Asm.AddLine("add ebx, {0}", C_ObjectManager.SCURMGROFFSET);
Memory.Asm.AddLine("mov ebx, [ebx]");
Memory.Asm.AddLine("fs mov eax, [0x2C]");
Memory.Asm.AddLine("mov eax, [eax]");
Memory.Asm.AddLine("add eax, 0x8");
Memory.Asm.AddLine("mov dword [eax], ebx");
Memory.Asm.AddLine("mov eax, {0}", System.Environment.TickCount);
Memory.Asm.AddLine("mov ecx, {0}", Memory.ReadUInt(dwCINPUTCONTROL));
Memory.Asm.AddLine("push {0}", 0);
Memory.Asm.AddLine("push eax");
Memory.Asm.AddLine("push {0}", 1);
Memory.Asm.AddLine("push {0}", (uint)eMovementFlag.MOVEMENT_FLAG_MOVE_FORWARD);
Memory.Asm.AddLine("call {0}", dwSETFLAGS);
Memory.Asm.AddLine("retn");
Memory.Asm.Inject(pMoveForward);
WoWConsole.RegisterConsoleCommand(pMoveForward, "OMGRUN");
/Console OMGRUN should make your character ... run

Above code is not tested and I just janked the CInputControl code from my framework and jammed it into WoWConsole's
Credits to Sku for helping with the reversing.