VB中一些API的使用

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Function GetTickCount Lib "kernel32" () As Long

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As LongByVal bInheritHandle As LongByVal dwProcessId As LongAs Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As LongByVal dwMilliseconds As LongAs Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As LongAs Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As LongAs Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As LongByVal uExitCode As LongAs Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function IsWindow Lib "user32" (ByVal hwnd As LongAs Long

Public Sub Waitms(ms As Long)
    
Dim t1 As Long
    
Dim t2 As Long
    
    
    t1 
= GetTickCount
    
Do
        DoEvents
        Sleep 
200
        t2 
= GetTickCount
    
Loop While t2 - t1 < ms
End Sub


Public Function ShellWait(cmd As StringAs Long
    
Const PROCESS_QUERY_INFORMATION = &H400
    
Const STILL_ALIVE = &H103
    
Const INFINITE = &HFFFF
    
    
Dim ExitCode As Long
    
Dim hProcess As Long
    
Dim pid As Long
    
    pid 
= Shell(cmd, vbHide)
    hProcess 
= OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid)
    
    
Do
        
Call GetExitCodeProcess(hProcess, ExitCode)
        DoEvents
        
Loop While ExitCode = STILL_ALIVE
    
Call CloseHandle(hProcess)
    
    ShellWait 
= ExitCode
End Function

 

 

 

'フォルダ設定用構造体
Public Type BROWSEINFO
    hOwner   
As Long
    pidlRoot   
As Long
    pszDisplayName   
As String
    lpszTitle   
As String
    ulFlags   
As Long
    lpfn   
As Long
    lParam   
As Long
    iImage   
As Long
End Type
'ファイルシステム利用できる
Public Const BIF_RETURNONLYFSDIRS = &H1
'Api関数
Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As LongByVal pszPath As StringAs Long
Public Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Dim bi     As BROWSEINFO
    bi.hOwner 
= Me.hWnd
    bi.pidlRoot 
= 0&
    bi.lpszTitle 
= "VHDLフォルダご指定ください"
    bi.ulFlags 
= BIF_RETURNONLYFSDIRS
    
    pidl 
= SHBrowseForFolder(bi)
    path 
= Space$(512)
    r 
= SHGetPathFromIDList(ByVal pidl&ByVal path)
    
    
If r Then
        pos 
= InStr(path, Chr$(0))
        txtPath1.Text 
= Left(path, pos - 1)
    
Else
        txtPath1.Text 
= ""
    
End If
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值