[resolu] EventType() et bouton souris

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Rafraichissement sur EventType()

Message par Ar-S »

Merci à tous pour vos codes, je devrais m'en sortir avec tout ça.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Rafraichissement sur EventType()

Message par Backup »

le miens fonctionne ;) :mrgreen:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Rafraichissement sur EventType()

Message par Ar-S »

Merci encore à tous.

J'ai finalement opté pour un timer qui surveille la position du curseur (désolé Dobro ^^).
Si le curseur est au dessus du StringGadget et qu'il y a double clic gauche,
alors le "http://" est envoyé. J'ai aussi ajouté une petite routine de MLD pour positionner le curseur après les ":" c'est plus convivial pour ajouter une adresse.

Voilà ou en est mon sniffeur de liens qui ressemble de plus en plus à un navigateur simpliste...
il est loin d'être terminé mais commence à être fonctionnel.
Je ne posterai surement plus le code complet pour les prochaines avancées du prog mais y'a déjà de quoi s'amuser.

EnJoYeZ :)

Intructions :
- inscrivez une adresse dans la barre, puis pressez GO
- Cliquer sur Sniff Link pour afficher les liens
- Double cliquez sur la barre d'adresse pour la réinitialiser

COPY ne fonctionne pas encore.

Code : Tout sélectionner

; Par Cyrille Landivier / LDV MULTIMEDIA - 2010
; Start 2 dec 2010 - PB 4.51
; Sniffeur de liens / Mini Navigateur

Declare  GestionCaret(Gadget) ;

If InitMouse()=0
  End
EndIf

Enumeration
  #LDV
  #ADD
  #ListView_1
  #BTCOPYALL
  #BTSNIFF
  #BTGO
  #BTPOPUP
  #Web
EndEnumeration

Global adr$,flag
Global html$,PageEnCours$
Global MSGpopup$
adr$="http://ldvmultimedia.com"

