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 :

Une belle interface ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut Une belle interface ?
    Bonjour,

    J'aimerais créer un programme avec une interface "moderne".
    C'est à dire :

    Sur la gauche de la fenêtre un groupbox contenant des boutons et au milieu quelque chose qui permet d'afficher un exécutable.
    L'idée, c'est que chaque bouton contenu dans le groupbox est un "module", un exécutable externe, pour éviter les compilations super longues....

    Le clic sur le bouton fait appel à l’exécutable dans la partie centrale de l'interface.

    J'ai essayé avec un tabcontrol car j'aime bien l'idée de créer chaque fois un onglet qui contient l'exe en cours.... mais sans succès.

    J'ai cherché pendant 2 jours sur le net, j'en suis à ceci :

    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
    Imports System.Diagnostics.Process
    Imports System.Runtime.InteropServices
     
    Public Class Accueil
        Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
        Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
        Private Const WM_SYSCOMMAND As Integer = 274
        Private Const SC_MAXIMIZE As Integer = 61488
        Private proc As Process = New Process()
     
        Private Sub QuitterToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles QuitterToolStripMenuItem.Click
            End
        End Sub
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            proc = Process.Start("chemin du programme à exécuter")
            proc.WaitForInputIdle()
            SetParent(proc.MainWindowHandle, TabControl1.Handle)
            SendMessage(proc.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
        End Sub
    End Class
    Ca fonctionne +/- donc je suppose que j'y suis presque.
    Si je prends notepad par exemple, ça marche... même si ça ne s'ouvre pas dans un onglet.
    Un autre exé s'ouvre mais toujours en pop-up comme une nouvelle appli.

    Quelqu'un a-t-il une solution?
    Ou bien ce genre d'interface n'est pas possible avec visual studio/ VB.net ?

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Si le seul problème est le temps de compilation, cré plutôt des DLLs que tu intégres à ton projets, ce sera certainement plus simple.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    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 200
    Par défaut
    J'aurais plutôt dit si le temps de compilation est le seul problème change de pc ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Non c'est un peu plus compliqué que ça...
    Le soft sera utilisé dans mon entreprise.

    Ce que je veux éviter, c'est de devoir éjecter tous les utilisateurs connectés pour mettre à jour l'appli.
    L'idée c'est de tout faire dans des module séparés, si un module doit être mis à jour, les utilisateurs sont seulement éjectés de ce module.

    Bref ,

    J'avais déjà vu le truc des DLL mais j'avais lu que ce n'était pas possible en VB, seulement en C.

    Je vais retourner sur internet voir ce que je trouve mais si quelqu'un peut me donner un lien direct je gagnerai du temps .

  5. #5
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Je ne comprends pas du tout le besoin de devoir éjecter les personnes pour une mise à jour...
    C'est donc un problème de déploiement?

  6. #6
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Actuellement je travaille avec des exécutables.

    Donc, je fais mon programme, je le compile et je le met dans un répertoire accessible via le réseau.

    Ensuite, je mets sur le bureau de chaque utilisateur un raccourci vers cet exe.

    Si je dois mettre à jour et que l'exe est utilisé par quelqu'un, c'est foutu....
    Voilà pourquoi je m'arrange le droit d'éjecter les utilisateurs connectés .... sans redémarrer le serveur complet.

    Si il existe d'autres possibilités je suis preneur.
    J'ai entendu qu'en utilisant une DLL ça ne posait pas de problème car elle peut être mise à jour en cours d'utilisation.
    La mise à jour n'est visible qu'une fois la DLL rechargée.

Discussions similaires

  1. Je cherche à faire une belle interface web en J2EE
    Par Aldian dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 07/09/2010, 18h44
  2. Faire une belle interface avec MS Visual C# 2008 express
    Par pdtor dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/04/2009, 14h08
  3. Quel logiciel utiliser pour faire une belle interface web?
    Par irnbru dans le forum Webdesign & Ergonomie
    Réponses: 7
    Dernier message: 18/10/2006, 09h07
  4. [Debutant] Faire une belle explosion
    Par atchoum_69 dans le forum DirectX
    Réponses: 4
    Dernier message: 08/10/2004, 13h54
  5. Réponses: 10
    Dernier message: 30/06/2004, 13h00

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