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 !

LANCER L'IDE VB6 EN SAUVEGARDANT/MODIFIANT LE CONTENU DU PRESSE-PAPIER


Information sur la source

Catégorie :Divers Classé sous : vb6, ide, clipboard, formatage, afck Niveau : Débutant Date de création : 20/01/2008 Date de mise à jour : 22/01/2008 09:39:38 Vu / téléchargé: 3 808 / 185

Note :
Aucune note

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Depuis quelques temps, dès que j'ouvre mon IDE, mon presse-papier se vide.
un hook du presse-papier => pas moins de 26 accès images, toutes étant des images des boutons de l'IDE
pas le courage de tout réinstaller etc.... mais apparemment (forum), mon PC est loin d'être le seul touché

voici donc un petit exe à placer dans le répertoire de votre VB6.EXE
changez ensuite le chemin de vos raccourcis VB6 pour les faire pointer vers VB6_Loader.exe


fonctionnement :
très simple : le loader se charge, récupère le contenu TEXT du presse-papier, lance votre IDE normalement, ré-attribue

votre presse-papier puis se ferme.

j'ai tenté un peu plus compliqué (un prog tournant en permanence pour observer et agir en conséquence) mais le problème

est que techniquement, le presse-papier est altéré avant que l'IDE ne soit chargé dans les process....


votre IDE fonctionne parfaitement?
eh bien félicitations ^^
cependant cet outils peut néanmoins vous être très pratique.
en effet au lieu "simplement" de servir de buffer au presse-papier, on le modifie aussi un peu....

ainsi, si il contient un code que vous avez copié, il sera formaté!
à savoir que sous FF, on obtient souvent du

# ligne code 1
# ligne code 2
# ligne code 3

ou

    * ligne code 1
    * ligne code 2
    * ligne code 3

ou

1. ligne code 1
2. ligne code 2
3. ligne code 3


une fois l'IDE lancé, le presse-papier sera sans ces préfixes....




tenez-moi au courant ;)
 

Conclusion

mode d'emploi :
compiler 'VB6_Loader.vpb'
placer 'VB6_Loader.EXE' dans le répertoire de 'VB6.EXE'
modifier manuellement les raccourcis pointant 'VB6.EXE' vers 'VB6_Loader.EXE'
lire le 'Association Extensions\README-FIRST.htm'
compiler 'Association Extensions\VB6Loader_Association.vbp'
executer 'VB6Loader_Association.exe'
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

20 janvier 2008 23:20:42 :
zip
22 janvier 2008 09:39:39 :
* association registre (en conservant les mêmes icônes) , * gestion des paramètres directement sur VB6_Loader, y compris les /make /run , * gestion du clipboard image et rtf , * aide pour sauve registre

Commentaires et avis

signaler à un administrateur
Commentaire de vicosta le 20/01/2008 23:41:46

Salut
J'avais aussi le même prob, j'ai supprimé quelques références clsid dans la configuration vb dans le registre, et maintenaint le clipboard reste intacte.

mais, avec mes tests, je ne me rappel plus quelle est la bonne référence  à supprimer,

En attendant, ce code reste une alternative intéréssante

signaler à un administrateur
Commentaire de PCPT le 20/01/2008 23:55:19 administrateur CS

salut,
le problème est bien là, quand on y arrive c'est par hasard....
là le problème se pose moins (toujours quand on ouvre un projet enregistré...)

j'en profite pour indiquer le lien de ton topic d'ailleurs :
http://www.vbfrance.com/infomsg_DEMARRAGE-VISUAL-BASIC-CLIPBOARD-VIDE-GENEANT_1060187.aspx


je mettrai à jour selon vos remarques
++

signaler à un administrateur
Commentaire de jack le 21/01/2008 02:16:31 administrateur CS

Pas bête !
Faudra penser aussi à modifier les associations avec les extensions VBG, VBP, FRM, BAS, CLS (...) dans les options de l'explorateur de fichier Windows (Outils, Option des dossiers, onglet Types de fichiers)

signaler à un administrateur
Commentaire de Renfield le 21/01/2008 07:15:09 administrateur CS

"LANCER L'IDE VB6 EN CONSERVANT LE CONTENU DU PRESSE-PAPIER"

plus simple de renommer l'ancien VB6.exe et de "prendre sa place"

non ?

signaler à un administrateur
Commentaire de bouv le 21/01/2008 11:20:35

Meme problème rencontré depuis longtemps.
Comme le dis Renfield, il serait plus simple de renommer VB6.exe (par exemple en VB.exe) et de prendre sa place.
Utile pour lancer les projets existants.
Il faut cependant gérer la transmission des parametres.

Sinon très bonne idée et bonne initiative.

