Python Forum

Full Version: Win32\ping.exe windows pops up -very annoying...
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Greetings!
I'm running a script that uses:
import wmi
from socket import *
I'm scanning a subnet and if found an active IP it checks if remote hosts have particular services started, it runs every 15min.
Now I have a problem, every 15 minutes DOS windows(...win32\pin.exe) popping up for each host that is very annoying.
Is there any way I can suppress the DOS window?
Thank you.
This is so lacking in information its pathetic. Is that your entire program? How do you expect any help if this is all you are willing to provide.

Try again.
Well, you are right I should of posted more code.
But you have to understand, for most of us that asking for your help, you guys like a code Megicianc.
Some kind of woodo stuff...

Here is the short version of the code that makes DOS pop up.
import wmi
from socket import *
proc =open('D:/HSMV/Host_staus.txt','w') 


hlist = ['AMC4TCM1901.BPH.corp.com,101.232.422.12','AMC4TCM1902.BPH.corp.com,101.232.422.14','AMC4TCM1910.BPH.corp.com,101.232.422.15','AMC4TCM1915.BPH.corp.com,101.232.422.16']
for ehl in hlist :
    proc_name  = False
    proc_name2 = False
    ehl=ehl.strip()

    hnm,hip = ehl.split(",")   ## <--- Splitting for Host Name and Host IP
    ip = hip                   ## <------------------- Host IP
    hnm_sp,*nothing = hnm.split(".")

    try:
        connection = wmi.WMI(ip)
        print(f" Connection established -- {hnm_sp}")

        for process in connection.Win32_Process () :
            if process.Name == 'FuseepAgentService.exe' :
                print (f" Fusseep started    -------> {process.Name}")  
                proc_name = 'UP'
            elif process.Name == 'OpenZBR_x64.exe' :           
                print (f" OpenZBR started    ------> {process.Name}") 
                proc_name2 = process.Name
                proc_name2 = 'UP' 
        if proc_name == False :
            proc_name = 'Down'
            print(f" Fusseep_Service -- DOWN")            
        if proc_name2 == False :            
            proc_name2 = 'Down'
            print(f" OpenZBR_Service ------ DOWN")          
        proc.write(hnm_sp+","+proc_name+","+proc_name2+"\n") 
               
    except wmi.x_wmi:
        print(f"------------------------------------------------------------"+"\n")
        print(f" Cannot connect to -> {hnm_sp}")
        print(f"------------------------------------------------------------"+"\n")
        
proc.close()                        
Sorry again!
And thank you.
Is the dos window popping up on the remote host or on the computer running this script?
my bad again!
It is popping up on my server only, that is where I'm running the script.

Thank you.
HI,
Have an update.
I changed the extension of the script from.pyw to .py and the .'..windows32.ping.exe' windows stopped popping up,
now I have just one window that pops up. it is the script Python.exe.
Is there any other way I could suppress this window?

Thank you.
Sorry for the confusion!!!

I found I had a problem with a different part of my script.
this is where the 'ping' is called and that is where the 'DOS windows pop-ups' coming from.
Does anybody know how to fix it?

f_active1  = open ("C:/02/IP_Active1.txt","w") 

with open(os.devnull, "wb") as limbo:
        for n in range(1, 255):
                ip="11.21.12.{0}".format(n)
                result=subprocess.Popen(["ping", "-n", "1", "-w", "255", ip],
                        stdout=limbo, stderr=limbo).wait()
                if result:
                        print (f" Not Active -. {ip}")  #, file=f_inactive1)
                        pass
                else:
                        print (ip, "active")
                        
                        f_active1.write(ip+"\n")
f_active1.close()
Sorry again for the confusion!!!

And thank you!
Does this work.
result=subprocess.Popen(["ping", "-n", "1", "-w", "255", ip],
                        stdout=limbo, stderr=limbo, creationflags=CREATE_NO_WINDOW).wait()
It did not.
error:
stdout=limbo, stderr=limbo, creationflags=CREATE_NO_WINDOW).wait()
NameError: name 'CREATE_NO_WINDOW' is not defined
Also added this:
from subprocess import CREATE_NO_WINDOW
and now it works.

deanhystad! You are DA MAN!

Thank you!