Compiler un exe avec Visual Basic 2008 Express

nainbleu2 Messages postés 41 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 14 juillet 2010 - 14 juin 2010 à 14:18
nainbleu2 Messages postés 41 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 14 juillet 2010 - 14 juil. 2010 à 07:29
Bonjour,

J'aimerai compiler mon code en fichier exécutable, mais je n'y arrive pas

De plus, lorsque jelance le debug,n fee style popup vide s'ouvre et ca s'arrête là, c'est quoi cette fenêtre n ommée Form1? J'ai l'impression que mon bout de programme ne s'exécute pas. J'aimerai ouvrir le nte si elui-ine''tpsa lorsque je lance mon exe.

Quelqu'un peux-ti m'aider?

Merci d'avance

Public Class StartForm
Sub VerifNotePad()
'Sub VerifNotePad()
'Vérifie la présence d'outloo, si le process n'est pas présent on lance Outlook.
Dim p As New Process

Try
'Vérification de l'existence du process (on le trouve dans le gestionnaire des taches ^^)
If UBound(Diagnostics.Process.GetProcessesByName("NotePad")) < 0 Then
'Si il n'est pas déjà lancé on le lance donc manuellement
p.StartInfo.FileName = "C:\Windows\System32\notepad.exe"
'Définition du style de la fenêtre (maximisé, minimisé, normal, caché)
p.StartInfo.WindowStyle = ProcessWindowStyle.Normal
'Démarrage du process
p.Start()
End If
Catch err As Exception
MsgBox(err.ToString(), MsgBoxStyle.Critical, "Erreur !")
End Try
End Sub
End Class

47 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
18 juin 2010 à 11:30
Je viens de tester dans le load d'une form en mettant me.visible=false, et en mode design de mettre la propriété windowstate=minimized ça fonctionne correctement.


L'expérience, c'est une connerie par jour, mais jamais la même..
0
cs_foxspown Messages postés 26 Date d'inscription lundi 5 avril 2010 Statut Membre Dernière intervention 18 juin 2010
18 juin 2010 à 11:31
J'ai mis Me.Visible, parceque lorsque tu veux te réferer au Form en éxecution, il faut mettre Me

Sinon, comme disait Pivert va changer l'option visible en mode graphique, et retire la ligne de code que je t'avais mise
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
18 juin 2010 à 11:53
Je me demande si ce n'est pas le bon form qui s'ouvre.
Va dans My Project, Application, Formulaire de démarrage et regarde celui qui est indiqué, si ce n'est pas le bon tu le changes.
0
cs_foxspown Messages postés 26 Date d'inscription lundi 5 avril 2010 Statut Membre Dernière intervention 18 juin 2010
18 juin 2010 à 12:12
Il n'y en a qu'un...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nainbleu2 Messages postés 41 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 14 juillet 2010
18 juin 2010 à 15:20
Ok, ca y est j'ai enfin compris grâce à lolokun. Il me manquait le paramètre minimized dans windowsstate.

Merci lolokun
0
nainbleu2 Messages postés 41 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 14 juillet 2010
18 juin 2010 à 15:33
Voilà j'ai donc mon code qui fonctionne maintenant grâce à vous tous. De plus j'avance petit à petit dans le vb ce qui est une bonne chose pour moi :-)

Pour les fous du code y a une deuxième étape que seul je vais avoir de la pein à faire vu mon niveau actuel...

Lolokun m'a trouvé un bout de code qui pourrait me servie à contrôler un proccess en fonction de son utilisateur le code est ci-dessous, mais j'essaie depuis un moement à l'intégrer à mon code, mais j'avoue que les erreurs sont nombreuse, le copier coller ne suffit pas

____________________________________________

Le code est :

____________________________________________
Public Enum LoggedInUserReturn
Successful = 0
AccessDenied = 2
InsufficientPrivilege = 3
UnknownFailure = 8
PathNotFound = 9
InvalidParameter = 21
End Enum
____________

Public Shared Function GetLoggedInUser() As ArrayList
Dim allUserProcess As New ArrayList
Dim mc As New ManagementClass("Win32_Process")
Dim moc As ManagementObjectCollection = mc.GetInstances

For Each mo As ManagementObject In moc

Dim argList As String() = {String.Empty}
Dim objReturn As Object = mo.InvokeMethod("GetOwner", argList)
Dim returnValue As LoggedInUserReturn = Convert.ToInt32(objReturn)

If returnValue = LoggedInUserReturn.Successful Then
allUserProcess.Add(mo.GetPropertyValue("Name").ToString & " - " & argList(0).ToString)
End If
Next
Return allUserProcess
End Function
_____________________________________________________
0
nainbleu2 Messages postés 41 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 14 juillet 2010
14 juil. 2010 à 07:29
Bonjour à tous,

