Die Angabe runas sollte unter XP eigentlich den Benutzerdialog anzeigen. Ich muss deinen Code mal kurz testen, ob das geht.
// EDIT:
Ok, also mit Batchdateien klappt das unter XP nicht, mit Exedateien schon. Du könntest ja nach Betriebssystem unterscheiden. Allerdings wäre dann unter XP das Problem nicht gelöst, wenn da die Rechte fehlen.
Irgendwie müsste das ja auch mit .bat Dateien gehen.
// EDIT2:
Ich sehe schon: In der Registry ist unter shell bei Batchdateien kein Handler für runas eingetragen. Bei Exes schon, da ist der Befehl dafür "%1" %*, wobei %1 der Dateiname ist. Hmm.
Was mir auffällt:
Du benutzt ExtractFilePath. Das hängt aber bereits ein \ an, du hast also ein doppeltes drin.
ExtractFileDir gibt den Pfad ohne zurück.