Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Cos'è la bolla dell'IA e perché se ne parla
Cos'è la bolla dell'IA e perché se ne parla
Si parla molto ultimamente di "bolla dell'intelligenza artificiale", ma non è sempre chiaro perché: l'IA è una tecnologia molto promettente e che ha già cambiato molte cose dentro e fuori le aziende, ma ci sono enormi aspettative che stanno gonfiando a dismisura i valori delle azioni e distorcendo il mercato. Il che, com'è facile intuire, può portare a una ripetizione della "bolla dotcom", e forse anche di quella dei mutui subprime. Vediamo perché
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-04-2006, 22:37   #1
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
[VB 6] Spostare il puntatore del mouse

Ciao, vorrei sapere se è possibile spostare il puntatore del mouse da codice e come fare. Grazie!
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2006, 09:07   #2
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Certo che si può spostare il cursore del mouse tramite codice.

Innanzitutto bisogna inserire nel form oppure meglio in un modulo la seguente dichiarazione:

Codice:
Declare Sub SetCursorPos Lib "User32" (ByVal X As Integer, ByVal Y As Integer)
Mentre nel form basta inserire la seguente chiamata:

Codice:
SetCursorPos 20, 20
che sposterà il mouse alle coordinate (20, 20) a partire dall' angolo in alto a sinistra dello schermo.




Per spostare invece il mouse con le coordinate riferite alla finestra form o a un controllo particolare, bisogna dichiarare in un modulo le seguenti dichiarazioni:

Codice:
Type POINTAPI
    x As Long
    y As Long
End Type
Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Mentre nel progetto:

Codice:
Private Sub Command1_Click()
    MoveMouse 300, 450
End Sub

Sub MoveMouse(x As Single, y As Single)
    Dim pt As POINTAPI
    pt.x = x
    pt.y = y
    ClientToScreen hwnd, pt
    SetCursorPos pt.x, pt.y
End Sub
La funzione ClientToScreen serve per ancorare le coordinate al controllo passato tramite la proprietà hwnd (in questo caso il form).
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino

Ultima modifica di mynos79 : 29-04-2006 alle 09:20.
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2006, 19:55   #3
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Grazie mille! Adesso non ho tempo, ma domani lo provo!
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2006, 19:24   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Ce l'ho fatta, non pensavo fosse così semplice, grazie!
Ora xò vorrei chiederti un'altra cosa, come faccio a far vedere che il programma è in esecuzione ed eventualmente dare la possibilità di chiuderlo mettendo un'iconcina tipo quella della connessione in basso a destra? In pratica voglio che abbia un'iconcina a fianco dell'orologio..
So che non c'entra col resto ma mi serve x lo stesso programma.. Grazie!
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2006, 19:31   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Mi è venuta in mente anche un'altra cosa, c'è un evento mouse_move che viene attivato quando muovo il mouse anche all'esterno del form? X ora uso un timer x rilevare dove si trova il mouse e poi faccio di conseguenza quello che mi serve ma non so se è la soluzione ottimale.. Il massimo è che fosse attivato l'evento solo quando il mouse si trova in un certo punto ma non so se è possibile..
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2006, 20:20   #6
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Icona nella system tray

Non è difficile ma un po' lungo da fare ...
Innanzitutto bisogna dichiarare delle dichiarazioni di costanti e della funzione Shell_NotifyIcon in un modulo:

Codice:
Public Const WM_LBUTTONDBLCLICK = &H203
Public Const WM_RBUTTONUP = &H205
Public Const WM_MOUSEMOVE = &H200
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4

Public Type NOTIFYICONDATA
    cbSize As Long
    hwnd As Long
    uId As Long
    uFlags As Long
    ucallbackMessage As Long
    hIcon As Long
    szTip As String * 64
End Type

Public VBGTray As NOTIFYICONDATA

Declare Function Shell_NotifyIcon Lib "shell32" Alias _
    "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
    
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Poi nel form, nell' esempio che ti sto facendo, ho messo un pulsante Command1 e devi inserire questo codice (faccio prima a scrivertelo che a spiegarti passo per passo, non è difficile da capire comunque):

Codice:
Private Sub GoSystemTray()
    VBGTray.cbSize = Len(VBGTray)
    VBGTray.hwnd = Me.hwnd
    VBGTray.uId = vbNull
    VBGTray.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    VBGTray.ucallbackMessage = WM_MOUSEMOVE
    
    VBGTray.hIcon = Me.Icon
    ' Tooltip
    VBGTray.szTip = Me.Caption & vbNullChar
    Call Shell_NotifyIcon(NIM_ADD, VBGTray)
    App.TaskVisible = False   ' rimuovi applicazione dalla taskbar
    Me.Hide
End Sub

