Solved

Wscript.CreateObject

Posted on 2001-07-22
11
759 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
Salesforce Made Easy to Use

On-screen guidance at the moment of need enables you & your employees to focus on the core, you can now boost your adoption rates swiftly and simply with one easy tool.

 
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

Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Question has a verified solution.

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

If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

739 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