begin process at 2012 02 12 15:40:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Exécution

 > OUVRIR PLUSIEURS FICHIERS DANS UNE SEULE INSTANCE

OUVRIR PLUSIEURS FICHIERS DANS UNE SEULE INSTANCE


 Information sur la source

Note :
10 / 10 - par 4 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Exécution Classé sous :ouvrir, fichier, instance Niveau :Initié Date de création :30/07/2005 Vu / téléchargé :11 048 / 859

Auteur : Stephane

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Voici un bout de code qui permet d'ouvrir des fichiers dans une seule instance de votre appli. je l'explique : Quand vous ouvrez un fichier txt, ca ouvre le bloc note, si vous ouvrez un autre txt, ca ouvre une autre instance du bloc note.

En revanche, quand vous ouvrez une image sous xp, elle s'affiche dans le visualisateur, si vous ouvrez une autre image sans fermer le visualisateur, cette nouvelle image sera chargé, dans le visualisateur deja ouvers, il n'y aura pas 2 instances de l'appli.

C'est donc ce systeme que réalise cette source. Elle n'est pas de moi, mais ca fait tellement longtemp que je l'ai prise pour un prog, que je me rappelle plus ou je l'ai trouvée.
Je la met quand meme parce que on me l'a demandé sur le forum, et que je crois pas qu'il y en ai deja sur le site.