Bonne prog
++

signaler à un administrateur
Commentaire de EBArtSoft le 21/01/2008 13:57:21 administrateur CS

Le probleme vient des addin qui pour utiliser la barre d'outil copie/colle les boutons. C'est effectivement tres genant et tu as eu une tres bonne idée. Toutefois il faudrait envisager une solution qui marche egalement pour tout les autres formats de donnée. Je vais peut etre me lancer aussi mais avec tout ce que je veux faire et ne fait pas j'y crois pas trop.

Merci pour l'idée, bonne pr@g

signaler à un administrateur
Commentaire de EBArtSoft le 21/01/2008 13:59:55 administrateur CS

Tiens... une idée serais de ce pencher sur la fonction Clipboard.Clear de VB. A partir de la on hook l'API ou la fonction de l'objet VB depuis l'ide (en y collant une injection de la table d'import, ce qui impliquerait une modification physique "reversible" de l'exe VB6.EXE)

Bon je verais on a plus que l'embara du choix

signaler à un administrateur
Commentaire de Renfield le 21/01/2008 14:00:00 administrateur CS

bien d'accord, le clipboard texte seul n'est pas suffisant...

c'est un bon début

signaler à un administrateur
Commentaire de PCPT le 21/01/2008 15:46:30 administrateur CS

pour ce qui est du hook clipboard, j'étais parti sur cette piste.
c'est d'ailleurs comme çà (en visualisant les images du presse-papier) que je me suis aperçu qu'il y avait d'abord un écrasement du texte si j'en avais un, puis des (26) images venant des boutons.

seulement VB6 n'est pas encore actif (process) alors que le presse-papier est déjà altéré. on ne peut pas tout bloquer juste en supposant que peut-être VB6 sera dans les process dans quelques secondes...

et en addin, s'il n'est pas chargé en premier çà sera le même problème!

pour renommer VB6, je ne voulais pas. si on cherche le getmodulefilename et qu'on tombe sur VB6_old.exe, pour certains de mes codes en tout cas, çà m'embête...
cependant j'ai volontairement mis "vb6.exe" en propriété de la classe process.
ainsi on peut facilement changer comme on le souhaite...

dans l'idéal le clipboard text n'est pas suffisant oui, mais çà correspondait vraiment à ce que je voulais, à savoir conserver (et formater) le texte, plutôt que de tout perdre comme c'était le cas.


modifs à venir (si possible cette semaine) :
* association registre (en conservant les mêmes icônes)
* gestion des paramètres directement sur VB6_Loader, y compris les /make /run
* gestion du clipboard image et rtf

merci pour vos encouragements et vos idées ;)

signaler à un administrateur
Commentaire de EBArtSoft le 21/01/2008 21:36:41 administrateur CS

PCPT> Non VB6 (le process) est lancé quand le clipboard est ecrasé seulement l'ide n'est pas visible ! Hors si tu operes un hook sur l'IAT (la table d'importation de dll) de vb6.exe tu pourras executer du code bien bien avant quoi que ce soit d'autre ! Et c'est la, je penses, que tu obtiendras les meilleurs resultat. Biensur c'est un peux plus complexe.

@+

signaler à un administrateur
Commentaire de EBArtSoft le 21/01/2008 22:22:29 administrateur CS

Pour info : http://www.mvps.org/vbvision/Save_Clipboard.htm

signaler à un administrateur
Commentaire de PCPT le 21/01/2008 22:34:20 administrateur CS

ok on va tenter sur cette nouvelle voie, merci EB ;)

signaler à un administrateur
Commentaire de PCPT le 22/01/2008 09:48:52 administrateur CS

MAJ faite selon les précédents points indiqués : fonctionne maintenant avec les projets existants, y compris les commandes et associations... (2e projet séparé, voir le fichier htm)

je verrai pour le format vbcffiles un peu plus tard...

EB -> pour l'IAT il y a tout de même quelquechose qui m'échappe....
tu entends alors un prog qui tourne en permanence?
j'ai jeté un oeil à 2 de tes sources, une en chargement indirect et l'autre en AddIn.
le AddIn étant exclus (raison évoquée, ordre de chargement), reste le chargement en permanence...
mais dans ce cas comment hooker 'VB6.EXE' alors que, comme plusieurs d'entre vous l'aviez suggéré, çà pourrait très bien être un autre exe, et le vrai serait 'vb6a.exe' par exemple...

nb : l'exe du lien indiqué ne fonctionne pas (il n'empêche pas l'ouverture mais le presse-papier reste endommagé)

@ vous lire ;)

signaler à un administrateur
Commentaire de Renfield le 22/01/2008 09:52:52 administrateur CS

