[..] Les classes objet

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
OlivierG
Niveau 1
Niveau 1
Messages : 5
Enregistré le : ven. 29 juin 2012 08:45
Status : Hors ligne

[..] Les classes objet

#1

Message par OlivierG »

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.
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Les classes objet

#2

Message par blacksoul305 »

Bonjour,

déjà, il faut mettre ton code dans une balise code et ensuite une balise spoiler. Ensuite, en ce qui concerne ton code pleins de Sleep et de TAB, tu peux utiliser l'utilitaire AutoIt Window Info, qui te permettra de récupérer plusieurs infos sur la fenêtre avec laquelle tu dois interagir. Tu pourras donc avoir le nom des contrôles sur la fenêtre et avec ça, utiliser les fonctions "ControlSend et ControlClick". Ça fera déjà plus propre, et ça sera plus fiable.
Étudiant en 2ème année de Licence Informatique.
Répondre