Diskuze: Jak spuštit vbs file z WF aplikace

C# .NET .NET (C# a Visual Basic) Jak spuštit vbs file z WF aplikace American English version English version

Aktivity (3)
Avatar
Dvori
Člen
Avatar
Dvori:30. května 15:57

Ahoj všem, mám dotaz a už si opravdu zoufám.

Vytvořil jsem si jednoduchou aplikaci, která z tabulky vytáhne data a z nich vygeneruje vbs file, který má následně spustit. Jenže zde je kámen úrazu. Vygenerovaný soubor se spustí, ale v klasické cmdline a na všechny příkazy vrátí hodnotu neznámé atd..

Když vygenerovaný soubor otevřu klasicky dvojklikem ze složky, tak se provede v pořádku. Takže chyba ve vygenerovaném souboru není.

Co jsem se dočetl, tak by se měl vbs spouštět pomocí cscript.exe, ale nějak se mi nedaří najít správný klíč.

Pokud by mi někdo mohl poradit, či poskytnout řešení, byl bych moc vděčný. Celá aplikace je již hotová a na tomhle to aktuálně stojí. :(

Díky Petr

Zkusil jsem: Tento kus kódu jsem našel na netu jako údajně funkční, ale nedaří se mi. Tak nevím jestli jsem jej upravil správně.

Process scriptProc = new Process();
                    scriptProc.StartInfo.FileName = @"cscript";
                    scriptProc.StartInfo.WorkingDirectory = @"C:\SMS\SMSConfigFile\";
                    scriptProc.StartInfo.Arguments = "//B //Nologo "+TechnickePromenne.SMSNazevSouboru+".vbs";
                    scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    scriptProc.Start();
                    scriptProc.WaitForExit();
                    scriptProc.Close();
 
Odpovědět 30. května 15:57
Avatar
Odpovídá na Dvori
Michael Škrášek:30. května 22:36

A nepostačilo by pouhé

Process.Start(@"cesta\k\souboru.vbs");

... mně to script spouští :)

Editováno 30. května 22:37
Nahoru Odpovědět  +1 30. května 22:36
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
Dvori
Člen
Avatar
Odpovídá na Michael Škrášek
Dvori:31. května 9:50

Ahoj, to jsem zkoušel, ale takto to nefunguje.

 
Nahoru Odpovědět 31. května 9:50
Avatar
plelovsky
Člen
Avatar
plelovsky:31. května 10:57

Jméno scriptu má být první argument pro cscrpit

scriptProc.StartInfo.Arguments = TechnickePromenne.SMSNazevSouboru + ".vbs //B //Nologo";
 
Nahoru Odpovědět 31. května 10:57
Avatar
Dvori
Člen
Avatar
Odpovídá na plelovsky
Dvori:31. května 12:33

Bohužel, nefunguje :-(

 
Nahoru Odpovědět 31. května 12:33
Avatar
Dvori
Člen
Avatar
Dvori:31. května 12:33

Ahoj, takto vypadá vygenerovaný vbs.

Set cloner = CreateObject("WScript.Shell")
cloner.run"cmd"
WScript.Sleep 1000

cloner.SendKeys"telnet 192.168.1.101"
cloner.SendKeys("{Enter}")
WScript.Sleep 1500

cloner.SendKeys"root"
cloner.SendKeys("{Enter}")
WScript.Sleep 1500

cloner.SendKeys"root"
cloner.SendKeys("{Enter}")
WScript.Sleep 1500

cloner.SendKeys"sms 999999999 Ahoj toto je vygenerovana SMS"
cloner.SendKeys("{Enter}")
WScript.Sleep 7000

cloner.SendKeys"exit"
WScript.Sleep 1000
cloner.SendKeys("{Enter}")
WScript.Sleep 1000
cloner.SendKeys("{Enter}")

cloner.SendKeys"exit"
WScript.Sleep 1000
cloner.SendKeys("{Enter}")

Když vygenerovaný soubor spustím klasicky dvojklikem tak se vykoná a dorazí SMS. Když je ho pokusím spustit z WF aplikace, tak nefunguje. Pustí se cmd a začne vkládat příkazy, ale na všechny kroky vrátí, že nebylo nalezeno, atd. :-(

Nějaký jiný nápad jak jednoduše poslat telnetem do zařízení řádek s příkazem na odeslání SMS? Já doufal, že to vyřeším přes VBS, ale už jsem z toho na prášky.

 
Nahoru Odpovědět 31. května 12:33
Avatar
plelovsky
Člen
Avatar
plelovsky:31. května 13:29

Spouštět z aplikace cscript, z něj wscript, z něj cmd a z něj telnet je hodně škrábání se za hlavou z druhé strany.
Proč jako process nepustíš ten telnet a neposíláš mu data?
https://msdn.microsoft.com/…vs.110).aspx

 
Nahoru Odpovědět 31. května 13:29
Avatar
Dvori
Člen
Avatar
Dvori:31. května 13:29

Tak jsem pokročil, problém bude v 64bitovém systému. Na windows 7 32bit funguje jednoduchý:

Process.Start(@"C:\VZOR1.vbs");

Ale na 64 bitovém systému se sice script spustí, ale hned to vrací chyby.

 
Nahoru Odpovědět 31. května 13:29
Avatar
Dvori
Člen
Avatar
Dvori:31. května 13:40

Vyřešeno, přepnul jsem projekt na target 64bit systém.

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět 31. května 13:40
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.