Abrir el explorador de Windows en una carpeta especifica
Visual Fox Pro, Trucos Comentarios ( 0 ) »cRuta =
"c:Temp"Run
/N "explorer.exe" &cRuta
Por: David Amador T
cRuta =
"c:Temp"Run
/N "explorer.exe" &cRuta
oForm =
Createobject("Tform")
oForm.Visible
= .T.
Read Events
Define Class tform
As Form
#Define
LWA_COLORKEY 1
#Define
LWA_ALPHA 2
#Define
GWL_EXSTYLE -20
#Define
WS_EX_LAYERED 0x80000
AutoCenter=.T.
Caption="Transparent
Form"
ShowWindow=2
Add Object
cmdSet
As CommandButton With;
Left=10,;
Top=10,;
Height=27,;
Width=80,;
Caption="Set"
Add Object
cmdClear
As CommandButton With;
Left=100,;
Top=10,;
Height=27,;
Width=80,;
Caption="Clear"
Procedure Init
Declare Integer GetWindowLong
In
user32;
INTEGER HWnd,
Integer
nIndex
Declare Integer
SetWindowLong
In
user32;
INTEGER HWnd,
Integer
nIn,
Integer
dwNLong
Declare Integer
SetLayeredWindowAttributes
In
user32;
INTEGER HWnd,
Integer
crKey,;
SHORT
bAlpha,
Integer
dwFlags
Procedure Destroy
Clear Events
Procedure SetMode
Local
nExStyle
nExStyle=GetWindowLong(This.HWnd,
GWL_EXSTYLE)
nExStyle=Bitor(nExStyle,
WS_EX_LAYERED)
=SetWindowLong(This.HWnd,
GWL_EXSTYLE, nExStyle)
=SetLayeredWindowAttributes(This.HWnd,
0,;
128, LWA_ALPHA)
Procedure
ClearMode
Local
nExStyle
nExStyle=GetWindowLong(This.HWnd,
GWL_EXSTYLE)
nExStyle=Bitxor(nExStyle,
WS_EX_LAYERED)
=SetWindowLong(This.HWnd,
GWL_EXSTYLE, nExStyle)
Procedure
cmdSet.Click
Thisform.SetMode
Procedure
cmdClear.Click
Thisform.ClearMode
Enddefine
Define Popup MenContex SHORTCUT Relative From Mrow(),Mcol()
Define Bar 1 Of MenContex Prompt "Elemento 1"
Define Bar 2 Of MenContex Prompt "Elemento 2"
Define Bar 3 Of MenContex Prompt "Elemento 3"
Define Bar 4 Of MenContex Prompt "Elemento 4"
On Bar 2 Of MenContex ACTIVATE Popup
SubM1
Define Popup SubM1 SHORTCUT Relative
Define Bar 1 Of SubM1 Prompt "Sub Elemento X"
Define Bar 2 Of SubM1 Prompt "Sub Elemento Y"
Define Bar 3 Of SubM1 Prompt "Sub Elemento Z"
Define Bar 4 Of SubM1 Prompt "Sub Elemento M"
Define Bar 5 Of SubM1 Prompt
"Sub Elemento P"
Set Mark Of Bar 1 Of SubM1 To .T.
Set Mark Of Bar 3 Of SubM1
To .T.
Set Mark Of Bar 4 Of MenContex To .T.
Activate Popup MenContex
En este ejemplo se muestra como logearse en mi sitio web a través de VFP; la sesión como usuario debe estar cerrada para poder probar el ejemplo.
oIE = Createobject("InternetExplorer.Application")
oIE.Navigate("http://www.davphantom.net")
Do While(oIE.Busy)
DoEvents
EndDo
oIE.Visible = .T.
oDoc = oIE.Document
oForm = oDoc.forms[0]
oForm.item[0].value
= "USUARIO"
oForm.item[1].value=
"CLAVE"
oForm.submit()
Public oForm
oForm = Createobject("form1")
oForm.Show()
Define Class form1
As Form
DoCreate = .T.
Caption
=
"Form1"
Name
=
"Form1"
Add Object
text1
As TextBox With
;
Height
= 25, ;
Left
= 60, ;
Top
= 60, ;
Width
= 97, ;
Name
=
"Text1"
Add Object
text2
As TextBox With
;
Alignment
= 3, ;
Value
= 123.45, ;
Height
= 25, ;
Left
= 60, ;
SelectOnEntry
= .T., ;
Top
= 108, ;
Width
= 97, ;
Name
=
"Text2"
Procedure
text2.Click
TextBox::GotFocus()
EndProc
EndDefine
nNum1 = 9874.6935
nNum2 = 1235.05685
?
Round(Floor(nNum1 * 100) / 100, 2)
Local cBuffer, nBufsize, ii, ch, cName
nBufT = 16384
cBuffer = Repli(Chr(0),
nBufT)
Declare Integer
SQLGetInstalledDrivers
In odbccp32;
STRING
@lpszBu,
Integer
cbBufM,
Integer
@BufOut
If SQLGetInstalledDrivers(@cBuffer,
nBufT, @nBufT)=0
Return
EndIf
Create Cursor csResult (drvname
C(100))
cBuffer = Substr(cBuffer,1,nBufT)
cName = ""
For ii=1
To
nBufT
ch = Substr(cBuffer,
ii,1)
If
ch =
Chr(0)
Insert Into
csResult
Values
(m.cName)
cName = ""
Else
cName = cName + ch
EndIf
EndFor
Go Top
Browse Normal Nowait
Dimension aClasses[1]
cNomLib = Home() + "FFC\_datetime.vcx"
AVcxClasses(aClasses, cNomLib)
For i=1 To Alen(aClasses,1)
? aClasses[i,1]
Endfor
Para configurarlo ve al menú inicio y allí selecciona "Ejecutar" y escribes Regedit; ahora debes ir a la siguiente ruta:
HKEY_CLASSES_ROOTAllFilesystemObjectsshellexContextMenuHandlers
Ahora debes hacer click con el botón derecho en el ContextMenuHandlers y seleccionas "Nueva" y en el submenu "Clave" y le colocas el nombre "Copiar a"; ahora seleccionas "Copiar " y vas al panel derecho y haces doble click sobre la entrada "Predeterminado" y le colocas el valor {C2FBB630-2971-11D1-A18C-00C04FD75D13}. ... LISTO.
Ahora si quieres agregar el mover a ... haces lo mismo ... pero ahora el valor que le vas a colocar es {C2FBB631-2971-11D1-A18C-00C04FD75D13}
Disfruta este truco de Windows ... seguro te será de utilidad.
oForm = Newobject("Form1")
oForm.Show
Read Events
Define Class Form1
As Form
DataSession = 2
Top
= 0
Left
= 0
Height
= 262
Width
= 325
Caption
=
"ListBox"
Name
=
"Form1"
Add Object
List1
As ComboBox With
;
ColumnCount
= 1, ;
ColumnWidths
=
"200",
;
Left
= 50, ;
Sorted
= .T., ;
Style
= 2, ;
TabIndex
= 3, ;
Top
= 40, ;
Width
= 200, ;
Name
=
"List1"
Procedure
List1.Init
With This
.AddItem("Elemento
1")
.AddItem("Elemento
2")
.AddItem("\Elemento
deshabilitado")
.AddItem("Elemento
4")
.AddItem("Elemento
Otro")
.AddItem("Elemento
6")
EndWith
EndProc
EndDefine
Para poder ver la barra la tabla debe tener bastantes registros....
Define Window WinSQL From
12,30 To 16,70;
SHADOW Color Scheme5 Double Name loWind
Active Window WinSQL Noshow
Set Talk Window WinSQL
Set Talk On
Set Notify On
Select * From Tabla
Release Window WinSQL
Local oShell As Shell32.Shell
Local oWindow as SHDocVw.WebBrowser
oShell = Createobject("Shell.Application")
For Each oWindow In oShell.Windows
? oWindow.LocationName,oWindow.LocationURL
Endfor
oConn = NewObject("AdoDB.Connection")
oConn.Open("Provider=VFPOLEDB;Data Source=C:")
? oConn.Properties("Provider Version").Value
oConn.Close()
oConn = Null
Lo que debes hacer es lo siguiente: Escribes zloc y luego presionas la barra de desplazamiento, te aparecerán en el intellisense las variables declaradas en el código actual.
Podemos almacenar dentro de una tabla la(s) sentencia(s) a ejecutar o simplemente pasarla como texto a la función ExecScript o hacer una macrosustitución....
Si esta dentro de un campo de una tabla
ExecScript(Tabla.Campo)
O si es una cadena de texto
cCmd = "For x=1 to 50"+CHR(13)+"?x"+CHR(13)+"Next"+CHR(13)
ExecScript(cCmd)