How can I detect the amount of memory slots I have?
How about going by command-line without any third party installer?
wmic MEMORYCHIP get banklabel, capacity, caption, devicelocator, partnumber
gives you something like this
BankLabel Capacity Caption DeviceLocator PartNumber
BANK 2 4294967296 Physical Memory ChannelB-DIMM0 xxxxxxxxxx-PB
CPU-Z offers detailed information about RAM slots, timings, XMP profiles, etc. As for max supported you normally will have to look up the limits imposed by your northbridge.
To answer question (1) using WMIC:
wmic memphysical get MaxCapacity, MemoryDevices
produces something like this:
MaxCapacity MemoryDevices
16777216 2