Hit-a-thon.
$2,500+ a year for us in a community of about 1,000 people.
We do it like this: Players are given pledge sheets about 2 weeks before the event. The sheets have spaces for; donor's name, amount pledged per foot, flat donation (if they don't want to go with the amount per foot), distance ball is hit, and amount owed.
We advertise the event on the local radio, have it at night with the lights on, and sometimes invite guest hitters (principal, sheriff, dj's, etc.). The players have gone out ahead of the event and secured pledges on how far they can hit a baseball. For instance, if you pledged me a penny per foot and I hit one 400', then you would owe me $4. Some people prefer to give a flat donation.
Before the hit-a-thon we measure a semi-circle around the outfield @ 200' and place cones at different points along the 200' line. This will speed up measurement that comes later. We set up our pitching machine on the mound grooving straight fastballs and place a bucket and screen behind 2nd base for shagging.
A batting order is set and the players rotate from shagging in the of, to the bucket, to on-deck, to hitting, to back to the of. The players are a dozen or so swings (more if needed to "blast" one) and the batted ball that is hit the farthest is measured. We measure carry and roll (it is a fundraiser!) and measure from the cones we have set out @ 200'. Our PA guy will announce the players name hitting and his distance at the completion of the round. The player who hits it the farthest wins a prize, as does the player who raises the most money.
As the hit-a-thon goes on I record the distances on the sheets the players have given to me before the start, and the amount of money they will need to turn in to me, and return them after the event. I will then set a deadline for the money to be returned. Those who don't return the money by the assigned day are given "motivation" that doubles every day it is late.
The concept is very similar to a 100 inning game, but this only takes about an hour to run off.