[ここをクリックすると内容が表示されます]
コード: 全て選択
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 FunctionCドライブのプロパティを表示 [ここをクリックすると内容が表示されます]
戻り値については、33以上ならインスタンスハンドル、32以下ならエラーコードなんですけど、気になる方は各自ShellExecuteEx()関数を調べてみてください。コード: 全て選択
ShowProperties(hMainWnd,"C:\")