PDA

View Full Version : [Python] - problema classi


GidanTKA
23-08-2008, 23:40
Salve a tutti.

ho un problema, inizialmente avevo scritto questo pezzo di codice:


from win32api import *
from win32gui import *

def Hide_Desktop():
h_progman = FindWindow(u"Progman",None) #Hidda il desktop
h_desktop = FindWindowEx(h_progman, 0, u"SHELLDLL_DefView", None)
h_desktop_listview = FindWindowEx(h_desktop, 0, u"SysListView32", None)
ShowWindow(h_progman, 0)




def Hide_StartBar():
Mimmo_Mimmo = FindWindowEx(0,0,"Shell_TrayWnd",None) #Hidda la barra start
ShowWindow(Mimmo_Mimmo,0)


Hide_StartBar()
Hide_Desktop()


poi volendo far in modo che "Hide_Desktop" e "Hide_StartBar" si avviassero contemporaneamente ho usato threading ed ho scritto in questo modo il nuovo codice:


from win32api import *
from win32gui import *
import threading


def Hide_Desktop():
h_progman = FindWindow(u"Progman",None) #Hidda il desktop
h_desktop = FindWindowEx(h_progman, 0, u"SHELLDLL_DefView", None)
h_desktop_listview = FindWindowEx(h_desktop, 0, u"SysListView32", None)
ShowWindow(h_progman,0)

def Hide_StartBar():
Mimmo_Mimmo = FindWindowEx(0,0,"Shell_TrayWnd",None)
ShowWindow(Mimmo_Mimmo,0)


class Operazione1 ( threading.Thread):
def run ( self ):
Hide_Desktop()

class Operazione2 ( threading.Thread):
def run ( self ):
Hide_StartBar()


Operazione1().start()
Operazione2().start()


ma il problema è che se avvio il nuovo script con pythonwin funziona perfettamente, se lo avvio con IDLE mi da degli errori incomplensibili sui quali ho già fatto un altro post (ma lo script funziona lostesso):
http://www.hwupgrade.it/forum/showthread.php?t=1791218
se invece lo avvio con PyScripter mi nasconde solo il desktop e solamente se avvio 2 volte lo script mi nasconde anche la barra di start.

Infine ho provato a convertire in esecutibile questo script ed il risultato è lo stesso di PyScripter, ovvero se avvio l'exe una volta sola mi si nasconde solamente il desktop e soltanto se lo avvio una seconda volta mi nasconde anche la barra di start.
Vi è un errore nell'utilizzo delle classi e di thread?
Perchè lo script si comporta in questo modo strano??
Qualcuno saprebbe aiutarmi??