Just what distinguishes these languages when writing desktop applications?
The native character of the process in the first place. And perhaps the ultimate cross-platform solutions obtained. In C#, more precisely in the platform .NET has a great integration (better words could not)
with such usual things as WinForms, for example, and in General it was originally created specifically to develop something similar under Windows
(primarily). Python was originally developed as a platform-independent language and in his base Arsenal, anything comparable with the functionality of setting up different forms in C#/.NET, out of the box does not have. And yet C# has a great IDE running with him in the kit (Visual studio), which is free, and there is a WPF and various other things. But I still wouldn't compare languages in this context, too "clumsy" comparison.
Speed? (although this metric is relative, in any language there are 100500 ways to accelerate)
I would not focus on this indicator.
What language is easier to use a 64-bit architecture?
It is not clear about what sort of possibility is mentioned... But, in my opinion, the language is generally little affected.
What language is easier to make a program that would run as is possible on larger versions of Windows, without alteration, i.e. XP, Vista, 7, 8, 8.1, 10 etc.?
In any language, but as a platform - I would recommend specifically .NET Framework 4.0, because later versions thereof under XP, as I recall, does not exist.
*but you should pay attention to the fact that with high probability, for a start, still have to install .NET, because the required version it is not always possible. This problem also solves the installers, but the installer size of the platform - too far from little. Modern Windows OS (10-ka for sure) offer the user to download needed .NET Framework in the absence of the automatically.
What language is easier to get to the system API if I need to get to the audio device or video card? (well, just Since we're not considered in the comparison)
Can't say for sure, but most likely, any of them. Out of the box, the high-level languages typically do not support low-level operations. Ready of libraries, including low-level, to compensate for this deficiency usually enough for any language. In General, this is a very broad topic, to get to the device in very different ways... and at different levels. You can write your driver (in this case, it is unlikely that any language from the list will do), and you can use WinAPI or some ready functions written by someone earlier drivers...