Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    216

    Calcolatrice in VB 6 ?

    Salve! Uso Visual Basic 6.
    Vorrei inserire una calcolatrice in una mia form.
    Esiste un componente da poter aggiungere, come per il calendario? Ho cercato ma non l'ho trovato... :rollo:
    Se non esiste, posso aggiungere la calcolatrice del Windows (calc.exe) in una mia form? Come la inserisco dentro la form?

    Grazie
    Max!

  2. #2
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Non esistono controlli del genere in VB6 , in alternativa: o la costruisci ex novo o ti accontenti di quella di Win (che poi è valida). Se scegli quest'ultima strada usa il seguente codice:
    codice:
    ' Inserire il riferimento a Microsoft Scripting Runtime
    Private Sub Command1_Click()
    
    'Controlla che la calcolatrice sia installata sul computer:
        Dim FSO As FileSystemObject
        Dim fn As String
        Dim RetVal
        Dim strCheck2 As String
        
        Set FSO = New FileSystemObject
        fn = "C:\Windows\system32\CALC.EXE"
        With FSO
            If .FileExists(fn) Then
                strCheck2 = True
                Else
                strCheck2 = False
            End If
        End With
        Set FSO = Nothing
            
        If strCheck2 = True Then
            RetVal = Shell("C:\WINDOWS\System32\CALC.EXE", 1)
            ElseIf strCheck2 = False Then
            MsgBox "Il programma Calc.exe non é installato sul computer." & Chr(13) _
                & "Impossibile continuare!", vbExclamation, "Mia Applicazione"
        End If
    End Sub
    LM

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    216
    Ciao!
    Si, preferisco usare quella del Windows visto che è già fatta!
    Allora...il comando "Shell" apre la calcolatrice del Windows in una finestra tutta sua, invece a me serve un comando che la apra in una mia form vuota, come se facesse parte della stessa form.

    Quale comando devo usare?

    Grazie
    Max!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Si puo' fare con la API SetParent ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    216
    Sto cercando qualcosa su SetParent ma non trovo niente, neanche in google. Puoi buttarmi giù due riche di codice per vedere come si usa?
    Oppure sai qualche sito che lo spiega possiblimente in italiano?

    Ciao
    Max!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E' impossibile non trovare niente su google per la SetParent ... a me sono arrivati 320.000 risultati per setparent ... !

    A meno di non cercare ...

    codice:
    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    216
    Non sono molto esperto in VB e la ricerca l'ho fatta "in italiano". Prova a fare una ricerca "in italiano" e poi dimmi.

    Cmq devo copiare tutte queste righe ?
    Basta il sostituire solo "calc.exe" con la directory di dove si trova la mia calc.exe ?

    Max!

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Più di 500 pagine in italiano ...

    Devi copiare tutte le righe ? ... Fai tu ...

    Che vuoi dire con "sostituire ..." ... non devi sostituire nulla.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    216
    Le vorrei proprio vedere queste 500 pagine!
    A me escono 3 pagine di ricerca di google e di queste non ne vale neanche 1!

    Cmq se ti scoccia aiutare non aiutarmi proprio, almeno non perdiamo tempo!

    Ciao
    Max!

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da max1850
    Cmq se ti scoccia aiutare non aiutarmi proprio, almeno non perdiamo tempo!
    Veramente ti ho postato il codice e non lo hai neanche provato ...

    Buon lavoro.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.