begin process at 2008 05 16 08:34:29
1 173 235 membres
76 nouveaux aujourd'hui
13 970 membres club

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 !

2910 commentaire(s) de Renfield sur des sources sur tout CodeS-SourceS

Le : 15/05/2008 11:05:57
Source : ERYSOKO_3D (1/2)CÉLÈBRE JEU DE SOKOBAN EN 3D
En te contentant de virer quelques fichiers midi, ton zip passait sous la barre des 1Mo (taille limite des fichiers)




Le : 15/05/2008 07:39:26
Source : MATRICE CREUSE
conio...

pour manipuler la console (couleur, deplacer le curseur, etc)


Le : 14/05/2008 14:51:25
Source : MIDDLEBUTTON COPYPASTE [ADDIN VB6]
à regarder via GetWindowClass


Le : 14/05/2008 10:26:19
Source : ENREGISTRER DANS UN FICHIER TEXTE AVEC L'AIDE D'UN EXE
tu semble pouvoir lancer des appels externes...
ne peux tu pas transmettre le texte a sauvegarder en passant par les parametres de ligne commande ?


Le : 14/05/2008 09:53:19
Source : ENREGISTRER DANS UN FICHIER TEXTE AVEC L'AIDE D'UN EXE
en tant qu'utilisateur, je n'aime pas qu'on force mes parametres ni qu'on ne les prend pas en charge. Ce qui m'agace le plus, c'est qu'une appli se permette de vider mon presse papier et d'en disposer comme il l'entend...




Le : 14/05/2008 09:18:39
Source : ENREGISTRER DANS UN FICHIER TEXTE AVEC L'AIDE D'UN EXE
assez crade, non, de passer par le presse papier ?

