a) QTP is object bases Scripting (VBS) where Winrunner is TSL (C based) Scripting.
b) QTP supports ".NET" application Automation not available in Winrunner
c) QTP has "Active Screen" support, which captures the application, not available in WR.
d) QTP has "Data Table" to store script values, variables which WR does not have.
e) Using a "point and click" capability you can easily interface with objects, their definitions and create checkpoints after having recorded a script – without having to navigate back to that location in your application like you have to with WinRunner. This greatly speeds up script development.