Benutzer zählen, die meine Application benutzen

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Svenley.

    Benutzer zählen, die meine Application benutzen

    Hallo liebe VB-Paradise´ler,

    Nun ich habe mein Projekt soweit fertig, ich möchte nun noch eine Anzeige einbauen, damit man sieht, wieviele Leute grade meine Application benutzen.

    Vllt. kann mir da jemand weiter helfen.

    :)

    Hoffe Ihr wisst und versteht, was ich meine.

    MfG
    iToxic
    Oder eine PHP Datei die auf einen bestimmten Text reagiert und einen wert erhöht.
    z.b deine Anwendung sendet "einsupbitte123"
    die Php fängt das (weiß nur nicht wie if abfragen in Php macht)
    Ist es "einsupbitte123" dann > ein wert up (in einer Text Datei oder per Mysql)

    LG.L

    PS: Das soll nur ein Beispiel sein
    mitm WebClient dein PHP Skript aufrufen.

    PHP-Quellcode

    1. $cmd = $_GET['command'];
    2. $filepath = 'appcount.txt';
    3. $url = "http://www.deineseite.de/index.html";
    4. if(strlen($cmd) > 1)
    5. {
    6. $fobj = fopen("./$filepath", 'a+');
    7. $count = fgets($fobj);
    8. if(strlen($count) = 0)
    9. $count = 0;
    10. $count++;
    11. rewind($fobj);
    12. fputs($fobj, $count);
    13. fflush($fobj);
    14. fclose($fobj);
    15. }
    16. else
    17. {
    18. header("Location: $url");
    19. }
    Ersteinmal ein Dank an Mangafreak1995

    Ich kann zwar kein .PHP

    aber sowie ich das sehe, wenn ich es richtig sehe, wird appcount.txt bei dem Seiten aufruf immer +1 erhöht, richtig?

    Das meine ich aber nicht.

    Wenn Application gestartet wird, dann (+1)
    Wenn Application geclosed wird, dann (-1)

    Und bei deinem PHP Code, da wird ein Fehler angezeigt:

    PHP-Quellcode

    1. Fatal error: Can't use function return value in write context in /data/multiserv/users/333572/projects/851719/www/count.php on line 9



    Trotzdem Danke für deine Mühe.
    klingt danach als ob das Skript keine Rechte hat zum Schreiben in den Ordner ... hmm
    das ist natürlich kein Problem, wenn wir noch abfragen was genau cmd ist dann kann man das machen.
    count.php?cmd=up zählt ein drauf und
    count.php?cmd=down zählt ein runter
    wenn ich so ein Skript machen soll sag nur

    Mangafreak1995 schrieb:

    count.php?cmd=up zählt ein drauf und

    count.php?cmd=down zählt ein runter

    Hallo Leute!

    Zu bedenken:
    Wenn jemand seine Inet-Verbindung kappt und dann das Programm ausschaltet oder PC runter fährt
    bleibt er am Server "online". Mit der Zeit wird das Ergebniss etwas verzerrt.
    Für den Anfang ist das jedoch eine gute/einfache Lösung.


    Ich würde folgendes empfehlen:
    Bei programmstart und ca alle 5 Minuten eine PHP Seite aufzurufen (zb "count.php")
    Die Seite speichert die IP des Users mit Timestamp (Zeitstempel).
    Nach 6 Minuten sollen veraltete Einträge gelöscht werden.
    Die Anzahl der "aktuellen" User von der phpseite ausgegeben.

    Somit währe der Counter auf 6 Minuten genau.


    Bei der Gelegenheit hab ich auch gleich ne Frage: hängt euer Programm beim
    Verbindungsaufbau zum Internet? (bei mir immer beim 1. Mal für 20 Sek)

    Gruß,
    Raza
    @Razael : das ist natürlich problematisch. Dazu sollte man die PHP dementsprechend abändern.

    Ein Lösungsvorschlag

    Jep, dass stimmt. Hier die php Seiten.

    Anleitung:
    AppCount.Razael.zip
    1)config.php an deinen Server anpassen
    2)Lade die drei php-Seiten auf deinen Server und
    rufe die install.php Seite in einem Browser auf.
    Bei erfolgreicher installation die soeben Genannte löschen
    3)In deinem Programm folgende Funktionen erstellen

    VB.NET-Quellcode

    1. Private Function GetUserCount()
    2. 'Melde User an / aktuallisiere Liste
    3. Dim os As OperatingSystem = Environment.OSVersion
    4. Dim user_count As String = ClassNet.DownloadString(Url_requestPHP)
    5. Return user_count
    6. End Function
    7. Private Sub LogoffUser()
    8. 'Melde User ab
    9. Dim os As OperatingSystem = Environment.OSVersion
    10. Dim user_count As String = ClassNet.DownloadString(Url_requestPHP & _
    11. "?cmd=logoff")
    12. End Sub


    und nach deiner Classe den Pfad zu der request.php angeben

    VB.NET-Quellcode

    1. Public Const Url_requestPHP As String = "http://www.deineseite.eu/deinpfad/request.php"



    Führe die Funktion GetUserCount() zu Programmstart aus um
    - den User anzumelden,
    - User abzumelden die länger als 6 Minuten GetUserCount() nicht ausgeführt haben
    (Die anzahl der Minuten kann man in der config.php unter $trash angeben) und
    - die Anzahl der User auszulesen die gerade online sind.

    Führe die Funktion GetUserCount() nach Programmstart alle 5 Minuten aus
    (per Timer) um
    - den User erneut als Aktiv darzustellen,
    - User abzumelden die länger als 6 Minuten GetUserCount() nicht ausgeführt haben und
    - die Anzahl der User auszulesen die gerade online sind.

    Führe die Sub LogoffUser in der Prozedur ForClosing aus um
    - den User abzumelden


    Falls du die Anzahl der User auch auf der Homepage anzeigen möchtest gib mir bescheid.

    Gruß,
    Razael

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Razael“ ()

    nimm dir doch n ftp server, lese eine txt in dein Programm (von dem FTP) ein.
    der inhalt der txt ist dann eine zahl, die als variable +1 gezählt wird.
    die variable wird dann wiederum auf den FTP Sever geladen.

    Das ganze müsste unter Form close passieren.
    @cxxh: dann wird das Programm dekompiliert, der FTP-Server entwendet und tadaaa :pinch:
    selbst ein obfuskiertes Programm/Library kann dekompiliert werden. Dies ist zwar schwerer, aber wenn du das System von der CIL verstehst, weißt du auch warum .Net-Programme auch unter Unixen laufen können.

    Mehr dazu findest du hier [VB.NET] Projekte schützen = Obfuskieren ! Was ist das und wofür ist das gut ?

    cxxh schrieb:

    nimm dir doch n ftp server, lese eine txt in dein Programm (von dem FTP) ein.
    der inhalt der txt ist dann eine zahl, die als variable +1 gezählt wird.
    die variable wird dann wiederum auf den FTP Sever geladen.

    cxxh schrieb:

    Das ganze müsste unter Form close passieren.
    Hört sich viel zu umständlich und unsicher an.


    @iToxic: Wie hast du das Problem gelöst?