I'm fairly certain the playername is actually a static address. So once you have the process, you just have to search for the name adress in it. In fact, you can easily figure this one out by using CheatEngine.
If you want to access something that's dependant on the player base, you have to first receive the actual playerbase's address, which is always different. However, the playerbase pointer is static. Therefore if you read a uint of the playerbase pointer, you will receive the actual playerbase address. You can then add thing onto it. For example, playerbase+x = playerHP, playerbase+y = playermaxHP etc.
In C#, using blackmagic, for the TBC client, this can look like this.
Code:
int playerCurrentHP = (int)wow.ReadUInt(wow.ReadUInt(PlayerBase) + 0x2698);
int playerMaxHP = (int)wow.ReadUInt(wow.ReadUInt(PlayerBase) + 0x26B0);