If birds could only read you could post this thread and they would be too busy laughing to think about crapping.
On a serious note... I have has some success keeping seagulls from pooping on my dock
railings and on my old T-Bird. Same idea that TEE suggests but I string a piece of old stainless downrigger wire just above every horizontal surface. Boom, spreader and handrail.
Birds are creatures of habit and most of the time they leave their offerings when they are perched. A few let fly when they are in the air, but they are random and if the birds are discouraged from perching in your local they are more likely flying around more perch friendly boats. The wire has to be stretched so that the height of the wire would displace the area that the body of the target species would displace were it to perch. So you might need more than one wire if you have smaller and larger birds. I found a slight sag in the wire worked better so that it waves a bit in the wind
. It worked great on my seagull friends.
Now Kingfishers are another story! They love to destroy the Windex.