Avatar billede sarid Nybegynder
03. januar 2003 - 14:20 Der er 28 kommentarer og
1 løsning

Køre et program fra en VB script eller Shell script

Hvordan kan jeg køre et program fra en VB eller Shell script hvis programmet hedder, f.eks. program.exe?
På forhånd tak
Avatar billede medions Nybegynder
03. januar 2003 - 14:23 #1
Ja...

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.run "C:\program.exe"

//>Rune
Avatar billede medions Nybegynder
08. januar 2003 - 10:41 #2
Kunne du bruge svaret?

//>Rune
Avatar billede medions Nybegynder
11. januar 2003 - 12:00 #3
Vær venlig at afslutte spm'et hvis du ar fået et bruglig svar!

//>Rune
Avatar billede sorenh Nybegynder
27. januar 2003 - 14:01 #4
Kan man få parametre retur fra det kaldte program ?

SHH
Avatar billede medions Nybegynder
27. januar 2003 - 14:10 #5
Det kommer an på hvad du ønsker retur...`?

//>Rune
Avatar billede sorenh Nybegynder
27. januar 2003 - 14:14 #6
Det kaldte program er et jeg selv har lavet, så jeg ønsker at returnere om alt er gået godt. Vil scriptet vente på at det kaldte program er udført ??

SHH
Avatar billede medions Nybegynder
27. januar 2003 - 14:22 #7
Ja

//>Rune
Avatar billede george Nybegynder
28. januar 2003 - 15:19 #8
Hvordan skal linjen se ud hvis man vil kører et program med parameter ?

Eks.: WshShell.Run "c:\programmer\citrix\ica client\pn.exe" /APP "Desktop"

Den vil ikke acceptere pn.exe" /APP "Desktop"
Avatar billede medions Nybegynder
28. januar 2003 - 21:59 #9
Jamen hvad gør /APP "Desktop" ?

//>Rune
Avatar billede george Nybegynder
28. januar 2003 - 22:40 #10
Med c:\programmer\Citrix\ICA Client\pn.exe /APP "Desktop" kan du få en Win3.11/Win98/NT maskine til at starte automatisk op i et Citrixmiljø uden at du ser skrivebordet med alle dine ikoner. Det vil sige at du får et login billede med det samme efter du har startet din maskinesom gør at du kan logge på en Citrix server.

Har du nogen idéer ?
Avatar billede medions Nybegynder
28. januar 2003 - 22:42 #11
Hmm har du ICQ?

//>Rune
Avatar billede medions Nybegynder
28. januar 2003 - 22:43 #12
-Du tror ik' bare du skal skrive:

WshShell.Run "c:\programmer\citrix\ica client\pn.exe /APP Desktop"

?

//>Rune
Avatar billede george Nybegynder
28. januar 2003 - 23:08 #13
Prøvede lidt tidligere på dagen, men det virkede ikke. ( jeg er lidt usikker for jeg har prøvet så mange forskellige kombinationer ) Prøver lige igen i morgen og ser hvad fejl den kommer med.
Avatar billede medions Nybegynder
28. januar 2003 - 23:11 #14
george> Er det dig der har oprettet spm'et? -i så fald har du 2 brugere, det må du ikke have!

-igen, har du ICQ?

//>Rune
Avatar billede george Nybegynder
29. januar 2003 - 09:00 #15
Nej jeg har ikke oprettet dette spørgsmål. Jeg kunne se at sorenh havde stillet et spørgsmål så derfor benyttede jeg også lejligheden til at få et, troede jeg, et hurtigt svar.

Nej jeg har ikke ICQ.
Avatar billede george Nybegynder
29. januar 2003 - 22:38 #16
Har lavet flere test i løbet af dagen uden af jeg har fundet en tilfredstillende løsning.

Det jeg fandt ud var at Windowsprogrammer som notepad og wordpad virker som beskrevet ovenfor med WshShell.Run. Jeg har prøvet at kører følgende med WshShell.Exec "c:\programmer\citrix\ica client\pn.exe" & " /APP " & "Desktop" og man kan se at windows starter sessionen op mod citrix serveren, men trods det at jeg lavede en Do-While løkke med en WshShell.Sleep 100 sprang den videre til næste linje i scriptet som var en MsgBox. Grunden til at jeg ikke kan bruge det er jo at jeg vil give den en kommando gennem scriptet så computeren slukker når man logger af citrix, men det sker altså allerede inden man når at taste brugernavn og password for at logge på citrix serveren.

Har nu stillet spørgsmålet på citrix hjemmeside i håb om en mulig løsning.

Tak for din hjælp Rune.
Avatar billede medions Nybegynder
29. januar 2003 - 23:12 #17
;o)
Avatar billede mr_clark Nybegynder
30. januar 2003 - 10:20 #18
WshShell.Run "c:\programmer\citrix\ica client\pn.exe" /APP "Desktop"

Linien skal se således ud (såvidt jeg husker, problemet er dit brug af "):

WshShell.Run "c:\programmer\citrix\ica client\pn.exe /APP ""Desktop"""

Når man bruger gåseøjne inde i en streng, skal du lave den dobbelt. Så vil den blive opfattet som et enkelt gåseøje.
Avatar billede mr_clark Nybegynder
30. januar 2003 - 10:21 #19
WshShell.Run "c:\programmer\citrix\ica client\pn.exe" /APP "Desktop"

Linien skal se således ud (såvidt jeg husker, problemet er dit brug af "):

WshShell.Run "c:\programmer\citrix\ica client\pn.exe /APP ""Desktop"""

Når man bruger gåseøjne inde i en streng, skal du lave den dobbelt. Så vil den blive opfattet som et enkelt gåseøje.
 
Undskyld kommentaren, det sku' ha' været et svar ;o)
Avatar billede george Nybegynder
30. januar 2003 - 14:55 #20
Ok.

Det virker og alligevel ikke for px.exe er et lille program som skaber forbindelse til en session (Desktop) på Citrixserveren og når den har skabt denne forbindelse så slipper/afslutter pn.exe og næste linje i mit script bliver afviklet og det er ikke så smart for linjen beder computeren om at slukke.

Jeg har prøvet at sætte følgende ind i mit scipt, men det hjælper ikke:
'undersøger om pn.exe kører

Do While oExec.Status = 0
    WScript.Sleep = 100
Loop

Så man kan altså som jeg før har beskrevet bruge dette til at starte windowsprogrammer op med. Men lige i min situation kan det ikke bruges.
Avatar billede mr_clark Nybegynder
30. januar 2003 - 16:29 #21
Jo det kan da...

Du bruger bare WMI til at checke om proces-navnet stadig eksisterer istedet.

Du får lige et link til WMI SDK'en først:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_start_page.asp

Og så et direkte til den klasse der har med processer at gøre:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_process.asp

Så har du den funktionalitet du gerne vil have :o)
Avatar billede george Nybegynder
30. januar 2003 - 22:50 #22
De links du giver mig her, er det ikke kun til NT4 og Windows2000 ?

Husk jeg kører Win98!

Hvis du kan lave mig lidt kode ville det være fedt. Jeg kan oprette et nyt spørgsmål, dette er jo ikke et jeg har oprettet.

Hvad med 200 points for et script der med din og min hjælp for dette til at virke ?
Avatar billede mr_clark Nybegynder
31. januar 2003 - 10:35 #23
Det der er mere interessant er: Hvad er det du vil opnå med dit script ? Hvorfor lukker den maskinen ned efter den har fået kontakt ? Det skal den jo åbenbart ikke... Prøv at forklare hvad det er du gerne vil have scriptet til at gøre. Så er det nemmere at gennemskue :o)
Avatar billede george Nybegynder
31. januar 2003 - 10:49 #24
Mit script skal starte en Citrixsession. Når det er gjort kommer der et login billede som gør at man kan logge på en given Citrixserver. Når jeg er færdig med at arbejde på Citrixsessionen skal min computer lukke ned når jeg logger af Citrixserveren.
Avatar billede mr_clark Nybegynder
31. januar 2003 - 11:21 #25
IIIIH, hvad sker der for det her sted ?

Du skal bruge: WshShell.Run("drev:\sti\program.exe", 1, True)

Så går dit script ikke videre før din citrix-session er færdig.
Avatar billede george Nybegynder
01. februar 2003 - 15:21 #26
Jo det gør. Og () kan ikke bruges i linjen for så får jeg en scriptfejl: "Du kan ikke bruge parateser en sub"

Mit script ser således ud:
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "c:\programmer\citrix\icaclient\pn.exe /APP ""Desktop-65536""", 1, True

Rem ** Lukker computer **
WshShell.Run "rundll32 shell32.dll,SHExitWindowsEx 1"
Avatar billede mr_clark Nybegynder
03. februar 2003 - 09:17 #27
Jeg har ikke WSH tilgængelig nu... så jeg kan ikke engang efterprøve det. Men ifølge Microsofts VBscript hjælpefiler, så skulle True-værdien gerne sikre at scriptet ikke går videre før pn.exe afsluttes.

Kan det tænkes at pn.exe bare er en launcher for et andet program ? Det ville virke som det mest logiske.

Prøv at rem'e shutdown-linien, og se hvilke jobs der kører efter citrix-klienten har connected til serveren.
Avatar billede george Nybegynder
09. februar 2003 - 11:26 #28
Du har ret med at pn.exe er en launcher for et andet program, nemlig Citrixsession "Desktop-65536"

Jeg har lavet et script der kan "se" hvilke processer der kører og jeg kan derved "føle" når Citrixklienten afslutter.

Det samlede script kan du/i se når jeg har fået skruet det hele sammen.

Vender tilbage med der forhåbentlig kører perfekt.
Avatar billede medions Nybegynder
20. marts 2003 - 16:16 #29
Thx 4 Poinz

//>Rune
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester