Besoin d'aide application vb
Résolu/Fermé
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
-
5 mai 2016 à 17:41
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 17 mai 2016 à 07:59
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 17 mai 2016 à 07:59
A voir également:
- Besoin d'aide application vb
- Application mobile - Guide
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Application gps sans internet - Guide
- Desinstaller application windows - Guide
19 réponses
hcp7kuz
Messages postés
243
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
23
5 mai 2016 à 20:37
5 mai 2016 à 20:37
Salut,
Je ne connais pas sharpdevelop, j'utilise visual studio, mais je suppose que ca doit être à peu près similaire, donc je te dis comment j'ai fais pour celui-ci.
Je viens de modifier un code que j'ai fais il y a quelques temps pour toi.
Je n'ai pas tout compris comment tu voulais lister tous les programmes d'un dossier, donne moi plus d'info et je te répondrai.
Pour le code que j'ai modifié, crée un nouveau projet et ajoute une ListBox nommée "ListBox1" et trois boutons nommés "Button1", "Button2" et "Button3"
Le premier bouton va te servir à ouvrir l'application désirée, le deuxième à supprimer un élément sélectionné de la liste, et le troisième à ouvrir l'application séléctioné dans la liste.
Va dans les propriétés de ton application et clique sur settings. Ajoute une valeur nommé "SaveList" de type ArrayList (ArrayList se situe dans mscorlib > System.Collection > ArrayList). Ajoute une autre variable de type Boolean nommée Start qui a comme valeur par défaut False.
Ensuite, retourne sur ton application, et colle ce code dans ton application :
Voilà.
En espérant t'avoir aidé,
hcp7kuz
Je ne connais pas sharpdevelop, j'utilise visual studio, mais je suppose que ca doit être à peu près similaire, donc je te dis comment j'ai fais pour celui-ci.
Je viens de modifier un code que j'ai fais il y a quelques temps pour toi.
Je n'ai pas tout compris comment tu voulais lister tous les programmes d'un dossier, donne moi plus d'info et je te répondrai.
Pour le code que j'ai modifié, crée un nouveau projet et ajoute une ListBox nommée "ListBox1" et trois boutons nommés "Button1", "Button2" et "Button3"
Le premier bouton va te servir à ouvrir l'application désirée, le deuxième à supprimer un élément sélectionné de la liste, et le troisième à ouvrir l'application séléctioné dans la liste.
Va dans les propriétés de ton application et clique sur settings. Ajoute une valeur nommé "SaveList" de type ArrayList (ArrayList se situe dans mscorlib > System.Collection > ArrayList). Ajoute une autre variable de type Boolean nommée Start qui a comme valeur par défaut False.
Ensuite, retourne sur ton application, et colle ce code dans ton application :
Public Class Form1 Dim List As New ArrayList() Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load If My.Settings.Start = True Then If Not My.Settings.SaveList Is Nothing Then List = My.Settings.SaveList ListBox1.Items.AddRange(List.ToArray) End If Else My.Settings.Start = True My.Settings.Save() End If End Sub Private Sub Form1_FormClosing(sender As Object, e As EventArgs) Handles Me.FormClosing My.Settings.SaveList = List My.Settings.Save() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim SFD As New OpenFileDialog SFD.Filter = "Application|*.exe|Tous les fichiers|*.*" SFD.Title = "Choississez l'application que vous souhaitez ajouter à la liste." SFD.FileName = "" If SFD.ShowDialog = Windows.Forms.DialogResult.OK Then ListBox1.Items.Add(SFD.FileName) List.Add(SFD.FileName) End If End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Try ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) List.Remove(ListBox1.SelectedItem) Catch If ListBox1.SelectedIndex = False Then MsgBox("Vous n'avez pas selectionner d'item.", MsgBoxStyle.Critical, "Erreur") End If End Try End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Try Shell(ListBox1.SelectedItem) Catch If ListBox1.SelectedIndex = False Then MsgBox("Vous n'avez pas selectionner d'item.", MsgBoxStyle.Critical, "Erreur") End If End Try End Sub End Class
Voilà.
En espérant t'avoir aidé,
hcp7kuz
hcp7kuz
Messages postés
243
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
23
6 mai 2016 à 10:36
6 mai 2016 à 10:36
Salut,
Je pense avoir trouver ce que tu cherche.
Créer un nouveau projet avec une ListBox nommée ListBox1 et un bouton nommé Button1.
Va dans le code de ton application et colle ce code :
Il ne te reste plus qu'a modifier la variable "EmplacementDossier" afin de faire la liste du dossier que tu veux.
Après, dans ton application, séléctionne un élément de la liste et démarre le en cliquant sur le bouton.
En espérant t'avoir aidé,
hcp7kuz
Je pense avoir trouver ce que tu cherche.
Créer un nouveau projet avec une ListBox nommée ListBox1 et un bouton nommé Button1.
Va dans le code de ton application et colle ce code :
Public Class Form1 Dim EmplacementDossier As String = "C:\" Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim di As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(EmplacementDossier) For Each fi As System.IO.FileInfo In di.GetFiles ListBox1.Items.Add(fi.FullName) Next End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Try Shell(ListBox1.SelectedItem) Catch If ListBox1.SelectedIndex = False Then MsgBox("Vous n'avez pas selectionné d'item.", MsgBoxStyle.Critical, "Erreur") End If End Try End Sub End Class
Il ne te reste plus qu'a modifier la variable "EmplacementDossier" afin de faire la liste du dossier que tu veux.
Après, dans ton application, séléctionne un élément de la liste et démarre le en cliquant sur le bouton.
En espérant t'avoir aidé,
hcp7kuz
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
Modifié par Materio le 6/05/2016 à 14:54
Modifié par Materio le 6/05/2016 à 14:54
C'est exactement ce que je voulais merci, le code que tu m'a fais j'ai juste du l'adapter à sharp develop car j'ai eu quelques erreur. J'ai une autre question peut-on masquer l'arborescence des fichier? j'aimerai juste avoir le nom des programme pas avec l'arborescence (c:\user\nomducompte\desktop\nomdudossier\nomduprogramme).
hcp7kuz
Messages postés
243
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
23
6 mai 2016 à 15:43
6 mai 2016 à 15:43
Je pense que ça pourrait se faire, mais ca serait beaucoup plus compliqué.
J'essaie et je te redit plus tard.
J'essaie et je te redit plus tard.
hcp7kuz
Messages postés
243
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
23
6 mai 2016 à 15:55
6 mai 2016 à 15:55
Je ne pensais plus à la propriété name du fichier...
Tiens, c'est le même code avec deux modifications:
Voilà !
Tiens, c'est le même code avec deux modifications:
Public Class Form1 Dim EmplacementDossier As String = "C:\" ' n'oublie pas de mettre le slash à la fin Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim di As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(EmplacementDossier) For Each fi As System.IO.FileInfo In di.GetFiles ListBox1.Items.Add(fi.Name) Next End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Try Shell(EmplacementDossier & ListBox1.SelectedItem) Catch If ListBox1.SelectedIndex = False Then MsgBox("Vous n'avez pas selectionné d'item.", MsgBoxStyle.Critical, "Erreur") End If End Try End Sub End Class
Voilà !
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
Modifié par Materio le 6/05/2016 à 19:47
Modifié par Materio le 6/05/2016 à 19:47
Sa fonctionne :), mais des avertissement sur mon programme es normal?
Voici le lien de la capture : http://hpics.li/388550e
PS : j'ai aussi un bogue, le nom des programme s'affiche 2 fois (sa fais 2 bloc alphabétique).
Voici le lien de la capture : http://hpics.li/388550e
PS : j'ai aussi un bogue, le nom des programme s'affiche 2 fois (sa fais 2 bloc alphabétique).
hcp7kuz
Messages postés
243
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
23
6 mai 2016 à 21:04
6 mai 2016 à 21:04
Tu as juste déclaré la variable EmplacementDossier comme Objet et non comme String, remplace la ligne
dim EmplacementDossier as Object = "C:\Users\meterio\Desktop\data"par
dim EmplacementDossier as String = "C:\Users\meterio\Desktop\data".
Utilisateur anonyme
Modifié par Whismeril le 7/05/2016 à 08:38
Modifié par Whismeril le 7/05/2016 à 08:38
Bonjour
@hcp7kuz, tu utilises des fonctions VB6 dans ton code.
Ça n'est pas forcément conseillé.
Cet article donne quelques pistes pour éviter ça
https://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net
@Tous les 2, vous êtes partis du principe que la listBox est la référence, la base de données.
Cette méthode, même si elle marche, n'est pas la bonne.
Comme tu veux faire un xml pour
Ça fait des boucles dans tous les sens et c'est "long" car les accès aux contrôles modifient l'affichage.
Pour s'affranchir de tout ça, il existe le binding, ici un exemple avec une List(Of).
https://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource
Et ça tombe bien, car les List(Of) sont compatibles des différentes méthodes de serialisation xml, ma préférée étant Linq To Xml
https://codes-sources.commentcamarche.net/faq/11196-linq-to-xml-c-et-vb-net
Je n'ai pas le temps aujourd'hui de vous faire un code d'exemple, mais je vous propose un principe.
Une classe avec le chemin du programme et un boolean qui vaut true quand le programme a été lancé.
Une liste de cette classe, bindée sur un datagridview (il y aura une case cochée quand le programme sera lancé), il existe aussi une checkListBox mais le binding dans ce cas n'est pas pratique. Et si tu veux de la couleur, c'est assez simple avec un datagridview.
Tu pourras directement serialiser ta List et même faire une requête Linq toute simple pour compter le nombre d'instances cochées.
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
@hcp7kuz, tu utilises des fonctions VB6 dans ton code.
Ça n'est pas forcément conseillé.
Cet article donne quelques pistes pour éviter ça
https://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net
@Tous les 2, vous êtes partis du principe que la listBox est la référence, la base de données.
Cette méthode, même si elle marche, n'est pas la bonne.
Comme tu veux faire un xml pour
qui permet de restaurer le comptage des programme, il va te falloir transférer les données dans un autre "conteneur" compatible de l'export vers le xml.
Ça fait des boucles dans tous les sens et c'est "long" car les accès aux contrôles modifient l'affichage.
Pour s'affranchir de tout ça, il existe le binding, ici un exemple avec une List(Of).
https://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource
Et ça tombe bien, car les List(Of) sont compatibles des différentes méthodes de serialisation xml, ma préférée étant Linq To Xml
https://codes-sources.commentcamarche.net/faq/11196-linq-to-xml-c-et-vb-net
Je n'ai pas le temps aujourd'hui de vous faire un code d'exemple, mais je vous propose un principe.
Une classe avec le chemin du programme et un boolean qui vaut true quand le programme a été lancé.
Une liste de cette classe, bindée sur un datagridview (il y aura une case cochée quand le programme sera lancé), il existe aussi une checkListBox mais le binding dans ce cas n'est pas pratique. Et si tu veux de la couleur, c'est assez simple avec un datagridview.
Tu pourras directement serialiser ta List et même faire une requête Linq toute simple pour compter le nombre d'instances cochées.
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
hcp7kuz
Messages postés
243
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
23
Modifié par hcp7kuz le 7/05/2016 à 11:47
Modifié par hcp7kuz le 7/05/2016 à 11:47
Bonjour,
Je ne suis pas un expert en vb.net, et je me débrouille comme je peux.
J'ai regarder les articles que tu m'as envoyé Whismeril, mais je n'ai pas compris les notions sur les différentes listes, et je ne vois pas où sont les fonctions vb6 dans mon code.
Materio, toujours sur le même concept qu'auparavant (ou tu voulais mettre en valeur un élément exécuté), je propose de déplacer l'item au début de la liste lorsqu'on l'exécute, rajoute juste ces deux lignes après le "
Autrement, tu voulais sauvegarder ta liste ? Et pour le fichier annexe, tu voulais faire une liste des programmes exécutés ?
Je ne suis pas un expert en vb.net, et je me débrouille comme je peux.
J'ai regarder les articles que tu m'as envoyé Whismeril, mais je n'ai pas compris les notions sur les différentes listes, et je ne vois pas où sont les fonctions vb6 dans mon code.
Materio, toujours sur le même concept qu'auparavant (ou tu voulais mettre en valeur un élément exécuté), je propose de déplacer l'item au début de la liste lorsqu'on l'exécute, rajoute juste ces deux lignes après le "
Try" :
ListBox1.Items.Insert(0, ListBox1.Items.Item(ListBox1.SelectedIndex)) ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
Autrement, tu voulais sauvegarder ta liste ? Et pour le fichier annexe, tu voulais faire une liste des programmes exécutés ?
Utilisateur anonyme
>
hcp7kuz
Messages postés
243
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
7 mai 2016 à 16:10
7 mai 2016 à 16:10
Shell, msgbox, etc.. n'existent pas en Vb.net
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
7 mai 2016 à 15:03
7 mai 2016 à 15:03
oui genre un XML ou même un txt qui sauvegarde quel programme a été lancé et un bouton dans le programme servira à vider le fichier txt ou le supprimer si le programme le re-crée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
7 mai 2016 à 15:11
7 mai 2016 à 15:11
@whismeril je me doutais que la listebox pouvait servir à ça mais n'étant pas forcément adapté. Mais ce que je veux faire c'est juste un petit programme donc même si sa fais des boucle partout, c'est pas si grave car j'ai regardé les liens que tu as donné et étant novice je n'y ai rien compris. Donc j'aurais préférer faire quelque chose de simple.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié par cs_Le Pivert le 7/05/2016 à 16:27
Modifié par cs_Le Pivert le 7/05/2016 à 16:27
Bonjour à tous,
Pour faire ce que tu demandes, il vaut mieux utiliser une Listview:
1 colonne pour les appli et une autre pour le compteur.
Mettre une Listview et 2 Buttons
Le bouton 1 sert à lancer les applis et le 2 ne sert qu'une fois pour enregistrer ton répertoire d'EXE dans un fichier texte de sauvegarde. Tu peux le rendre inactif ensuite.
A l'ouverture création du fichier texte et fermeture automatique du programme. Ensuite tu ouvres le programme et tu ouvres le répertoire d'EXE.
Voici le code:
Tu peux aussi mettre la ligne cliquée en rouge, mais je n'en vois pas la nécessité avec le compteur!
Bon courage
@+ Le Pivert
Pour faire ce que tu demandes, il vaut mieux utiliser une Listview:
1 colonne pour les appli et une autre pour le compteur.
Mettre une Listview et 2 Buttons
Le bouton 1 sert à lancer les applis et le 2 ne sert qu'une fois pour enregistrer ton répertoire d'EXE dans un fichier texte de sauvegarde. Tu peux le rendre inactif ensuite.
A l'ouverture création du fichier texte et fermeture automatique du programme. Ensuite tu ouvres le programme et tu ouvres le répertoire d'EXE.
Voici le code:
Option Strict On Imports System.IO Public Class Form1 #Region "Declaration" Dim ligne, compteur As Integer Dim cheminexe As String = "C:\chemin desEXE" 'chemin des EXE 'a adapter Dim chemin As String = Application.StartupPath & "\sauvegarde.txt" Dim nom As String #End Region #Region "Ouverture et fermeture" Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try If File.Exists("sauvegarde.txt") Then Savelistview() Else 'Création du fichier Texte File.CreateText(chemin) End If Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Button1.Text = "Lancer exe" Button2.Text = "Ouvrir repertoire" Button1.AutoSize = True Button2.AutoSize = True Me.Text = My.Application.Info.AssemblyName If File.Exists("sauvegarde.txt") Then Fill_ListView(chemin, "|") Else MessageBox.Show("Création du fichier texte de sauvegarde,l'application va se fermer.", "Création fichier texte", MessageBoxButtons.OK, MessageBoxIcon.Information) Me.Close() End If End Sub #End Region #Region "Listview" Private Sub Listview1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.Click ligne = CInt(ListView1.SelectedIndices(0).ToString) compteur = CInt(ListView1.Items(ligne).SubItems(1).Text) nom = ListView1.SelectedItems(0).Text End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Try ListView1.Items(ligne).SubItems(1).Text = CStr(compteur + 1) Process.Start(cheminexe & "\" & nom) Catch exc As Exception MessageBox.Show(exc.Message, "Erreur!", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub 'ouvrir 1 fois pour enregistrer la liste Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click ListView1.View = View.Details 'lister les applications d'un repertoire Dim Repertoire As New System.IO.DirectoryInfo(cheminexe) Dim ListeFichier() As System.IO.FileInfo = Repertoire.GetFiles Dim cmpt As Int32 For cmpt = 0 To ListeFichier.GetUpperBound(0) Me.ListView1.Items.Add(ListeFichier(cmpt).Name) 'Ajouter le nom Me.ListView1.Items(cmpt).SubItems.Add("0") Next End Sub #End Region #Region "Sauvegarde" Private Function Fill_ListView(Optional sPath As String = "c:\temp\sauvegarde.txt", Optional sSeperator As String = "|") As Boolean Dim aline() As String Dim objReader As IO.StreamReader Dim sLine As String Dim arrText As New ArrayList() 'Dim sSeperator As String Dim lvi As ListViewItem Fill_ListView = False Try sLine = "" If sPath.Length = 0 Then sPath = chemin sSeperator = "|" objReader = New IO.StreamReader(sPath) If IO.File.Exists(sPath) Then ListView1.View = View.Details ListView1.GridLines = True ListView1.FullRowSelect = True ListView1.Dock = DockStyle.Top ListView1.Columns.Add("Application", 200, HorizontalAlignment.Left) ListView1.Columns.Add("Compteur", 100, HorizontalAlignment.Left) Do sLine = objReader.ReadLine() If Not sLine Is Nothing Then aline = sLine.Split(CChar(sSeperator)) lvi = New ListViewItem(aline) ListView1.Items.Add(lvi) End If Loop Until sLine Is Nothing objReader.Close() End If Fill_ListView = True Catch ex As Exception End Try End Function 'enrgistrer listview Private Sub Savelistview() Dim SW As New StreamWriter(chemin) Dim Save_Listview As String = "" Dim i As Integer Dim j As Integer For i = 0 To ListView1.Items.Count - 1 ' Boucle sur le nombre d'items dans la ListView For j = 0 To ListView1.Columns.Count - 1 ' Boucle sur le nombre de colonnes dans la ListView Save_Listview = Save_Listview & ListView1.Items(i).SubItems(j).Text & "|" ' Sauvegarde d'un item dans la ListView Next j SW.WriteLine(Save_Listview) ' Ecrit dans le fichier le contenu de la variable Save_Listview Save_Listview = "" ' Remplacement du contenu de Save_Listview par une chaîne vide Next i SW.Close() ' Fermeture du fichier End Sub #End Region End Class
Tu peux aussi mettre la ligne cliquée en rouge, mais je n'en vois pas la nécessité avec le compteur!
Bon courage
@+ Le Pivert
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
7 mai 2016 à 16:25
7 mai 2016 à 16:25
petite correction!
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
7 mai 2016 à 16:34
7 mai 2016 à 16:34
oula c'est compliqué tout ça ^^
ce que je souhaitait c'est de lancer des application portable et a chaque lancement d'une des application cela la renseigne dans une colonel à côté et pour éviter que la colons s'efface a la fermeture du programme c'est la qu'intervient de fichier supplémentaire. Je ne sait pas si c'est compréhensible ce que je veux dire.
ce que je souhaitait c'est de lancer des application portable et a chaque lancement d'une des application cela la renseigne dans une colonel à côté et pour éviter que la colons s'efface a la fermeture du programme c'est la qu'intervient de fichier supplémentaire. Je ne sait pas si c'est compréhensible ce que je veux dire.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
7 mai 2016 à 16:45
7 mai 2016 à 16:45
C'est exactement ce que fait ce code. Si c'est trop compliqué, il faut passer à autre chose de plus compréhensible pour toi. Là il s'agit de mettre une listview dans un Form avec 2 Buttons et ensuite copier coller le code, on ne peut plus simple!!!!!!!!!!!!
Je pourrais te mettre le programme sur c-joint, mais ce ne serait pas t'aider pour poursuivre dans la programmation
Bonne continuation.
Je pourrais te mettre le programme sur c-joint, mais ce ne serait pas t'aider pour poursuivre dans la programmation
Bonne continuation.
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
7 mai 2016 à 16:48
7 mai 2016 à 16:48
ok, mais le problème c'est que sharpdevelop me signale 36 erreur quand je copie colle ton code, je n'ai pas fais juste que de le regarder.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
7 mai 2016 à 16:49
7 mai 2016 à 16:49
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
7 mai 2016 à 16:52
7 mai 2016 à 16:52
ah oui c'est parfait, mais quand je veux ajouter un .exe ou .ink es si je le met dans le dossier cela me le rajoute il au programme? ou je dois recompiler le programme pour chaque appli rajouté?
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
7 mai 2016 à 16:57
7 mai 2016 à 16:57
Tu peux l'ajouter au programme par code. Sinon tu supprimes le fichier texte, mais ton compteur sera remis a zéro dans ce cas là!
Si tu arrives a faire le programme ainsi et qu'il fonctionne, alors je te donnerais le code pour ajouter un EXE. Je ne vais pas t'embrouiller pour l'instant!
Si tu arrives a faire le programme ainsi et qu'il fonctionne, alors je te donnerais le code pour ajouter un EXE. Je ne vais pas t'embrouiller pour l'instant!
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
7 mai 2016 à 17:00
7 mai 2016 à 17:00
d'accord mais avant tout le code que tu m'a fournis quand je le copie colle dans mon programme de développement (sharpdevelop), il m'indique 36 erreur et donc je ne peux pas le faire fonctionner. Cela m'a fais pareil avec la personne qui l'a fournis le code avec la listbox j'ai du modifier le code pour que sharpdevelop l'interprète sinon n'avait aussi des erreur.
--
--
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié par cs_Le Pivert le 7/05/2016 à 17:10
Modifié par cs_Le Pivert le 7/05/2016 à 17:10
Je n'ai pas sharpdevelop, je suis avec Visual Basic 2010. Essaie de l'adapter!
Ou télécharge le dernier Visual Basic en VB.Net, cela sera plus simple pour toi
Je peux te mettre l'exe sur c-joint en l'adaptant pour que tu puisses choisir le répertoire.
Désolé je ne peux pas faire plus
@+ Le Pivert
Ou télécharge le dernier Visual Basic en VB.Net, cela sera plus simple pour toi
Je peux te mettre l'exe sur c-joint en l'adaptant pour que tu puisses choisir le répertoire.
Désolé je ne peux pas faire plus
@+ Le Pivert
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
Modifié par Materio le 7/05/2016 à 17:23
Modifié par Materio le 7/05/2016 à 17:23
d'accord, mais c'est déjà bien ce que tu m'a donné sa va me faire avancer sur le code :)
encore merci pour ton aide.
encore merci pour ton aide.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
7 mai 2016 à 18:00
7 mai 2016 à 18:00
Voilà l'exe:
A l'ouverture création du fichier texte et fermeture automatique du programme. Ensuite tu ouvres le programme et tu ouvres le répertoire d'EXE.
http://www.cjoint.com/c/FEhp6436XHQ
A l'ouverture création du fichier texte et fermeture automatique du programme. Ensuite tu ouvres le programme et tu ouvres le répertoire d'EXE.
http://www.cjoint.com/c/FEhp6436XHQ
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
7 mai 2016 à 22:35
7 mai 2016 à 22:35
ah daccord je vois le rendu final est pas mal
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
10 mai 2016 à 23:12
10 mai 2016 à 23:12
J'ai essayé ton code sa fonctionne par rapport à ce que je souhaitais :) bon j'ai quand même passer du temps à le comprendre mais j'ai réussi à le tout faire fonctionner et j'ai modifier quelques choses.
- J'aimerais savoir comment supprimer la 3e colonne dans la list view car dans ton programme d'essai elle y est et dans le mien aussi.
- J'ai aussi ajouter un bouton pour supprimer le fichier txt quand on veut rajouter des programme, et j'aimerais savoir si il est possible que le fichier txt soit enregistré en temps-réel et pas quand le programme se ferme.
- J'aimerais savoir comment supprimer la 3e colonne dans la list view car dans ton programme d'essai elle y est et dans le mien aussi.
- J'ai aussi ajouter un bouton pour supprimer le fichier txt quand on veut rajouter des programme, et j'aimerais savoir si il est possible que le fichier txt soit enregistré en temps-réel et pas quand le programme se ferme.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
11 mai 2016 à 07:57
11 mai 2016 à 07:57
Re,
- J'aimerais savoir comment supprimer la 3e colonne dans la list view car dans ton programme d'essai elle y est et dans le mien aussi.
Ce n'est pas une 3ème colonne, c'est la listview qui est trop grande par rapport aux colonnes. A toi d'ajuster , en agrandissant les colonnes ou en réduisant la taille de la listview.
et j'aimerais savoir si il est possible que le fichier txt soit enregistré en temps-réel et pas quand le programme se ferme.
Dans le code cette ligne te parle-t-elle:
et celle ci:
C'est pourtant explicite!
Il suffit de la mettre dans le bouton!
Bon courage
- J'aimerais savoir comment supprimer la 3e colonne dans la list view car dans ton programme d'essai elle y est et dans le mien aussi.
Ce n'est pas une 3ème colonne, c'est la listview qui est trop grande par rapport aux colonnes. A toi d'ajuster , en agrandissant les colonnes ou en réduisant la taille de la listview.
et j'aimerais savoir si il est possible que le fichier txt soit enregistré en temps-réel et pas quand le programme se ferme.
Dans le code cette ligne te parle-t-elle:
Savelistview()
et celle ci:
'enrgistrer listview Private Sub Savelistview()
C'est pourtant explicite!
Il suffit de la mettre dans le bouton!
Bon courage
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
13 mai 2016 à 20:11
13 mai 2016 à 20:11
Ah oui, d’accord tu m'a mis beaucoup d'instruction pour que j'adapte le code, mais celui-la je n'y avait pas fais attention.
Sinon il n'y a aucune solution pour enlever la 3e colonne dans la listview? car dans les paramètre design de Visual Basic sa n'a pas l'air de changer quelque chose.
Sinon il n'y a aucune solution pour enlever la 3e colonne dans la listview? car dans les paramètre design de Visual Basic sa n'a pas l'air de changer quelque chose.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
14 mai 2016 à 07:57
14 mai 2016 à 07:57
La seule solution est d'agrandir les colonne ou rétrécir la listview.
Pour agrandir les colonnes dans
mettre:
Pour agrandir les colonnes dans
Private Function Fill_ListView(Optional sPath As String = "c:\temp\sauvegarde.txt", Optional sSeperator As String = "|") As Boolean
mettre:
ListView1.Columns.Add("Application", 300, HorizontalAlignment.Left) ListView1.Columns.Add("Compteur", 300, HorizontalAlignment.Left)
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
Modifié par Materio le 15/05/2016 à 01:02
Modifié par Materio le 15/05/2016 à 01:02
J'ai essayé sa résous le problème sauf que si on tire la colonne application plus vers la gauche on est obliger de glisser de gauche à droite pour retrouver la colonne compteur mais cela n'est pas si important.
Un autre problème est que je n'arrive pas à trouver le bon code pour ajouter une exeption quand la listview n'a pas été sélectionnée :
Un autre problème est que je n'arrive pas à trouver le bon code pour ajouter une exeption quand la listview n'a pas été sélectionnée :
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Try
Process.Start(cheminexe & "\" & nom)
ListView1.Items(ligne).SubItems(1).Text = CStr(compteur + 1)
Savelistview()
Catch
MsgBox("Le programme spécifié est introuvable.", MsgBoxStyle.Critical, "ERREUR")
End Try
End Sub
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié par cs_Le Pivert le 15/05/2016 à 08:07
Modifié par cs_Le Pivert le 15/05/2016 à 08:07
Comme ceci:
A mettre
dans le button Ajouter item comme ceci:
@+ Le Pivert
If ListView1.SelectedItems.Count = 0 Then Exit Sub Try ListView1.Items(ligne).SubItems(1).Text = CStr(compteur + 1) Process.Start(cheminexe & "\" & nom) Catch exc As Exception MessageBox.Show(exc.Message, "Erreur!", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
A mettre
Savelistview()
dans le button Ajouter item comme ceci:
Private Sub Listview1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.Click ligne = CInt(ListView1.SelectedIndices(0).ToString) compteur = CInt(ListView1.Items(ligne).SubItems(1).Text) nom = ListView1.SelectedItems(0).Text End Sub 'ajouter un item Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click If TextBox1.Text = "" Then Exit Sub Dim MyLine As ListViewItem = New ListViewItem(New String() {TextBox1.Text, "0"}) ListView1.Items.Add(MyLine) Savelistview() End Sub 'supprimer un item Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click If ListView1.SelectedItems.Count > 0 Then ListView1.Items.RemoveAt(ligne) Savelistview() End If End Sub
@+ Le Pivert
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié par cs_Le Pivert le 15/05/2016 à 08:32
Modifié par cs_Le Pivert le 15/05/2016 à 08:32
Tu vas te trouver confronté à un autre problème: mettre le chemin du répertoire de tes EXE en mémoire !
Vas en haut à droite dans My Project, Paramètres et saisie:
cheminexe
Mettre ce code:
Voir ceci pour en savoir plus sur les Listview:
https://codes-sources.commentcamarche.net/source/101479-comparer-2-repertoires
@+ Le Pivert
Vas en haut à droite dans My Project, Paramètres et saisie:
cheminexe
Mettre ce code:
#Region "Declaration" Dim ligne, compteur As Integer Dim cheminexe As String Dim chemin As String = Application.StartupPath & "\sauvegarde.txt" Dim nom As String #End Region #Region "Ouverture et fermeture" Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try If File.Exists("sauvegarde.txt") Then Savelistview() My.Settings.cheminexe = cheminexe My.Settings.Save() Else 'Création du fichier Texte File.CreateText(chemin) End If Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load If File.Exists("sauvegarde.txt") Then Fill_ListView(chemin, "|") cheminexe = My.Settings.cheminexe Else MessageBox.Show("Création du fichier texte de sauvegarde,l'application va se fermer.", "Création fichier texte", MessageBoxButtons.OK, MessageBoxIcon.Information) Me.Close() End If End Sub #End Region
Voir ceci pour en savoir plus sur les Listview:
https://codes-sources.commentcamarche.net/source/101479-comparer-2-repertoires
@+ Le Pivert
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
15 mai 2016 à 22:29
15 mai 2016 à 22:29
J'ai réussi à contourner le problème en modifiant le code de la manière suivante en jouant avec les If, end if, try, catch etc.. mais je ne sais pas si j'aurais des bugs je vais tester sa. Je te laisser jeter un coup d'oeil au code et me dire si cela est correct ou si cela va créer des bugs :
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If ListView1.SelectedItems.Count = 0 Then
MsgBox("no item selected.", MsgBoxStyle.Critical, "ERREUR")
Else
Try
Process.Start(cheminexe & "\" & nom)
ListView1.Items(ligne).SubItems(1).Text = CStr(compteur + 1)
Savelistview()
Catch
MsgBox("Le programme spécifié est introuvable.", MsgBoxStyle.Critical, "ERREUR")
End Try
End If
End Sub
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
>
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
16 mai 2016 à 00:10
16 mai 2016 à 00:10
j'aimerais aussi déplacer la création du fichier texte vers le bureau mais je n'arrive pas à y parvenir.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
16 mai 2016 à 07:51
16 mai 2016 à 07:51
Re post 43:
As-tu lu ma réponse post 41?
Tout est dit!
j'aimerais aussi déplacer la création du fichier texte vers le bureau mais je n'arrive pas à y parvenir.
As-tu lu ma réponse post 41?
Tout est dit!
j'aimerais aussi déplacer la création du fichier texte vers le bureau mais je n'arrive pas à y parvenir.
Dim chemin As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\sauvegarde.txt"
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
Modifié par Materio le 16/05/2016 à 18:56
Modifié par Materio le 16/05/2016 à 18:56
Oui j'ai lu ton poste 41 mais cela m'a paru trop compliqué donc j'ai essayé de manière simple et cela ne m'a pas posé de problème jusqu'ici. La création du fichier texte se fais alors sur le bureau mais a chaque démarrage du programme il se produit une boucle sur : "création du fichier texte l'application va se fermer"
Materio
Messages postés
732
Date d'inscription
mardi 20 novembre 2012
Statut
Membre
Dernière intervention
9 août 2018
141
16 mai 2016 à 19:31
16 mai 2016 à 19:31
le problème de la boucle sur le message est résolu j'ai modifié le code et j'ai compris pourquoi sa ne marchais pas.
Modifié par Materio le 5/05/2016 à 21:29
Sauf que ce n'est pas fais avec des boutons codé ou je dois programmer chaque bouton 1 à 1 car j'ai une centaine de programme donc cent bouton à programmer (oula jvais y passer la vie ^^), et donc le but du programme est que il me liste tout les programme portable d'un dossier que j'aurais indiqué dans le code du programme et quand j'en sélectionne un dans la liste box cela me le lance.
5 mai 2016 à 21:30
5 mai 2016 à 21:34
5 mai 2016 à 22:25
Tous les programmes se situes dans le dossier C:\Program ? Ou bien ce sont des raccourci mis dans un dossier spéciales ?
Modifié par Materio le 5/05/2016 à 22:46