var strRes="";
var oShell=new ActiveXObject("WScript.Shell");
try {
strRes=oShell.RegRead("HKLM\\SOFTWARE\\Test\\foo");
}
catch (e) {
strRes="Fel: "+e.description+"\nFelkod: "+e.number;
}
finally {
oShell.PopUp(strRes);
}
På ett register som ser ut såhär:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Test]
"foo"="3"
Det går att göra som du vill också, men det är lite jobbigare. Det går även att lösa med wmi, med fördelen att du kan querya en annan dator på nätverket också om det skulle behövas. :)
Dock är detta en snabb och simpel lösning med lite felhantering.
Nu använde jag reg query som ett exempel, det jag igentligen ska göra är att hämta information från en setup.exe fil som lämnar ollika typer av "exit code" när den är klar, vill läsa ut exit koderna som körs i cmd. Sedan ska jag skapa ollika if sattser beroende av den data jag får.
Så jag använde bara reg query som ett exempel, vill läsa ut en viss data från ett cmd kommandos utdata.
Har inte tid att skriva ett till exempel nu, men lite senare till kvällen kke. :)
Edit/ efter ditt ping-inlägg:
Jag har faktiskt skrivit ihop ett sådant exempel, dock i vbscript, som ligger och skräpar nånstans. Det är inte det snyggaste. Men jag kan posta in det här sedan. Det plockar ut nästan all info.
Har lyckats lösa mitt problem. Men kanske inte den lösningen jag var på jakt efter.
Jag ska köra en setup.exe fil, den i sin tur kan ge ollika "exit codes" beroende på hur installationen har gått. Jag vill då ha möjlighet att avbryta installationen eller rycka vissa register nycklar etc.
Jag har använt mig av:
WSHShell.Exec
match
För att "lösa" mitt problem, har ett exempel med kommandot "ping", skapat ett funktion som försöker pinga önskad adress, om jag får svar visas värdet "true", om jag inte fåt något svar visas värdet "false".
function ping(address)
{
var WSHShell = new ActiveXObject("wscript.shell")
var oExec = WSHShell.Exec("ping -n 1 -w 10 " + address)
var oReadExec = oExec.StdOut.ReadAll()
var oCodeValue = oReadExec.match("100% loss")
if(oCodeValue == null)
{
WScript.Echo("True")
}
else
{
WScript.Echo("False")
}
}
// Micke
262 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849