Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-12-2010, 13:03   #1
rocketA
Member
 
L'Avatar di rocketA
 
Iscritto dal: Apr 2008
Messaggi: 217
[VB.NET 2010] Eseguire ciclo una sola volta

salve a tutti,
ho rinvenuto questo codice che dopo un tot di tempo d'inattivita' da parte dell'utente (per prova ho impostato 3 secondi), dovrebbe aprire un nuovo form.
Ho creato 2 form (Form1, Form2) e un timer (Timer1)

Codice:
Public Class Form1
    Private Structure POINTAPI
        Dim X As Integer
        Dim Y As Integer
    End Structure

    Dim MousePos As POINTAPI 'holds mouse position
    Dim mdtLastKBorMouseEvent As Date
    Dim mbIsIdle As Boolean
    Dim sysLogOffSecs As Integer = 3

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Public Sub subDetectIdle()
        Dim bIsIdle As Boolean
        Dim tCurrentPos As POINTAPI
        Dim lDiff As Integer
        bIsIdle = True
        tCurrentPos.X = CInt(Windows.Forms.Cursor.Position.X.ToString)
        tCurrentPos.Y = CInt(Windows.Forms.Cursor.Position.Y.ToString)
        'Mouse Moved?
        If (MousePos.X < tCurrentPos.X) Or (MousePos.Y <>
        tCurrentPos.Y) Then
            bIsIdle = False
            MousePos.X = tCurrentPos.X
            MousePos.Y = tCurrentPos.Y
        End If
        If Not bIsIdle Then 'Not idle...
            'Not idle... Update Current Time variable
            mdtLastKBorMouseEvent = Now
            'Make sure the module level var is set correctly
            mbIsIdle = False
        Else
            'Currently Idle. See how long
            If mbIsIdle = False Then
                'Number of seconds elapsed?
                lDiff = DateDiff(Microsoft.VisualBasic.DateInterval.Second, mdtLastKBorMouseEvent, Now)
                If lDiff >= sysLogOffSecs Then
                    mbIsIdle = True
                End If
            End If
        End If
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Call subDetectIdle()
        If mbIsIdle = True Then
            Dim frm As New Form2()
            frm.ShowDialog()
        End If
    End Sub
    
End Class
Detto questo, vorrei far si' che una volta aperto il Form2, tutto si fermi, ovvero che ne venga aperta una sola istanza e stop.
Mi scuso per la banalita' della richiesta, ma proprio non ne vengo fuori.
Prego risposte terra-terra, ho cominciato con vb... ieri.
grazie
__________________
Acquisto sul forum tutto cio' che mi serve, mai un problema.
rocketA è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2010, 15:03   #2
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Mi sembra un codice molto prolisso...
Inoltre mi basta vedere una riga come :
Codice:
lDiff = DateDiff(Microsoft.VisualBasic.DateInterval.Second, mdtLastKBorMouseEvent, Now)
per pensare un po' maluccio...

Domanda : ma alla chiusura di Form2 il ciclo di controllo deve riprendere ?
Cioè, se passano altri 3 sec. la Form2 viene mostrata di nuovo ?
__________________
Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2010, 15:10   #3
rocketA
Member
 
L'Avatar di rocketA
 
Iscritto dal: Apr 2008
Messaggi: 217
no, non deve riprendere.
__________________
Acquisto sul forum tutto cio' che mi serve, mai un problema.
rocketA è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2010, 15:13   #4
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
E l'azione del mouse va controllata solo in relazione a Form1 o anche se l'utente muove il mouse al di fuori dei limiti di Form1 ?
__________________
Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2010, 15:19   #5
rocketA
Member
 
L'Avatar di rocketA
 
Iscritto dal: Apr 2008
Messaggi: 217
anche al di fuori del form.
diciamo che impostato un tempo d'inattivita', devo aprire un form a tutto schermo. avevo fatto una cosa del genere tirando in ballo lo screensaver (verifica se il file xxx.scr e' in esecuzione), ma anche li' mi si aprivano form multipli, uno al secondo... e soprattutto quest'operazione interrompeva lo screensaver, che in realta' poteva anche starci.
__________________
Acquisto sul forum tutto cio' che mi serve, mai un problema.
rocketA è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2010, 15:35   #6
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
La soluzione con minore impatto su quanto hai già scritto, posto che tutto il resto funzioni come deve, è questa :
Codice:
        If mbIsIdle = True Then
            Timer1.Enabled = False  		
            Dim frm As New Form2()
            frm.ShowDialog()
        End If
In pratica disabilitare il Timer con Timer1.Enabled = False, subito PRIMA le istruzioni per l'istanza di Form2.
__________________
Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2010, 15:45   #7
rocketA
Member
 
L'Avatar di rocketA
 
Iscritto dal: Apr 2008
Messaggi: 217
...ma certo!!!

grazie 1000, preziosissimo!
__________________
Acquisto sul forum tutto cio' che mi serve, mai un problema.
rocketA è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Gli USA dipendono dai robot stranieri: T...
Volkswagen non ha più soldi per l...
Telescopio spaziale Hubble: la NASA cerc...
Più sottile e potente: le nuove i...
Il JPL estende la vita operativa della s...
DAZN Full è in offerta: tutta la ...
GTA 6 su PC potrebbe arrivare prima del ...
Da zero al tracciato in secondi: LibreCo...
Il regista Rian Johnson lancia a 12,99 d...
Microsoft stravolge l'app Sicurezza di W...
Mercato smartphone in caduta libera: -20...
Android 17 QPR3 Beta 3 riporta il blocco...
Le 10 offerte TOP in Amazon del weekend:...
Dyson, doppio crollo su Amazon: purifica...
Il 70% delle imprese non vede effetti de...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:14.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v