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 :

Comment convertir un projet de C# à Vb.net


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut Comment convertir un projet de C# à Vb.net
    Bonjour à tous !

    Alors j'ai besoin d'un peu d'aide s'il vous plait !

    Je m'explique, en fait j'ai abandonné l'idée d'appeler un clavier virtuel (osk.exe) car en fait la tablette est munie d'un clavier (dans la barre d'outils en bas et ce n'est pas le même que osk.exe, celui de la tablette windows s'appelle TabTip.exe mais impossible de lui fournir le chemin) et j'ai remarqué que lorsque je clique avec la tablette sur une zone où il est permis d'écrire quelque chose (style moteur de recherche, ou recherche dans le menu, etc...) et bien le clavier se lance automatiquement ! J'ai fait pas mal de recherche hier et j'ai trouvé ce qu'il me faut ====> https://code.msdn.microsoft.com/wind...hId=1342120152

    Il propose gratuitement de le télécharger, c'est ce que j'ai fait, et il s'avère que ça fonctionne parfaitement sur ma tablette Windows !

    En revanche c'est du C#, lorsque j'ai voulu convertir son projet en vb.net.... je me prends pas mal d'erreur...

    Je vous montre :
    C#

    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
    using System.Windows;
    using System.Windows.Interop;
     
    namespace ModernWPF.Win8TouchKeyboard.Desktop
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
     
                // Disables inking in the WPF application and enables us to track touch events to properly trigger the touch keyboard
                InkInputHelper.DisableWPFTabletSupport();
     
                this.Loaded += MainWindow_Loaded;
            }
     
            private void MainWindow_Loaded(object sender, RoutedEventArgs e)
            {
                // Enables WPF to mark edit field as supporting text pattern (Automation Concept)
                System.Windows.Automation.AutomationElement asForm =
                    System.Windows.Automation.AutomationElement.FromHandle(new WindowInteropHelper(this).Handle);
     
                // Windows 8 API to enable touch keyboard to monitor for focus tracking in this WPF application
                InputPanelConfigurationLib.InputPanelConfiguration inputPanelConfig = new InputPanelConfigurationLib.InputPanelConfiguration();
                inputPanelConfig.EnableFocusTracking();
            }
        }
    }
    Mon code :
    VB.NET
    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
    ' To change this template use Tools | Options | Coding | Edit Standard Headers.
    '
    Imports System
    Imports System.Collections.Generic
    Imports System.Text
    Imports System.Windows
    Imports System.Windows.Controls
    Imports System.Windows.Data
    Imports System.Windows.Documents
    Imports System.Windows.Input
    Imports System.Windows.Media
    Imports System.Windows.Interop
     
    Namespace ModernWPF.Win8TouchKeyboard.Desktop
    ''' <summary>
    ''' Interaction logic for MainWindow.xaml
    ''' </summary>
    Public Partial Class MainWindow
    	Inherits Window
     
    	Public Sub New()
    		MyBase.New
    		'InitializeComponent()
    ' Disables inking in the WPF application and enables us to track touch events to properly trigger the touch keyboard
    		    InkInputHelper.DisableWPFTabletSupport
    		    Me.Loaded = (Me.Loaded + MainWindow_Loaded)
     
    	End Sub
    	Private Sub MainWindow_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    		' Enables WPF to mark edit field as supporting text pattern (Automation Concept)
                Dim asForm As System.Windows.Automation.AutomationElement = System.Windows.Automation.AutomationElement.FromHandle((New WindowInteropHelper(Me) + Handle))
                ' Windows 8 API to enable touch keyboard to monitor for focus tracking in this WPF application
                Dim inputPanelConfig As InputPanelConfigurationLib.InputPanelConfiguration = New InputPanelConfigurationLib.InputPanelConfiguration
                inputPanelConfig.EnableFocusTracking
            End Sub
     
    End Class
     
    End Namespace
    InkInputHelper C# :

    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
    using System;
    using System.Reflection;
    using System.Windows.Input;
     
    namespace ModernWPF.Win8TouchKeyboard.Desktop
    {
        public static class InkInputHelper
        {
            public static void DisableWPFTabletSupport()
            {
                // Get a collection of the tablet devices for this window.  
                TabletDeviceCollection devices = System.Windows.Input.Tablet.TabletDevices;
     
                if (devices.Count > 0)
                {
                    // Get the Type of InputManager.
                    Type inputManagerType = typeof(System.Windows.Input.InputManager);
     
                    // Call the StylusLogic method on the InputManager.Current instance.
                    object stylusLogic = inputManagerType.InvokeMember("StylusLogic",
                                BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic,
                                null, InputManager.Current, null);
     
                    if (stylusLogic != null)
                    {
                        //  Get the type of the stylusLogic returned from the call to StylusLogic.
                        Type stylusLogicType = stylusLogic.GetType();
     
                        // Loop until there are no more devices to remove.
                        while (devices.Count > 0)
                        {
                            // Remove the first tablet device in the devices collection.
                            stylusLogicType.InvokeMember("OnTabletRemoved",
                                    BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.NonPublic,
                                    null, stylusLogic, new object[] { (uint)0 });
                        }
                    }
                }
            }
        }
    }
    InkInputHelper vb.net :

    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
    ' To change this template use Tools | Options | Coding | Edit Standard Headers.
    '
    Imports System
    Imports System.Web.Mvc
    Imports System.Reflection
    Imports System.Windows.Input
    Namespace ModernWPF.Win8TouchKeyboard.Desktop
    Public Class InkInputHelper
     
     
     
            Public Shared Sub DisableWPFTabletSupport()
                ' Get a collection of the tablet devices for this window.  
                Dim devices As TabletDeviceCollection = System.Windows.Input.Tablet.TabletDevices
                If (devices.Count > 0) Then
                    ' Get the Type of InputManager.
                    Dim inputManagerType As Type = GetType(System.Windows.Input.InputManager)
                    ' Call the StylusLogic method on the InputManager.Current instance.
                    Dim stylusLogic As Object = inputManagerType.InvokeMember("StylusLogic", (BindingFlags.GetProperty  _
                                    Or (BindingFlags.Instance Or BindingFlags.NonPublic)), Nothing, InputManager.Current, Nothing)
                    If (Not (stylusLogic) Is Nothing) Then
                        '  Get the type of the stylusLogic returned from the call to StylusLogic.
                        Dim stylusLogicType As Type = stylusLogic.GetType
                        ' Loop until there are no more devices to remove.
     
                        While (devices.Count > 0)
                            ' Remove the first tablet device in the devices collection.
                            stylusLogicType.InvokeMember("OnTabletRemoved", (BindingFlags.InvokeMethod  _
                                            Or (BindingFlags.Instance Or BindingFlags.NonPublic)), Nothing, stylusLogic, New Object() {CType(0,UInteger)})
     
                        End While
     
                    End If
     
                End If
     
            End Sub
     
     
     
    End Class
    End Namespace
    Evidemment j'ai utilisé des convertisseurs C# to Vb.net sur le net puis j'ai modifié moi même ce que je connaissais.

    Il me reste 5 erreurs... par rapport à cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Loaded = (Me.Loaded + MainWindow_Loaded)
    et celle ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim asForm As System.Windows.Automation.AutomationElement = System.Windows.Automation.AutomationElement.FromHandle((New WindowInteropHelper(Me) + Handle))
    Nom : Erreurs_touch-keyboard.PNG
Affichages : 1662
Taille : 31,8 Ko

    Si quelqu'un pourrait m'aider svp

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    pour Me.Loaded = (Me.Loaded + MainWindow_Loaded) :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    this.Loaded += MainWindow_Loaded;
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addhandler me.loaded, addressof MainWindow_Loaded


    pour Dim asForm As System.Windows.Automation.AutomationElement = System.Windows.Automation.AutomationElement.FromHandle((New WindowInteropHelper(Me) + Handle))

    je ne sais pas où il est aller chercher un +, sur le code c# c'est un point donc remplace par un . aussi
    => New WindowInteropHelper(Me).Handle
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Merci @Pol63

    Ça fonctionne parfaitement !

    J'ai une petite question, lorsque que j'ai ce type de Warning :

    Il existe une différence entre l'architecture de processeur du projet en cours de génération "MSIL" et l'architecture de processeur de référence "System.Data", "AMD64". Cette différence peut entraîner des problèmes de runtime. Veuillez modifier l'architecture de processeur ciblée de votre projet à l'aide du gestionnaire de configuration de façon à aligner les architectures de processeur entre votre projet et les références, ou prendre une dépendance sur les références avec une architecture de processeur correspondant à l'architecture de processeur ciblée de votre projet. (MSB3270)
    et

    Il existe une différence entre l'architecture de processeur du projet en cours de génération "MSIL" et l'architecture de processeur de référence "PresentationCore", "AMD64". Cette différence peut entraîner des problèmes de runtime. Veuillez modifier l'architecture de processeur ciblée de votre projet à l'aide du gestionnaire de configuration de façon à aligner les architectures de processeur entre votre projet et les références, ou prendre une dépendance sur les références avec une architecture de processeur correspondant à l'architecture de processeur ciblée de votre projet. (MSB3270)
    qu'est ce que cela signifie ? et que faire pour régler ceci ??

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    clic droit / propriétés sur un projet
    ensuite tu cherches les paramètres de compilation

    il y a x86, x64 et anycpu
    x86 pour forcer l'exécution en 32 bits, x64 pour forcer en 64 bits et anycpu pour automatique selon la machine où c'est exécuté

    si tu as un exe dans un mode et une dll dans un autre ca peut causer des soucis si ca ne s'accorde pas (genre ca démarre pas)
    donc vérifier chaque projet et les références autre que le Framework .net qui est en anycpu
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Merci beaucoup !

    Nom : anycpu.PNG
Affichages : 1656
Taille : 46,2 Ko

    Tout en haut je n'ai pas le choix,, par défaut la plateforme est sur AnyCPU et il est impossible de changer.

    Ensuite en bas où il est écrit "Target CPU" j'ai choisi x86-64 processor, j'ai choisi celui qui me donnait le moins de warning et parce que je pense cela représente les 2 types de processeurs, 64 et 32 (mon processeur est un 64bits).

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    oups je dis n'importe quoi parce qu'en fait j'ai mis 64bits processor mais impossible de compiler lol

    J'ai mis 32bits et ça fonctionne...

    Je pige rien à ces problèmes d'architectures mais merci quand ! Grand MERCI ;-)

    En fait le code fonctionnait parfaitement sur un projet secondaire (projet ou je fais tous mes tests etc...) En revanche lorsque je copie ce code et tout ce qui s'en suit donc mon projet principal.... j'ai une foutue erreur qui me dit :

    Impossible de convertir une valeur de type 'Dig.UserAccess' en 'System.Windows.Window'. (BC30311) - C:\Users\Ism\Desktop\Projet Dig\Dig\UserAccess.xaml.vb:70,153
    Je pige mais alors pas du tt...

    ID d’erreur : BC30311

    Je pense que c'est un probleme d'héritage j'ai copié mon programme dans un userControl or dans le programme original il est dans un mainWindow.

    Donc je verrai soit ce soir soit demain matin.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment convertir un projet en .exe (finaliser) ?
    Par zakzak2804 dans le forum Débuter
    Réponses: 3
    Dernier message: 18/05/2008, 11h52
  2. Réponses: 2
    Dernier message: 30/04/2008, 08h20
  3. Réponses: 3
    Dernier message: 23/11/2007, 09h12
  4. Comment convertir un projet winform en webform ?
    Par shako95 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 30/10/2006, 10h02
  5. Comment convertir mon code ASP et ASP.Net ?
    Par yushkoya dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/07/2006, 17h24

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