[..] Les classes objet
Posté : ven. 29 juin 2012 09:17
Bonjour,
Après une recherche sur le forum et sur google je n'ai pas trouvé de réponse à mon questionnement.
Description du projet à mener :
Dans le cadre du développement intra-entreprise visant à automatiser de nombreuses tâches récurrentes, je cherche à développer pour commencer un outil d'analyse des process, je m'explique :
Au sein de notre infrastructure de nombreux outils de travail cohabitent ensemble et font la richesse de notre parc de dématérialisation de document.
Afin d'automatiser certaines tâches, j'ai dans l'idée de développer en premier lieu un programme d'analyse :
Ce serait un programme qui liste les process en cours sur notre réseau ( pas de problème pour lister tout ceci avec la fonction ProcessList()) et en détermine les différents handles, PID, classes d'objets, etc ...
Par exemple : $oExcel.ActiveSheet.UsedRange.Rows.Count permet d'interagir avec excel via des demandes ciblées sur les classes d'objets spécifiques à Excel, ici en l'occurence, compter des lignes.
Ainsi ce programme qui listerait tout les process en cours, PID, handles, HWnd, hooks, allocations mémoire, etc ... permettrait pour un process donné de lister tout son contenu exploitable.
Objectif : ceci permettrai dans le futur des développements plus concret avec plus de contrôles quand aux actions menées ( pour exemple, à ce jour j'ai développé un script qui va sur un de nos portail intranet gérer des données, à ce jour je travail avec des WinWaitActive, des TAB, etc ..., mais je ne trouve pas celà propre )
-> ;Ouvre le portail sur la page de traitement
ToolTip("Accès au portail", 500, 500)
Sleep(3000)
ShellExecute("http://192.168.100.XXX/XXXXXXX/XXXX/X")
Sleep(2000)
WinWaitActive("Saisie XXXXXXXXXXXXXXXXXXX")
Sleep(1000)
;S'identifie sur le portail afin d'accéder au contenu actif
ToolTip("Identification en cours", 500, 500)
Sleep(3000)
Send("{TAB 14}")
Sleep(1000)
Send("administrateur")
Sleep(1000)
Comme vous le voyez, ça fonctionne, mais ça reste brouillon.
Alors que si je pouvais récupérer directement via un programme tout les Hooks existant, j'aurai beaucoup plus de contrôle et de souplesse, ce qui me permettrai de créer des applicatifs bien plus poussés encore.
A l'heure actuelle, j'ai démarré ceci :
;Includes : *****************************************************************************************
#Include <GUIConstants.au3>
;Création de la GUI : *******************************************************************************
$MainScreen = GUICreate("RDMA Process Analyzer", 1000, 500)
$ProcessList = GUICtrlCreateList("", 20, 20, 250, 250)
$RefreshButton = GUICtrlCreateButton("Refresh Process List", 20, 270, 250, 20)
$ProcsSearchLBL = GUICtrlCreateLabel("Type below the desired Process to analyse :",290, 20)
$ProcsField = GUICtrlCreateInput("", 290, 40, 80, 20)
$ProcsCheckBton = GUICtrlCreateButton("GO", 390, 40 ,50, 20)
;Début du programme : *******************************************************************************
GUISetState()
While 1
Switch GUIGetMsg()
Case - 3
Exit
Case $RefreshButton
GUICtrlSetData($ProcessList, '')
$CallProcess = ProcessList()
For $IncrementCounter = 1 To UBound($CallProcess) - 1
$LoadList = 'Process: ' & $CallProcess[$IncrementCounter][0]& ' - PID: ' & $CallProcess[$IncrementCounter][1]
GUICtrlSetData($ProcessList, $LoadList)
Next
Case $ProcsCheckBton
MsgBox(0, "Process Analyze", "Datas linked to that Process will now be shown")
$ReadValue = GUICtrlRead($ProcsField)
MsgBox(0, "Process Analyze", "Selected process is "&$ReadValue&"")
EndSwitch
WEnd
Bon ici c'est basique ça me récupère juste le nom du process et son PID, mais voilà l'esprit, pour info : un soft qui ressemble à ce que je veux développer -> YAPM : http://sourceforge.net/projects/yaprocmon/
Merci d'avance pour votre collaboration.
Après une recherche sur le forum et sur google je n'ai pas trouvé de réponse à mon questionnement.
Description du projet à mener :
Dans le cadre du développement intra-entreprise visant à automatiser de nombreuses tâches récurrentes, je cherche à développer pour commencer un outil d'analyse des process, je m'explique :
Au sein de notre infrastructure de nombreux outils de travail cohabitent ensemble et font la richesse de notre parc de dématérialisation de document.
Afin d'automatiser certaines tâches, j'ai dans l'idée de développer en premier lieu un programme d'analyse :
Ce serait un programme qui liste les process en cours sur notre réseau ( pas de problème pour lister tout ceci avec la fonction ProcessList()) et en détermine les différents handles, PID, classes d'objets, etc ...
Par exemple : $oExcel.ActiveSheet.UsedRange.Rows.Count permet d'interagir avec excel via des demandes ciblées sur les classes d'objets spécifiques à Excel, ici en l'occurence, compter des lignes.
Ainsi ce programme qui listerait tout les process en cours, PID, handles, HWnd, hooks, allocations mémoire, etc ... permettrait pour un process donné de lister tout son contenu exploitable.
Objectif : ceci permettrai dans le futur des développements plus concret avec plus de contrôles quand aux actions menées ( pour exemple, à ce jour j'ai développé un script qui va sur un de nos portail intranet gérer des données, à ce jour je travail avec des WinWaitActive, des TAB, etc ..., mais je ne trouve pas celà propre )
-> ;Ouvre le portail sur la page de traitement
ToolTip("Accès au portail", 500, 500)
Sleep(3000)
ShellExecute("http://192.168.100.XXX/XXXXXXX/XXXX/X")
Sleep(2000)
WinWaitActive("Saisie XXXXXXXXXXXXXXXXXXX")
Sleep(1000)
;S'identifie sur le portail afin d'accéder au contenu actif
ToolTip("Identification en cours", 500, 500)
Sleep(3000)
Send("{TAB 14}")
Sleep(1000)
Send("administrateur")
Sleep(1000)
Comme vous le voyez, ça fonctionne, mais ça reste brouillon.
Alors que si je pouvais récupérer directement via un programme tout les Hooks existant, j'aurai beaucoup plus de contrôle et de souplesse, ce qui me permettrai de créer des applicatifs bien plus poussés encore.
A l'heure actuelle, j'ai démarré ceci :
;Includes : *****************************************************************************************
#Include <GUIConstants.au3>
;Création de la GUI : *******************************************************************************
$MainScreen = GUICreate("RDMA Process Analyzer", 1000, 500)
$ProcessList = GUICtrlCreateList("", 20, 20, 250, 250)
$RefreshButton = GUICtrlCreateButton("Refresh Process List", 20, 270, 250, 20)
$ProcsSearchLBL = GUICtrlCreateLabel("Type below the desired Process to analyse :",290, 20)
$ProcsField = GUICtrlCreateInput("", 290, 40, 80, 20)
$ProcsCheckBton = GUICtrlCreateButton("GO", 390, 40 ,50, 20)
;Début du programme : *******************************************************************************
GUISetState()
While 1
Switch GUIGetMsg()
Case - 3
Exit
Case $RefreshButton
GUICtrlSetData($ProcessList, '')
$CallProcess = ProcessList()
For $IncrementCounter = 1 To UBound($CallProcess) - 1
$LoadList = 'Process: ' & $CallProcess[$IncrementCounter][0]& ' - PID: ' & $CallProcess[$IncrementCounter][1]
GUICtrlSetData($ProcessList, $LoadList)
Next
Case $ProcsCheckBton
MsgBox(0, "Process Analyze", "Datas linked to that Process will now be shown")
$ReadValue = GUICtrlRead($ProcsField)
MsgBox(0, "Process Analyze", "Selected process is "&$ReadValue&"")
EndSwitch
WEnd
Bon ici c'est basique ça me récupère juste le nom du process et son PID, mais voilà l'esprit, pour info : un soft qui ressemble à ce que je veux développer -> YAPM : http://sourceforge.net/projects/yaprocmon/
Merci d'avance pour votre collaboration.