Les Snippets

Connexion

Envoyer une chaîne vers notepad sans enregistrement de fichier

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 24/09/2008 15:05:08 et initié par Exploreur [Liste]
Date de mise à jour : 24/09/2008 15:13:14
Vue : 2877
Catégorie(s) : API
Langages dispo pour ce code :
- VB6, VBA



Langage : VB6 , VBA
Date ajout : 24/09/2008
Posté par Exploreur [Liste]
DateMAJ : 24/09/2008
Private Const WM_SETTEXT    As Long &HC&
Private Const WM_CLOSE      As Long &H10&
Private Const HTCAPTION     As Long 2&
' API : retourne le handle d'une sous-fenêtre depuis le handle  d'une fenêtre parente
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWndParent As LongByVal hwndChildAfter As Long, ByVal lpszClass As String, ByVal lpszWindow As String) As Long
' API : envoie un message à  un handle (fenêtre ou system)
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As LongByVal Msg As Long, wParam As Any, lParam As Any) As  Long
' API : change le texte d'une fenêtre  identifiée par son handle
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As LongByVal lpString As String) As Long
'
Public Function SendTextToNotepad(ByVal sString As String, Optional ByVal vsTitle As Variant) As Boolean
' sString   -> chaîne à transmettre à notepad
' vsTitle   -> chaîne optionnelle pour personnaliser le caption  de notepad
' retourne l'état de  réussite
' *nécessite la fonction 'InstanceToWnd'  disponible ici :  http://www.codyx.org/snippet_recuperer-hwnd-handle-partir-pid-process-id_451.aspx#1462
'   lance notepad
    Dim lPID As Long
    lPID = Shell("notepad.exe", vbNormalFocus)
    DoEvents
    
    If lPID Then
'       récupère le handle du notepad  ouvert
        Dim nhWnd As Long
        nhWnd = InstanceToWnd(lPID)
        
        If nhWnd Then
'           récupère le handle  de la zone de texte du notepad
            Dim thWnd As Long
            thWnd = FindWindowEx(nhWnd, 0&, "Edit", vbNullString)
            
            If thWnd Then
'               envoie le texte  dans la zone de texte
                If SendMessage(thWnd, WM_SETTEXT,  ByVal 0&, ByVal sString) Then
'                   réussite, on personalise le  titre
                    SendTextToNotepad = True
                    If Not IsMissing(vsTitle) Then
                        If VarType(vsTitle) = vbString Then Call  SetWindowText(nhWnd, CStr(vsTitle))
                    End If
                Else
'                   échec de  l'envoi, on ne laisse pas la fenêtre vide  ouverte
                    Call SendMessage(nhWnd, WM_CLOSE, ByVal  HTCAPTION, ByVal  vbNullString)
                End If
            End If
        End If
    End If
End Function


' ------------------------ ' 3 EXEMPLES D'UTILISATION ' ------------------------ Private Sub Command1_Click() '   va ouvrir 3 "nouveaux documents notepad non-enregistrés", et y mettre : '   1 : une chaine en paramètre (exemple VB6 et VBA)     If Not SendTextToNotepad("je suis un texte" & vbCrLf & "multiligne non enregistré. " & _                              "Une aide sur une méthode par exemple...""'Developed By Exploreur'"Then _         MsgBox "Echec de l'envoi du texte vers notepad" '   2 : le contenu du presse-papier, s'il y a (exemple VB6 uniquement)     If Clipboard.GetFormat(vbCFText) Then SendTextToNotepad Clipboard.GetText '   3 : le listing des DLL présentes dans SYSTEM32 (exemple VB6 et VBA nécessitant OS Win2000 ou supp)     Dim asRet() As String, sPath As String     sPath = Environ$("WINDIR") & "\system32\"     'http://www.codyx.org/snippet_lister-tous-fichiers-repertoire_198.aspx#688     If GetFilesPathFromDirectory(sPath, asRet, "*.dll") > -1 Then SendTextToNotepad Join(asRet, vbCrLf), "Listing des DLL"     Erase asRet      End Sub

Snippets en rapport avec : Send, Api, Hwnd, Notepad, Pid



Codes sources en rapport avec : Send, Api, Hwnd, Notepad, Pid

{Visual Basic, VB6, VB.NET, VB 2005} TUER UNE/DES SESSION(S) CACHÉE(S) D'EXCEL À PARTIR D'UNE AUTRE SESSION
Cette source(fichier excel) permet d'arreter une ou plusieurs session excel caché et ce a partir d'u...

{Visual Basic, VB6, VB.NET, VB 2005} UTILISATION DE L' API GOOGLE YOUTUBE RECHERCHER ET LIRE DES VIDÉOS
Dans ce tutoriel nous allons voir comment utiliser l'Api google Youtube pour rechercher et afficher ...

{C / C++ / C++.NET} CALENDRIER (WIN64)
Un calendrier pour Windows x64. Pur C et ASM, frénétiquement CLASSieux et antiGOTO passent leur che...

{Visual Basic, VB6, VB.NET, VB 2005} DIRECTDISKACCESS
Petite classe d'accès direct au disque L'exemple fonctionne en projet type console avec une présent...

{Visual Basic, VB6, VB.NET, VB 2005} UNE HORLOGE DANS LA BARRE D'OUTIL D'EXCEL, COMME EXEMPLE DE L'UTILISATION DE LA PROPRIÉTE "ISADDIN"
Bonjour, ici l'interet n'est pas dans l'horloge en elle même mais dans l'utilisation de la propré...

{Visual Basic, VB6, VB.NET, VB 2005} VEROUX PC AVEC API
Quelques commandes utiles pour bloquer et débloquer certaines fonctions avec des Api... En souvenir...

{PHP} API LDAP POO PHP5 (ENCAPSULATION DE L'API LDAP DE PHP)
C'est une API PHP5 qui encapsule entièrement le module LDAP de PHP afin de faciliter son utilisation...

{Visual Basic, VB6, VB.NET, VB 2005} JEU DE LA ROUE DE LA CHANCE
Jeu élaboré en VB6 et directx8 , avec direct3d. Utilisation de quelques API Windows( pour les sons ...

{JAVA / J2EE} [ANDROID] FAITES PARLER VOTRE NABAZTAG
Voici un petit exemple de l'utilisation du DocumentBuilder et du HttpClient contenu dans le framewor...

{C# / C#.NET} WRAPPER COMPLET SUR L'API DE BIOMÉTRIE DE WINDOWS 7
Dans la continuité des nouvelles API de Windows 7 avec l'API VHD (http://www.csharpfr.com/codes/UTIL...