Pas de boucle qui tourne en permanence (c'est le principal atout de cette source), elle fonctionne avec un callback mais est tres stable ! meme dans l'IDE.
(Je crois pas que VB se soit crashé a cause de cette source)

L'appli livrée est un exemple qui illustre la source. J'y ai mis un label qui explique comment voir l'effet produit.
Il y a juste au chargement l'écriture d'une clé dans la base de registre.

Voila, en esperant que ca serve.
++



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture UTILISER LA TELECOMMANDE PCTV AVEC KTV
Source avec Zip Source avec une capture CLASSE DE DESSIN (API) PLUS RAPIDE QUE VB
Source avec Zip Source avec une capture DOCKCONTROL : DOCKER/UNDOCKER VOS BARRE D'OUTILS ET AUTRES C...
Source avec Zip ROTATION DANS L'ESPACE 3D > 2D
Source avec Zip Source avec une capture PHOTOREMOVER - SUPPRIME LES DOUBLES

 Sources de la même categorie

Source avec Zip CALCULATRICE par TPB
Source avec Zip Source .NET (Dotnet) PIERRE PAPIER CISEAUX par Ultrabytes
Source avec Zip Source avec une capture UN PATCH EN VB (V3) par PhoenixBytes
Source avec Zip Source .NET (Dotnet) [VB.NET 2008] EXECUTION MULTITHREAD DE PLUSIEURS FONCTION À ... par ShadowTzu
Source avec Zip Source avec une capture MULTITHREADING ACTIVEX par Philippe734

 Sources en rapport avec celle ci

Source avec Zip OUVRIR TOUS LES FICHIERS EXCEL D'UN DOSSIER ET DE SES SOUS-D... par Unforgiven3303
Source avec Zip Source .NET (Dotnet) OUVRIR DES DOCUMENTS DANS LA MÊME INSTANCE DE L'APPLICATION ... par ShareVB
Source avec Zip OUVRIR DES HTA SANS MESSAGE DE LA PART DE WINDOWS par David78390
OUVERTURE D'UN FICHIER PAR UN LOGICIEL EXTERNE par casy
OUVRIR UN FICHIER EN MODE BINAIRE par Sibelle07

Commentaires et avis

Commentaire de MoiOlivier le 30/07/2005 21:10:08

Merci, merci, merci, merci, etc.
10/10.

Commentaire de Pim le 30/07/2005 23:14:46

Voici une méthode assez simple pour voir si une application a déjà été lancée et donc ne pas la lancer une deuxième fois.
Il s'agit simplement de mémoriser dans une variable l'identificateur (ID) de la tâche exécutée (Shell). Cette variable sera nulle si la tâche n'a pas encore été lancée. Dans le cas contraire, elle contiendra une valeur. Il suffit alors d'activer cette tâche (AppActivate). Une petite gestion de l'erreur si entretemps la tâche a été fermée par l'utilisateur.

L'exemple suivant demande juste un CommandButton appelé "Command1" pour fonctionner.

Il existe aussi une API qui fait ça, je ne me souviens plus de son nom.

Je ne sais pas si cela peut te servir, mais je te livre mon idée.
A+
-------------------------------------------------------------------

'Variable contenant le n° de la fenêtre ouverte d'une application donnée
Public IDFrame As Variant

Private Sub Command1_Click()

'Shell(pathname[,windowstyle]) : Lance un programme exécutable et renvoie une
'valeur de type Variant (Double) représentant l'identificateur (ID) de la
'tâche exécutée en cas de succès, ou un zéro en cas d'échec.

' Si aucun n° de fenêtre ouverte, en ouvrir un instance.

    On Error GoTo erreur
    
    If IDFrame = 0 Then
        'Lance l'application
        IDFrame = Shell("C:\WINDOWS\notepad.exe", vbNormalFocus)
        'L'application a déjà été lancée => simplement lui donner le focus
        Else
        AppActivate IDFrame
    End If
    
    Exit Sub

erreur:
' Ex: logiciel a été fermé entretemps => son IDFrame existe toujours, mais
' plus la fenêtre elle-même => erreur pour passer l'activation sur celle-ci.
' Dans ce cas, il faut ouvrir une nouvelle instance de cette application !

IDFrame = Shell("C:\WINDOWS\notepad.exe", vbNormalFocus)

End Sub

Commentaire de CanisLupus le 31/07/2005 16:15:24 administrateur CS

Pourquoi ne pas laisser faire ça à windows avec l'api ShellExecute ?

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub Command1_Click()

ShellExecute 0&, vbNullString, "C:\Mes documents\Mes images\image.jpg", vbNullString, "C:\Mes documents\Mes images\", 1

End Sub

Commentaire de MoiOlivier le 31/07/2005 17:15:21

Salut,
>CanisLupus, si c'est un prog que tu as fait toi-même, et que tu utilises "shell" ou "shellexecute", classiquement, windows va ouvrir le fichier dans une deuxième instance de ton prog, et c'est justement ça qu'on veut éviter, une deuxième instance.
Ici, avec ce code, il va ouvrir le fichier dans l'instance déjà ouverte.

Commentaire de Pim le 31/07/2005 20:42:07

Pour "Shell" et "AppActivate", l'application n'est PAS ouverte plusieurs fois, même si c'est une application personnelle.
En fait, ça fonctionne pour n'importe quelle application, même de "vieilles" applications qui veulent encore bien tourner sous Xp.

Pour l'API "shellexecute", je ne sais pas, je n'ai pas fait le test.

A+.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ouvric avec... [ par armata ] bonsoir,Je suis à la recherche d'une méthode pour ouvrir un fichier (txt par exemple) avec l'une de mes applications en vb.Pour le moment je lance mon ouvrir une extention [ par kelm_by ] salut tous le monde,j'ai associer un type de fichier a mon application maintenant il me reste comment faire pour metre l'arborecence de ce fichier dan OUVRIR DANS LA MÊME INSTANCE [ par kelm_by ] salut tous le monde,j'ai vue la source de ShareVB OUVRIR DES DOCUMENTS DANS LA MÊME INSTANCE DE L'APPLICATION SANS RELANCEMENT DE L'EXE (DDE)<b Ouvrir un fichier [ par Nardoum ] Salut,Je suis en train de faire un formulaire sachant que je sui débutant.On y inscrit le titre, le nom prénom etc, et ça créér le fichier ça marche : Ouvrir un fichier avec un programme VB [ par the_Blusky ] bonjour !J'ai cree un programme en VB qui traite des documents, et j'aimerai que lorsque j'ouvre des documents avec ce programme, il les chargents aut ouvrir un fichier pdf sur une page precise [ par amrw ] Bonjour, Je voudrais ouvrir un document pdf sur une page bien precise (26/78) avec VB Excel,J'ai utilisé ce code mais il l'ouvre sur la 1ere page. Me Ouvrir fichier texte dans un onglet [ par faucheuse ] Bien le (re)bonjour amis programmeurs et programmeuzes, j'aimerais pouvoir mettres les données d'un fichier texte dans une feuille de mon classeur sa enregistrer/ouvrir plusieurs listbox dans un seul fichier texte [ par maxpruv ] Bonjour, je suis nouveaux sur le forum et très  "novice" en programmation,excusez ma question qui paraitra  peut-être trop facile pour certain...Comme Ouvrir un fichier aléatoire automatquement [ par benjaminjumeaucourt ] Bonjour,Je voudrais faire une macro qui ouvrirai un fichier Excel portant un nom aléatoire dépendant de la date de la veille (Jaammjj aa pour année et Ouvrir un fichier pdf [ par filotto ] Salut à tousJ'aimerais savoir comment Ouvrir un fichier pdf dans une listview.Merci de votre reponse.Cordialement.Gérard FILOTTO


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,193 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales