Aktivierung überprüfen

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von DarkDeviLw.

    Aktivierung überprüfen

    Hallo zusammen,

    ich habe folgendes Problem und zwar möchte ich in meiner C# Anwendung einen Button entwickeln der schaut ob ein Betriebssystem oder eine Anwendung aktiviert ist (Über Lizenz beispielsweise).

    Vorstellung von mir:
    Ich habe einen Button -> Klicke auf diesen und dieser soll mir dann sagen ob das Betriebssystem auf dem Rechner A und B aktiviert ist beispielsweise.
    Es soll eine Art Check-Tool sein.

    Wie kann man sowas prüfen?

    Liebe Grüße
    Habe das Ganze nun mal getestet, bringt mich leider nicht wirklich weiter. Dadurch das nur Betriebssysteme überprüft werden und nicht noch weitere Anwendungen.

    Hat Jemand noch eine andere Lösung vielleicht?

    Liebe Grüße
    Definiere

    DarkDeviLw schrieb:

    ob ein Betriebssystem oder eine Anwendung aktiviert ist
    Was soll kommen, wenn das Betriebssystem nicht aktiviert ist? (da kann doch gar nix kommen).
    Willst Du von Rechner A aus die Registry auf Rechner B analysieren? Das darf nicht funktionieren, da muss auf Rechner B eine entsprechende Applikation laufen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    DarkDeviLw schrieb:

    mehr
    Antworten auf nicht beantwortete Fragen bitte.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Genauere Info:

    Ich habe ein Programm mit C# .Net 4.5
    Dieses Programm soll mir Rechner zurücksetzen ... (anderes Thema darauf möchte ich nicht hinaus)
    Nehmen wir an der Rechner ist nun zurück gesetzt nun möchte ich einfach nur überprüfen ob beispielsweise Betriebssystem Windows 8.1 aktiviert ist wenn ja, soll keine Meldung ausgegeben werden, wenn aber nein kommt soll er mir eine MessageBox ausgeben "Produkt ist nicht aktiviert, bitte aktivieren Sie das Produkt manuell"

    Eine Art von Check-Tool soll dies sein.
    Was läuft auf "Deinem" Rechner?
    Was läuft auf "Wdem anderen" Rechner?
    (bzw. nicht)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Auf meinem wird die Anwendung laufen.
    Auf dem anderen soll die Aktivierung über Netzwerk überprüft werden (Aktivierung von Betriebssystem und Anwendungen beispielsweise Outlook, TeamViewer oder so)
    (Beide Rechner befinden sich im Netzwerk)

    DarkDeviLw schrieb:

    Auf dem anderen soll die Aktivierung über Netzwerk überprüft werden
    Da würde ich glatt anfangen und das ganze mal ohne Programm, nur per System zu testen.
    Wenn Du den Ablauf im Griff hast, mach ein Programm draus.
    Und:
    Welche Rechte benötigst Du, um fern solche Informationen aufzusammeln?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hi,

    ich habe nun folgendes vor und zwar habe ich im Internet eine Seite gefunden die genau das wieder gibt was ich benötige...
    win-tipps-tweaks.de/cms/window…-aktivierung-pruefen.html

    Nicht wundern ist Windows 7 aber funktioniert auch auf Windows 8.1 (lokal getestet)
    Nun habe ich folgendes gemacht:

    C#-Quellcode

    1. private void button6_Click(object sender, EventArgs e)
    2. {
    3. foreach (object itemChecked in ListNote.CheckedItems)
    4. {
    5. System.Diagnostics.Process myproc = new System.Diagnostics.Process();
    6. myproc.EnableRaisingEvents = false;
    7. string item = itemChecked.ToString();
    8. myproc.StartInfo.FileName = string.Format(@"C:\Users\sabrina.juchem\Downloads\PSTools\PsExec.exe", item);
    9. myproc.StartInfo.CreateNoWindow = false;
    10. myproc.StartInfo.UseShellExecute = false;
    11. myproc.StartInfo.Arguments = string.Format(@"\\{0}", item);*/
    12. myproc.StartInfo.Arguments = string.Format(@"\\{0} c:\Windows\System32\slmgr.vbs -dli", item);
    13. myproc.Start();
    14. myproc.WaitForExit();
    15. }
    16. }


    Das heisst ich möchte das vbs Skript über meine Anwendung starten lassen, sprich über das Netzwerk.
    Die Verbindung von meiner Anwendung zu meinem Netzwerk Rechner besteht bereits dort:

    C#-Quellcode

    1. myproc.StartInfo.FileName = string.Format(@"C:\Users\sabrina.juchem\Downloads\PSTools\PsExec.exe", item);
    2. myproc.StartInfo.CreateNoWindow = false;
    3. myproc.StartInfo.UseShellExecute = false;
    4. myproc.StartInfo.Arguments = string.Format(@"\\{0}", item);*/


    PsExec.exe sorgt dafür das die Verbindung aufrecht erhalten ist.

    Nun starte ich auch meine Anwendung aber mir wird nicht wie im Beispiel genannt diese Meldung angezeigt:
    win-tipps-tweaks.de/cms/images…tivierung/aktivierung.jpg

    Sondern er öffnet kurz eine cmd und beendet diese aber direkt wieder ohne das man richtig lesen kann was drin steht...
    Wie kann ich darin vorgehen?
    Hat dafür Jemand eine andere Idee?
    habe nun folgenden code:

    C#-Quellcode

    1. private void button6_Click(object sender, EventArgs e)
    2. {
    3. foreach (object itemChecked in CheckedListBox1.CheckedItems)
    4. {
    5. System.Diagnostics.Process myprocess = new System.Diagnostics.Process();
    6. myprocess.EnableRaisingEvents = false;
    7. string item = itemChecked.ToString();
    8. myprocess.StartInfo.FileName = string.Format(@"C:\\Users\Test.exe", item);
    9. myprocess.StartInfo.RedirectStandardOutput = true;
    10. myprocess.StartInfo.UseShellExecute = false;
    11. myproc.StartInfo.Arguments = string.Format(@"\\{0} cscript.exe //Nologo %WINDIR%\system32\slmgr.vbs /dli | find ""Lizenzstatus:""", item);
    12. myproc.Start();
    13. myproc.WaitForExit();
    14. }
    15. }


    Über Commandozeile kann ich es so aufrufen, womit es auch funktioniert:

    C#-Quellcode

    1. C:\Users\>exe \\{0} cscript.exe //Nologo %WINDIR%\system32\slmgr.vbs /dli | find "Lizenzstatus:"


    Nun denke ich das ich einen Syntax Fehler hier habe:

    C#-Quellcode

    1. myproc.StartInfo.Arguments = string.Format(@"\\{0} cscript.exe //Nologo %WINDIR%\system32\slmgr.vbs /dli | find ""Lizenzstatus:""", item);


    Ich finde ihn aber einfach nicht :(
    Seht ihr den Fehler?

    Ich vermute bei Lizenzstatus aber ich weiß nicht wo da.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DarkDeviLw“ ()