Alors j'ai essayé de fouiller dans msdn.
La première solution qui est proposée par msdn, mais ne marche pas chez moi, à essayer:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Rajoutez ceci après la creation de votre DWebBrower.
Avec AutoIt on ne peut malheureusement pas faire comme en VB et annuler l'ouverture de la fenetre en capturant l'evenement:
The AutoIt event handling model, unfortunately, handles events asynchronously. Therefore, you don't hear about the event in AutoIt until it is already occurred in your cancel operation has no effect
Du coup il reste une seule solution : Utiliser _IEHeadInsertEventScript.
par exemple ce code va bloquer le click de tous les liens ayant un target="_blanck" (donc que le navigateur veut ouvrir dans une autre fenetre)
Code : Tout sélectionner
$oLinks = _IELinkGetCollection($oIE)
For $oLink in $oLinks
If string($oLink.target) = "_blank" Then
$sLinkId = _IEPropertyGet($oLink, "uniqueid")
_IEHeadInsertEventScript($oIE, $sLinkId, "onclick", "return false;")
EndIf
Next
C'est à adapter, en supprimant simplement le target="_blank" par exemple, et il faut le faire a chaque nouvelle page. Si l'utilisateur clique sur un lien qui recharge la page, il faudra repérer cet evenement et refaire ce bout de code pour enlever les target="_blank"