Solved

Wscript.CreateObject

Posted on 2001-07-22
11
770 Views
Last Modified: 2012-06-27
Hi
Can you help with this code, why am I getting error messages.
it high lights "Wscript" from Wscript.CreateObject as a variable, but it is not a variable.

Dim WshShell as Object
Set WshShell = Wscript.CreateObject("Wscript.shell"): Compile error, variable not defined


wshom.ocx is installed and registered on my machine and I have tried
Wscript.CreateObject("Wscript.shell")
WScript.CreateObject("WScript.shell")
WSCRIPT.CreateObject("WSCRIPT.SHELL")
With no luck

0
Comment
Question by:paul01
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
11 Comments
 
LVL 1

Expert Comment

by:Wippie
ID: 6306266
1:st
There's no object in vb called Wscript...so variable really isn't defined...

2:nd
The object is case sensitive.
Be sure that it shouldn't be like "WScript.Shell" or something

0
 

Author Comment

by:paul01
ID: 6306290
Thanks Wippie but already tried that one with luck
0
 
LVL 4

Expert Comment

by:Bart van der Wee
ID: 6306598
Paul,

Set WshShell = WScript.CreateObject("WScript.Shell")
Is correct - at the top of your program do you have:

Option Explicit

if so you will have to:

Dim WshShell


Hope this helps,

Bart
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 28

Expert Comment

by:Ark
ID: 6306755
Hi

Set WshShell = Wscript.CreateObject("Wscript.shell"): Compile error, variable not deined
This is vbs script, not VB syntax

Set WshShell = CreateObject("Wscript.shell"): Run time error, Activex component cant create object

1.Object types are often case sencitive, so try "WScript.Shell"
2. Check if wshom.ocx is installed and registered on your machine.

Cheers
0
 
LVL 49

Expert Comment

by:DanRollins
ID: 7156338
Hi paul01,
It appears that you have forgotten this question. I will ask Community Support to close it unless you finalize it within 7 days. I will ask a Community Support Moderator to:

    DELETE this question.
    *** I personally had a similar needs and could never instantiate a WScript object.  Has anyone tried any of these solutions?

paul01, Please DO NOT accept this comment as an answer.
EXPERTS: Post a comment if you are certain that an expert deserves credit.  Explain why.
==========
DanRollins -- EE database cleanup volunteer
0
 
LVL 28

Expert Comment

by:Ark
ID: 7156441
Hi
Just a comment:
>>*** I personally had a similar needs and could never instantiate a WScript object.  Has anyone tried any of these solutions?<<

It's strange...

*** I personally had a similar needs and could never instantiate a WScript object.  Has anyone tried any of these solutions?

Private Sub Command1_Click()
   Dim WshShell As Object
   Set WshShell = CreateObject("Wscript.Shell")
   WshShell.Popup "See, I'm working!!!" & vbCrLf & "I'll disapear after 3 sec.", 3, "WScript Demo", vbOKCancel
   Set WshShell = Nothing
End Sub

Works fine

Cheers
0
 
LVL 49

Expert Comment

by:DanRollins
ID: 7156468
I've had no problems creating a WShell object, it's the WScript object itself... In an HTA, it provides such useful objects as the StdIn object and methods such as Sleep() that I've needed to use.

Since your code works, then it certainly appears that you have provided a PAQable answer.  Lets give paul01 a few days to respond.
-- Dan
0
 
LVL 28

Expert Comment

by:Ark
ID: 7156582
Hello Dan
If you so need these object, just use:

Dim sVBSFile As String

Private Sub Command1_Click()
   Dim nFile As Integer
   sVBSFile = App.Path & "\test.vbs"
   nFile = FreeFile
   Open sVBSFile For Output As #nFile
      Print #nFile, "Set WshNetwork = WScript.CreateObject(" & Chr(34) & "WScript.Network" & Chr(34) & ")"
      Print #nFile, "WScript.Echo " & Chr(34) & "Domain = " & Chr(34) & " & WshNetwork.UserDomain"
      Print #nFile, "WScript.Echo " & Chr(34) & "Computer Name = " & Chr(34) & " & WshNetwork.ComputerName"
      Print #nFile, "WScript.Sleep 200"
   Close #nFile
   Shell "wscript " & sVBSFile, vbNormalFocus
End Sub

Private Sub Form_Unload(Cancel As Integer)
   Kill sVBSFile
End Sub

Cheers
0
 
LVL 49

Expert Comment

by:DanRollins
ID: 7157626
Thanks Ark.  Executing an external script is certainly one technique.  It seems a long way to go to execute Sleep(0) in order to give up a timeslice -- and anyway, I think that that program would run concurrently with the calling program.  However, it does provide a way to access some of the other services provided by the WScript object.  Thanks.
-- Dan
0
 
LVL 28

Expert Comment

by:Ark
ID: 7158964
Hi Dan
It was just a joke :)

Cheers
0
 
LVL 1

Accepted Solution

by:
Computer101 earned 0 total points
ID: 7182406
Points reduced to 0 and placed in PAQ

Computer101
E-E Moderator
0

Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Suggested Courses
Course of the Month6 days, 6 hours left to enroll

627 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question