Un super script promotionnel (et trollesque) Batch
44 réponses
Do Re Mi chel La Si Do
Bonjour !
Je vous ai concocté le script ci-dessous, pour montrer l'incroyable
supériorité du Batch, sur tous les autres langages de script (y compris le
Verlan). Seul Python, AutoIt! et l'Occitan peuvent faire aussi bien.
J'attend, d'ailleurs, les réactions épidermiques, et, forcément partiales
(normal ; yakemoi qui suis, par hypothèse, impartial).
Bref, que fait ce script ? Hé bien, il verrouille un site, par son adresse
IP et un port. Dès que l'on veut s'y connecter, le process est tué (dans les
2 secondes).
Pour tester, j'ai mis l'adresse IP d'un de mes sites : http://ponx.org
Lancez le script dans une invite de commande ; lancez I.E. ; allez sur
http://ponx.org ; constatez.
@+
MCI
PS : le script est prévu pour Windows-XP-Pro en français.
Voilà le script :
@echo off
:: Supprime les process qui se connectent à une adresse IP
set IPDEL=213.186.47.206:80
:: pour tester : http://ponx.org
:SCAN
set PID=
netstat -ano |find "%IPDEL%" >TEMP.TXT
for /F "usebackq tokens=*" %%i in (TEMP.TXT) do (call :STO %%i)
if X%PID%X==XX goto :CONTINUE
call :TRAIT %PID%
:CONTINUE
sleepm 2000
goto :SCAN
Je ne connaissais pas cet objet. Merci pour l'info. J'en ai tiré un script Python marrant :
import win32com.client,time while 1: sa=win32com.client.Dispatch("Shell.Application") lw=sa.Windows() for i in range(lw.Count): it=lw.Item(i) if str(it.LocationURL).find('microsoft.com')>-1 : it.Navigate("http://mclaveau.com/") time.sleep(2)
à utiliser avec modération...
@-salutations
Michel Claveau
Bonjour !
Je ne connaissais pas cet objet. Merci pour l'info.
J'en ai tiré un script Python marrant :
import win32com.client,time
while 1:
sa=win32com.client.Dispatch("Shell.Application")
lw=sa.Windows()
for i in range(lw.Count):
it=lw.Item(i)
if str(it.LocationURL).find('microsoft.com')>-1 :
it.Navigate("http://mclaveau.com/")
time.sleep(2)
Je ne connaissais pas cet objet. Merci pour l'info. J'en ai tiré un script Python marrant :
import win32com.client,time while 1: sa=win32com.client.Dispatch("Shell.Application") lw=sa.Windows() for i in range(lw.Count): it=lw.Item(i) if str(it.LocationURL).find('microsoft.com')>-1 : it.Navigate("http://mclaveau.com/") time.sleep(2)
à utiliser avec modération...
@-salutations
Michel Claveau
~Jean-Marc~ [MVP]
Salutations *Jean* ! Dans <news: tu nous disais :
Avec l'objet Shell.Application on peut le faire (pour l'explorateur et IE) ... sur l'url, le titre, ...
Sub Fermer_IE_URL(url) For Each W in CreateObject("Shell.Application").Windows With W If LCase(Right(.FullName,12))="iexplore.exe" Then If LCase(.LocationURL)=url Then .Quit End If End With Next WScript.Sleep 200 End Sub
Et si je voulais donner le focus à un exécutable spécifique, comment je peux m'y prendre avec Shell.Application ?
(AppActivate ne marche pas toujours, bizarrement)
@micalement
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *Jean* !
Dans <news:mn.5d867d599f666c60.3499@windows>
tu nous disais :
Avec l'objet Shell.Application on peut le faire (pour l'explorateur et
IE) ... sur l'url, le titre, ...
Sub Fermer_IE_URL(url)
For Each W in CreateObject("Shell.Application").Windows
With W
If LCase(Right(.FullName,12))="iexplore.exe" Then
If LCase(.LocationURL)=url Then .Quit
End If
End With
Next
WScript.Sleep 200
End Sub
Et si je voulais donner le focus à un exécutable spécifique, comment
je peux m'y prendre avec Shell.Application ?
(AppActivate ne marche pas toujours, bizarrement)
@micalement
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Sub Fermer_IE_URL(url) For Each W in CreateObject("Shell.Application").Windows With W If LCase(Right(.FullName,12))="iexplore.exe" Then If LCase(.LocationURL)=url Then .Quit End If End With Next WScript.Sleep 200 End Sub
Et si je voulais donner le focus à un exécutable spécifique, comment je peux m'y prendre avec Shell.Application ?
(AppActivate ne marche pas toujours, bizarrement)
@micalement
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Jean
Salutations *Jean* !
Bonsoir :-)
Dans <news: tu nous disais :
Avec l'objet Shell.Application on peut le faire (pour l'explorateur et IE) ... sur l'url, le titre, ...
Sub Fermer_IE_URL(url) For Each W in CreateObject("Shell.Application").Windows With W If LCase(Right(.FullName,12))="iexplore.exe" Then If LCase(.LocationURL)=url Then .Quit End If End With Next WScript.Sleep 200 End Sub
Et si je voulais donner le focus à un exécutable spécifique, comment je peux m'y prendre avec Shell.Application ?
A ma connaissance il n'y a rien dans (ou à partir de) shell.application pour faire ça.
(AppActivate ne marche pas toujours, bizarrement)
Effectivement (ou semble ne pas toujours fonctionner)... ça dépend de ce qu'on veut faire et du type d'application en jeu. Vous pourriez poster un exemple appactivate "instable" que vous rencontrez et nous pourrions voir si il n'y a pas moyen de le "stabiliser".
@micalement
Amicalement,
-- Jean - JMST Belgium
Salutations *Jean* !
Bonsoir :-)
Dans <news:mn.5d867d599f666c60.3499@windows>
tu nous disais :
Avec l'objet Shell.Application on peut le faire (pour l'explorateur et
IE) ... sur l'url, le titre, ...
Sub Fermer_IE_URL(url)
For Each W in CreateObject("Shell.Application").Windows
With W
If LCase(Right(.FullName,12))="iexplore.exe" Then
If LCase(.LocationURL)=url Then .Quit
End If
End With
Next
WScript.Sleep 200
End Sub
Et si je voulais donner le focus à un exécutable spécifique, comment
je peux m'y prendre avec Shell.Application ?
A ma connaissance il n'y a rien dans (ou à partir de) shell.application
pour faire ça.
(AppActivate ne marche pas toujours, bizarrement)
Effectivement (ou semble ne pas toujours fonctionner)... ça dépend de
ce qu'on veut faire et du type d'application en jeu.
Vous pourriez poster un exemple appactivate "instable" que vous
rencontrez et nous pourrions voir si il n'y a pas moyen de le
"stabiliser".
Sub Fermer_IE_URL(url) For Each W in CreateObject("Shell.Application").Windows With W If LCase(Right(.FullName,12))="iexplore.exe" Then If LCase(.LocationURL)=url Then .Quit End If End With Next WScript.Sleep 200 End Sub
Et si je voulais donner le focus à un exécutable spécifique, comment je peux m'y prendre avec Shell.Application ?
A ma connaissance il n'y a rien dans (ou à partir de) shell.application pour faire ça.
(AppActivate ne marche pas toujours, bizarrement)
Effectivement (ou semble ne pas toujours fonctionner)... ça dépend de ce qu'on veut faire et du type d'application en jeu. Vous pourriez poster un exemple appactivate "instable" que vous rencontrez et nous pourrions voir si il n'y a pas moyen de le "stabiliser".
@micalement
Amicalement,
-- Jean - JMST Belgium
~Jean-Marc~ [MVP]
Salutations *Jean* ! Dans <news: tu nous disais :
(AppActivate ne marche pas toujours, bizarrement)
Effectivement (ou semble ne pas toujours fonctionner)... ça dépend de ce qu'on veut faire et du type d'application en jeu. Vous pourriez poster un exemple appactivate "instable" que vous rencontrez et nous pourrions voir si il n'y a pas moyen de le "stabiliser".
Je pense que c'est résolu.
En fait, j'attendais la présence d'une application avant de faire un AppActivate dessus (sans attendre).
J'ai mis une attente d'une demi-seconde pour lui laisser le temps de s'initialiser et surtout de s'afficher et ça marche mieux maintenant.
Merci quand même. ;-)
Amicalement
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *Jean* !
Dans <news:mn.6d697d590bb140bd.3499@windows>
tu nous disais :
(AppActivate ne marche pas toujours, bizarrement)
Effectivement (ou semble ne pas toujours fonctionner)... ça dépend de
ce qu'on veut faire et du type d'application en jeu.
Vous pourriez poster un exemple appactivate "instable" que vous
rencontrez et nous pourrions voir si il n'y a pas moyen de le
"stabiliser".
Je pense que c'est résolu.
En fait, j'attendais la présence d'une application avant de
faire un AppActivate dessus (sans attendre).
J'ai mis une attente d'une demi-seconde pour lui laisser le
temps de s'initialiser et surtout de s'afficher et ça marche
mieux maintenant.
Merci quand même. ;-)
Amicalement
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Effectivement (ou semble ne pas toujours fonctionner)... ça dépend de ce qu'on veut faire et du type d'application en jeu. Vous pourriez poster un exemple appactivate "instable" que vous rencontrez et nous pourrions voir si il n'y a pas moyen de le "stabiliser".
Je pense que c'est résolu.
En fait, j'attendais la présence d'une application avant de faire un AppActivate dessus (sans attendre).
J'ai mis une attente d'une demi-seconde pour lui laisser le temps de s'initialiser et surtout de s'afficher et ça marche mieux maintenant.
Merci quand même. ;-)
Amicalement
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/