Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Empêcher l'ouverture du programme si celui-ci est déjà ouvert par un autre utilisateur [ Réseaux & Internet / Internet ] (Theos37)

lundi 14 avril 2008 à 09:50:37 | Empêcher l'ouverture du programme si celui-ci est déjà ouvert par un autre utilisateur

Theos37

Bonjour,
Je développe une application VB, ce programme est accessible par plusieurs utilisateurs.
je voudrais empêcher l'ouverture du programme si celui-ci est déjà ouvert par un autre utilisateur sur le réseau.
Comment dois-je m'y prendre?

Theos !

lundi 14 avril 2008 à 10:02:51 | Re : Empêcher l'ouverture du programme si celui-ci est déjà ouvert par un autre utilisateur

Exploreur

Membre Club
Salut,

Regarde cela et regarde dans les sources de Renfield aussi :

Private Sub Form_Load()
If App.PrevInstance Then
   MsgBox "Application déjà lancée !"
   End
End If
End Sub


A+
Exploreur

 Linux a un noyau, Windows un pépin


lundi 14 avril 2008 à 10:08:55 | Re : Empêcher l'ouverture du programme si celui-ci est déjà ouvert par un autre utilisateur

Exploreur

Membre Club
Re,

Ah...oui...j'ai oublié de dire, que cette syntaxe est valable que si l'application(exe) et lancée du même répertoire pour tout le monde..

A+
Exploreur

 Linux a un noyau, Windows un pépin


lundi 14 avril 2008 à 10:31:51 | Re : Empêcher l'ouverture du programme si celui-ci est déjà ouvert par un autre utilisateur

Renfield

Administrateur CodeS-SourceS
Réponse acceptée !
valable sur le même poste, même...
donc ca ne va pas pour une utilisation pour le réseau.

tu peux passer par des APIs, d'autres choses du genre, ou pour faire un truc hyper simple, te contenter de créer et laisser un fichier ouvert...

Demande a executer la procédure Main au démarrage du projet (a regler dans els propriétés de ce dernier)

dans un module normal (Module1) ajoutes :

Option Explicit

Private moApp As CSingleInstance

Sub Main()
    Set moApp = New CSingleInstance
    If moApp.IsAlreadyLaunched Then
        MsgBox "Application en cours d'utilisation sur un autre poste."
    Else
        Form1.Show
    End If
End Sub


Ajoutes également un module de classe nommé CSingleInstance et colles-y:

Option Explicit

Private mbIsAlreadyLaunched As Boolean
Private miFile As Integer

Public Property Get IsAlreadyLaunched() As Boolean
    IsAlreadyLaunched = mbIsAlreadyLaunched
End Property

Private Sub Class_Initialize()
    If LenB(Dir$(App.Path & "\a.txt")) Then
        On Local Error Resume Next
        Kill App.Path & "\a.txt"
        If Err Then
            mbIsAlreadyLaunched = True
            Exit Sub
        End If
    End If
    
    miFile = FreeFile
    Open App.Path & "\a.txt" For Output As miFile
End Sub

Private Sub Class_Terminate()
    If Not mbIsAlreadyLaunched Then
        Close miFile
        Kill App.Path & "\a.txt"
    End If
End Sub


et voilà !
le premier arrivé créera un fichier a.txt sur lequel il garde la main.
les suivants viendront, tenteront de supprimer ce fichier.
s'ils y arrivent, c'est que l'appli 1 a crashé...
s'ils n'y parviennent pas, c'est que l'appli 1 tourne toujours
et lorsque l'appli 1 est fermée, le fichier est finalement supprimé...

très basique, pas forcément très orthodoxe , mais efficace et simple a comprendre


lundi 14 avril 2008 à 17:53:11 | Re : Empêcher l'ouverture du programme si celui-ci est déjà ouvert par un autre utilisateur

Theos37

Merci

C TOP !!!

Theos !



Cette discussion est classé dans : programme, ouverture, déj, ouvert, empêcher


Répondre à ce message

Sujets en rapport avec ce message

Ouverture powerpoint avec VB - Pb si fichier déjà ouvert [ par merejie ] Bonjour,Lorsque j'ouvre un powerpoint à partir d'une autre présentation, tout se passe bien, sauf si le fichier à lancer a déjà été ouvert auparavant, ouverture classeur excel si pas déjà ouvert et y faire référence (vb2005e) [ par vercomax ] bonjour,j'ouvre un classeur excel comme suit:docexcel = New Excel.Applicationdocexcel.Workbooks.Open(monClasseur.xls)mon problème, c'est qu'il peut et Ouverture d'un programme .exe [ par papachef ] J'ai incorporé cette commande dans une feuille,Private Sub Command8_Click() Shell "c:\BCC.exe" End SubLe programme BCC.exe s'ouvre bien mais en ar autrement posée: comment savoir depuis vb2005 si un document excel est déjà ouvert ? et si oui, comment le sélectionner pour faire des modifs dans ses feuilles ? [ par vercomax ] bonjour,j'ai l'impression de ne pas etre compris, je dois donc mal poser ma question.comment savoir depuis vb2005 si un document excel est déjà ouvert detecter un programme ouvert [ par Yaoel ] Bonjour, je recherche comment detecter sur un reseau un programme qui est deja ouvert? c'est à dire j'aimerai simplement travailler sur un poste princ Créatin d'u programme de recherche [ par Nini13540 ] Bonjour à tous !Je me présente, je m'appel Rémy, et je bosse en ce moment sur un dossier de vidéosurveillance. Je suis Plus que débutant dans le domai port usb [ par ancoco ] salut, je voulais savoir s'il y avait quelqu'un qui était capable de faire un programme qui lorsque que l'on ouvre celui-ci un port usb présélect Statut fichier à l'ouverture [ par JM247L ] Bonjour,J'ai developpé une application Excel VB sur sharepoint.Le problème est au niveau du statut du fichier ... Comment savoir à l'ouverture du fich Empêcher une ouverture multiple d'un fichier [ par lolo69100 ] Bonjour à tous!Mon problème est très simple, je ne sais pas comment détecter la fermeture d'un fichier par l'utilisateur. Le but final étant d'empêche


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.