You can never close runway 31 completely in either FS9 or the FSX version. MS uses a scoring system that determines which runway end is the active.
The goal is to lower the score process as low as possible and achieve zero if possible. Zero cannot be achieved for Kai tak because there is only one group of runways (13/31)
A group is scored by it's baserunway (RWY 13). Now if that runway is the 'primary end' of a runway, the group will get 100 extra points if 'primaryTakeOff' is true and it will also get 100 extra points if 'primaryLanding' is true.
To lower the score of the recip end (RWY 31) we need to remove the Start Location and check closed for takeoff and closed for landing. This will lower the score by a multiplying factor of 10,000 leaving only the winds and the ILS to contend with.
If the winds start to exceed 32 kts coming from the north then ATC has the option to open RWY 31. In order to lower the score further down toward zero so winds must be higher in value then you MUST remove the ILS from RWY 31.
The end result is to
1. Remove the start location
2. Close both ends of the runway
3. Remove the ILS (Localizer, Glide Slope, DME)
If the weather engine sees less then 3 mile visibility, runway 31 will never get a score high enough for ATC to use that runway once the ILS is removed.
If the weather engine sees higher then 3 mile visibility and winds from the north start to exceed 64 kts (not likely at Kai Tak) then ATC will reopen RWY 31 for landing because the score process can never be zero at Kai Tak with only one group of a runway (13/31 and no parallel runway to fall back on).
There is some additional code I would have to write (actually delete) in the approach file that would lower the score even further toward zero. However doing all the above will at least get the score low enough to where RWY 31 will never be used unless winds are above 64 kts.