16 de noviembre de 2015

Trucos de WSH

Siempre es interesante conocer algunas de las funciones del WSH, esto brinda un poco mas de dinamica a nuestras aplicaciones.

OBTENER NOMBRE DEL PC, DOMINIO Y USUARIO
WshNetwork = CreateObject('WScript.Network')
lcMessage='Domain = ' + WshNetwork.UserDomain + CHR(13)
lcMessage=lcMessage+ 'Computer Name =' + WshNetwork.ComputerName+CHR(13)
lcMessage=lcMessage+ 'User Name = ' + WshNetwork.UserName
MESSAGEBOX(lcMessage)
OBTENER INFORMACION SOBRE LAS UNIDADES DE CD
LOCAL strComputer
Local lcString
strComputer = '.'
lcString = ''
objWMIService = Getobject('winmgmts:'+ 'impersonationLevel=impersonate}!\\' + strComputer + '\root\cimv2')
colItems = objWMIService.ExecQuery('Select * from Win32_CDROMDrive')
For Each objItem In colItems
    lcString = lcString + 'Description: '+objItem.Description+Chr(13)
    lcString = lcString + 'Name: '+objItem.Name+Chr(13)
    lcString = lcString + 'Manufacturer:' +objItem.manufacturer+Chr(13)
    lcString = lcString + 'Media type: '+objItem.mediaType+Chr(13)
    lcString = lcString + 'PNP Device ID:' + objItem.PNPDeviceID +Chr(13)
Next
Messagebox(lcString)
MAPEAR UNA UNIDAD DE RED
oNet = CreateObject('WScript.Network')    
oNet.MapNetworkDrive('I','\\myserver\myFiles',.T.,'mike','password')
DESCONECTAR DE UNA UNIDAD DE RED
WshNetwork = CreateObject('WScript.Network')
WshNetwork.RemoveNetworkDrive('E')
CONFIGURAR UNA IMPRESORA POR DEFAUL
oNet = CreateObject('WScript.Network')    
oNet.SetDefaultPrinter('\\ServerName\PrinterName')
OBTENER EL ESPACIO LIBRE EN DISCO
objFSO = CreateObject('Scripting.FileSystemObject')
objDrive = objFSO.GetDrive('C:')
MESSAGEBOX('Available space: ' + chr(13)+TRANSFORM(objDrive.AvailableSpace,'999,999,999,999,999'+' kb' ))
COMO COPIAR UN ARCHIVO DEUN LUGAR A OTRO
FSO = CreateObject('Scripting.FileSystemObject')
FSO.CopyFile('c:\COMPlusLog.txt','c:\x\')
COMO CREAR UNA CARPETA
fso = createobject('Scripting.FileSystemObject')
fldr = fso.CreateFolder('C:\MyTest')
COMO BORRAR UNA CARPETA
fso =createobject('Scripting.FileSystemObject')
fldr = fso.DeleteFolder('C:\MyTest')
DETERMINAR SI UNA CARPETA EXISTE
fso =createobject('Scripting.FileSystemObject')
? fso.FolderExists('C:\MyTest')
COMO CREAR UN ARCHIVO
fso = CreateObject('Scripting.FileSystemObject')
f1 = fso.CreateTextFile('c:\testfile.txt', .T.)
COMO CREAR UN ARCHIVO Y ESCRIBIR EN EL
fso = CreateObject('Scripting.FileSystemObject')
tf = fso.CreateTextFile('c:\testfile.txt', .t.)
tf.WriteLine('Testing 1, 2, 3.') 
tf.WriteBlankLines(3) && Skip three lines
tf.Write ('This is a test.') 
tf.Close
MODIFY FILE 'c:\testfile.txt'
COMO CREAR UN ICINO EN EL ESCRITORIO
Shell = CreateObject('WScript.Shell')
DesktopPath = Shell.SpecialFolders('Desktop')
link = Shell.CreateShortcut(DesktopPath+'\test.lnk')
link.Arguments = '1 2 3'
link.Description = 'test shortcut'
link.HotKey = 'CTRL+ALT+SHIFT+X'
link.IconLocation = 'app.exe,1'
link.TargetPath = 'c:\blah\app.exe'
link.WindowStyle = 3
link.WorkingDirectory = 'c:\blah'
link.Save()
COMO CREAR UNA ENTRADA EN EL REGISTRY DE WINDOWS
oSh = CreateObject('WScript.Shell')
key =  'HKEY_CURRENT_USER\'
oSh.RegWrite( key + 'WSHTest\','testkeydefault')
oSh.RegWrite(key + 'WSHTest\string1', 'testkeystring1')
oSh.RegWrite( key + 'WSHTest\string2', 'testkeystring2', 'REG_SZ')
oSh.RegWrite( key + 'WSHTest\string3', 'testkeystring3', 'REG_EXPAND_SZ')
oSh.RegWrite( key + 'WSHTest\int', 123, 'REG_DWORD')
COMO REMOVER LA ENTRADA
oSh = CreateObject('WScript.Shell')
oSh.RegDelete('HKCU\\Software\\ACME\\FortuneTeller\\MindReader')
oSh.RegDelete('HKCU\\Software\\ACME\\FortuneTeller\\')
oSh.RegDelete ('HKCU\\Software\\ACME\\')

Se que les seran de alguna utilidad.

Disfrutenlas.

Mauricio Henao Romero

2 comentarios :

  1. Hola buenos dias estoy buscando la forma de identificar si una ocx o dll esta registrada o existe en la pc. Alguna pista ?

    ResponderBorrar
  2. Saludos, necesito restaurar una base de datos Mysql desde vfp sin usar un archivo .bat, quien pueda ayudar...

    ResponderBorrar

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.