Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    20

    form sempre in primo piano fino all'input dell'utente

    Cari amici di Html.it...

    Mi sono da poco avvicinato alla programmazione in Visual Basic ed ho un piccolo problema che a voi forse risulterà banalissimo. Sto creando un piccolo programmino che permetta l'accesso a qualcosa (tramite password). La caratteristica che mi serve è quella di avere il form PERENNEMENTE in primo piano fino all'input dell'utente; con "form perennemente in primo piano" intendo dire che NULLA può essere cliccato al di fuori dell'applicazione, nemmeno la barra delle applicazioni (quindi il pulsante Desktop, il pulsante Start, ecc...) e tanto meno le icone presenti sul Desktop. Fino a quando l'applicazione è in uso sarà possibile lavorare solo su di essa e su nient'altro. Il programma è super semplicissimo ed è costituito da un form una textbox chiamata txtPassword ed un pulsante chiamato "cmdAccedi". In poche parole l'applicazione funziona chiamando una funzione password() nella quale : se il valore di txtPassword è uguale a "miapassword" allora chiudi il programma, altrimenti richiama di nuovo la funzione password.

    Sono alle prime armi ma mi piace questo linguaggio di programmazione e mi ci sto avvicinando con piacere.

    Grazie a chiunque anche solo per aver letto questa discussione!

    Ciao!
    Gg

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    20
    Nessuno mi può aiutare?
    Gg

  3. #3
    codice:
    Option Explicit
    
    Private Declare Function SetWindowPos Lib "user32" _
        (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, _
        ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
        ByVal cy As Long, ByVal wFlags As Long) As Long
    Private Declare Function GetClientRect Lib "user32" (ByVal hWnd As Long, _
        lpRect As RECT) As Long
    Private Declare Function ClientToScreen Lib "user32" (ByVal hWnd As Long, _
        lpPoint As Any) As Long
    Private Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long
    Const HWND_TOPMOST = -1
    Const HWND_NOTTOPMOST = -2
    Const SWP_NOSIZE = 1
    Const SWP_NOMOVE = 2
    Private flags As Integer
    Private lResult As Long
    Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End Type
    
    
    Sub ClipMouseToWindow(Optional ByVal hWnd As Long)
        Dim rcTarg As RECT
        
        If hWnd Then
            'clip
            GetClientRect hWnd, rcTarg
            ClientToScreen hWnd, rcTarg
            ClientToScreen hWnd, rcTarg.Right
            ClipCursor rcTarg
        Else
            'no clip
            ClipCursor ByVal 0&
        End If
    End Sub
    Private Sub Form_Load()
        flags = SWP_NOSIZE Or SWP_NOMOVE
        lResult = SetWindowPos(Form1.hWnd, HWND_TOPMOST, 0, 0, 0, 0, flags)
        ClipMouseToWindow Me.hWnd
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
       ClipMouseToWindow
    End Sub
    è importantissimo che metti anche la routine dell'unload
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

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.