Oppure

Loading
14/11/18 10:54
Sul subclassing esistono tonnellate di informazioni, esempi, articoli e altro su Internet ... per VB6 e per VB.NET ...

Dai un'occhiata in giro e torna con qualche prova ...
14/11/18 20:41
rossiemme
Guru^2, Ti ho preso in parola.

Ho esplorato il web e alla fine ho trovato la soluzione, adesso posso cliccare il Form (non lo Screen) e ottenere una risposta per l'evento click, questo avviene anche se il Form è coperto da controlli disabilitati come posso mostrare nelle figure seguenti. Ho intercettato i messaggi di Windows e ho trattenuto solo quello relativo al clic sopra al Form, al primo click il loop si spenge e si riattiva col pulsante.

Ovviamente questo è solo codice dimostrativo, però è carino da provare
aaa
14/11/18 20:46
rossiemme
per chi vuol provare (con molta cautela), questo è il codice (sempre VB6) da incollare sul modulo intrinseco del Form


Option Explicit





Private Sub Form_Load()
    Command1.Enabled = False
    Command1.Caption = "Ok"
    Call Lancio(Me)
End Sub


Private Sub Command1_Click()
    Command1.Enabled = False
    Command1.Caption = "Ok"
    Call Lancio(Me)
End Sub



Invece questo è da incollare su un modulo

Option Explicit





Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long


Private WindowsSender_Old As Long
Private myForm As Form



Public Sub Lancio(mForm)
    If mForm Is Nothing Then Exit Sub
    Set myForm = mForm
    WindowsSender_Old = SetWindowLong(myForm.hWnd, -4, AddressOf WindowsSender_New)
End Sub



Private Function WindowsSender_New(ByVal hWnd As Long, ByVal num As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    
    If num = &H201 Then SetWindowLong hWnd, -4, WindowsSender_Old: Call Rispondi
    
    If num = &H82 Then SetWindowLong hWnd, -4, WindowsSender_Old  ' in caso di chiusura si ripristina l'originale
    
    WindowsSender_New = CallWindowProc(WindowsSender_Old, hWnd, num, wParam, lParam)
    
End Function

Private Sub Rispondi()
    myForm.Command1.Enabled = True
    myForm.Command1.Caption = "Ci hai cliccato !! Ripristina"
End Sub


aaa
15/01/19 19:47
rossiemme
Buona sera a tutti, mi scuso anticipatamente se faccio errori nelle mie domande. Non so se devo continuare qui o se fare una domanda nuova.

Sono sempre alle prese col vb6.. 8-|
Vorrei estrarre del testo da un file PDF con compressione Flatecode della quale non trovo alcuna documentazione, ho letto il metodo Huffman e LWZ ma di questo Flatecode non so nulla.
Il termine Flatecode l'ho letto nello stream del PDF in oggetto: <</Filter/FlateDecode/Length 1260>>

C'è qualcuno che conosce questo metodo di compressione?
Vorrei implementarlo e necessito di aiuto
aaa
15/01/19 19:59
rossiemme
Ho dimenticato di dire che ho tentato anche un'altra strada, quella di usare un il controllo AcroPDF in vb6 e chiaramente il testo lo posso vedere ma non riesco a copiarlo da codice, in effetti sarebbe semplicissimo se il testo potesse essere fornito da una metodo del controllo, ma non mi sembra che sia così... se fosse possibile questa strada sarebbe immediata

grazie ancora
aaa
16/01/19 14:21
Che c'entra questo problema con il thread?