SOUSCLASSER LES FENETRES D'1 AUTRE APP

shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007 - 14 janv. 2004 à 00:43
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 - 23 mai 2011 à 00:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19476-sousclasser-les-fenetres-d-1-autre-app

cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
23 mai 2011 à 00:20
It crash because of the VBVM.
Ca pete a cause de la VBVM.
RAFAAJ2000 Messages postés 16 Date d'inscription samedi 27 mars 2010 Statut Membre Dernière intervention 30 décembre 2012
22 mai 2011 à 16:12
Sorry for the confusion EB.

The Increment Function example I posted above ( with the added MsgBox ) is in the dll .

and the actual DLL function call that crashes VBA is as follows :

Public Declare Function Increment Lib _
"C:\Documents and Settings\Jaafar\Bureau\MyDLL\mathlib.dll" ( _
value As Integer) As Integer

Private Sub cmdIncrement_Click()
Range("a10") = Increment(1)
End Sub
RAFAAJ2000 Messages postés 16 Date d'inscription samedi 27 mars 2010 Statut Membre Dernière intervention 30 décembre 2012
22 mai 2011 à 16:03
Hi EB again.

As a matter of curiosity, did you try the trick for making standard dlls from ActiveX dlls like explained in the above link?

I did follow the steps and managed to make it work but when I add a small change to the exported functions (see below) and run the dll from Excel-VBA the excel application crashes !

1 -Original code ( + a simple MsgBox )that works when ran from a VB Standard VB : No crashing.

Public Declare Function Increment Lib _
"C:\Documents and Settings\Jaafar\Bureau\MyDLL\mathlib.dll" ( _
value As Integer) As Integer

Public Function Increment(var As Integer) As Integer
If Not IsNumeric(var) Then Err.Raise 5
MsgBox var
Increment = var + 1
End Function

2 -Code ran from excel VBA that CRASHES when the MsgBox is added :

Public Function Increment(var As Integer) As Integer
If Not IsNumeric(var) Then Err.Raise 5
MsgBox var
Increment = var + 1
End Function

In fact, except wotking with variables, the exported Functions will always crash if another COM function or even another API function is called but only when the client is VBA not VB !

I would appreciate if you could share your knowledge of this kind of stuff and shade some light on this to see if/how this could be worked around.

Regards.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
21 mai 2011 à 20:05
If you add a DllMain function using this trick you will bypass the VBVM initialization resulting in a very instable state of your dll. But... it could work if you avoid any VBVM call. For example manipulating string in the DllMain will cause a seg fault because VB need to initialize the VM before doing any other things.

Si tu utilises une fonction DllMain avec cette astuce tu vas faire sauter l'initialisation de la VBVM ce qui va rendre ton programme très instable. Cela pourrait tout de même marcher si tu évite tout appel a la VM. Par exemple si tu manipule une chaîne de caractère tu vas avoir droit a un beau seg fault car VB doit initialiser la VM avant de faire quoi que ce soit d'autre.
RAFAAJ2000 Messages postés 16 Date d'inscription samedi 27 mars 2010 Statut Membre Dernière intervention 30 décembre 2012
21 mai 2011 à 18:13
Here is the page link : http://oreilly.com/pub/a/windows/2005/04/26/create_dll.html?page=1

Check the 3 pages.
RAFAAJ2000 Messages postés 16 Date d'inscription samedi 27 mars 2010 Statut Membre Dernière intervention 30 décembre 2012
21 mai 2011 à 18:00
Thanks EBARTSOFT for the quick response.

Sometime ago, I read somewhere about using a trick to make a VB dll behave like a Windows dll so one could call the VB dll from the Client Program just like a normal dlls ie: Using the "Declare Function xxxx Lib..." calling convention.

Would that solve the problem ?

I'll do a google search and post the link here if I find it (Maybe you already know about this trick ).

As for using C or ASM dll ,as suggested, I don't have the slightest idea about writing code in those two languages.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
21 mai 2011 à 16:40
It can't work because host process must call CoCreateObject to instanciate a new vb class.
A solution is to use another C or Asm dll that create a new instance of the vb class.

