Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Systemeigenschaften per CMD aufrufen (https://www.delphipraxis.net/191615-systemeigenschaften-per-cmd-aufrufen.html)

IMPEGA 2. Feb 2017 11:06

Systemeigenschaften per CMD aufrufen
 
Hallo
Ich habe folgendes Problem.
Ich möchte dieses Fenster per CMD aufrufen. (Von Delphi aus)
http://www0.xup.in/exec/ximg.php?fid=18667113
Sastem : Windows 7 Englisch
So könnte ich die Aktivierung per Hand einleiten. Slui.exe startet nicht. Keine Ahnung warum.


Hier mein Problem, vielleicht hat Jemand eine andere (bessere) Idee.
Es geht nur darum zu sehen ob Windows aktiviert wurde.
Ich aktiviere Windows so: ShellExecute(HWND(nil), 'open', PAnsiChar('slmgr.vbs'), '/ato', '', SW_NORMAL);
Leider bleibt der Script öfters mal hängen. Es werden parallel viele Sachen im Hintergrund konfiguriert.
Die Aktivierung ist nur ein Teil davon.
Um zu sehen ob die Aktivierung erfolgreich war möchte ich eben die Systemeigenschaften automatisch starten. Ohne Umwege.

Momentan habe ich ein Timeout von 50s eingebaut.
Delphi-Quellcode:
ShellExecute(HWND(nil), 'open', PAnsiChar('slmgr.vbs'), '/ato', '', SW_NORMAL);

Timer startet hier und sucht nach dem Fenster.

Delphi-Quellcode:
wndMain := FindWindow('#32770','Windows Script Host');

Falls die Aktivierung erfolgreich war kommt eine positive Meldung im Logfenster.
Fall die Aktivierung gescheitert ist kommt ein Timeout.
Das Problem ist halt dass es sehr oft hängen bleibt.


Leider kann ich die slui.exe per Shellexecute auch nicht starten. Selbst wenn ich die slui.exe von dem Rechner in den Applikationsordner kopiere startet es nicht.
Keine Ahnung ob es mit den Rechten etwas zu tun hat. Ich glaube aber schon.
Was genau auf dem Rechner konfiguriert wurde weiß ich nicht wirklich.
Ich bekomme ein Image was aufgespielt werden muss und die Daten die konfiguriert werden sollen.
Benutzername, Netzwerk und so weiter.
Das ganze habe ich in einem Tool gepackt und automatisiert. Nur die Aktivierung spackt sehr oft.


Ich habe keine Zeit und Möglichkeit die Rechner lange zu untersuchen oder an dem System Sachen zu testen.
Es ist aber nichts illegales, das gehört unter Anderem zu meiner Arbeit.

Ich hoffe ein paar Tipps zu bekommen wie ich es anders umsetzen könnte.

Der schöne Günther 2. Feb 2017 11:16

AW: Systemeigenschaften per CMD aufrufen
 
Mir fällt spontan auf dass du in ShellExecute(..)
als Arbeitsverzeichnis einen leeren Delphi-String ('') angibst,
es sollte aber besser
Delphi-Quellcode:
nil
sein.

PS: Schau mal in die Doku zu FindWindow(..) (unter Remarks). Das wird wohl die Ursache sein.

Whookie 2. Feb 2017 11:19

AW: Systemeigenschaften per CMD aufrufen
 
Vielleicht nicht ganz das was du suchst aber MSDN-Library durchsuchenSLIsGenuineLocal sollte dies Information liefern können und hier gibts auch ein Beispiel, das müsste in Delphi auch machbar sein...

IMPEGA 2. Feb 2017 11:42

AW: Systemeigenschaften per CMD aufrufen
 
@Der schöne Günther
Nein mit FindWindow hängt es nicht zusammen, das habe ich nur als meine Notlösung eingebaut.
Wenn ich per Batch-Datei das gleiche mache, bleibt das Script auch oft hängen.

Leider hat das mit nil auch nicht geholfen. Es ändert sich gar nichts.


@Whookie
Ja, vielleicht hilft es mir. Dafür brauche ich aber mehr zeit, so gut bin ich nicht um das mal schnell zu konvertieren.
Das wird eher ein Krampf für mich.
Trotzdem danke.

Klaus01 2. Feb 2017 11:50

AW: Systemeigenschaften per CMD aufrufen
 
.. wie schaut es damit aus?

Grüße
Klaus

Der schöne Günther 2. Feb 2017 11:51

AW: Systemeigenschaften per CMD aufrufen
 
Zitat:

Zitat von IMPEGA (Beitrag 1360650)
Nein mit FindWindow hängt es nicht zusammen, das habe ich nur als meine Notlösung eingebaut.
Wenn ich per Batch-Datei das gleiche mache, bleibt das Script auch oft hängen.

Das heißt nicht dein Delphi-Code hängt, sondern das VB-Skript?

IMPEGA 2. Feb 2017 11:59

AW: Systemeigenschaften per CMD aufrufen
 
Genau das meinte ich damit.
Delphi macht was es soll.

@Klaus01
Ja genau das habe ich gerade probiert.
Läuft unter Delphi 7 leider nicht, mein Projekt ist D7, das wäre aber nicht das Problem.
Unter RAD Studio Berlin wird es sofort als Virus bei mir erkannt.
Auf meinem Rechner könnte ich es halt deaktivieren, die Auftrags-Rechner aber werden frisch mit Image aufgespielt.
Das kann ich dann schlecht jedes Mal deaktivieren. Ich bin noch am fummeln, um die Detection zu korrigieren das scheint aber nicht die Lösung zu sein.
Gerade weil ich die Aktivierung dann eh per Hand tätigen muss. Also hilft es mir nicht wirklich. Dafür reicht meine Version mit Timeout auch aus.

Mir wäre am liebsten einfach das Eingenschaften-Fenster per CMD oder was weiß ich von Delphi aus zu starten und die Aktivierung per Hand auslösen.
Damit habe ich die Anzeige und Kontrolle.

Danke trotzdem für Eure Ansätze, bitte weitere Ideen posten.


EDIT 2:
D7 korrigiert und es läuft auch.
Das Problem mit der Aktivierung bleibt bestehen.
Damit hätte ich die Überwachung realisiert. Nun muss es noch mit der Aktivierung klappen.
Ich kann den Script nicht beliebig oft abfeuern, per Timer oder so, damit verstopfe ich den Speicher.

Nun bitte noch um Tipps zu automatischen Aktivieren.
Danke im Voraus.

NicoDE 2. Feb 2017 13:55

AW: Systemeigenschaften per CMD aufrufen
 
Zitat:

Zitat von IMPEGA (Beitrag 1360646)
Ich möchte dieses Fenster per CMD aufrufen.

"%systemroot%\system32\control.exe" /name Microsoft.System
Siehe Executing Control Panel Items

mrtwo12 2. Feb 2017 14:26

AW: Systemeigenschaften per CMD aufrufen
 
Moin,

bleibt das Script hängen oder bekommst Du eine Fehlermeldung?
Läuft die Aktivierung mittels Windows Akt Key oder KMS Server?
Ist das HSW evt. per GPO eingeschränkt?

Warum nicht einfach
cscript //nologo C:\Windows\System32\slmgr.vbs /ato>C:\Info.txt
in eine cmd und diese dann mit runas starten (benötigt Admin Rechte).
Oder ShellExecuteEx bzw. CreateProcess?
Die Logadatei kann man dann auswerten und ggf. Aktionen starten.

mfg

Edit:
habe gerade nochmal nachgesehen, cscript hat die Option //T:nn, hier kann die max Zeit für die Ausführung angegeben werden, nach meinen Erfahrungen (KMS) dauert das Aktivieren maximal 2 Minuten.

IMPEGA 2. Feb 2017 20:45

AW: Systemeigenschaften per CMD aufrufen
 
@NicoDE
Danke, das versuche ich sobald ich neuen Auftrag habe.
Momentan habe ich keinen Rechner zum testen.
Auf meinem läuft es wie gewünscht. Damit wäre es für mich die beste Lösung.

Ich melde mich sobald ich es testen kann. (Es kann paar Tage dauern)

IMPEGA 6. Feb 2017 14:37

AW: Systemeigenschaften per CMD aufrufen
 
Hier kann geschlossen werden.
Es hat super funktioniert.

Danke an Alle beteiligten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz