#RequireAdmin must be on the very top of your script.
Я предполагаю, что это не работает, когда вы компилируете исполняемый файл. Вероятно, он называется program.exe и находит собственный процесс.
Что касается Singleton, см. this :
_Singleton ( $sOccurrenceName [, $iFlag = 0] )
Enforce a design paradigm where only one instance of the script may be running
Пример
#include <Misc.au3>
#include <MsgBoxConstants.au3>
If _Singleton("test", 1) = 0 Then
MsgBox($MB_SYSTEMMODAL, "Warning", "An occurrence of test is already running")
Exit
EndIf
MsgBox($MB_SYSTEMMODAL, "OK", "the first occurrence of test is running")