(et donc d'en virer le contenu)


Le : 13/05/2008 12:22:22
Source : CONTRÔLER LA SAISIE D'UN E-MAIL
False, valeur par default de la variable automatique, crée puor stocker le retour de la fonction. elle ne conserve pas sa valeur d'un appel a l'autre (même si appels recursifs)

pos_arobase2 inutile... fais un If Instr...




Le : 13/05/2008 10:38:03
Source : CONTRÔLER LA SAISIE D'UN E-MAIL
Dim pos_point, pos_point2, pos_arobase, pos_arobase2 As Integer
pos_point, pos_point2, pos_arobase  sont des Variant, ici


mailvalide = False  
pas besoin d'initialiser, c'est la valeur par defaut d'un boolean

i est non déclaré (pense a jouer avec Option Explicit)

Mid(email, Len(email), 1)  => fonction Right

InStr(1, CarAutorise, LCase(Mid(email, i, 1)))
pas de LCase a faire dans ce genre de choses... Instr permet de spécifier vbTextCompare comme dernier argument




Le : 12/05/2008 07:01:05
Source : MIDDLEBUTTON COPYPASTE [ADDIN VB6]
depend de la fenetre en question. Pour ne pas subir de limitations, un hook WH_CBT peut surement faire l'affaire.

quand tu selectionne un element de la liste "Explorateur de projet" => ItemSelected

lorsque tu actives une nouvelle fenetre (Form1 (Code) / Form1 ...) => ItemActivated


Le : 09/05/2008 10:36:06
Source : MIDDLEBUTTON COPYPASTE [ADDIN VB6]
a améliorer, mais la base est là... (a toi de modifier pour gérer le SDI)

Sub HookWindow(ByRef voComponent As VBComponent)
Dim hMdiWnd As Long
    '# On cherche la fenetre MDI
    hMdiWnd = FindWindowEx(VBInstance.MainWindow.hwnd, 0, WNDNAME, vbNullString)
    '# Et la fenetre de code courante
    mhWnd = FindWindowEx(hMdiWnd, 0, "VbaWindow", voComponent.CodeModule.CodePane.Window.Caption)

    If mhWnd Then
        mhProc = SetWindowLong(mhWnd, GWL_WNDPROC, AddressOf WindowProc)
    End If
End Sub


et donc :
Private Sub CmpHandler_ItemActivated(ByVal VBComponent As VBIDE.VBComponent)
    UnhookWindow
    HookWindow VBComponent
End Sub

Private Sub CmpHandler_ItemSelected(ByVal VBComponent As VBIDE.VBComponent)
    UnhookWindow
    HookWindow VBComponent
End Sub


ainsi, on hook la fenetre, et non la MDI

Option Explicit

Private Const GWL_WNDPROC           As Long = (-4)
Private Const WM_KILLFOCUS          As Long = &H8
Private Const WM_LBUTTONDOWN As Long = &H201
Private Const WM_LBUTTONUP As Long = &H202
Private Const WM_MBUTTONDOWN As Long = &H207

Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public VBInstance   As VBIDE.VBE
Private mhWnd As Long
Private mhProc As Long

Public Sub HookWindow(ByRef voComponent As VBComponent)
Dim hMdiWnd As Long
    '# On cherche la fenetre MDI
    hMdiWnd = FindWindowEx(VBInstance.MainWindow.hwnd, 0, WNDNAME, vbNullString)
    '# Et la fenetre de code courante
    mhWnd = FindWindowEx(hMdiWnd, 0, "VbaWindow", voComponent.CodeModule.CodePane.Window.Caption)

    If mhWnd Then
        mhProc = SetWindowLong(mhWnd, GWL_WNDPROC, AddressOf WindowProc)
    End If
End Sub

Public Sub UnhookWindow()
    If mhWnd Then
        SetWindowLong mhWnd, GWL_WNDPROC, mhProc
        mhWnd = 0
    End If
End Sub

Private Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim nStartLine As Long
Dim nStartColumn As Long
Dim nEndLine As Long
Dim nEndColumn As Long
Dim nSelLine As Long
Dim nSelColumn As Long
Dim sBuffer As String
Dim sClipboard As String
Dim nPos As Long
    Select Case uMsg
        Case WM_MBUTTONDOWN
            With VBInstance.ActiveCodePane
                '# on récupère la selection (coordonnées)
                .GetSelection nStartLine, nStartColumn, nEndLine, nEndColumn
                '# Les lignes de code contenant le texte séléctionné
                sBuffer = .CodeModule.Lines(nStartLine, nEndLine - nStartLine + 1)
                '# On découpe en fonction des colonnes
                If nEndLine <> nStartLine Then
                    nPos = InStrRev(sBuffer, vbNewLine)
                    sClipboard = Mid$(sBuffer, nStartColumn, nPos + 1 - nStartColumn + nEndColumn)
                Else
                    sClipboard = Mid$(sBuffer, nStartColumn, nEndColumn - nStartColumn)
                End If
                '# On transmet le click gauche a la fenetre de code, aux mêmes coordonnées
                WindowProc = CallWindowProc(mhProc, hwnd, WM_LBUTTONDOWN, wParam, lParam)
                '# Relache le bouton
                CallWindowProc mhProc, hwnd, WM_LBUTTONUP, wParam, lParam
                
                '# On récupère les coordonnées de l'insertion
                .GetSelection nSelLine, nSelColumn, nPos, nPos
                
                '# On récupère la ligne contenant le curseur de saisie
                sBuffer = .CodeModule.Lines(nSelLine, 1)
                '# On supprime cette ligne
                .CodeModule.DeleteLines nSelLine
                '# Et on la remplace avec notre version (potentiellement multi-lignes)
                .CodeModule.InsertLines nSelLine, Left$(sBuffer, nSelColumn - 1) & sClipboard & Mid$(sBuffer, nSelColumn)
                
                '# Et justement ; si multiligne et placée en amont de notre selection initiale,
                If nEndLine <> nStartLine And nSelLine < nStartLine Then
                    '# On décale celle-ci
                    nPos = nEndLine - nStartLine
                    nStartLine = nStartLine + nPos
                    nEndLine = nEndLine + nPos
                End If
                
                '# Et on reselectionne notre texte de départ
                .SetSelection nStartLine, nStartColumn, nEndLine, nEndColumn
            End With
        Case Else
            WindowProc = CallWindowProc(mhProc, hwnd, uMsg, wParam, lParam)
    End Select
End Function




Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS