[ここをクリックすると内容が表示されます]
コード: 全て選択
Declare Function ShellExecuteEx Lib "shell32" (ByRef lpExecInfo As SHELLEXECUTEINFO) As BOOL
Const SEE_MASK_CLASSNAME = &H0001
Const SEE_MASK_CLASSKEY = &H0003
Const SEE_MASK_IDLIST = &H0004
Const SEE_MASK_INVOKEIDLIST = &H000C
Const SEE_MASK_ICON = &H0010
Const SEE_MASK_HOTKEY = &H0020
Const SEE_MASK_NOCLOSEPROCESS = &H0040
Const SEE_MASK_CONNECTNETDRV = &H0080
Const SEE_MASK_FLAG_DDEWAIT = &H0100
Const SEE_MASK_DOENVSUBST = &H0200
Const SEE_MASK_FLAG_NO_UI = &H0400
Type SHELLEXECUTEINFO
cbSize As DWord
fMask As DWord
hwnd As HWND
lpVerb As LPCSTR
lpFile As LPCSTR
lpParameters As LPCSTR
lpDirectory As LPCSTR
nShow As Long
hInstApp As HINSTANCE
lpIDList As VoidPtr
lpClass As LPCSTR
hkeyClass As HKEY
dwHotKey As DWord
hIcon As HANDLE
hProcess As HANDLE
End Type
TypeDef LPSHELLEXECUTEINFO = *SHELLEXECUTEINFO
Function ShowProperties(ByVal hOwnerWnd As HWND,ByVal lpszPathName As LPCSTR) As HINSTANCE
Dim ShellInfo As SHELLEXECUTEINFO
With ShellInfo
.cbSize=SizeOf(SHELLEXECUTEINFO)
.fMask=SEE_MASK_NOCLOSEPROCESS Or SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI
.lpVerb="Properties"
.hwnd=hOwnerWnd
.lpFile=lpszPathName
End With
ShellExecuteEx(ShellInfo)
ShowProperties=ShellInfo.hInstApp
End Function
Cドライブのプロパティを表示 [ここをクリックすると内容が表示されます]
戻り値については、33以上ならインスタンスハンドル、32以下ならエラーコードなんですけど、気になる方は各自ShellExecuteEx()関数を調べてみてください。コード: 全て選択
ShowProperties(hMainWnd,"C:\")