;- RECUPERATION DE LA SOURCE D'UNE PAGE WEB ----------------------------
ProcedureDLL.s Url2Text2(Url.s, OpenType.b,ProxyAndPort.s)
  ;/ Author : Pille
  isLoop.b=1
  INET_RELOAD.l = $80000000
  hInet.l=0
  hURL.l=0
  Bytes.l=0
  Buffer.s= Space (2048 )
  RES.s= ""
  hInet = InternetOpen_ ( "" , OpenType, ProxyAndPort, "" , 0)
  hURL = InternetOpenUrl_ (hInet, Url, #Null , 0, INET_RELOAD, 0)
  Repeat
    InternetReadFile_ (hURL,@Buffer, Len (Buffer), @Bytes)
    If Bytes = 0
      isLoop=0
    Else
      RES = RES + Left (Buffer, Bytes)
    EndIf
  Until isLoop=0
  InternetCloseHandle_ (hURL)
  InternetCloseHandle_ (hInet)
  ProcedureReturn RES
EndProcedure

ProcedureDLL.s Url2Text(Url.s)
  ProcedureReturn Url2Text2(Url,1, "" )
EndProcedure 
;--------------------------------------------------------------------


;- DETECTION DE LA POSITION DU CURSEUR ----------------
Procedure CursorDetection()
  ;Debug "x : "+Str(WindowMouseX(#LDV))+" y : "+Str(WindowMouseY(#LDV))
  If WindowMouseX(#LDV)>5 And WindowMouseX(#LDV)<605 And WindowMouseY(#LDV)>5 And WindowMouseY(#LDV)<25
  Select WaitWindowEvent()
    Case #WM_LBUTTONDBLCLK
        SetGadgetText(#ADD,"http://")
        GestionCaret(#ADD) 
    EndSelect
  EndIf
EndProcedure
;--------------------------------------------------------------------

;- GESTION DE LA POSITION DU POINTEUR APRES LE TEXTE DANS UN STRINGGADGET ------------------------------
Procedure GestionCaret(Gadget) ; Gestion du caret dans stringGadget 
	SendMessage_(GadgetID(Gadget), #EM_GETSEL, @Debut_Position, @Fin_position)     
	y = Debut_Position 
	Texte.s = GetGadgetText(Gadget) 
	x = Len(Texte) 
	Texte2.s = Left(Texte,y ) + Right(Texte,x-y) 
	SetGadgetText(Gadget,Texte2) 
	SendMessage_(GadgetID(Gadget), #EM_SETSEL, x, x)     
EndProcedure 
;--------------------------------------------------------------------


Procedure OpenWindow_LDV()
  If OpenWindow(#LDV, 450, 200, 613, 788, "WEB LINK SNIFFER", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    StringGadget(#ADD, 5, 5, 600, 25, adr$, #PB_String_LowerCase|#WS_BORDER)
    ListViewGadget(#ListView_1, 4, 65, 605, 276)
    ButtonGadget(#BTCOPYALL, 5, 345, 404, 40, "COPY ALL THE LIST", #BS_FLAT)
    
    ButtonGadget(#BTSNIFF, 109, 30, 502, 30, "SNIFF LINKS !")
    ButtonGadget(#BTGO, 5, 30, 103, 30, "GO")
    WebGadget(#Web, 1, 390, 600,350, adr$)
    
    SetGadgetAttribute(#Web, #PB_Web_BlockPopups, 1) ; bloque les popup
    MSGpopup$="Pop up bloquées"
    ButtonGadget(#BTPOPUP, 410, 345, 203, 40, MSGpopup$, #BS_FLAT)
    PureCOLOR_SetButtonColor(#BTPOPUP, RGB(0,0,0), RGB(245,0,0)) 
    
    SetTimer_(WindowID(#LDV),0,10,@CursorDetection())
    
  EndIf
EndProcedure

OpenWindow_LDV()

Repeat
  Select WaitWindowEvent()
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #ADD
        Case #ListView_1
        Case #BTCOPYALL
        
        ;-BLOQUEUR DE POPUP----------------------------------------  
        Case #BTPOPUP
          If GetGadgetAttribute(#Web,#PB_Web_BlockPopups)=1
            SetGadgetAttribute(#Web,#PB_Web_BlockPopups,0)
            MSGpopup$="Pop up autorisées"
            PureCOLOR_SetButtonColor(#BTPOPUP, RGB(0,0,0), RGB(0,255,0)) 
            
          Else
            SetGadgetAttribute(#Web,#PB_Web_BlockPopups,1)
            MSGpopup$="Pop up bloquées"
            PureCOLOR_SetButtonColor(#BTPOPUP, RGB(0,0,0), RGB(245,0,0)) 
          EndIf
          SetGadgetText(#BTPOPUP,MSGpopup$)
         ;-----------------------------------------------------------
          
        Case #BTGO
          adr$=GetGadgetText(#ADD)
          If Left(adr$,7)="http://" And Len(adr$)>7
            SetGadgetText(#Web, adr$)
            ClearGadgetItems(#ListView_1)
          Else
            MessageRequester("Error","Wrong adress",#MB_ICONHAND)
            If GetGadgetText(#Web)<>adr$
              SetGadgetText(#Web,GetGadgetText(#Web))
            EndIf
          EndIf
          
        Case #BTSNIFF
          PageEnCours$=GetGadgetText(#Web)
          adr$=GetGadgetText(#ADD)
          If adr$<>PageEnCours$
            SetGadgetText(#Web,adr$)
          EndIf
          
          html$=Url2Text(adr$)
          ;--- Formatage des liens = Filtre des ""
          html$=ReplaceString(html$,Chr(34)," ",#PB_String_NoCase,1)
          html$=RemoveString(html$,"<!doctype",#PB_String_NoCase)
          ; Debug "adress : "+adr$
          ; Debug "source : "+html$
          NbrLien=CountString(html$,"http:")
          Debug "Nbr de lien : "+Str(NbrLien)
          pos1=1
          For i=0 To NbrLien
            debut=FindString(html$,"http:",pos1)
            fin=FindString(html$," ",debut)
            lien$=Mid(html$,debut,fin-debut)
            Debug lien$
            pos1=fin
            AddGadgetItem(#ListView_1,-1,lien$)
          Next i  
          
        Case #Web 
          PageEnCours$=GetGadgetText(#Web)
          SetGadgetText(#ADD,PageEnCours$)
          adr$=GetGadgetText(#ADD)
          
      EndSelect
      
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #LDV
          CloseWindow(#LDV)
          Break
      EndSelect
  EndSelect
ForEver

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [resolu] EventType() et bouton souris

Message par Backup »

c'est tres indiscret comme prg :)

il me semble qu'on peut faire mieux, en matiere d'indiscretions..
...il faut juste que je me rappel comment :lol:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [resolu] EventType() et bouton souris

Message par Ar-S »

oh la plupart des navigateurs permettent déjà d'afficher les liens etc..
A terme je me fais juste un outils léger que je vais personnaliser à ma sauce avec quelques findtring spécifiques et autre replacestring :mrgreen: .

réponse : http://fr.wikipedia.org/wiki/Heure_Unix
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre