Detecting wscript.exe Path - windows

Where is wscript.exe located in Windows? Is is possible to locate the path by the help of Windows Registry?
I need this for my application and it would be great to have a common solution that would give correct location for ranging between XP to Windows 10.

It's in the system32 directory (+syswow64 for the 32bit exe)
You can verify this at the command line with where wscript.
Since its in the PATH environment variable you should never really need to know its path: it can be called from anywhere.

Related

which file can install a program on windows 7?

Which of these files( in setup folder), if execute can install a program on windows 7 ?
1- setup.com
2-setup.ini
3-setup.inf
COM files are executable in Windows. You should be able to run setup.com from the CMD prompt by cding to the directory setup.com is in, and running setup or setup.com.
Keep in mind, COM files cannot be executed on 64-bit versions of Windows, since these editions lack NTVDM, the MS-DOS-emulating subsystem that handles COM file execution. You would instead need to emulate the 32-bit environment using an emulator like DOSBox.
setup.inf can be used to file copy and installation. I cannot remember setup.com installers for Windows programs.
msdn inf description

exe command not recognised in win32 folder

I have placed a mycmd.exe file in system32 folder under windows directory.
Strange thing is that this is accessible from command prompt but when i access this file as a shell command from my VB6 application it shows is "not recognized as an internal or external command"
I am running VB project as run as administrator and using win8 64bit.
Thanks for the anticipated help!!
The WOW64 filesystem redirector is probably taking your program's path and changing it.
See: File System Redirector
Can you show the exact code you're using to run the EXE? The error you're getting makes it clear that VB isn't finding the file. Have you tried appending the path to the specific file you're trying to execute?

Get the path to the 64-bit Program Files folder

I'm using Windows 7 (x64) and I require the path to my 64-bit Program Files folder.
To that end I tried using the ExpandEnvironmentStrings method, but but both examples below return the path the the 32-bit Progrom Files folder (C:\Program Files (x86)).
pfPath = Shell.ExpandEnvironmentStrings("%PROGRAMFILES%")
pfPath = Shell.ExpandEnvironmentStrings("%PROGRAMFILES(x86)%")
I've also tried reading the registry value of ProgramFilesDir, but that returns the path of the 32-bit folder as well, despite the key actually containing the correct path (I've checked the registry).
pfPath = Shell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir")
Is there another way of doing this that may yeild the correct path?
Your program is running on WOW64. Use the ProgramW6432 environment variable to get the real x64 program files path when your program is running 32-bit.
Note that this environment variable only exists when the program is executing under WOW64. If you expect your program to also run on x86 Windows, you need to use the plain PROGRAMFILES environment variable.
So, try ProgramW6432, else fall back to PROGRAMFILES. There may be a more practical way to determine if the OS is x64 or not with VBScript that you can also use.

VB6 Legacy Code can't "Call Shell"

I am working on some legacy VB6 code and I am having my program break with this message:
and it then highlights this code:
I know that the specified locations exist per these screenshots:
I am running this Visual Studio 6.0 on a 64-bit Windows 7 machine. How can I make the program see shell?
command.com does not exist on 64 bit windows.
Try using C:\Windows\SysWOW64\cmd.exe instead. C:\Windows\SysWOW64 is a folder giving you backwards compatibility stuff for 32 bit.
But see the comment below (taken from Euro Micelli).
Really you should use %SYSTEMROOT\System32\cmd.exe instead. First, Windows is not always installed in C:\Windows; you should let the system figure that out. Second, using System32 is always correct for a 32-bit application: when running on Win32, it is the correct folder; when running on Win64, Windows will map %SYSTEMROOT%\System32 to %SYSTEMROOT%\SysWOW64
I use vb6 and windows 7.
I've done the same thing as you but I put the dos command in a bat file.
Login.bat
NET USE W: \\10.48.10.8\e$
Then in the code
Shell ("c:\login.bat")
The vb command is not correct for the OS that you are running. You need to check that that drive is not already mapped, and remove the command.com /c from the command that you are trying to execute.

"Android Create" call fails in windows 7 - missing JDK

