begin process at 2013 06 19 08:08:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Applications

 > EDITEUR DE SCRIPT .BAT (PROCESS, XML)

EDITEUR DE SCRIPT .BAT (PROCESS, XML)


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Applications Source .NET ( DotNet ) Classé sous :éditeur, coloration, xml, process, thread Niveau :Initié Date de création :06/03/2006 Vu / téléchargé :14 511 / 680

Auteur : yann_lo_san

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Pour travailler des concepts CSharp.net (VStudio 2003), j'ai pensé à un éditeur de fichier batch. Celui-ci réuni les classe Diagnostic, Process, Thread, Xml. J'ai essayé la coloration du code (tâche assez compliquée). Un fichier Xml sert de base de données modifiable à volonté.
(Je conseille la désactivation de la coloration en modif car pas très fonctionnelle) et à ce propos je vous demande conseil quant à la manière à suivre pour ce genre de fonction (analyser du rtf à la volée). Merci d'avance pour votre indulgence.


 Conclusion

Cette application est un test de plusieurs concepts CSharp.net. A cause de l'utilisation d'un thread secondaire qui fait des appels sur un controle WinForm, il se peut que des NullReferenceException surviennent aléatoirement. En effet le framework dit qu'un delegate doit être utilisé pour ce genre de problème (Marshalling avec controle.BeginInvoke(...)) car seul le thread principal doit dialoguer avec les controles WinForm. Je suis en train de chercher dans ce sens.
PS : Le fichier xml et le rep Outils doivent être dans le rep. courrant.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) AMÉLIORER MON DÉBUT AVEC ODBC par MINDONGO
AFFICHER LA CELLULE D'UN DATAGRIDVIEW DANS UN TEXTBOX D'UN A... par Sophcam
Source avec Zip Source .NET (Dotnet) AGENDA AVEC CALENDRIER SOUS FORME DE ROUES par PatricePedneault
Source avec Zip Source avec une capture Source .NET (Dotnet) APPLICATIONALREADYLAUNCHED par eagleleader
Source avec Zip Source .NET (Dotnet) CRÉER UN DOCUMENT À PARTIR DE COPIES D'ÉCRAN par brennal

 Sources en rapport avec celle ci

Source .NET (Dotnet) RICHTEXTBOX AVEC COLORATION SYNTAXIQUE ET AUTO-INDENTATION S... par badboy38
Source avec Zip Source avec une capture Source .NET (Dotnet) ÉDITEUR DE TEXTE par samycoul
Source avec Zip Source .NET (Dotnet) UTILITAIRE ITUNE par zanzan
Source avec Zip Source avec une capture Source .NET (Dotnet) SPY# : INFO SYSTEM SUR LES PROCESS THREAD FENETRE HWND MODUL... par Alain Proviste
Source avec Zip Source avec une capture Source .NET (Dotnet) ENUMERATION DES PROCESSUS, THREADS ET MODULES par boumarsel

Commentaires et avis

Commentaire de leproc le 16/04/2006 19:12:24

Bravo pour la coloration syntaxique un vrai casse tête

Commentaire de yann_lo_san le 21/04/2006 19:38:25

Heuu, ça m'aide pas vraiment LEPROC !
Mais merci quant même.

Commentaire de leprov le 23/05/2006 22:22:12

tiens des réponses avec des pseudos tres proches.... ;)
donc pour ton probleme de modification de ton controle via un thread secondaire, petite explication :

un thread ne peux modifier une form ou un de ses composants que si cest ce thread qui a lancé la fenetre....un exemple tout simple de comment modifier la fenetre dans un thread secondaire (en ne mettant qu'une partie du code). imaginons une form qui contienne une textbox (et cest tout)

class MaForm : Windows.Form
{
//création d'un délégué de la fonction prévu pour le callback
private delegate void FonctionModifInterfaceCallBack();


public MaForm()
{
  Thread MonThread = new Thread(FonctionModifInterface);
  MonThread.Start();
}

//méthode threadsafe
void FonctionModifInterface()
{
  //vérification du thread. si on est pas ds le thread qui a lancé la fenetre, cela renvoi true
  if (this.textbox1.InvokeRequired())
  {
   //création d'une instance du délégué de callback
   FonctionModifInterfaceCallback d =
     new FonctionModifInterfaceCallback(FonctionModifInterface);
   //appel du callback. la fonction s'appelle elle meme dans le thread principal et passe alors
   //dans le else
   this.Invoke(d);
  }
  else
  {
   //on est dans le thread principal et la textbox peut etre modifiée
   this.textbox1.text = "coucou";
  }
}
}


je suis pas sur a 100% du code. s'il y a erreur j'edite ca demain ;)
petite précision : si la fonction possède des parametres, il faut changer une partie du code. par exemple, si la fonction avait été
void FonctionModifInterface(int a, string b)

