begin process at 2010 02 10 02:35:52
  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é :9 275 / 795

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 APPEL DE POINTEUR DE FONCTIONS - API SANS LES DECLARER par Renfield
Source avec Zip Source avec une capture RETROUVER LES DONNÉES PUBLIQUES DANS UNE BIBLIOTHÈQUE par VBsearch
Source avec Zip Source avec une capture CRÉER VOTRE PROGRAMME D'INSTALLATION par VBsearch
Source avec Zip Source avec une capture BART VOTRE BUREAU DANS UNE BARRE par alfamick
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMPLE SHUTDOWN SCHEDULER : ARRÊTS PLANIFIÉS (LOCAL OU REMOT... par violent_ken

 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

Ouvrir un fichier txt sur internet [ par JCLK ] Je voudrais ouvrir un fichier txt se trouvant sur mon site internet pour en afficher le contenu dans une Textarea.Avec la commande Open "http://..." f * URGENT * Ouvrir un fichier dans un frame ou autre qu'un formulaire... [ par Fred ] Ouvrir un fichier dans un frame ou autre qu'un formulaire...En fait mon problème c'est que je veux ouvrir un fichier dans un formulaire, mais il cache * URGENT * Ouvrir un fichier dans une zone définit... [ par Fred ] En fait mon problème c'est que je veux ouvrir un fichier dans un formulaire, mais il cache ma barre d'outils...Comment puis-je lui donner une zone spé Tester un fichier avant de l'ouvrir [ par Thibault ] Comment tester un fichier "quelconque" et n'autoriser l'affichage (dans une RichTextBox) que s'il s'agit d'un fichier Ascii. Ouvrir un fichier text [ par Bloodlust007 ] Jai deja essayer avec les 2 codes quil y a sur ce site web et ca ne fonctionne pas... :( dite moi comment si vous avez réussi avec une de ces 2 méthod Ouvrir un fichier d'une autre application [ par thomrico ] Bonjour,Je souhaites créer dans mon application VB un bouton qui quand on clique dessus ouvre un fichier.Par exemple, si je clique sur le bouton, le f PROBLEME OUVRIR ET LIGNE PAR LIGNE [ par Cavaettoi ] Salut a tous,je souhaite ouvrir un fichier et afficher une msgbox avec chaque ligne du fichierjai essayer avec la commandeopen "fichier.txt" for binar Autre version de la boite 'Ouvrir un fichier' [ par Ondex ] slt mes sauveteurs ,je voudrai savoir comment recuper la liste qui affiche 'Bureau' + 'Poste de travail' + 'Mes documents' etc, et la liste juste en d ouvrir fichier excel sous vb [ par erich ] comment faire pour ouvrir un fichier excel déjà existant par un bouton.J'ai essayé avec getobject ("monfichier", "excel.application")mais il ne trouve Comment faire pour ouvrir un deuxieme fichier TXT dans un Textbox ? [ par Flit ] Voilà j'ai une Listbox et un Textbox et je voudrais que quand on clique sur un element de la listbox ca ouvre un autre fichier TXT dans le Textbox...


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 1,232 sec (4)

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