My favourite method of dealing with uncooperative players is taken from the game Paranoia.
1) No matter what everybody says, the players are ultimately there for your amusement. If you're not having fun running the game, what's the point of doing so?
2) Therefore, you must make sure that the players make the game enjoyable for you. You will want them to repeat the behaviours you like, and not repeat those you do not like. The best way to do so is to train them using operand conditioning, which works as follows:
3) Reward the players' behaviours that you find amusing. Clever ideas, daring stunts, amazing roleplay, letting you hog the Cheetos bag.
4) Punish the behaviours that are not amusing. Arguing rules, taking their sweet time, acting out-of-character, hogging the Cheetos bag themselves.
5) The players will eventually learn which behaviours are rewarded, and which are punished. They will want to do more of the former, and less of the latter.
6) A common mistake is to punish the characters, not the players - this can be seen as arbitrary GMing. But if you can't take the characters' shinies or karma, the question arises, how do you punish players for bad behaviour? (Unless you're _that_ kind of a Dungeon Master, in which case I am staying the hell away from your basement). Likewise, how do you reward them without compromising game integrity?
7) Paranoia has a system where players are giving poker chips (or other markers) as a reward for desired behaviour. These chips can later be traded for favours from the GM, like roll bonuses, advantageous circumstances, Plot Armor(TeeEm), or a go at the Cheetos bag. As punishment, these chips can be taken away, or black chips can be given - these hover over the player like the Sword of Damocles, for at any time the GM can take all (or part) of them away and smite the player with a mishap of appropriate severity. The chips are usually re-set to at each game (but subject to GM's fiat and level of annoyance).

Shadowrun already has a similar mechanic in Edge. A homerule may be made to allow the GM to manipulate Edge more arbitrarily, and allow GM-given temporary Edge to exceed the Edge attribute, or to be reduced below 0. At the end of the session, the Edge is re-set to its current level, or the Edge rating, whichever is the lowest.
9) This also helps if you want to move the game closer to your particular style - if, for example, you run a "cat burglar" campaign, and a player has a tendency to go through the front door guns-a-blazing, you can deal with it by punishing the brute force tactics, and rewarding stealth and cunning.