Allora...l'ho provato e funziona!!!![]()
L'ultimo problemino ora è che la calcolatrice che appare nella finestra risulta sempre mezza nascosta! C'è un metodo per farla apparire magari al centro della form?
Cmq moltissime grazie per l'aiuto!![]()
Max!
Allora...l'ho provato e funziona!!!![]()
L'ultimo problemino ora è che la calcolatrice che appare nella finestra risulta sempre mezza nascosta! C'è un metodo per farla apparire magari al centro della form?
Cmq moltissime grazie per l'aiuto!![]()
Max!
max1850,
il codice che ti ho postato è perfettamente funzionante, basta che lo copi ed incolli nel modulo di una Form, sulla quale avrai messo un bottone.
PS. Prima devi attivare il riferimento a Microsoft Scripting Runtime
![]()
LM
Ciao!
LMondi...ho provato ma la calcolatrice si apre sempre fuori la form che la richiama!
Ma questa calcolatrice del Windows non si può inserire nella form come oggetto OLE? Non c'è un'opzione del tipo "Inserisci file nella form"?
Grazie
Max!
Certo che puoi usare un contenitore OLE per attivare la calcolatrice, ti dico subito che non ho un'esperienza diretta; comunque per richiamare calc.exe non serve nemmeno scrivere del codice, basta inserire il contenitore OLE (vedi che c'è l'apposita icona)e poi fare: inserisci oggetto, crea dal file e con sfoglia, che appare dopo aver attivato la predetta opzione, selezioni dal percorso C:\WINDOWS\System32\CALC.EXE il relativo programma.
Quando avvii la Frm fai doppio clic sul contenitore ed appare la calcolatrice.
Questa è un'informazione superficiale, devi approfondire tutti gli altri aspetti.![]()
LM
Ciao!![]()
Ho appena provato tramite OLE ma nella form ci inserisce solo il collegamento alla calcolatrice, non la calcolatrice già aperta.
Cmq..usando la proprietà SetParent, la calcolatice riesco ad inserirla in una mia form, ma mezza calcolatrice rimane coperta dalla form, perchè si sposta ogni volta. C'è un metodo per bloccare la calcolatrice al centro della form?
Il codice che ho usato è il seguente:
-------------
Private Const GW_HWNDNEXT = 2
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Function PidTohWnd(ByVal pid As Long) As Long
Dim ckH As Long
Dim ckThr As Long
Dim ckPid As Long
ckH = FindWindow(ByVal 0&, ByVal 0&)
Do While ckH
If GetParent(ckH) = 0 Then
ckThr = GetWindowThreadProcessId(ckH, ckPid)
If ckPid = pid Then
PidTohWnd = ckH
Exit Do
End If
End If
ckH = GetWindow(ckH, GW_HWNDNEXT)
Loop
End Function
Private Sub Form_Load()
Call SetParent(PidTohWnd(Shell("calc.exe", vbNormalFocus)), Me.hwnd)
End Sub
---------------
Ciao![]()
Max!