je pense que EB parle de modifier physiquement le fichier VB6.exe
pour qu'il passe par la case MonLoader.exe

enfin, il t'en causerait mieux que moi, surtout si je me gourres ^^

signaler à un administrateur
Commentaire de EBArtSoft le 22/01/2008 10:12:34 administrateur CS

Certe...

Voila ce que je propose (J'ai regardé vite fait hier soir, ça peut le faire) :

1 - Faire une sauvegarde de VB6.EXE en VB6_OLD.EXE (ok c'etait evidant)
2 - Remplacer la chaine "advapi32.dll" par "myadvapi.dll" dans VB6.EXE
3 - Créer myadvapi.dll en C ou ASM. Cette dll doit :
    - exporter les fonctions de advapi32 importé/requise par VB6.EXE
    - Instancier un objet publique d'une dll activex VB6
    - (pour avoir du code vb sinon c'est pas drole et on passe chez
       cppfrance ou asmfr et puis si on est pas d'accord ben c'est pareil :p !)
4 - Créer une dll activex en VB qui va :
    1 - Soit recuperer les donnée du clipboard pour les rapatrier une
        fois l'ide chargé
    2 - Soit hooker les fonctions du clipboard pour empecher l'effacement
        des données ou/et faire un tampon des bitmaps.
    3 - Bloquer l'acces au clipboard pendant le chargement de l'IDE par ce
        les addin font chier !
    4  - "D la reponse D"

Sinon on peut toujours s'arreter au stade 3 en creant une dll de remplacement pour user32.dll qui remplace directement les fonction du clipboard mais la faudrait gerer les 230 ou 250 import bon ok c'est faisable en construisant le fichier .def et .asm par le code mais bon... deja peut etre commencer petit pour voir comment VB interagit avec le clipboard.

Bon aller je retourne a mes robinets haha

signaler à un administrateur
Commentaire de Renfield le 22/01/2008 10:17:10 administrateur CS

c'est a peu près ce que j'avais saisi de la solution que tu proposais.

je prendrai la proposition 1, perso...
un hook est plus galère a mettre en place
bloquer l'accès est un peu radical... la technique et maladroite, mais vu que les addins passent par le clipboard, on va les laisser faire...

signaler à un administrateur
Commentaire de PCPT le 31/01/2008 03:08:49 administrateur CS

tu testes ton presse-papier EB ?

signaler à un administrateur
Commentaire de EBArtSoft le 31/01/2008 19:41:07 administrateur CS

Oh hey dit donc on a le droit de ce tromper ! :p
Puis d'abord c'est pas moi c'est windows haha !

http://www.vbfrance.com/tutoriaux/MAINTENIR-CLIPBOARD-INTACTE-DEMARRAGE-VISUAL-BASIC_810.aspx

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Formatage depuis VB6 [ par xalimero ] Bonjour everybody,J'ai une petite question pour qui sait:Comment peut-on faire en VB6: - un FORMAT d'un lecteur en FAT16, sans que l'utilisateur ai be [ VB6]Utiliser plusieurs lignes de commandes dans l'IDE [ par Flamandier ] Bonjour, Je me demande s'il est possible de "stocker" des lignes de commandes lorsqu'on est en developpement sur un projet. Je demmarre mon executio Ide pour developper en VB6 [ par Tank01 ] Bonjour, Ayant rayé mon cd de VS6studio offert gracieusement par mon lycée:( je recherche donc un IDE de developpement VB6, j'attend vos réponses Problème avec le ClipBoard, depuis un complément VB6 qui sous-classe VB [ par mortalino ] @++ ( Nouveau forum : [VB.2008] Raz le bol de cet IDE ! [ par jack ] Bonjour(IDE : Interface/outil de programmation)En plus de ma question, je me permets ce coup de gueule envers l'IDE de VB.Net, ici en version 2008, je Préférences de l'IDE de VB6 [ par jrivet ] 'Lut All...Hier le service info est venu me réinstallé Office 2000 (j'avais plus ACCESS)Bref après s'être rendu compte que je n'étais pas avec office aide sur vb6 [ par NDOUKI ] Salut à tous ,depuis un moment j'apprend à developper avec mon VB6 mais seulement je ne sais pas comment interroger ma base de données access. J'aimer html et VB6.0 [ par wpjo1956 ] J'ai un "bouton" de PayPal, c'est à dire une petit bout de code comme<form>...</form>qui sur une page html se visualise comme un bouton. E Crystal report xi R2 VB6 [ par capricorne83 ] Bonjour. Voici mon souci. J'utilise une base access à laquelle je viens de coller un mot de passe. Bien évidemment toutes les éditions Crystal sont à


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,624 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é.