All the subjects will be grouped (about 10-15 per page) for an easy download and update.
How to ...
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long Public Function GetShortPath(filespec) As String Dim lpath As String, spath As String Dim lspath As Long, ccode As Long lspath = 256 GetShortPath = Space(lspath) GetShortPathName filespec, GetShortPath, lspath GetShortPath = Left(Trim(GetShortPath), Len(Trim(GetShortPath)) - 1) End Function
Public Const CREATE_NEW_CONSOLE = &H10 Public Const CREATE_NEW_PROCESS_GROUP = &H200 Public Const CREATE_NO_WINDOW = &H8000000 Public Const CREATE_SUSPENDED = &H4 Public Const CREATE_UNICODE_ENVIRONMENT = &H400 Public Const CREATE_SEPARATE_WOW_VDM = &H800 Public Const CREATE_SHARED_WOW_VDM = &H1000 Public Const CREATE_FORCEDOS = &H2000 Public Const CREATE_DEFAULT_ERROR_MODE = &H4000000 'Public Const CREATE_NO_WINDOW = &H8000000 Public Const DETACHED_PROCESS = &H8 Public Const DEBUG_PROCESS = &H1 Public Const DEBUG_ONLY_THIS_PROCESS = &H2 Public Const NORMAL_PRIORITY_CLASS = &H20 Public Const IDLE_PRIORITY_CLASS = &H40 Public Const HIGH_PRIORITY_CLASS = &H80 Public Const REALTIME_PRIORITY_CLASS = &H100 Public Const STATUS_PENDING = &H103 Public Const STILL_ACTIVE = STATUS_PENDING Public Type SECURITY_ATTRIBUTES nLength As Long lpSecurityDescriptor As Long bInheritHandle As Long End Type Public Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Long hStdInput As Long hStdOutput As Long hStdError As Long End Type Public Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessId As Long dwThreadId As Long End Type Public Declare Function CreateProcess Lib "kernel32" Alias _ "CreateProcessA" (ByVal lpApplicationName As String, ByVal _ lpCommandLine As String, lpProcessAttributes As Any, _ lpThreadAttributes As Any, ByVal bInheritHandles As Long, _ ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal _ lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, _ lpProcessInformation As PROCESS_INFORMATION) As Long Public Declare Function GetExitCodeProcess Lib "kernel32" ( _ ByVal hProcess As Long, _ ByRef lpExitCode As Long _ ) As Long Public Declare Sub Sleep Lib "kernel32" ( _ ByVal dwMilliseconds As Long) Public Sub RunApp(AppName As String) Dim ExitCode As Long Dim sNull As String Dim lpProcessAttributes As SECURITY_ATTRIBUTES Dim lpThreadAttributes As SECURITY_ATTRIBUTES Dim lpEnvironment As Variant Dim lpStartupInfo As STARTUPINFO Dim lpProcessInformation As PROCESS_INFORMATION 'initialization of variables lpProcessAttributes.bInheritHandle = 0 lpProcessAttributes.lpSecurityDescriptor = 0 lpProcessAttributes.nLength = Len(lpProcessAttributes) lpThreadAttributes.bInheritHandle = 0 lpThreadAttributes.lpSecurityDescriptor = 0 lpThreadAttributes.nLength = Len(lpProcessAttributes) lpStartupInfo.cb = Len(lpStartupInfo) 'lpStartupInfo.dwFlags = STARTF_USESHOWWINDOW 'lpStartupInfo.wShowWindow = SW_SHOWDEFAULT lpStartupInfo.lpDesktop = "" lpStartupInfo.cbReserved2 = 0 lpStartupInfo.lpReserved = "" lpStartupInfo.lpTitle = "" lpStartupInfo.lpReserved2 = 0 CreateProcess sNull, AppName, lpProcessAttributes, lpThreadAttributes, _ vbNull, NORMAL_PRIORITY_CLASS, ByVal 0&, sNull, lpStartupInfo, lpProcessInformation GetExitCodeProcess lpProcessInformation.hProcess, ExitCode While ExitCode <> 0 GetExitCodeProcess lpProcessInformation.hProcess, ExitCode DoEvents 'don't forget, you're not the only one in the world Sleep 2000 Wend End Sub
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const CB_FINDSTRING = &H14C Private Const CB_FINDSTRINGEXACT = &H158 Private Const LB_FINDSTRING = &H18F Private Const LB_FINDSTRINGEXACT = &H1A2 Public Function FFM(ByVal ctlSearch As Control, ByVal SearchString As String, ByVal FirstRow As Integer, ByVal Exact As Boolean) As Integer Dim Index As Long On Error Resume Next If TypeOf ctlSearch Is ComboBox Then If Exact Then Index = SendMessage(ctlSearch.hWnd, CB_FINDSTRINGEXACT, FirstRow, ByVal SearchString) Else Index = SendMessage(ctlSearch.hWnd, CB_FINDSTRING, FirstRow, ByVal SearchString) End If ElseIf TypeOf ctlSearch Is ListBox Then If Exact Then Index = SendMessage(ctlSearch.hWnd, LB_FINDSTRINGEXACT, FirstRow, ByVal SearchString) Else Index = SendMessage(ctlSearch.hWnd, LB_FINDSTRING, FirstRow, ByVal SearchString) End If End If FFM = Index End FunctionUsing
List1.ListIndex = FFM(List1, text_de_cautat, -1, True)
Combo1.ListIndex = FFM(Combo1, text_de_cautat, -1, True)
Private Declare Function ShellExecuteEx Lib "shell32.dll" Alias "ShellExecuteExA" (shInfo As SHELLEXECUTEINFO) As Long Private Type SHELLEXECUTEINFO cbSize As Long fMask As Long hwnd As Long lpVerb As String lpFile As String lpParameters As String lpDirectory As String nShow As Long hInstApp As Long ' Optional fields lpIDList As Long lpClass As String hkeyClass As Long dwHotKey As Long hIcon As Long hProcess As Long End Type Dim s As SHELLEXECUTEINFO Private Const SEE_MASK_FLAG_NO_UI = &H400 Private Const SEE_MASK_NOCLOSEPROCESS = &H40 Private Const SEE_MASK_INVOKEIDLIST = &HC Private Sub cmdProperties_Click() s.cbSize = Len(s) s.fMask = SEE_MASK_NOCLOSEPROCESS Or SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI s.hwnd = Me.hwnd s.lpVerb = "Properties" s.lpFile = txtFile.Text s.lpParameters = Chr(0) s.lpDirectory = Chr(0) s.nShow = 0 s.hInstApp = 0 s.lpIDList = 0 ShellExecuteEx s End Sub
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" = (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As = Any) As Long Public Const WM_SETREDRAW = &HB SendMessage Me.hwnd, WM_SETREDRAW, False, 0 ' Executa ceva... SendMessage Me.hwnd, WM_SETREDRAW, True, 0
VERSION 5.00 Begin VB.Form frmGhost Caption = "Ghost" ClientHeight = 2745 ClientLeft = 4350 ClientTop = 3285 ClientWidth = 4575 LinkTopic = "Form1" ScaleHeight = 2745 ScaleWidth = 4575 Begin VB.CommandButton btnExit Caption = "Exit" Height = 375 Left = 2520 TabIndex = 2 Top = 2280 Width = 1335 End Begin VB.CommandButton btnAction Caption = "Hide" Height = 375 Left = 720 TabIndex = 1 Top = 2280 Width = 1335 End Begin VB.ListBox lstApp Height = 2010 ItemData = "frmGhost.frx":0000 Left = 120 List = "frmGhost.frx":0002 TabIndex = 0 Top = 120 Width = 4335 End End Attribute VB_Name = "frmGhost" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Sub btnAction_Click() HideOrShow lstApp SetActionName btnAction, lstApp End Sub Private Sub btnExit_Click() Unload Me End Sub Private Sub Form_Load() RefreshAppList lstApp End Sub Private Sub lstApp_Click() SetActionName btnAction, lstApp End SubIn a module:
Attribute VB_Name = "Ghost"
Declare Function EnumWindows Lib "user32" (ByVal lpEnumWindows As Long, LParam As Any) As Boolean
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Boolean
Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Boolean
Function EnumWindowsProc(ByVal hWnd As Long, lstApp As ListBox) As Boolean
If GetParent(hWnd) = 0 And IsWindowVisible(hWnd) Then
Dim strAppName As String
strAppName = Space(256)
GetWindowText hWnd, strAppName, 256
strAppName = Left$(strAppName, InStr(strAppName, vbNullChar) - 1)
If strAppName <> "" And strAppName <> "Ghost" Then
lstApp.AddItem strAppName
lstApp.ItemData(lstApp.NewIndex) = hWnd
End If
End If
EnumWindowsProc = True
End Function
Public Sub RefreshAppList(lstApp As ListBox)
EnumWindows AddressOf EnumWindowsProc, lstApp
End Sub
Public Sub SetActionName(btnAction As CommandButton, lstApp As ListBox)
Dim hWnd As Long
hWnd = lstApp.ItemData(lstApp.ListIndex)
btnAction.Caption = IIf(IsWindowVisible(hWnd), "Hide", "Show")
End Sub
Public Sub HideOrShow(lstApp As ListBox)
Dim hWnd As Long, nCmdShow As Long
hWnd = lstApp.ItemData(lstApp.ListIndex)
nCmdShow = IIf(IsWindowVisible(hWnd), 0, 5)
ShowWindow hWnd, nCmdShow
End Sub
Private Declare Function strchr Lib "MSVCRT.dll" (ByVal sTarget$, ByVal nPattern&) As Long Sub Main() Dim i&, sTarget$, sPattern$, nTotalFound& sTarget = "PROGRAMMING" sPattern = "PRM" For i = 1 To Len(sPattern) If strchr(sTarget, Asc(Mid$(sPattern, i, 1))) Then nTotalFound = nTotalFound + 1 Next MsgBox CStr(nTotalFound) End Sub
Option Explicit Declare Function RegisterEventSource Lib "advapi32.dll" Alias _ "RegisterEventSourceA" (ByVal lpUNCServerName As String, _ ByVal lpSourceName As String) As Long Declare Function DeregisterEventSource Lib "advapi32.dll" ( _ ByVal hEventLog As Long) As Long Declare Function ReportEvent Lib "advapi32.dll" Alias _ "ReportEventA" (ByVal hEventLog As Long, ByVal wType As Integer, _ ByVal wCategory As Integer, ByVal dwEventID As Long, _ ByVal lpUserSid As Any, ByVal wNumStrings As Integer, _ ByVal dwDataSize As Long, plpStrings As Long, _ lpRawData As Any) As Boolean Declare Function GetLastError Lib "kernel32" () As Long Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _ hpvDest As Any, hpvSource As Any, _ ByVal cbCopy As Long) Declare Function GlobalAlloc Lib "kernel32" ( _ ByVal wFlags As Long, _ ByVal dwBytes As Long) As Long Declare Function GlobalFree Lib "kernel32" ( _ ByVal hMem As Long) As Long '-- Public Constants Public Const EVENTLOG_SUCCESS = 0 Public Const EVENTLOG_ERROR_TYPE = 1 Public Const EVENTLOG_WARNING_TYPE = 2 Public Const EVENTLOG_INFORMATION_TYPE = 4 Public Const EVENTLOG_AUDIT_SUCCESS = 8 Public Const EVENTLOG_AUDIT_FAILURE = 10 Public Function WriteToEventLog(sMessage As String, _ sSource As String, _ iLogType As Integer, _ vEventID As Integer) As Boolean Dim bRC As Boolean Dim iNumStrings As Integer Dim hEventLog As Long Dim hMsgs As Long Dim cbStringSize As Long Dim iEventID As Integer hEventLog = RegisterEventSource("", sSource) cbStringSize = Len(sMessage) + 1 hMsgs = GlobalAlloc(&H40, cbStringSize) CopyMemory ByVal hMsgs, ByVal sMessage, cbStringSize iNumStrings = 1 '-- ReportEvent returns 0 if failed, '-- Any other number indicates success If ReportEvent(hEventLog, _ iLogType, 0, _ iEventID, 0&, _ iNumStrings, cbStringSize, _ hMsgs, hMsgs) = 0 Then '-- Failed WriteToEventLog = False Else '-- Sucessful WriteToEventLog = True End If Call GlobalFree(hMsgs) DeregisterEventSource (hEventLog) End Function
App.LogEvent "Error No : " & vbCrLf & Err.Number & vbCrLf & "Source : " & vbCrLf & "[name of dll and message]" & Err.Source & vbCrLf & "Description :" & vbCrLf & Err.Description, vbLogEventTypeError
Private Sub LoadDatabases() Dim RDOConn As RDO.rdoConnection Dim rs As rdoResultset Dim sql As String On Error GoTo LoadDatabasesError Set RDOConn = New rdoConnection '--- handle errors locally With RDOConn .Connect = "SERVER=" & ServerName & ";UID=" & UserID & =";PWD=" & Password & ";DRIVER={SQL Server};DSN=;" .LoginTimeout = 5 .EstablishConnection End With cboDatabases.Clear sql = "select * " sql = sql & "from master.dbo.sysdatabases" Set rs = RDOConn.OpenResultset(sql) If rs.EOF Then cboDatabases.Enabled = False Else Do While Not rs.EOF cboDatabases.AddItem rs.rdoColumns(0).Value rs.MoveNext Loop End If End Select If Not rs Is Nothing Then Set rs = Nothing If Not RDOConn Is Nothing Then Set RDOConn = Nothing Exit Sub LoadDatabasesError: MsgBox Err.Number & ":" & Err.Description, , "Load Databases" Exit Sub End Sub
Declare Function SetDoubleClickTime Lib "user32" Alias "SetDoubleClickTime" (ByVal wCount As Long) As Long Declare Function GetDoubleClickTime& Lib "user32" () 'set double-click time in milliseconds setDoubleClickTime(500) 'retrieve the mouse double-click time in milliseconds Dim lngReturn As Long lngReturn = GetDoubleClickTime
'NOTE: In Visual Basic 5.0, change Stkit432.dll in the following 'statement to Vb5stkit.dll. Stkit432.dll is for Visual Basic 4.0 Private Declare Function fCreateShellLink Lib "STKIT432.DLL" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArgs As String) As Long Dim lReturn As Long 'Add to Desktop lReturn = fCreateShellLink("..\..\Desktop", _ "Shortcut to Calculator", "c:\windows\calc.exe", "") 'Add to Program Menu Group lReturn = fCreateShellLink("", "Shortcut to Calculator", _ "c:\windows\calc.exe", "") 'Add to Startup Group 'Note that on Windows NT, the shortcut will not actually appear 'in the Startup group until your next reboot. lReturn = fCreateShellLink("\Startup", "Shortcut to Calculator", _ "c:\windows\calc.exe", "")
© VB Work 2000, Last update