So i use bitcoin-qt on windows.
Lets say i send a coin to somebody - how do i know which of my various adresses was used?
Probably none of them. Why does it matter?
Bitcoin doesn't spend "from addresses". It spends discrete unspent outputs.
Your wallet knows that certain previously unspent outputs are now spent, and knows about any new unspent outputs that it has the ability to spend.
Saying that you are sending bitcoins "from" and address or "to" and address is just terminology that we humans use to make it easier to discuss the transfer of control over value. In reality in the technical details there aren't any bitcoins, and these non-existent things don't "come from" anywhere or "go to" anywhere.
Instead a ledger is updated that encumbers a value with a requirement. Anyone that can satisfy that requirement is allowed by all peers on the network to apply that value to a new ledger entry that and encumbers it with new requirements. Notice, there is nothing in that description about sending to or from anywhere.