Un petit Soft pour Mon Kwai machin truc...

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
brossden
Messages : 821
Inscription : lun. 26/janv./2004 14:37

Un petit Soft pour Mon Kwai machin truc...

Message par brossden »

Tout est dans le titre :lol:

J'ai vu dans un post un peu plus bas que l'adage :
"Pourquoi faire simple quand on peut faire compliqué" était bien représenté ! :roll:

Je vous donne ma solution qui donne quelles Info sur le survole des Fentres Windows !

Code : Tout sélectionner

Enumeration 20
  #Window_0 : #TitreFen : #HandFen : #XFen : #YFen : #HautFen
  #LarFen : #XSouris : #YSouris : #Xrelatif : #Yrelatif : #End
EndEnumeration
Procedure InfoFen()
  Repeat
    Titre.s=Space(32)
    GetCursorPos_(point.POINT)
    Hnd = WindowFromPoint_(point\x,point\y)
    GetWindowrect_(Hnd ,rect.RECT)
    GetWindowText_(Hnd,@Titre,32)
    SetGadgetText(#TitreFen, Titre)
    SetGadgetText(#HandFen,Str(Hnd))
    SetGadgetText(#XSouris,Str(point\x))
    SetGadgetText(#YSouris,Str(point\y))
    SetGadgetText(#HautFen,Str(rect\bottom-rect\top))
    SetGadgetText(#LarFen,Str(rect\right-rect\left))
    SetGadgetText(#XFen,Str(rect\left))
    SetGadgetText(#YFen,Str(rect\top))
    SetGadgetText(#Xrelatif,Str(point\x-rect\left))
    SetGadgetText(#Yrelatif,Str(point\y-rect\top))
    res=UpdateWindow_(WindowID(#Window_0))
    Delay(10)
  ForEver
EndProcedure
Procedure Open_Window_0()
  If OpenWindow(#Window_0, 557, 323, 300, 400, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      TextGadget(1, 30, 223, 70, 20, "Larg Fenêtre", #PB_Text_Right)
      StringGadget(#LarFen, 110, 220, 140, 20, "8")
      TextGadget(2, 30, 193, 70, 20, "Haut Fenêtre", #PB_Text_Right)
      StringGadget(#HautFen, 110, 190, 140, 20, "7")
      TextGadget(3, 30, 163, 70, 20, "Y Fenêtre", #PB_Text_Right)
      StringGadget(#YFen, 110, 160, 140, 20, "6")
      TextGadget(4, 30, 133, 70, 20, "X Fenêtre", #PB_Text_Right)
      StringGadget(#XFen, 110, 130, 140, 20, "5")
      TextGadget(5, 10, 103, 90, 20, "Handle Fenêtre", #PB_Text_Right)
      StringGadget(#HandFen, 110, 100, 140, 20, "4")
      TextGadget(6, 30, 73, 70, 20, "Titre Fenêtre", #PB_Text_Right)
      StringGadget(#TitreFen, 110, 70, 140, 20, "3")
      TextGadget(7, 30, 43, 70, 20, "Y souris", #PB_Text_Right)
      StringGadget(#YSouris, 110, 40, 140, 20, "2")
      TextGadget(8, 30, 13, 70, 20, "X souris", #PB_Text_Right)
      StringGadget(#Xrelatif, 110, 250, 140, 20, "1")
      TextGadget(9, 30, 253, 70, 20, "X Relatif", #PB_Text_Right)
      StringGadget(#Yrelatif, 110, 280, 140, 20, "2")
      TextGadget(10, 30, 283, 70, 20, "Y Relatif", #PB_Text_Right)
      StringGadget(#XSouris, 110, 10, 140, 20, "1")
      ButtonGadget(#End,30,350,50,30,"Fin")
    EndIf
  EndIf
EndProcedure
Open_Window_0()
CreateThread(@InfoFen(),0)
Repeat
  Event = WaitWindowEvent()
  GadgetID = EventGadget()
  If Event = #PB_Event_Gadget
    If GadgetID = #End
      Event = #PB_Event_CloseWindow
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow
End
Dernière modification par brossden le lun. 18/juin/2007 22:00, modifié 1 fois.
Denis

Bonne Jounée à tous
Thierryfr
Messages : 102
Inscription : mer. 04/avr./2007 16:28

Message par Thierryfr »

bonsoir

Impossible de lancer ton code
Erreur en line 13
brossden
Messages : 821
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Je viens de corriger le Bug !

Cela fonctionnait en mode sans debug mais plantait en mode Debug

J'avais lancé le CreateThread avant d'avoir lancé l'ouverture de la fenêtre ce qui essayait d'allouer des valeurs à des gadgets qui n'existaient pas encore ... :oops:

Désolé !

C'est corrigé !
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Mon petit canard :D

Les mots me manquent pour te témoigner ma grattitude.
Rien que par le titre du POST tu es responsable de mon premier rire du matin et c'est un exploit car aujourd'hui je n'avais pas trop envie :D

Donc encore merci.

Quand a ton génial code, il peut etre aussi d'une aide à ce que je reverais de réaliser.
En fait, depuis 2 ans je cherche a piloter ce foutu internet explorer par quelque moyen que ce soit.
J'avais éssayé en VB, VBScript puis a chaque fois je me heurte a des "petites bricoles" qui doivent à mon avis nécéssiter un niveau informatique hors du commun ainsi que des dizaines de lignes de codes pour une fonction, avec noir de mots que je connais pas et ou vous seul les "CAIDS" des forums, avez le secret et qu'on a l'impression que vous les avez créé dans la nuit, tellement on en a jamais entendu parlé :lol:

Un peu a l'image du pilotage OLE qui viens d'etre percé par TS-SOFT et qui grace a son extraordinaire lib viens de rompre la barriere jusqu'ici insurmontable du pilotage de tous les prg de bilou.

Voila, donc le petit probleme que ne resoud pas ton code, c'est que j'ai besoin de savoir ou je suis exactement dans la page IE et non pas la fenetre.
C'est à dire par rapport a la page internet pour pouvoir aller cliquer a un endroit précis de la page internet et ceci sans jamais me tromper une fois que j'ai noté les coordonnées de ce point.

Je pense que ça interesserait beaucoup de personnes car, qui n'aurait pas envie d'automatiser un webmail, ou bien tout autre site dans lequel il faudrait tout les jours aller faire les memes dizaines de manoeuvres pour récupérer tel ou tel donnée.

Donc le code de DEVILDOG est génial dans le sens ou apparement il tiens compte de la reelle position de la page internet, et c'est la que ça doit etre compliqué mon petit canard :D .

Le probleme de son code a lui c'est que chaque champs texte, bouton, image doit avoir un "handle" different ou bien un truc de ce genre ce qui fait que les coordonnées dans sa fenetre repartent à zéro :?

Puis elle reprennent leur valeur normalement comme si il n'y avais jamais eu de bouton ou champs des que la souris les a dépassés.

Exemple dans la page de GOOGLE si tu te met a gauche completement au niveau du champ texte ou l'on fait la demande tu obtiens (177 à 200) X 0

Puis quand tu te deplace sur la droite le "0" s'incremente au fur et a mesure du deplacement à droite pour avoir un maximum selon la grandeur de ta fenetre.
Puis d'un coup quand tu arrive dans le fameux champs texte et bah pif paf kodack le chiffre tombe a zero car il doit mesurer je pense la position dans le champs.
Et ce phenomene se produit a chaque "objet" de la page.

Moi mon reve aurait été le meme code mais qui ne tiens pas compte des objets mais de la position reelle de la page internet, qu'elle soit reduite ou non.

Exemple si tu agrandi ta fenetre au max tu aurais 0 X 0 dans l'angle du haut a gauche et 594 X 1006 dans l'angle bas droite.
Si tu reduit la fenetre et que tu te met dans l'angle bas droite tu as bien les coordonnées de ce point qui est au milieu de la page et non pas celui de la fenetre.
Quand tu deplace les ascenseurs sans toucher la fenetre les coodonnées du point haut gauche et bas droite devrait changer en meme temps, normal car la fenetre rapetissé se déplace dans la page a la maniere d'une loupe qui ne verrait qu'une partie de la page internet.

En un mot donc le meme code que DEVILDOG, mais qui comme le tiens ne prend pas en compte les objets, juste la position réelle de la page internet.
Donc lorsqu'une fois on a les coordonnées d'un bouton dans une page web que l'on ouvre ou non la fenetre a moitié ou en plein ces coordonnées restent les memes.

Voila tout ce texte pour tenter d'etre clair, mais c'est pas sur que j'y arrive. :?

Encore merci pour ta gentille aide qui me touche vraiment.
Je ne t'embrasse pas mais le coeur y est :D
brossden
Messages : 821
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Mon gros Canard !

Regarde un peu du coté > X relatif et Y relatif ils te donnent ce que tu veux à mon avis !!
Denis

Bonne Jounée à tous
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ya une drole d'ambiance ici :lol:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

@Dobro
T'a remarqué!!!!!!
Quoi qu'a nous deux on est plus du coté des oies que des canards :D

@Brossden adoré
Tu n'a pas tout lu ce que ton canneton s'est evertué à t'ecrire avec ses 2 petites pattes palmées :D

J'ai bien vu qu'en bas y'avais une position relative qui est tres utile aussi, mais elle se base sur la fenetre.

Exemple:

1/ Prend une fenetre quelconque (celle de notre genial forum par exemple), reduit la de moitié de façon a ce qu'elle ne fasse pas toute la fenetre.

2/ Evidement va apparaitre 2 ascenseurs, 1 vertical et l'autre horizontal.

3/ Prend les coordonnées le l'angle bas droit, en prenant soins que le scrollbar horizontal soit a gauche.

4/ Deplace la scrollbar horizontale a droite, et la tu t'apperçois que lorsque tu reprend les coordonnées de l'angle bas droit elle n'ont pas changé :?
Normal puisque tu te referencie a la fenetre.

Moi j'aimerais une reference a la page HTML, comprend tu ????

Le code de DELVILDOG lui est bien par rapport a la page HTML et non pas a la fenetre, c'est pour ça qu'il est compliqué, mon cher coin coin préféré :D

C'est la qu'est toute la subtilitée, ne pas confondre fenetre IE et page IE

Car comment etre sur de toujours cliquer au meme endroit de laPAGE HTML
brossden
Messages : 821
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Ok petit caneton je vais replancehr sur le truc !
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Jamais mes vertebres ne me pardonnerons le nombre de salutations bien basses que je te doit :D
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Message par bombseb »

mon biket ( 8O )

tu voudrais faire quoi en fait avec IE ? c'est un bot que tu veux faire ?
il y a peut etre un autre moyen de faire ca ?
j'en avait fait un en c#, le prog récupérait le code source de la page et l'analysait pour aller de lien en lien afin d'automatiser une action (et multithread s'il vous plait)
brossden
Messages : 821
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Pas de ménage à trois ! :x
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

@bombseb

Je sais meme pas ce que c'est qu'un bot ???? 8O
Je suppose d'apres ta réponse que c'est une automatisation de page IE.
Je me rapelle que FLYPE disait de ne pas repondre aux POSTS de X car c'etait un BOT.

Si c'est le cas, alors je veux faire un BOT (Classe, un mot de plus dans mon language pour epater les copains demain au boulot :D)

A t'entendre ça a l'air simple, je te remercie de ta réponse.

Je suis reconnaissant à tous ceux qui daignent se pencher sur mon berceau.
Mais quand je pousse ma sucette a gauche pour te regarder, tu me fais peur avec ton avatar et ton language de prise d'otage :lol:
C'est la premiere fois que je te parle en deux ans, mais je te lis depuis longtemps, apparement tu ne programme pas depuis hier. 8)
Mais ton truc je crois que c'est le graphisme et la musique.

Tu as fait ce BOT (Classe :D ) en C, pure n'est il pas capable de le faire ??

Alors si tu peux m'aider, vu que y'a pas foule, :( j'accepte ton aide avec le plus grand plaisir et te remercie d'avance.

Je voudrais faire une telecommande d'une page HTML, c'est à dire le maximum de fonctions que l'on fait naturellement a la main:

Ecrire dans les champs
Cocher les cases
Fenetre precedente / Suivante
Cliquer sur les liens
Appuyer sur les boutons
Lire le texte de la page champs par champs
Deplacer les ascenseurs verticaux / horizontaux

Je ne sais pas si c'est ça un BOT, mais si oui je l'aime déjà.
Je n'ai jamais vu ce genre de prg fonctionner.
Encore merci de ton interet a ma cause perdue :D

@Brossden

Sache que je suis fidele :D
Tu es quand meme un des premier a m'avoir aidé, mais avec le QI de moule que je me traine, vous serez pas trop de tous les CAIDS du forum pour me tirer au niveau des programmes que j'essaie desesperement de realiser.

Comme dirait FLYPE mes questions sont rarement simple, comme tous les enfants:
"Dis papa comment on fait un enfant" :lol:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Bot de (ro-bot) c'est a dire un prg qui execute des taches automatiquement

le mot "Bot" est apparut dans les canaux IRC
ces Bots ecrivent des phrases pour faire croire qu'un humain est present dans le canal , quelques fois, certains repondent par des questions
(classique), cela simule une pseudo intelligence...

par extension tu peux appeler "Bot" tout prg qui fait croire qu'un humain fait le travail , comme un Robot quoi :D
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

NADINOZAURE !!!

J'en veux un :D

Un programme qui fait tout ce qu'on se tape au boulot, tous les jours, les memes clics des centaines de fois....

J'en veux un......dis quelqu'un peux m'aider a en faire un ...dis .... :D
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Message par bombseb »

C'est la premiere fois que je te parle en deux ans, mais je te lis depuis longtemps, apparement tu ne programme pas depuis hier. Cool
Mais ton truc je crois que c'est le graphisme et la musique.
mouahahaha tu me fait penser au film avec Robin Williams qui espionne une famille qui lui amène ces péliculles de photo à développer :D


sinon pour ton problème le principe est plutot simple, mais techniquement je ne sais pas trop comment faire avec purebasic.
Est-ce qu'il existe un controle webrowser avec pb ? càd que c'est un objet que tu place sur une fenêtre, tu lui donne une url et la page s'affiche dedans comme par magie, ensuite tu peut acceder a toutes les propriétés de la page affichée dedans (handle des controls, code source de la page etc...)

sinon tu peux aussi le faire en envoyant des requêtes http au serveur web mais là ca sera un peu plus long et beaucoup plus compliqué...
Répondre