zoukankan      html  css  js  c++  java
  • vb用createprocess启动其他应用程序

    Option Explicit

    Private Type PROCESS_INFORMATION

            hProcess As Long

            hThread As Long

            dwProcessId As Long

            dwThreadId As Long

    End Type

    Private 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

    Private Type SECURITY_ATTRIBUTES

            nLength As Long

            lpSecurityDescriptor As Long

            bInheritHandle As Long

    End Type

    Private Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" ( _

      ByVal lpApplicationName As String, _

      ByVal lpCommandLine As String, _

      lpProcessAttributes As SECURITY_ATTRIBUTES, _

      lpThreadAttributes As SECURITY_ATTRIBUTES, _

      ByVal bInheritHandles As Long, _

      ByVal dwCreationFlags As Long, _

      lpEnvironment As Any, _

      ByVal lpCurrentDriectory As String, _

      lpStartupInfo As STARTUPINFO, _

      lpProcessInformation As PROCESS_INFORMATION) As Long

    Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long

    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Private Sub Command1_Click()

      Dim sInfo As STARTUPINFO

      Dim psInfo As PROCESS_INFORMATION

      Dim pAttr As SECURITY_ATTRIBUTES

      Dim tAttr As SECURITY_ATTRIBUTES

      Dim nRet As Long

      Dim nElapse As Integer

      nRet = CreateProcess("C:Program Files (x86)360360zip360zip.exe", "", pAttr, tAttr, 0, 0, 0, "c:", sInfo, psInfo)

      If nRet = 0 Then Exit Sub

      nElapse = 0

      While 1 > 0

        nRet = WaitForSingleObject(psInfo.hProcess, 1000)

        If nRet = 0 Then

          MsgBox "Done!"

          Exit Sub

        End If

       

        Label1.Caption = CStr(nElapse)

        nElapse = nElapse + 1

        Sleep (1000)

        DoEvents

      Wend

    End Sub

    摘自 JOEL.LEE的专栏

  • 相关阅读:
    Translation Rule 和命中法则
    Cisco Extension Mobility配置步骤详解
    tclsh命令, cisco 快速测试工具
    136、多继承的优缺点,作为一个开发者怎么看待多继承
    135、 虚函数的内存结构,那菱形继承的虚函数内存结构呢
    134、隐式转换,如何消除隐式转换?
    133、说一下你理解的 ifdef endif代表着什么?
    132、 静态成员与普通成员的区别是什么?
    131、全局变量和static变量的区别
    130、定义和声明的区别
  • 原文地址:https://www.cnblogs.com/wgscd/p/9557846.html
Copyright © 2011-2022 走看看