Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Voici mon problème: dans une application PowerBuilder, j'exécute une commande DOS (ici, qui utilise un FINDSTR).
Si l'utilisateur patiente jusqu'à la fin du traitement, pas de problème, le "FINDSTR.exe" se supprime automatiquement des processus windows.
Mais si celui-ci coupe l'application non-proprement (en faisant un fin de tâche par exemple), le processus "FINDSTR.exe" reste en mémoire, et empêche une nouvelle recherche lors d'un prochain lancement de l'application (il à l'air d'être en attente du 1er FINDSTR.exe).
Y'a-t-il une commande PowerBuilder qui permettrait, avant le lancement de ma recherche, de vérifier si il y a déjà un processus "FINDSTR.exe" lancé sur le poste (qui apparaît donc dans la liste des processus windows), et comment le supprimer pour permettre une nouvelle recherche ?
Merci d'avance.
Dernière modification par benoit_jean1978 (22-04-2009 09:41:10)
Hors ligne
Bonjour,
http://www.rgagnon.com/pbdetails/pb-0229.html
http://www.rgagnon.com/pbdetails/pb-0230.html
http://www.rgagnon.com/pbdetails/pb-0266.html
ça devrait faire ton bonheur
Hors ligne
Merci erasorz, cela fonctionne
Hors ligne
tu peux poster ton code pour la forme
Hors ligne
Le voici:
public function long uf_kill_findstr () Integer li_retour Long ll_i String ls_code OleObject mssc mssc = CREATE OleObject li_retour = mssc.ConnectToNewObject( "MSScriptControl.ScriptControl" ) mssc.language = "VBScript" ls_code = "function killfindstr() ~r~n" + & "Set locator = CreateObject(~"WbemScripting.SWbemLocator~")~r~n" + & "Set service = locator.ConnectServer()~r~n" + & "Set props = service.ExecQuery" + & "(~"select name, description from Win32_Process" + & " where name = 'findstr.exe'~")~r~n" + & "num = props.count~r~n" + & "for each findstr in props~r~n " + & " findstr.terminate ~r~n " + & "next~r~n" + & "killfindstr = num~r~n" + & "end function" mssc.AddCode(ls_code) ll_i = mssc.Eval("killfindstr()") // Afficher le nombre de PROCESS supprimé: messagebox("Findstr killed", string(i)) mssc.DisconnectObject() DESTROY mssc return 1
Hors ligne
cool
pour info, il y a une balise spécifique pour formater le code PB : code=pb et le non-moins célèbre smiley dédié :
je fais la modif dans ton post, tu pourra l'éditer pour voir ça de plus près
Hors ligne
Ok, je ferai mieux la prochaine fois
Hors ligne
0 000 pepites pour toi
Hors ligne