Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpbuffer As String, ByVal nSize As Long) As Long Private K3Login As Object '当前连接对象 Public cnStr As String Public Rs1 As New ADODB.Recordset Public SearchSql As String Public Fitemid As Variant Public FNumber As Variant Public Fname As Variant Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long '读写INI文件的API函数 Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Public Public_cn As New ADODB.Connection Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 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 Public Pub_DateName '账套名称 Public Const GWL_WNDPROC = (-4) Public Pub_ZF_key2 As Integer Public lpWndProc As Long Public Pub_CustID_pass As String Public Pub_Year_pass As String Public Pub_Period_pass As String Public Pub_LastMoney_pass As Single Public Pub_RS_YL As New ADODB.Recordset '遗漏折让资料 Public Pub_Item_str As String Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long Dim fso As New FileSystemObject Private Const TH32CS_SNAPPROCESS = &H2 Private Const TH32CS_SNAPheaplist = &H1 Private Const TH32CS_SNAPthread = &H4 Private Const TH32CS_SNAPmodule = &H8 Private Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule Private Const MAX_PATH As Integer = 260 Private Const PROCESS_ALL_ACCESS = &H100000 + &HF0000 + &HFFF Private Type PROCESSENTRY32 dwSize As Long cntUseage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long swFlags As Long szExeFile As String * 1024 End Type Public pub_Change_key As Integer Sub Main() Dim userNameStr As String Dim uesrNameTemp Dim userName As String Dim dateStr As String Dim ServerStr As String Dim jj As Integer Dim str_upgrid As String Dim Msg As Integer Dim MySnapHandle As Long Dim hProcess As Long Dim ProcessInfo As PROCESSENTRY32 On Error GoTo HERROR If app.PrevInstance = True Then Msg = MsgBox("“金蝶K3辅助系统”正在运行,是否要重新登录?", vbOKCancel + vbInformation, "提示") If Msg = 1 Then Else End End If End If Set K3Login = CreateObject("K3Login.ClsLogin") If Not K3Login.CheckLogin Then Set K3Login = Nothing Exit Sub End If cnStr = Trim(K3Login.PropsString) userNameStr = cnStr Dim i As Long, j As Long i = InStr(1, cnStr, "{") j = InStr(1, cnStr, "}") cnStr = Left(cnStr, j - 1) cnStr = Right(cnStr, j - i - 1) SaveSetting app.EXEName, "Conn", "connstring", cnStr Set K3Login = Nothing cnStr = getLinkStr(cnStr) uesrNameTemp = Split(userNameStr, ";") For jj = 0 To UBound(uesrNameTemp) If Left(uesrNameTemp(jj), 9) = "UserName=" Then userName = Mid(uesrNameTemp(jj), 10) Exit For End If Next For jj = 0 To UBound(uesrNameTemp) If Left(uesrNameTemp(jj), 12) = "MachineName=" Then ServerStr = Mid(uesrNameTemp(jj), 13) Exit For End If Next For jj = 0 To UBound(uesrNameTemp) If Left(uesrNameTemp(jj), 16) = "Initial Catalog=" Then dateStr = Mid(uesrNameTemp(jj), 17) uesrNameTemp = Split(dateStr, "}") dateStr = uesrNameTemp(0) Exit For End If Next Set Public_cn = Nothing Public_cn.CursorLocation = adUseClient Public_cn.ConnectionString = cnStr Public_cn.Open Pub_UserName = userName Pub_Number = "2011-12-13" Set Rs1 = Nothing Rs1.Open "select FUserID, FName, FDescription, FForbidden,FDataVokeType from t_User where FUserID in (select FUserID from t_Group where FGroupID = 1) and Fname='" & userName & "' and FUserID between 16384 and 32767", Public_cn If Rs1.RecordCount > 0 Then Pub_UserType = "adm" Else Pub_UserType = "" End If If pub_Change_key = 1 Then ' Unload frm切换用户 ' Unload frm金蝶K3辅助系统 ' frm切换用户.Show ' pub_Change_key = 0 Else frm金蝶K3辅助系统.Show End If Exit Sub HERROR: pub_Change_key = 0 MsgBox Err.Description, vbInformation End Sub Public Function getLinkStr(OldString As String) As String getLinkStr = OldString End Function Public Sub Hook(hWnd As Long) lpWndProc = GetWindowLong(hWnd, GWL_WNDPROC) SetWindowLong hWnd, GWL_WNDPROC, AddressOf WindowProc End Sub Public Sub UnHook(hWnd As Long) SetWindowLong hWnd, GWL_WNDPROC, lpWndProc End Sub Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If uMsg = WM_MOUSEWHEEL Then Dim wzDelta As Integer wzDelta = HIWORD(wParam) If Sgn(wzDelta) = 1 Then If TypeOf Screen.ActiveControl Is Grid Then Screen.ActiveControl.Scroll 0, -1 Else If TypeOf Screen.ActiveControl Is Grid Then Screen.ActiveControl.Scroll 0, 1 End If End If WindowProc = CallWindowProc(lpWndProc, hWnd, uMsg, wParam, lParam) End Function Public Function HIWORD(MsgParam As Long) As Integer HIWORD = (MsgParam And &HFFFF0000) \ &H10000 End Function Public Sub YcExcel1(FCaption1 As String, FCaption2 As String, Grid As fpSpread, FileName As String) Dim StrFilename As String On Error GoTo AdoTOExcelErr 'Dim xlapp As New Excel.Application Dim xlApp As Object Dim xlWb As Object Dim xlWs As Object StrFilename = FileName If StrFilename = "" Then Exit Sub Set xlApp = CreateObject("Excel.Application") Set xlWb = xlApp.Workbooks.Add Set xlWs = xlWb.Worksheets("Sheet1") Screen.MousePointer = vbHourglass DoEvents Dim i As Long, j As Long DoEvents Dim StrJJJ As Variant xlWs.Cells.Clear 'If ChkCovtChar.Value Then ' xlWs.Cells.Select ' xlApp.Selection.NumberFormatLocal = "@" 'End If '********************导出标题 iRow = 1: iCol = 1 If FCaption1 <> "" Then xlWs.Cells(iRow, 1) = "'" & FCaption1 & "'": iRow = iRow + 1 If FCaption2 <> "" Then xlWs.Cells(iRow, 1) = "'" & FCaption2 & "'": iRow = iRow + 1 '*********************导出表头 '''''' For i = 0 To Grid.Cols - 1 '''''' If Grid.ColHidden(i) = False Then '''''' xlWs.Cells(iRow, iCol) = Grid.TextMatrix(0, i) '''''' iCol = iCol + 1 '''''' End If '''''' Next i '''''' iRow = iRow + 1 '********************导出数据 Grid.Row = SpreadHeader For i = 1 To Grid.MaxCols Grid.GetText i, SpreadHeader, FValue1 Grid.Col = i If Grid.ColHidden = False Then xlWs.Cells(iRow, iCol) = FValue1 iCol = iCol + 1 End If Next i iRow = iRow + 1 For i = 1 To Grid.MaxRows Grid.Row = i If Grid.RowHidden = False Then iCol = 1 For j = 1 To Grid.MaxCols Grid.Col = j If Grid.ColHidden = False Then Grid.GetText j, i, FValue1 xlWs.Cells(iRow, iCol) = "'" & FValue1 DoEvents iCol = iCol + 1 End If Next j iRow = iRow + 1 End If Next i xlApp.Selection.CurrentRegion.Columns.AutoFit xlApp.Selection.CurrentRegion.Rows.AutoFit xlWb.SaveAs (StrFilename) xlWb.Close xlApp.Quit ' Release Excel references Set xlWs = Nothing Set xlWb = Nothing Set xlApp = Nothing '' a1 = VBA.Shell(StrFilename, vbMaximizedFocus) MsgBox "导出成功!", 48, "金蝶提示" Screen.MousePointer = 0 Exit Sub AdoTOExcelErr: AdoTOExcel = False Set xlWs = Nothing Set xlWb = Nothing Set xlApp = Nothing Screen.MousePointer = 0 If Err.Number = 32755 Then Exit Sub MsgBox Err.Description, vbInformation, pMsgTitle End Sub