Trois "tutorials" (ctrl_alt_suppr;loadrespicture;fichier aide)

Soyez le premier à donner votre avis sur cette source.

Vue 4 967 fois - Téléchargée 427 fois

Description

[vb 5.0]
Programme en relation avec mon Programme Big Brother. C'est le dernier opus normalement.

Il explique :
- Comment cacher l'application de la fenêtre Ctrl Alt Suppr
- Comment utiliser la méthode peux utiliser LoadResPicture
- Comment charger un fichier d'aide depuis un programme vb

Pour Ctrl + alt + suppr, cela ne marche pas sous Win2000 et XP.

Je ne suis pas fan de ce genre de programme car c'est plus pour faire le malin d'avoir 30 source sur le site que d'avoir fait avancer la programmation. Il y a déja des sources similaires mais je me suis fait un devoir d'expliquer correctement et en ajoutant des astuces non encore publiées.

Source / Exemple :


Il vous faut : 1 form(Form1), 1 picturebox assez grande pour contenir l'image que vous voulez(Picture1), 4 boutons (1 pour cacher le prog de Ctrl_alt_del, 1 pour le remettre, 1 pour charger l'image, 1 pour charger le fichier d'aide)

Option Explicit
'Fonction qui permet soit d'enregistrer un process ou de ne pas
'l'enregistrer. Si il ne l'est pas, il n'apparait pas dans
'la fenêtre Ctrl + Alt + del. Cette fonction à 2 arguments :
' - dwProcessID c'est le process que l'on veut enregistrer. (on
'le connait grace à la fonction GetCurrentProcessId.
' - dwType c'est le mode d'enregistrement -> VISIBLE ou NON
'VISIBLE est égal à 0 et l'autre à 1. Vous pouvez
'éclaircir votre code en définnisant 2 constantes : une de nom
'"ctrl_alt_del_visible" qui est égal à 0 (visible) et
'"ctrl_alt_del_hidden" qui est égal à 1 (cachée)
Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long

'Fonction qui recupere l'ID du processus actuel
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long

'Fonction qui permet d'afficher un fichier d'aide chm (HTML).
'Elle nécéssite 4 arguments :
' - hwndcaller Le handle de la fenêtre qui appelle, dans le but
'd'obliger la fenêtre d'aide à être sur celle ci. Si c'est 0
'alors la fenêtre ne sera pas dessus son appellante.
' - pszfile Adresse du fichier à afficher
' - uCommand Ce qui doit être affiché. C'est directement relié
'à la façon dont est fait le fichier d'aide. Exemple :
'HH_DISPLAY_TOPIC qui affiche le Topic définit comme 1er.
' - dwData Le reste de l'argument ci dessus, mais dans notre
'exemple il sera égal à 0 car nous n'en n'avons pas besoin.
Private Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal hwndCaller As Long, ByVal pszFile As String, ByVal uCommand As Long, ByVal dwData As Long) As Long

'Constante qui affiche le topic définit comme 1er.
Const HH_DISPLAY_TOPIC = &H0

-----------------------------------------------------------------

Private Sub Command1_Click()
    'Si on arrive a caché le process on affiche un résultat
    'positif, sinon négatif
    If RegisterServiceProcess(GetCurrentProcessId, 1) Then
    MsgBox "Programme caché de Ctrl + alt + suppr !", vbInformation + vbOKOnly, "Info"
    Else: MsgBox "Erreur !", vbCritical + vbOKOnly, "Erreur"
    End If
End Sub

-----------------------------------------------------------------

Private Sub Command2_Click()
    'Si on arrive a rendre visible le process on affiche un
    'résultat positif, sinon négatif.
    If RegisterServiceProcess(GetCurrentProcessId, 0) Then
    MsgBox "Programme voyant en faisant Ctrl + alt + suppr !", vbInformation + vbOKOnly, "Info"
    Else: MsgBox "Erreur !", vbCritical + vbOKOnly, "Erreur"
    End If
End Sub

-----------------------------------------------------------------

Private Sub Command3_Click()
    'Petite technique pour charger une image bitmap, un icone,
    'un cursor : LoadResPicture. Technique peut souvent utiliser
    'et pourtant nombreux en sont ses avantages : rapidité,
    'prise mémoire faible, délai plus long pour un utilisateur
    'avant qu'il puisse vous voler vos images (nécéssite l'aide
    'de programmes)etc...
    'Cette fonction permet de charger votre image depuis un
    'fichier ressource compilé et ajouté au projet.
    
    
    'Je cite l'aide de VB sur cette fonction :
    
    '"Vous pouvez utiliser la fonction LoadResPicture au lieu
    'de faire référence à des graphiques stockés dans la
    'propriété Picture d'un objet Form ou à des contrôles.
    'Le fait de stocker des images bitmap, des icônes ou des
    'curseurs dans des fichiers de ressources pour y accéder
    'ensuite permet de diminuer le temps de chargement car il
    'est ainsi possible de les charger individuellement selon
    'les besoins, plutôt que de les charger tous, en même temps
    'qu'un objet Form.
    'La fonction LoadResPicture est particulièrement utile
    'pour localiser une application Visual Basic ; en effet,
    'les ressources qui doivent être traduites sont isolées
    'dans un fichier de ressources et il n'est pas nécessaire
    'd'accéder au code source ou de recompiler l'application."
    
    'Pour créer un fichier ressource, aidez vous des indications
    'dans le fichier zip.
    
    'La fonction charge le fichier avec son ID et son type :
    ' 0 - bitmap    1 - icone    2 - curseur
    'Ici, l'ID que j'ai utilisé est 1.
    
    'Le fichier avant compilation ressemble à ça :
    
    '1 ICON "C:\Windowz\Bureau\mybmp.bmp"
    Picture1.Picture = LoadResPicture(1, 0)
End Sub

-----------------------------------------------------------------

Private Sub Command4_Click()
Dim afficheraide As Long
    'Appel de la fonction : le fichier aide est positionné au
    'dessus de la fenêtre via le handle de celle ci, affiche
    'le fichier helpfile.chm et son topic définit comme 1er.
    afficheraide = HtmlHelp(hWnd, App.Path & "\Helpfile.chm", HH_DISPLAY_TOPIC, 0)
End Sub

Conclusion :


Toujours en espérant que ça aide !

Si vous avez un problême, un bug, une suggestion, une question : commentez

http://www.kephren.fr.fm/

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_merline
Messages postés
22
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
25 juillet 2003
-
alors ça on est gatés par les commentaires ! c vraiment bien
kaitoq
Messages postés
3
Date d'inscription
samedi 23 août 2003
Statut
Membre
Dernière intervention
24 août 2003
-
RegisterServiceProcess
kaitoq
Messages postés
3
Date d'inscription
samedi 23 août 2003
Statut
Membre
Dernière intervention
24 août 2003
-
En effet félicitations pour les commentaires, C tellement rare dans certain code
Je tiens à présicer que sous 2K/XP la fonction 'RegisterServiceProcess'
n'existe pas dans la dll 'kernel32'
cs_clementpat
Messages postés
406
Date d'inscription
lundi 2 décembre 2002
Statut
Membre
Dernière intervention
25 janvier 2014
-
impeccable , bravo pour les explications , completes .
MadM@tt
Messages postés
2215
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Merci, c'est nickel et super clair...
@ +

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.