I'm having a problem getting my android dev environment setup in Windows 7. I follow the instructions here, as well as several environment sublinks. I am using Eclipse with the Android plugin. I have installed the Java JDK several times, in various locations (jdk-6u20-windows-i586.exe) - but I am obviously missing something.
Every time I run "android create avd --target 2 --name my_avd" I get an error:
C:\Users\andrew>android create avd --target 2 --name my_avd
WARNING: Java not found in your path.
Checking it it's installed in C:\Program Files\Java instead.
ERROR: No suitable Java found. In order to properly use the Android Developer
Tools, you need a suitable version of Java installed on your system. We
recommend that you install the JDK version of JavaSE, available here:
http://java.sun.com/javase/downloads/
You can find the complete Android SDK requirements here:
http://developer.android.com/sdk/requirements.html
This error message is the reason for me installing the JDK several times over. First I tried installing to a location on my e: drive. I then moved it to the default loc (program files (x86)\java\jdk.6.something. I also tried forcing it to go into the program files\ path, but it still automatically installs into the (x86) path. I have added the install path to my path environment variable every single time, yet I still continue to get this error. My suspicion is that windows 7 and the android tools are not playing together well in terms of finding the JDK, but who knows, it may be something entirely different. If you have seen this error before, I would appreciate a hint.
I had this same problem, after accidentally installed the 32-bit version of Java SDK. I uninstalled it and installed the 64-bit version (since I'm using Windows 7 64). The Android SDK setup never found Java correctly, even after I added it to my PATH variable!
After a bit of digging around, I discovered a java.exe floating around in my system32 folder, which in the order of the PATH variable came before my SDK path. After whacking the java.exe in my system32 folder, the Android Setup ran just fine!
Hope this helps.
The android command is just a Windows Batch file which in turn uses the batch file tools\lib\find_java.bat to find Java.
Having a look at the source, it does the following:
Looks to see if java.exe is on your PATH.
Looks for java.exe in somewhere under %ProgramFiles%
Your problem arises because you're using the a 64-bit version of Windows. This means %ProgramFiles% is C:\Program Files but Java is installed in C:\Program Files (x86) as it's a 32-bit application, meaning find_java.bat doesn't find it.
So to fix this you'll need to add the directory containing java.exe to your PATH environment variable.
You'll need to the add the directory containing java.exe - something like C:\Program Files (x86)\Java\jdk6\bin - on to the end of PATH with a semicolon in front of it to separate it from the previous entry.
This question on superuser.com covers maintaining Environment Variables in Windows 7.
It is really hell with JDK detection...
My params: Win 7 x64 + JDK x64 (JDK path (c:\Program Files\Java\jre7\bin)
Was googling and playing around with env variables may be 1 hour - no way.
Finally come with such solution
Manually edit android-sdk-windows\tools\lib\find_java.bat by hardcoding the path to java.exe
set java_exe=c:\Progra~1\Java\jre7\bin\java.exe
if not defined java_exe goto :CheckFailed
:SearchJavaW
set javaw_exe=c:\Progra~1\Java\jre7\bin\javaw.exe
if not exist %javaw_exe% set javaw_exe=%java_exe%
goto :EOF
Thats works for me.
In the SDK tools folder go to libs and edit find_java.bat. It can usually be found in C:\Program Files (x86)\Android\android-sdk-windows\tools\lib.
Change all instances of %PROGRAMFILES% to %PROGRAMFILES(X86)%.
I did this and the error went away.
Find android-sdk-windows\tools\lib\find_java.bat and add something like the following:
set java_exe=
call :TestJavaDir "%JAVA_HOME%"
if defined java_exe goto :EOF
What worked for me was this:
add a path to your java/bin directory to the system Path variable. Do NOT include java.exe.
Steps on Win 7 64bit:
Click Windows Button
Right Click on Computer
Select Properties from the Context Menu
Click Advanced System Settings on the top left section
Click the Environment Variables... button at the bottom of the properties dialog
On the bottom list (System variables) find the "Path" variable
Click the Edit button
Go to the end of the textbox and type something like c:\program
files\java\jdk1.6.0_26\bin (make sure it matches the name of your
java directory!)
Click OK
Click OK
Click OK
Try it out!
hth,
\ ^ / i l l
I put rem statement in android.bat after the call command and hardcode the path of \bin\java.exe:
rem Check we have a valid Java.exe in the path.
set java_exe=<..>\jdk1.6.0_31\bin\java.exe
rem call lib\find_java.bat
if not defined java_exe goto :EOF
Same for setting other variable javaw_exe thus:
set javaw_exe=<..>\jre1.6.0_31\bin\javaw.exe
if not exist %javaw_exe% set javaw_exe=%java_exe%
goto :EOF
C:\Windows\SysWOW64
1down vote
I also had this same problem
-> accidentally installed the 32-bit version of Java SDK -> uninstalled -> installed the 64-bit version (Windows 7 64) -> -> the Android SDK setup never found Java correctly!
I discovered a java.exe floating around in C:\Windows\SysWOW64 folder.
After renaming this java.exe to javaX.exe, the Android Setup ran just fine!

Resources