Private Sub Command1_Click()
    Call GoSystemTray
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Static lngMsg As Long
    Static blnFlag As Boolean
    Dim result As Long
    
    lngMsg = X / Screen.TwipsPerPixelX
    If blnFlag = False Then
        blnFlag = True
        Select Case lngMsg
                ' doppio click
            Case WM_LBUTTONDBLCLICK
                Me.Show
                ' tasto destro
            Case WM_RBUTTONUP
                result = SetForegroundWindow(Me.hwnd)
                ' apertura menù
                Me.PopupMenu mnuSystemTray
        End Select
        blnFlag = False
    End If
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    VBGTray.cbSize = Len(VBGTray)
    VBGTray.hwnd = Me.hwnd
    VBGTray.uId = vbNull
    Call Shell_NotifyIcon(NIM_DELETE, VBGTray)
End Sub
Devi quindi creare un menù con l' editor dei menù di nome (proprietà name non caption) mnuSystemTray (puoi cambiarlo, ma ricordati di modificare anche il codice) e impostalo come non visibile (visible = false dall' editor).
Naturalmente puoi inserire tutti gli elementi che vuoi nel menù ... e ricordati quindi di scrivergli anche il relativo codice
Per ridurre a icona nella system tray basta chiamare la funzione:

Codice:
Call GoSystemTray
come ho fatto nel codice del pulsante.

Mi raccomando, quando esci dal programma rimuovi sempre l' icona e scarica tutto come ho fatto nella QueryUnload ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2006, 20:25   #7
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
MouseMove fuori dai controlli

L' evento MouseMove è proprio dei vari controlli (form incluso) ... al di fuori del form non c'è nessun controllo con quest' evento; quindi per controllare il mouse al di fuori dell' applicazione, l' unico modo (che conosco, posso sbagliarmi) è quello di monitorare il puntatore tramite le sue coordinate e gestire gli spazi in maniera personalizzata.
Oppure, dipende sempre dai casi e da cosa stai facendo, puoi usare la proprietà hwnd dei vari controlli (sia dell' applicazione tua, che di qualsiasi controllo di qualsiasi applicazione attiva presente in windows); in pratica l' hwnd indica il numero del controllo creato in windows (è una proprietà che da windows in fase di creazione del controllo e dell' applicazione; e può essere utile per gestire controlli di altre applicazioni ... ad esempio usanto il SendMessage puoi dal codice della tua applicazione scrivere delle parole nel blocco note e salvare anche, senza mai entrare nel blocco note).
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2006, 12:09   #8
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Mmm, quindi il metodo che ho usato io, e cioè un timer x monitorare la posizione del mouse dovrebbe andar bene? E' che mi sembra uno spreco tenere in funzione sto timer continuamente.. boh..
Comunque il programma finito (solo grazie a te), è questo in allegato!
E' stupidissimo ma volevo farlo..


Ok, ora non mi picchiare!

Ps: se non hai capito cosa fa prova a muovere il mouse un po' dappertutto..
Allegati
File Type: zip mouse pazzo.zip (4.2 KB, 14 visite)

Ultima modifica di wingman87 : 01-05-2006 alle 12:12.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2006, 13:05   #9
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Ah ah ah ... impressionante come l' ingegneria del software sia progredita in questi ultimi anni

Comunque se volevi fare un programmino "scherzoso" ... potevi aggiungerci la possibilità di nascondere casualmente il pulsante start oppure l' orologio o chissà cos' altro con qualche chiamata api fai di tutto.

Cmq l' uso del timer non è uno spreco ... è l' unico modo per avere una funzione indipendente dal flusso del programma ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2006, 20:43   #10
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Ok, è che pensavo che tenere un timer con intervallo così basso consumasse molte risorse.. Grazie ancora!
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2006, 08:18   #11
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Beh, ma a quanto tieni l' intervallo del timer? per controllare semplicemente il mouse puoi anche metterlo a 250ms (un quarto di secondo), non serve che tieni 1ms ... cmq se il tuo programma non fa altro, anche se lo tieni a 1ms non consuma chissacchè, anche perchè non memorizzi nulla in variabili o array dinamici da consumare chissà quale memoria ... più che altro impegni costantemente un pelino la cpu, ma solo un pelino visto che hai solo un paio di coordinate da controlloare ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2006, 14:28   #12
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Lol, lo tengo proprio a 1 ms..
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2006, 14:48   #13
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Ho trovato una cosa molto interessante, l'evento mouse!! Guarda qui:
http://www.allapi.net/apilist/mouse_event.shtml
L'ho già provato e funziona alla grande!
wingman87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7 FRITZ!Repeater 1700 estende la rete super-veloce...
Scoperto un nuovo esopianeta che orbita ...
Blue Origin NS-37: successo per la missi...
Potrebbe essere stata rilevata una super...
La cometa interstellare 3I/ATLAS è...
Xiaomi 17 Ultra: l'autonomia non sarà un...
Il processo produttivo a 2 nm di TSMC è ...
L'atteso aggiornamento dei driver della ...
The Elder Scrolls VI nel 2029 e Fallout ...
Il Ryzen 7 9850X3D appare nel catalogo d...
Weekend pre natalizio Amazon, ecco tutte...
Prezzi giù su Oral-B iO: spazzolini elet...
19.000 Pa a un prezzo senza precedenti: ...
Narwal in super offerta su Amazon: robot...
SK hynix e NVIDIA lavorano a un SSD spec...
Roborock in super offerta su Amazon: pre...
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: 23:02.


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