Probleme fermeture de prog kernel32

Résolu
Signaler
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008
-
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008
-
bonjour,
voila j'ai une appli qui a une croix et qui se met dans le systray.

j'ai fais un sub qui s'appelle Fermer quand je click sur la croix j'appelle la fonction Fermer (qui demande si l'utilisateur veut saver les changement etc des textbox de la form1 ) quand je passe par la croix (croix graphique car j'ai fais ma propre barre j'ai border none) aucun probleme ...

dans la croix j'ai comme code :

Systray.intray = False
Fermer

dans le systray click droit j'ai un menu appeler Mnu_Exit avec caption Exit quand je click dessus je lui dit :

Form1.Visible = True
Call Fermer
Systray.intray = False

quand je click sur la croix tt va bien mais si je click sur exit du systray (en sachant que avant de clicker la Form1 est pas visible) bah il met une erreur Kernel32
Cependant ... cette erreur n'arrive que chez les autres car chez moi ca fonctionne sans probleme fermeture via croix comme via systray ...

donc voila mes questions :

Pourquoi l'erreur ne viens que chez les autres ?
Pourquoi Kernel32 et pas un autre ?
Comment regler ca ?

Bien a vous
Diablaman

6 réponses

Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008

bon moi qui suis un barbare nés j'ai trouver la solution je recapitule :

• j'ai virer la sub Fermer et mis le system de save independament
• J'ai renommer la variable qui etais double
• Dans le bouton croix j'ai mis un end
• Dans le mnu_exit j'ai mis a la place de end et unload :
   Shell "tskill Proxy-Diablaman"
• Ajout d'un msgbox a l'entree du prog pour prevennir l'utilisateur que s'il ne possede
   pas winxp il devras fermer via la croix et non le bouton exit sous peine de buger le
   logiciel ou de ne pouvoir le fermer

•• Prochainement : option de mise au demarage automatique de windows
                             System de skin (le graphisme me tape sur les nerf a force de le voir
                             voir pour tester ^^)
                              
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
salut,
trop peu d'infos, on ne sait rien de ta cls ou ctl systray (donc ni des éventuelles API Kernel qu'il peut appeler/déclarer).

à part çà tu as (click croix) :
Systray.intray = False
Fermer

pourquoi l'inverse en click menu?
"pire" : pourquoi le click menu n'appelle pas le unload (appelant lui le femer)

bref, précise stp
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008

pour les declaration il utilise en rapport du kernel les api :

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)4

le cls etc pour le systray viens de la :

http://www.vbfrance.com/article.aspx?ID=8564

sinon a pars pourquoi pas unload car le menu exit comme la croix ferme le logiciel et je demande a l'utilisateur s'il veut saver les changement et a la fin de ca je met end , pourquoi end ? car unload ne fais que decharger alors que end ferme , un unload laisse le processus ouvert alors que end non ^^ et comme a l'ouverture de l'appli j'ai un previnstance ... ^^

enfin voila s'il faut des info supp suffit de demander ^^
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
ton problème vient peut-être du end justement... ou d'ailleurs (facile comme réponse me diras-tu)

en tout cas END est à banir!!
end c'est en bouton STOP de l'IDE. kil ne décharge rien (et surement pas l'ocx).

fait le test sur une énorme boucle et/ou timer avec END, l'appli sera fermée mais le proc continuera à tourner....

bref çà ne change en rien ma question de :

click_fermer ->
action 1
action 2

click_menu ->
action 2
action 1

si correction :
action 1
action 2
pourquoi pas call click_fermer

ps : aucun rapport avec le previnstance.

plus d'infos? beh oui volontier  au moins pour répondre à mes questions
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008

voila se qu'affiche le rapport (vu que chez moi sa foire pas j'ai demander a mon testeur qui me copie colle

AppName: proxy diablaman exit.exe AppVer: 1.0.0.0 ModName: kernel32.dll
ModVer: 5.1.2600.2945 Offset: 00012a5b

je sais pas si sa peut aider bon je v tester avec unload ...
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008

voila j'ai trouver ce que c'etais ^^
Dim MSG etais declarer deja dans Fermer et j'ai fais Dim MSG dans le bouton donc deux declaration identique a fait foirer mais la question reste qu'est ce que sa avoir avec le kernel32 :?

sinon j'ai fais unload me pour fermer a la place de end ...
unload = reste dans le process
end = sa se vire ...
sauf que apres pas mal de test je vois que si je met end a la croix et au mnu_exit sa foire mais si je met end a la croix et unload me au systray alors la sa va ... sauf que le probleme ses que comme dire ... si je quitte via systray je pourrais pas rouvrir le prog  vu que avec unload y reste en processus et que j'ai un previnstance je peux plus rouvrir le prog donc comment faire ?

je me demandais aussi pourquoi mon prog qui pese 200 ko a tt casser fait + de 6mo dans les process en utilisation memoire ... ?

quand j'unload (fermer via systray car le sys veut pas du end comme la croix chez pas pourquoi) il descend de +- 6mo500ko de memoire utiliser a +- 150ko :s
le probleme est juste que la croix donc la form accepte le end mais le systray veut pas du end il veut juste l'unload se qui fait que avec la previnstance on peut pas rouvrir le prog et de plus il reste dans les processus