On ne peut pas lancer une dll activex comme on le fait pour une dll classique car vb attend que le programme hote crée une nouvelle instance de la classe pour initialiser la vm. Une solution serait de créer une autre dll en C ou asm pour instancier la classe vb avec CoCreateObject.
RAFAAJ2000 Messages postés 16 Date d'inscription samedi 27 mars 2010 Statut Membre Dernière intervention 30 décembre 2012
21 mai 2011 à 16:33
Great stuff.

Will this work for ActiveX dlls created in VB6 ?

I have given it a shot by assigning the ActiveX dll PathName to the FileName Const but the ActiveX dll Class Initialize event never gets fired.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
15 sept. 2008 à 09:09
c'est possible (avec la carte kiwi :p )
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
15 sept. 2008 à 00:38
Salut EB, fantastique code.

Par contre quand tu dis : "un seul hook par app", c'est que tu peux faire un seul hook en tout, ou un seul hook par processus externe au tiens.
(ma question c'est est-ce que je peux sous-classer plusieurs fenetres de plusieurs processus avec ce code ?)

et sinon est-ce possible ?

merci
MadMatt
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
27 déc. 2006 à 16:08
si je comprend bien il faut remplacer cette ligne

WindowProc = DefWindowProc(hWnd, uMsg, wParam, lParam)

par quelque chose du genre :

If uMsg = WM_CLOSE Then
WindowProc = DefWindowProc(hWnd, 0, 0, 0)
Else
WindowProc = DefWindowProc(hWnd, uMsg, wParam, lParam)
End If
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 déc. 2006 à 16:02
La defWinProc appelle DestroyWindow() par défaut, suffit de ne pas lui repasser le message.
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
27 déc. 2006 à 15:53
OK merci du conseil.

Cela dit j'ai observé une appli à l'aide de SPY++ et je n'ai pas vu WM_CLOSE mais seulement WM_DESTROY lors de la fermeture de l'appli.
Faut que je revoit ça...

Sinon, saurais-tu comment bloquer ce fameux message une fois qu'il est intercepté ?

Merci d'avance
++
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 déc. 2006 à 15:34
WM_DESTROY est une notif de post traitement, c'est WM_CLOSE qui est à intercepter pour accepter ou non la fermeture.
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
27 déc. 2006 à 15:26
Salut EB,

J'ai un peu la même question que loulou06.
Comment faire pour bloquer certains messages (ex: WM_DESTROY)

Merci d'avance
++
cs_loulou06 Messages postés 15 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 10 août 2006
19 août 2006 à 07:13
Moi, j'aurais un petite question.
Au passage total RESPECT a cette DLL, de la grande classe .... :-)
L'equipe qui tue Renfield/Ebart
Dans la WindowProc (DLL), je voudrais detourner et ainsi bloquer certains messages
mais ca ne marcha pas, une idee ? Merci d'avance (reponse en pv please)

Function WindowProc(ByVal hWnd As Long, ByVal umsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim mVar As HookSubCls
Dim mData As MyStruct
Select Case umsg
Case WM_SVRCALL
ReadStruct wParam, lParam, mData
For Each mVar In m_Objects
If mVar.hWnd = hWnd Then
mVar.CallBack mData.hWnd, mData.umsg, mData.wParam, mData.lParam
Exit For
End If
Next
'Case 123:

Case Else
If umsg = m_MsgToSuspend Then
'' Dans mon cas: m_MsgToSuspend = 123 / WM_CONTEXTMENU
''#########################################################
WindowProc = 0
Else
WindowProc = DefWindowProc(hWnd, umsg, wParam, lParam)
End If
End Select
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 avril 2005 à 12:50
Labview doit dessiner les controles lui meme, et gerer les evennements.... pas de fenetre créee par controle.

pour t'en assurer, tu peux utiliser Spy++ et essayer de capturer un de tes boutons...
metalcoder Messages postés 193 Date d'inscription jeudi 14 février 2002 Statut Membre Dernière intervention 25 mars 2011 1
18 avril 2005 à 21:41
Daetips>
J'ai essayer ta solution, elle marche partout et sous Vb non compile mais pas dans labview, dommage. Ton programme reconnait un seul handle sur le programme labview alors qu'il y a 6 boutons, 2 boutons options et des labels...c'est pas grave mais si quelqu'un a une solution.

Metalcoder
daetips Messages postés 142 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 10 novembre 2007
18 avril 2005 à 20:32
Tien metalcoder
Private Declare Function WindowFromPoint Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (ByRef David As Point) As Long

Private Type Point
x As Long
y As Long
End Type

Private Sub Timer1_Timer()
Dim mypoint As Point
Dim thandle As Long
GetCursorPos mypoint

thandle = WindowFromPoint(mypoint.x, mypoint.y)
Me.Caption = thandle

End Sub

Ca te donne le handle du controle même un bouton
metalcoder Messages postés 193 Date d'inscription jeudi 14 février 2002 Statut Membre Dernière intervention 25 mars 2011 1
20 janv. 2005 à 07:50
J'utilise au travail labview. Labview a la particularité de fonctionner en mode non compilé. j'ai ajouter un utilitaire en VB qui commande Labview (du moins en partie) car je ne peut agir sur les boutons (en mémoire je n'ai que labview.exe, je n'ai pas acces au controle comme une appli standard) J'ai etudier ton programme et il m'as redonner un peu l'espoir de pouvoir controler les controles de labview. Si tu as des conseils pour récuperer le handle d'une appli non compile, n'hesite surtout pas je suis preneur.

A titre d'exemple car je pense que le probleme est le meme que le mien. lancer Vb, faite un bouton sur la fenetre et essayer de trouvé le handle du bouton avec les utilitaires comme spy++...si qqun y arrive ce serait cool

metalcoder
Dragonmaster Messages postés 126 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 3 avril 2009
16 oct. 2004 à 17:50
ça fonctionne pour moi avec notepad, la calculatrice mais pas avec MSN !

Serait - il possible d'ajouter un bouton ou tout autre contole dans l'appli ?
cs_viran Messages postés 104 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 31 décembre 2006
25 sept. 2004 à 16:23
J'ai Windows XP Service pack 2
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 sept. 2004 à 16:18
je veux bien le croire.... quel est ton OS ?

quelle manifestation as tu du "ca ne fonctionne pas". Qu'essaies tu de faire exactement.... bref, donne nous quelques indices...

au boulot, j'ai NT4, et chez moi Xp.... (et les deux fonctionnent)
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
25 sept. 2004 à 15:53
Je crois que tu es le seul à avoir des problèmes avec les sources d'EBArtSoft, alors montre nous un peu de quoi tu es capable avant de critiquer.
cs_viran Messages postés 104 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 31 décembre 2006
25 sept. 2004 à 15:50
p e que tu as un autre systeme d'exploitation que moi en tout cas che zmoi ca marche donc je note comme je peux!
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 sept. 2004 à 15:47
Tu ne parviens pas a la faire fonctionner, et tu ne donne aucun indice pour que l'n t'aide a la faire fonctionner....

je m'en sers pour une appli que l'on a au boulot, et ca fonctionne très bien, donc....
cs_viran Messages postés 104 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 31 décembre 2006
25 sept. 2004 à 15:43
Bon maintenant arrete de gratter ta source elle marche pas alors si tu veux repasser sur tt mes messages pour me repondre je vais faire de meme et normalement j'aurais du noter 2 ou 3 la prochaine je serais moins cool!
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
21 sept. 2004 à 22:47
viran> t'as decider de passer sur toutes mes sources pour dire n'importe quoi ? Tu n'es pas obligé de regarder la source et encore moins de commenter surtout si en plus tu ne comprend rien...

@+
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 sept. 2004 à 21:05
je suis désolé de t'apprendre que cela fonctionne très bien....

dis en plus sur ta config...
cs_viran Messages postés 104 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 31 décembre 2006
21 sept. 2004 à 20:58
T'est trop un clanpin,ton install il a aps les bosn fichiers d'acces,erreurs par ci et par la,bref grosse deception mais comme tu as pondu des sources superbes et que t'a du te donner du mal je te donne 4/10 meme si y marche aps et evite de nous prendres pour des idiots merci!
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
22 août 2004 à 16:33
Et tu met ça en débutant ?? Je trouve ça génial...
daetips Messages postés 142 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 10 novembre 2007
20 août 2004 à 18:10
Punaise, desfois je me demande si tu dort car tu as posté beaucoup de sources vraiment utiles et qui repoussent les limites du vb (même avec une dll en asm) 10/10.
cs_CrAzYb Messages postés 9 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 30 juillet 2006
12 mai 2004 à 09:58
Super, trés bon boulot. Depuis longtemps je cherchais un truc du genre, histoire de maitriser une appli externe. Trés bien. 10/10
cs_mehdibou Messages postés 365 Date d'inscription vendredi 24 mai 2002 Statut Membre Dernière intervention 18 octobre 2004
12 févr. 2004 à 21:20
Rien à redire, c'est du EBArtSoft ;)

Source excellente qui utilise plein de points avancés de la programmation que j'aime bien :)

10/10 pour remonter la note... certains n'ont pas dû capter l'intérêt de la source...
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
4 févr. 2004 à 07:42
shadomoy>lol tu veus capter les evenements d'un windowless ?
la faudra m'expliquer comment tu fait alors...
sans fenetre pas de WindowProc donc pas de sous classement !

de plus les labels dans les appli VB ce n'est rien d'autre qu'un appel
a DrawText (donc un dessin) donc tu n'es pas pres de le sous
classer a moin de trouver les points d'entré des fonctions ActiveX

@+
shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007
4 févr. 2004 à 06:01
bon ok j' ai capté le potentiel de cette source mais pourquoi par exemple lorsque j'essaie de recuperer l'evenement click d'un label d'une appli vb qui contient bien un label ca ne fonctionne pas ????
foutus controles windowless ...
une idée de comment vb fait ?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 janv. 2004 à 13:36
Au boulot, j'ai une appli qui a une dizaine d'année, et il y a de serieux manques dans l'interface..... certaines choses sont absentes ou mal placées, les raccourcis claviers sont une horreur sans nom !

Le probleme, c'est que mes collegues et moi, passons 70% de notre temps là dessus...

Ce matin je me suis amusé (oui oui, ca m'amuse) a faire une sort de daemon qui rectifierait un peu la chose....

Et je me suis apercu rapdement que sans hook sur cette application, je ne pourrais pas faire grand chose ;)

J'ai donc telechargé ton source, qui m'epate par la quantité de choses qu'il contient ! Kalistor a raison, tu connais bien Win32 !!
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
15 janv. 2004 à 11:13
Oui c'est exact j'ai omis cette dll, je l'ai fait avec MASM32
(assembleur x86) elle n'est pas vraiment au point mais
elle est suffisante pour notre exemple voici le code :

;#########################################################################

.386
.model flat, stdcall
option casemap :none

;#########################################################################

include D:\1_MANU\DOC~2.PRO\DOCUME~1\MASM32\include\windows.inc
include D:\1_MANU\DOC~2.PRO\DOCUME~1\MASM32\include\user32.inc
include D:\1_MANU\DOC~2.PRO\DOCUME~1\MASM32\include\kernel32.inc

includelib D:\1_MANU\DOC~2.PRO\DOCUME~1\MASM32\lib\user32.lib
includelib D:\1_MANU\DOC~2.PRO\DOCUME~1\MASM32\lib\kernel32.lib

;#########################################################################

HookProc proto :DWORD,:DWORD,:DWORD,:DWORD
ThreadProc proto :DWORD

;#########################################################################

Version equ 201h
MW_WNDPROC equ 410h
MW_WNDHOOK equ 420h
MW_WNDUNHK equ 430h
MW_PING equ 4FFh

;#########################################################################

MY_STRUCT STRUCT
hWnd DD ?
uMsg DD ?
wParam DD ?
lParam DD ?
MY_STRUCT ENDS

;#########################################################################

.data
Msg1 db "Window Hooked" ,0
Msg2 db "Window Unhooked" ,0
Msg3 db "Message" ,0
Msg4 db "#Library Loaded" ,0
Msg5 db "#Library Unloaded" ,0

Template db "%d" ,0

ClassName db "@6912345669@" ,0
AppName db "@6912345669@" ,0

hInstance HINSTANCE ?
CommandLine LPSTR ?
hHook dd ?
hwnd HWND ?
handle dd ?
hPID dd ?

lProc dd ?
lhWnd dd ?
lRetn dd ?

;#########################################################################

.code

LibMain proc hInstDLL:DWORD, reason:DWORD, unused:DWORD
.if reason == DLL_PROCESS_ATTACH
;==========================================
;invoke MessageBox,NULL,addr Msg4,NULL,MB_OK
;==========================================

invoke GetCurrentProcessId
mov hPID,eax

invoke GetModuleHandle,NULL
mov hInstance,eax

invoke GetCommandLine
mov CommandLine,eax

invoke CreateThread,NULL,0,ThreadProc,NULL,0,NULL
mov handle,eax

.elseif reason == DLL_PROCESS_DETACH
;==========================================
;invoke MessageBox,NULL,addr Msg5,NULL,MB_OK
;==========================================

invoke DestroyWindow,hwnd
invoke CloseHandle,handle

.endif

mov eax,1
ret
LibMain Endp

GetVersion proc
mov eax,Version
ret
GetVersion endp

ThreadProc proc lpParameter:DWORD
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
mov wc.cbSize,SIZEOF WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc, OFFSET WndProc
mov wc.cbClsExtra,NULL
mov wc.cbWndExtra,NULL
push hInstance
pop wc.hInstance
mov wc.hbrBackground,NULL ;COLOR_WINDOW+1
mov wc.lpszMenuName,NULL
mov wc.lpszClassName,OFFSET ClassName
mov wc.hIcon,NULL ;eax
mov wc.hIconSm,NULL ;eax
mov wc.hCursor,NULL ;eax
invoke RegisterClassEx, addr wc
invoke CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,0,0,0,0,0,NULL,NULL,hInstance,NULL
mov hwnd,eax

StartLoop:
invoke GetMessage,ADDR msg,NULL,0,0 ; get each message
cmp eax, 0 ; exit if GetMessage()
je ExitLoop ; returns zero
invoke TranslateMessage, ADDR msg ; translate it
invoke DispatchMessage, ADDR msg ; send it to message proc
jmp StartLoop
ExitLoop:

mov eax,msg.wParam
ret
ThreadProc endp

WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
LOCAL buffer[128]:byte

.if uMsg == WM_DESTROY
invoke PostQuitMessage,NULL

.elseif uMsg == MW_PING
mov eax,1
ret

.elseif uMsg == MW_WNDPROC
invoke GetWindowLong,wParam,GWL_WNDPROC
mov hHook,eax
ret

.elseif uMsg == MW_WNDHOOK

;.if lProc == 0

;===========================================================
;invoke MessageBox,NULL,addr Msg1,NULL,MB_OK
;===========================================================

mov eax,lParam
mov lRetn,eax

mov eax,wParam
mov lhWnd,eax

;===========================================================
;invoke wsprintf,addr buffer,addr Template,lRetn
;invoke MessageBox,NULL,addr buffer,NULL,MB_OK
;===========================================================

invoke GetWindowLong,wParam,GWL_WNDPROC
mov lProc,eax

invoke SetWindowLong,wParam,GWL_WNDPROC,addr HookProc

;.else
; xor eax,eax
;.endif

ret

.elseif uMsg == MW_WNDUNHK

;.if lProc == 0
; xor eax,eax
;.else

;===========================================================
;invoke MessageBox,NULL,addr Msg2,NULL,MB_OK
;===========================================================
invoke SetWindowLong,lhWnd,GWL_WNDPROC,lProc
mov eax,1

;.endif

ret

.else
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret

.endif

xor eax,eax
ret
WndProc endp

HookProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
invoke CallWindowProc,lProc,hWnd,uMsg,wParam,lParam
;--------------------------------------------------
ret
HookProc endp

End LibMain

Pour ce qui est de la livrer sous forme de data c'est un choix purement personnel car j'ai horreur de trimballer plein de
dll, ocx etc.. donc la je suis au moin sur de sa presence

@+
Kalistor Messages postés 4 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 1 juin 2004
15 janv. 2004 à 10:22
Joli prog ! ya pas, tu maitrises le Win32.

Juste une remarque : je n'ai pas trouvé le code de la DLL injectée (EBSCLS32.DLL) Ou bien je ne l'ai pas vu ?

Et une question : pourquoi livrer cette DLL sous forme de DATA dans un fichier ressource ? c'était pas plus simple de nous livrer directement la dll ?
Sinon, merci pour ce bout de code, il est tres interessant.
PS : si tu pouvais publier le code de EBSCLS32 ce serait bien !
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
14 janv. 2004 à 17:46
Renfield>Bah quoi ? tu veus un convertisseur EURO/FRANCS ?
j'ai quand meme une grosse chute de tension la ... ouf
je pond que des daubes en ce moment !

BruNews>Aller demain je me met a .NET ! Naaaaan je rigole

Afyn> J'ai debuté avec le GFA Basic sur 1040 ! lol ;-)
(ça fait plein de point commun mine de rien)
J'ai bien reçu ton ZIP et j'en suis encore tout chambouler
je trouve ton interface midi avec la grille et les accord de
gratte terrible !

Mais je me suis pas encore attaqué au code si tu veus
que je regarde un point precis envoi moi un msg

@+
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
14 janv. 2004 à 17:37
Moi qui vient de l'ATARI et qui a passé 10 ans sans programmer, j'aimerai bien un petit tutorial sur le Sub Classing. Pas que j'aspire à devenir un dieux comme EB, Renfield et autres pointures du site, mais pour ne pas rester trop à la traine. J'imagine assez que l'on capture les évenements destinés aux fenetres des applis (je fait un parallele avec le GEM sur ATARI ?) et qu'il y a des avantages par rapports aux évenements que l'on peut capturer avec VB (en fait on doit pouvoir tous les lires et les traiter de la façon Ki va bien)
Savez tu Mister EB que le petit symbole /|\ que tu utilises parfois est le symbole d'ATARI ?
Noblesse oblige de rendre aux anciens les merveilles dont ils nous ont fait hériter (encore un terme informatique).
(PS tu as reçu mon ZIP?)

A+

Afyn - NAVEDAC
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 janv. 2004 à 15:18
Turbo Basic++ a encore frappe.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 janv. 2004 à 08:39
Vous inquietez par pour l'interêt de la chose, EBArtSoft n'est pas du genre à nous pondre un convertisseur Francs/Euros...

Bien que n'ayant pas eu le loisir de telecharger encore le Zip, je suis sur que l'on se trouve fasse à du travail de qualité.

Cela peut permettre pas mal de choses, mais bon, encore faut-il avoir ne serais-ce qu'une idée de ce qu'est le SubClassing...

Cela peut être notament utile pour tout ce qui est KeyLogger.... (on en vois pas mal par moments sur le site).
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
14 janv. 2004 à 08:20
Désolé pour le zip je ne sait pas pk il n'est pas passé la premiere
fois pourtant je telecharge tjrs ma source pour tester et ça avais
bien marché... bizzard ?

Quand à l'interet de la source... je cros que c'est tellement
evident que des fois je me demande bien a qui je m'adresse...

bref on a peut etre pas les memes centres d'interet

@+
carlvb Messages postés 199 Date d'inscription mercredi 23 avril 2003 Statut Contributeur Dernière intervention 25 mai 2017 11
14 janv. 2004 à 08:18
Effectivement il semblerait que le zip manque.
Lavieillefolle Messages postés 23 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 12 avril 2004
14 janv. 2004 à 02:53
L'intéret que je peut imaginer serais que si ton programme appel d'autres programmes nem c plus intéressant pour l'utilisateur.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 janv. 2004 à 01:06
EB, tu as oublié le ZIP...
shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007
14 janv. 2004 à 00:43
juste une question : quel interet de subclasser une fenetre d'un autre programme ?
Rejoignez-nous