Voilà enfin mon code terminer avec quelques petites retouches. Celui-ci me permet donc de détecter si tel process windows de tel utilisateur tourne ou pas et d'effectuer diverses opérations par la suite.

Un grand Merci à TroXa qui m'a épauler tout du long de ce développement.

Voici le code et à bientôt


Imports System.Management

Public Class Form1
    Dim cpt As Integer
    Public Enum LoggedInUserReturn
        Successful = 0
        AccessDenied = 2
        InsufficientPrivilege = 3
        UnknownFailure = 8
        PathNotFound = 9
        InvalidParameter = 21
    End Enum
    Public Shared Function GetLoggedInUser(ByVal Application As String, ByVal User As String) As Boolean
        Dim allUserProcess As New ArrayList
        Dim mc As New ManagementClass("Win32_Process")
        Dim moc As ManagementObjectCollection = mc.GetInstances

        For Each mo As ManagementObject In moc

            Dim argList As String() = {String.Empty}
            Dim objReturn As Object = mo.InvokeMethod("GetOwner", argList)
            Dim returnValue As LoggedInUserReturn = Convert.ToInt32(objReturn)

            If returnValue = LoggedInUserReturn.Successful Then
                If Application.ToLower mo.GetPropertyValue("Name").ToString.ToLower And User argList(0).ToString Then
                    Return True
                End If
            End If
        Next
        Return False
    End Function

    'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '   Timer1.Enabled = True
    '  txtEtat.Text = "Etat : Start"
    ' cpt = 0
    ' txtCpt.Text = "Compteur : " & cpt
    'End Sub

    'Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '   Timer1.Enabled = False
    '  txtEtat.Text = "Etat : Stop"
    ' cpt = 0
    'txtCpt.Text = "Compteur : " & cpt
    'End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        'me permettant de contrôler si un proccess est lancé ou non, s'il ne l'est pas, je ferme un autre
        'proccess, j 'attends quelques secondes et je lance un programme. Ce code fonctionne parfaitement mais mon souci est que
        'dans mon cas il y a deux proccess de même nom avec la seule différence du nom d'utilisateur, un est en "SYSTEM" et
        'l'autre en "technique.hotel". Donc j'aimerai intégrer à mon code une fonction qui contrôle si le proccess "Falcon" de
        'l'utilisateur "technique.hotel" est lancé ou pas.
        '
        Dim oVérificationProcess = "Falcon.exe"                                                 'Le nom du proccess à contrôler
        Dim oProcessKill = "C:\SevenLine\Client\Kill_EibTask\_EibusDrv_TaskKill.bat"            'Le programme à lancer pour tuer la tâche
        Dim oAutreProgramme1 = "C:\Program Files\Fichiers communs\EIBA sc\Falcon\Falcon.exe"    'Premier programme à lancer après la tempo
        Dim oAutreProgramme2 = "C:\SevenLine\Client\EibusDrv.exe"                               'Second programme à lancer après la tempo
        Dim oGetNameProcess = "technique.hotel"                                                 'Le profil utilisateur
        Dim p As New Process

        If GetLoggedInUser(oVérificationProcess, "technique.hotel") = False Then
            cpt = cpt + 1
            p.StartInfo.FileName = oProcessKill
            'Définition du style de la fenêtre (maximisé, minimisé, normal, caché) 
            p.StartInfo.WindowStyle = ProcessWindowStyle.Normal
            'Démarrage du process 
            p.Start()
            Threading.Thread.Sleep(5000)
            'Chemin de l'application 
            p.StartInfo.FileName = oAutreProgramme1
            'Définition du style de la fenêtre (maximisé, minimisé, normal, caché) 
            p.StartInfo.WindowStyle = ProcessWindowStyle.Normal
            'Démarrage du process 
            p.Start()
            Threading.Thread.Sleep(5000)
            p.StartInfo.FileName = oAutreProgramme2
            'Définition du style de la fenêtre (maximisé, minimisé, normal, caché) 
            p.StartInfo.WindowStyle = ProcessWindowStyle.Normal
            'Démarrage du process 
            p.Start()
        Else
            cpt = cpt
        End If
        txtCpt.Text = "Compteur : " & cpt
    End Sub
    Private Sub StartToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartToolStripMenuItem.Click
        Timer1.Enabled = True
        txtEtat.Text = "Etat : Start"
    End Sub
    Private Sub StopToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StopToolStripMenuItem.Click
        Timer1.Enabled = False
        txtEtat.Text = "Etat : Stop"
        cpt = 0
        txtCpt.Text = "Compteur : " & cpt
    End Sub
    Private Sub RéduireToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RéduireToolStripMenuItem.Click
        Me.WindowState = FormWindowState.Minimized
    End Sub
End Class

0
Rejoignez-nous