il faut modifier le code pour avoir ceci :

FonctionModifInterfaceCallback d =
     new FonctionModifInterfaceCallback(FonctionModifInterface);
object[] Params = new object[2];
object[1] = a;
object[2] = b;  
this.Invoke(d, Params);  

ce qui se passe :
on vérifie que le control a été créé dans le thread courant (invokerequired)
si cest le cas, on prépare a lancer la fonction dans le thread qui l'a créé (avec la méthode callback)
on lance cette méthode dans le thread qui a créé le control (control.invoke, ou un de ses parents)
si on est bien dans le bon thread, on modifie le controle


j'ai pas de compilo sous la main et jai plus le code exact en tete, mais a priori si tu crée une appli avec une form nommée MaForm contenant une textbox nommée textbox1, ca devrais compiler et fonctionner (je pense, je vérifierais ca demain et corrigerais si besoin est).
en bref, toute méthode qui risque d'etre appelée dans ton thread secondaire doit etre rendu thread safe d'une manière équivalente.
en éspérant que ca t'aide (et que je n'ai pas posté ca trop tard ^^)

Commentaire de yann_lo_san le 25/05/2006 21:19:14

C'est très clair, LEPROV, merci.
J'étais passé à autre chose mais cette présentation 'threadSafe' me convient tout à fait.
Tu codes dans ta tête, sans compilateur et sans F1 !!!
C'est impressionnant.
Bonne continuation...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Fermer tout les thread d'un programme ? [ par Sobieski ] Salut.J'ai un programme, quand je le lance ca lance une IHM et plein de thread qui filent des infos à l'ihm pour l'affichage.Quand je clique sur multi process [ par pipof18 ] Je vous explique mon probleme.J'ai cree un service multi thread -> pas de probleme.Dans chaque thread, je lance un process ->pas de probleme.Si Redémarrer un Process avec un argument [ par DarciaG ] Bonjour, j'ai un souci avec une application en c# qui nécessite un redémarrage après avoir choisi un fichier XML via un OpenFileDialog. En effet, je Thread.Start : exception OutOfMemory [ par Aurore38 ] Le Contexte :============= En C# .Net1.1, sous visual studio 2003nous avons développé un client-serveur en utilisant les fonctionnalités de System.Run Multi thread [ par sephiro ] Bonjour Je recherche l'équivalent des CRITICAL_SECTION   en C# pour synchroniser des threads.Sephiro Thread besoin d 'explication svp [ par wally88 ] Bonjour,Suite à mon post : http://www.csharpfr.com/infomsg_BOUCLER-SANS-PLANTER Killer un processus : bonne méthode? [ par clubberzZ ] Bonjour, pour tuer un processus j'utilise cette méthode :  private void KillProcess(string processName) {   // liste des processus ayant ce nom   Proc XML to SQL [ par citt ] Bonjour,Voila j'ai un fichier xml qui se compose en 3 parties dont les deux dernier qui se repete une centaine de fois. Exemple<?xml version="1.0" Process avec Word [ par pitch6969 ] Bonjour,je suis en train de créer une visionneuse de document de type word, excel, pdf ....je charge les documents dans un WebBrowserControl et je vou Lancer commande dos / process [ par plop3000 ] Bonjour, j'essaye de lancer une commande dos via un process mais je n'y parviens pas dans tout les cas.Par exemple, j'ai fait :    System.Diagnostics.


Nos sponsors


Sondage...

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales