If the ini file gets created then desmume presumably does load up (and possibly closes as soon as it opens).
You could try one of the newer builds from emucr and see if that works, though I can't really think of a reason it would.
Also, what do you mean you don't have access to running things as admin? Is the computer locked/limited in some way?
Everything is entirely up to the game itself, or rather the way it was coded by its developers. Most games rely on RNG (Random Number Generation) to decide the outcome of these events, which is essentially a number constantly changing in the background in order to create the appearance of randomness. This gets saved by the emulator in a savestate as well, so when you load it up again it continues from the same exact point as before, every single time.
If the game developer decided to have that number constantly running in the background then it's timing-based. Wait another second after loading your savestate to hit 'attack' and the outcome will be different. It can, however, also be decided at the start of your round, and all actions' random outcome will be based on that. Or it can all be decided at the start of a fight according to a 'seed' number which decides *all* the actions throughout the fight.
Esentially, your ability to cheatsave in pokemon is entirely up to the game's developer.