OVH Cloud OVH Cloud

Un super script promotionnel (et trollesque) Batch

44 réponses
Avatar
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

:STO
set PID=%5
goto :EOF

:TRAIT
@taskkill /PID %1
goto :EOF

4 réponses

1 2 3 4 5
Avatar
Do Re Mi chel La Si Do
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)



à utiliser avec modération...



@-salutations

Michel Claveau
Avatar
~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, ...

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/objects/shell/shell.asp

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/

Avatar
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, ...

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/objects/shell/shell.asp

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


Avatar
~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/


1 2 3 4 5