Newsgroup: it.comp.lang.visual-basic
Titolo: 5 domande

1?
Esiste un'api x rilevare hwnd del cursore anche fuori dalla mia finestra:
quindi GetCursor non va bene.
2?
Se carico un' OCX in un altro computer, cos'altro devo fare x registrarlo
nel registro.
3?
Ho scoperto da poco ScriptControl e parecchie cose non mi sono chiare.
Nell'Help vi sono degli esempi ho provato a eseguire questa sub:
private sub command1_click()
dim strx as string
strx = "sub hello" & vbcrlf & _
"msgbox ""salve gente""" & vbcrlf & _
"end sub"
scriptcontrol1.addcode strx
scriptcontrol1.run "hello"
end sub
E VA, PERÒ SE FACCIO:
private sub command1_click()
dim strx as string
strx = "sub hello" & vbcrlf & _
"form1.backcolor=255" & vbcrlf & _
"end sub"
scriptcontrol1.addcode strx
scriptcontrol1.run "hello"
end sub
No, Perché?
4)Ho provato anche l'esempio di utilizzo del metodo Addobject:
private sub command1_click()
   dim p1, sc
   ' crea un'istanza di filesystemobject.
   set fs = createobject("scripting.filesystemobject")
   ' inizializza scriptcontrol.
    set sc = createobject("scriptcontrol")
    sc.language = "vbscript"
    sc.allowui = true
    sc.usesafesubset = false
   ' aggiunge filesystemobject a scriptcontrol
   sc.addobject "filesystem", fs, true
   p1 = "sub sub1" & vbnewline & _
        "  dim msg" & vbnewline & _
        "  msg = ""ci sono """ & vbnewline & _
        "  msg = msg & filesystem.drives.count" & vbnewline & _
        "  msg = msg & "" unità collegate.""" & vbnewline & _
        "  msgbox msg" & vbnewline & _
        "end sub"
   sc.addcode p1
   sc.run "sub1"
end sub
nell'esempio filesystem  restituisce i drives :
quale altri oggetti posso inserire......????
se possibile piccoli esempi o dove posso attingere informazioni in merito.
5)
Nel post precedente chiedevo se si può subclassare una finestra che non sia
quella della mia applicazione.
Mi è stato risposto di affermativamente.
Allora ho preso l'esempio del NG:
                      NEL FORM
Private Sub Form_Load()
    lProcOld = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    SetWindowLong Me.hWnd, GWL_WNDPROC, lProcOld
End Sub
                NEL MODULO
Public Const WM_MOVING = &H216 '534
Public Const GWL_WNDPROC = (-4)
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA"
_
    (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
    (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As
Long
Public lProcOld As Long
Public Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = 534 Then
        Form1.lblPosition = Form1.Left / Screen.TwipsPerPixelX & _
        ";" & Form1.Top / Screen.TwipsPerPixelY
End If
    WindowProc = CallWindowProc(lProcOld, hWnd, uMsg, wParam, lParam)
End Function
E FUNZIONA BENISSIMO SE SPOSTO LA MIA FINESTRA.
Poi ho sostituito(Me.hWnd)con lo hwnd di un'alta finestra;
la muovo ma lo spostamento non viene rilevato.
dove sta l'errore?
Premesso:
Hwnd della finestra che voglio rilevare lo spostamento
lo ricavo in runtime con WindowFromPoint e lo sostituisco
alle rutine di form1.

 quale altri oggetti posso inserire......????
tutti quelli che vuoi, che siano di tipo Object
(quindi pure i form come ho detto prima)
--
ciao
- Xaero -
"Quando ero piccolo i miei genitori mi
 volevano così bene che nella culla mi
 misero un orsacchiotto vero"