Als Admin ausführen...

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

ChaosCoder

Betreff: Als Admin ausführen...

BeitragMo, Feb 01, 2010 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Leute,
konnte gerade das Problem einiger hier mit RetroWars und dem Onlinehighscore nachvollziehen.
Das Problem liegt daran, dass ihr keine Rechte habt einen Ping auszuführen (bzw. das Programm hat keine). Jetzt gibt es ja die Option "Als Admin ausführen" unter Vista und 7. Wenn man das auswählt funktioniert auch der ICMP Ping aus dem BNetEx-Modul.

Nur kann ich es ja nicht verlangen, dass jeder normale User mein SPiel mit "Als Admin ausführen..." öffnet. Weiß jemand wie ich dieses UAC-Gedöns "blabla.exe will auf die Festplatte zugreifen. Erlauben?" in meinem Spiel eingebaut kriege. Also wie ich diese Anfrage starte?

Das wäre echt super!
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

BtbN

BeitragMo, Feb 01, 2010 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Garnicht, ein programm kann nur ganz als Admin laufen, oder garnicht. Einzelne Funktionen als Admin ausführen muss über ein Separates Programm geschehn.
Das als Admin zu starten ist denkbar einfach über system_("runas deinProgramm.exe")

D2006

Administrator

BeitragMo, Feb 01, 2010 19:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube gerade im Hinblick darauf, dass du das Spiel komerziell vertreiben willst, solltest du den Fehler eher beheben. Adminrechte wegen eines Ping-Befehls klingt irgendwie vermeidbar.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

ChaosCoder

BeitragMo, Feb 01, 2010 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Bishe rhabe ich noch keine andere Lösung gefunden. Vertex beschrieb es schon in seinem BNetEx-Topic, dass das nicht so einfach zu lösen wäre. Und wenn ich den Ping rauslasse, wenn man keine Rechte hat und keine Internetverbindung herrscht, geht der Timeout beim TCP-Connect unkontrollierbar auf mehrere Sekunden. Das ist sehr schlecht, da ich ja nicht nur einmal mit dem Server verbinde.
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

BtbN

BeitragMo, Feb 01, 2010 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann TCP in den NonBlock-Mode schalten, allerdings nicht mit BNetEx. Am Einfachsten wäre wohl einfach ein Network-Thread, der sich um den ganzen kram kümmert.
 

klepto2

BeitragDi, Feb 02, 2010 9:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch es mal über eine manifest datei.

Den folgenden Text unter "deinProgrammname.exe.manifest" speichern.

Code: [AUSKLAPPEN]

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <asmv2:trustInfo xmlns:asmv2="urn:schemas-microsoft-com:asm.v2">
      <asmv2:security>
         <asmv2:requestedPrivileges>
            <asmv2:requestedExecutionLevel level="requireAdministrator" />
         </asmv2:requestedPrivileges>
      </asmv2:security>
   </asmv2:trustInfo>
   <asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

BtbN

BeitragDi, Feb 02, 2010 11:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Das führt dazu, dass das Programm immer als Admin gestartet wird und somit immer eine UAC-Abfrage kommt.
Das vermeiden der Admin-Privilegion ist ganz klar die bessere Lösung.

ChaosCoder

BeitragDi, Feb 02, 2010 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber schonmal besser als das manuelle "Als Admin ausführen...".
Danke dir klepto2!

Ich guck mir in den nächsten Tagen nochmal andere Befehl basierend auf der Windows API an, vllt. schaff ich da irgendnen Ping, der auch als Benutzer funktioniert oder ich seh eine andere Methode um zu überprüfen, ob der Server erreichbar ist.

Edit: Es gibt eine ICMP.DLL die über Raw Sockets funktioniert und daher keine Administratorenrechte braucht. Ich werde sie demnächst einabeuen, da sie von Win 95 bis Win 7 überall verfügbar ist.
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group