IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Appeler fonction vbs depuis le code


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Par défaut Appeler fonction vbs depuis le code
    Bonjour,

    Je ne sais pas si c'est faisable mais je me lance.

    J'ai mon appli vbnet. A l'intérieure, j'ai ajouté un fichier vbs (j'utilise sharp develop)

    Au moment du clic sur un bouton, j'aimerais lancer une fonction de mon vbs intégré.

    Est-ce possible car pour le moment je ne vois pas?

    merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par kstou2001 Voir le message
    J'ai mon appli vbnet. A l'intérieure, j'ai ajouté un fichier vbs (j'utilise sharp develop)
    Pourquoi faire ? Il y a quelque chose dans ce VBS que tu ne pourrais pas faire directement en VB.NET ?

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Par défaut
    mon vbs modifie une section d'un fichier ini en fonction du bouton radio selectionné (les valeurs ne seront pas les même).

    A moins d'avoir quelque chose de tout prêt, ça m’ennuierait de réinventer la roue.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par kstou2001 Voir le message
    mon vbs modifie une section d'un fichier ini en fonction du bouton radio selectionné (les valeurs ne seront pas les même).

    A moins d'avoir quelque chose de tout prêt, ça m’ennuierait de réinventer la roue.
    Bah y a pas à réinventer la roue... il suffit d'adapter ton code VBS en VB.NET, ça devrait pas être bien compliqué. C'est bien de vouloir réutiliser le code existant, mais si c'est au prix d'un bricolage monstrueux, ça vaut pas le coup...

  5. #5
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Par défaut
    C'est pour cela que je demandais si c'était faisable avant de me lancer dans l'adaptation de mon code existant

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par kstou2001 Voir le message
    C'est pour cela que je demandais si c'était faisable avant de me lancer dans l'adaptation de mon code existant
    Bonsoir kstou2001,

    Envoie ton code vbs, c'est tout à fait adaptable en VbNet

  7. #7
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
     
    Function GetFile(ByVal FileName)
      Dim FS: Set FS = CreateObject("Scripting.FileSystemObject")
      'Go To windows folder If full path Not specified.
      If InStr(FileName, ":\") = 0 And Left (FileName,2)<>"\\" Then
        FileName = FS.GetSpecialFolder(0) & "\" & FileName
      End If
      On Error Resume Next
     
      GetFile = FS.OpenTextFile(FileName).ReadAll
    End Function 
     
    'Separates one field between sStart And sEnd
    Function SeparateField(ByVal sFrom, ByVal sStart, ByVal sEnd)
      Dim PosB: PosB = InStr(1, sFrom, sStart, 1)
      If PosB > 0 Then
        PosB = PosB + Len(sStart)
        Dim PosE: PosE = InStr(PosB, sFrom, sEnd, 1)
        If PosE = 0 Then PosE = InStr(PosB, sFrom, vbCrLf, 1)
        If PosE = 0 Then PosE = Len(sFrom) + 1
        SeparateField = Mid(sFrom, PosB, PosE - PosB)
      End If
    End Function
     
    Function GetINIString(Section, KeyName, Default, FileName)
      Dim INIContents, PosSection, PosEndSection, sContents, Value, Found
     
      'Get contents of the INI file As a string
      INIContents = GetFile(FileName)
     
      'Find section
      PosSection = InStr(1, INIContents, "[" & Section & "]", vbTextCompare)
      If PosSection>0 Then
        'Section exists. Find end of section
        PosEndSection = InStr(PosSection, INIContents, vbCrLf & "[")
        '?Is this last section?
        If PosEndSection = 0 Then PosEndSection = Len(INIContents)+1
     
        'Separate section contents
        sContents = Mid(INIContents, PosSection, PosEndSection - PosSection)
     
        If InStr(1, sContents, vbCrLf & KeyName & "=", vbTextCompare)>0 Then
          Found = True
          'Separate value of a key.
          Value = SeparateField(sContents, vbCrLf & KeyName & "=", vbCrLf)
        End If
      End If
      If isempty(Found) Then Value = Default
      GetINIString = Value
    End Function
     
    Function WriteFile(ByVal FileName, ByVal Contents)
     
      Dim FS: Set FS = CreateObject("Scripting.FileSystemObject")
      'On Error Resume Next
     
      'Go To windows folder If full path Not specified.
      If InStr(FileName, ":\") = 0 And Left (FileName,2)<>"\\" Then
        FileName = FS.GetSpecialFolder(0) & "\" & FileName
      End If
     
      Dim OutStream: Set OutStream = FS.OpenTextFile(FileName, 2, True)
      OutStream.Write Contents
    End Function 
     
    Sub WriteINIString(Section, KeyName, Value, FileName)
      Dim INIContents, PosSection, PosEndSection
     
      'Get contents of the INI file As a string
      INIContents = GetFile(FileName)
     
      'Find section
      PosSection = InStr(1, INIContents, "[" & Section & "]", vbTextCompare)
      If PosSection>0 Then
        'Section exists. Find end of section
        PosEndSection = InStr(PosSection, INIContents, vbCrLf & "[")
        '?Is this last section?
        If PosEndSection = 0 Then PosEndSection = Len(INIContents)+1
     
        'Separate section contents
        Dim OldsContents, NewsContents, Line
        Dim sKeyName, Found
        OldsContents = Mid(INIContents, PosSection, PosEndSection - PosSection)
        OldsContents = split(OldsContents, vbCrLf)
     
        'Temp variable To find a Key
        sKeyName = LCase(KeyName & "=")
     
        'Enumerate section lines
        For Each Line In OldsContents
          If LCase(Left(Line, Len(sKeyName))) = sKeyName Then
            Line = KeyName & "=" & Value
            Found = True
          End If
          NewsContents = NewsContents & Line & vbCrLf
        Next
     
        If isempty(Found) Then
          'key Not found - add it at the end of section
          NewsContents = NewsContents & KeyName & "=" & Value
        Else
          'remove last vbCrLf - the vbCrLf is at PosEndSection
          NewsContents = Left(NewsContents, Len(NewsContents) - 2)
        End If
     
        'Combine pre-section, new section And post-section data.
        INIContents = Left(INIContents, PosSection-1) & NewsContents & Mid(INIContents, PosEndSection)
      else'if PosSection>0 Then
        'Section Not found. Add section data at the end of file contents.
        If Right(INIContents, 2) <> vbCrLf And Len(INIContents)>0 Then
          INIContents = INIContents & vbCrLf
        End If
        INIContents = INIContents & "[" & Section & "]" & vbCrLf & KeyName & "=" & Value
      end if'if PosSection>0 Then
      WriteFile FileName, INIContents
    End Sub

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    A mon avis tu peux copier coller ça dans un fichier .vb, et ça devrait compiler quasiment sans modification... Après bien sûr ce n'est pas exactement la façon dont on le ferait "nativement" en VB.NET, mais l'essentiel doit être compatible.

  9. #9
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour kstou2001,

    Il ne faut pas reinventer la roue donc voila en vbNet un module de gestion de fichiers .ini :

    http://www.developpez.net/forums/d11...i/#post7472174

    C est a toi maintenant d implémenter le code afin de renseigner tes données lorsque l'utilisateur sélectionne tel ou tel RadioButton depuis le gestionnaire d événements CheckedChanged de tes radiobutton

  10. #10
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Par défaut
    Super ce code.
    Par contre j'ai une erreur Fin d'instruction attendue et une erreur Expression attendue (BC30201)
    sur la ligne:
    Selected = Encoding.ASCII.GetString(bytes, 0, size - (If(size > 0, 1, 0)))

  11. #11
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Postes l intégralité de ton gestionnaire d évènements car présenté ainsi, on ne voit pas ce que tu tentes de faire et a quel endroit.......??

  12. #12
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Par défaut
    j'ai juste fais un copier/coller de la classe et au moment de compiler, erreur...

  13. #13
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par kstou2001 Voir le message
    j'ai juste fais un copier/coller de la classe et au moment de compiler, erreur...
    Que compiles-tu exactement ???
    Ton application est-elle de type Windows Form ou Console ???
    Fais une capture de ton écran.... (voilà mon screen au cas ou..... )

Discussions similaires

  1. appel fonction javascript depuis VBS
    Par fab! dans le forum VBScript
    Réponses: 0
    Dernier message: 30/03/2010, 20h14
  2. appeler une fonction vbs depuis un batch
    Par bossun dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 08/09/2008, 14h34
  3. Appeller une fonction Javascript depuis le Code VB
    Par chrislcf dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/08/2008, 12h41
  4. Appel de fonction C# depuis du code C++
    Par yaumeguy dans le forum C++/CLI
    Réponses: 8
    Dernier message: 25/05/2007, 12h05
  5. [Compilation] Appel d'une fonction C++ depuis du code C
    Par bladerunners dans le forum C++
    Réponses: 1
    Dernier message: 06/09/2006, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo