ホーム › System.GroupPolicy › MANAGEDAPPLICATION
MANAGEDAPPLICATION
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| pszPackageName | LPWSTR | 8/4 | +0 | +0 | アプリケーションのわかりやすい名前です。 |
| pszPublisher | LPWSTR | 8/4 | +8 | +4 | アプリケーションの発行元の名前です。 |
| dwVersionHi | DWORD | 4 | +16 | +8 | アプリケーションのメジャー バージョン番号です。 |
| dwVersionLo | DWORD | 4 | +20 | +12 | アプリケーションのマイナー バージョン番号です。 |
| dwRevision | DWORD | 4 | +24 | +16 | 展開のバージョン番号です。このバージョンは、アプリケーションにパッチが適用されるたびに変わります。 |
| GpoId | GUID | 16 | +28 | +20 | このアプリケーションの展開元である GPO の GUID です。 |
| pszPolicyName | LPWSTR | 8/4 | +48 | +36 | このアプリケーションの展開元である GPO のわかりやすい名前です。 |
| ProductId | GUID | 16 | +56 | +40 | このアプリケーションが Windows インストーラー によってインストールされている場合、このメンバーは ProductId の GUID です。 |
| Language | WORD | 2 | +72 | +56 | アプリケーションの言語バージョンを示す数値の言語識別子です。言語の数値識別子の一覧については、言語識別子の定数と文字列 のトピックを参照してください。 |
| pszOwner | LPWSTR | 8/4 | +80 | +60 | このメンバーは使用されません。 |
| pszCompany | LPWSTR | 8/4 | +88 | +64 | このメンバーは使用されません。 |
| pszComments | LPWSTR | 8/4 | +96 | +68 | このメンバーは使用されません。 |
| pszContact | LPWSTR | 8/4 | +104 | +72 | このメンバーは使用されません。 |
| pszSupportUrl | LPWSTR | 8/4 | +112 | +76 | このメンバーは使用されません。 |
| dwPathType | DWORD | 4 | +120 | +80 | アプリケーションのインストールに使用されたパッケージの種類を示します。このメンバーには、次のいずれかの値を指定できます。 MANAGED_APPTYPE_WINDOWSINSTALLERアプリケーションは Windows インストーラー を使用してインストールされます。 MANAGED_APPTYPE_SETUPEXEアプリケーションはレガシのセットアップ アプリケーションを使用してインストールされます。 MANAGED_APPTYPE_UNSUPPORTEDアプリケーションはサポートされていないセットアップ アプリケーションによってインストールされます。 |
| bInstalled | BOOL | 4 | +124 | +84 | アプリケーションが現在インストールされている場合、このパラメーターは TRUE であり、それ以外の場合は FALSE です。 |
公式ドキュメント
MANAGEDAPPLICATION 構造体には、アプリケーションに関する情報が含まれます。GetManagedApplications 関数は、MANAGEDAPPLICATION 構造体の配列を返します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
#include <windows.h>
// MANAGEDAPPLICATION (x64 128 / x86 88 バイト)
typedef struct MANAGEDAPPLICATION {
LPWSTR pszPackageName;
LPWSTR pszPublisher;
DWORD dwVersionHi;
DWORD dwVersionLo;
DWORD dwRevision;
GUID GpoId;
LPWSTR pszPolicyName;
GUID ProductId;
WORD Language;
LPWSTR pszOwner;
LPWSTR pszCompany;
LPWSTR pszComments;
LPWSTR pszContact;
LPWSTR pszSupportUrl;
DWORD dwPathType;
BOOL bInstalled;
} MANAGEDAPPLICATION;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct MANAGEDAPPLICATION
{
public IntPtr pszPackageName;
public IntPtr pszPublisher;
public uint dwVersionHi;
public uint dwVersionLo;
public uint dwRevision;
public Guid GpoId;
public IntPtr pszPolicyName;
public Guid ProductId;
public ushort Language;
public IntPtr pszOwner;
public IntPtr pszCompany;
public IntPtr pszComments;
public IntPtr pszContact;
public IntPtr pszSupportUrl;
public uint dwPathType;
[MarshalAs(UnmanagedType.Bool)] public bool bInstalled;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure MANAGEDAPPLICATION
Public pszPackageName As IntPtr
Public pszPublisher As IntPtr
Public dwVersionHi As UInteger
Public dwVersionLo As UInteger
Public dwRevision As UInteger
Public GpoId As Guid
Public pszPolicyName As IntPtr
Public ProductId As Guid
Public Language As UShort
Public pszOwner As IntPtr
Public pszCompany As IntPtr
Public pszComments As IntPtr
Public pszContact As IntPtr
Public pszSupportUrl As IntPtr
Public dwPathType As UInteger
<MarshalAs(UnmanagedType.Bool)> Public bInstalled As Boolean
End Structureimport ctypes
from ctypes import wintypes
class MANAGEDAPPLICATION(ctypes.Structure):
_fields_ = [
("pszPackageName", ctypes.c_void_p),
("pszPublisher", ctypes.c_void_p),
("dwVersionHi", wintypes.DWORD),
("dwVersionLo", wintypes.DWORD),
("dwRevision", wintypes.DWORD),
("GpoId", GUID),
("pszPolicyName", ctypes.c_void_p),
("ProductId", GUID),
("Language", ctypes.c_ushort),
("pszOwner", ctypes.c_void_p),
("pszCompany", ctypes.c_void_p),
("pszComments", ctypes.c_void_p),
("pszContact", ctypes.c_void_p),
("pszSupportUrl", ctypes.c_void_p),
("dwPathType", wintypes.DWORD),
("bInstalled", wintypes.BOOL),
]#[repr(C)]
pub struct MANAGEDAPPLICATION {
pub pszPackageName: *mut core::ffi::c_void,
pub pszPublisher: *mut core::ffi::c_void,
pub dwVersionHi: u32,
pub dwVersionLo: u32,
pub dwRevision: u32,
pub GpoId: GUID,
pub pszPolicyName: *mut core::ffi::c_void,
pub ProductId: GUID,
pub Language: u16,
pub pszOwner: *mut core::ffi::c_void,
pub pszCompany: *mut core::ffi::c_void,
pub pszComments: *mut core::ffi::c_void,
pub pszContact: *mut core::ffi::c_void,
pub pszSupportUrl: *mut core::ffi::c_void,
pub dwPathType: u32,
pub bInstalled: i32,
}import "golang.org/x/sys/windows"
type MANAGEDAPPLICATION struct {
pszPackageName uintptr
pszPublisher uintptr
dwVersionHi uint32
dwVersionLo uint32
dwRevision uint32
GpoId windows.GUID
pszPolicyName uintptr
ProductId windows.GUID
Language uint16
pszOwner uintptr
pszCompany uintptr
pszComments uintptr
pszContact uintptr
pszSupportUrl uintptr
dwPathType uint32
bInstalled int32
}type
MANAGEDAPPLICATION = record
pszPackageName: Pointer;
pszPublisher: Pointer;
dwVersionHi: DWORD;
dwVersionLo: DWORD;
dwRevision: DWORD;
GpoId: TGUID;
pszPolicyName: Pointer;
ProductId: TGUID;
Language: Word;
pszOwner: Pointer;
pszCompany: Pointer;
pszComments: Pointer;
pszContact: Pointer;
pszSupportUrl: Pointer;
dwPathType: DWORD;
bInstalled: BOOL;
end;const MANAGEDAPPLICATION = extern struct {
pszPackageName: ?*anyopaque,
pszPublisher: ?*anyopaque,
dwVersionHi: u32,
dwVersionLo: u32,
dwRevision: u32,
GpoId: GUID,
pszPolicyName: ?*anyopaque,
ProductId: GUID,
Language: u16,
pszOwner: ?*anyopaque,
pszCompany: ?*anyopaque,
pszComments: ?*anyopaque,
pszContact: ?*anyopaque,
pszSupportUrl: ?*anyopaque,
dwPathType: u32,
bInstalled: i32,
};type
MANAGEDAPPLICATION {.bycopy.} = object
pszPackageName: pointer
pszPublisher: pointer
dwVersionHi: uint32
dwVersionLo: uint32
dwRevision: uint32
GpoId: GUID
pszPolicyName: pointer
ProductId: GUID
Language: uint16
pszOwner: pointer
pszCompany: pointer
pszComments: pointer
pszContact: pointer
pszSupportUrl: pointer
dwPathType: uint32
bInstalled: int32struct MANAGEDAPPLICATION
{
void* pszPackageName;
void* pszPublisher;
uint dwVersionHi;
uint dwVersionLo;
uint dwRevision;
GUID GpoId;
void* pszPolicyName;
GUID ProductId;
ushort Language;
void* pszOwner;
void* pszCompany;
void* pszComments;
void* pszContact;
void* pszSupportUrl;
uint dwPathType;
int bInstalled;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; MANAGEDAPPLICATION サイズ: 88 バイト(x86)
dim st, 22 ; 4byte整数×22(構造体サイズ 88 / 4 切り上げ)
; pszPackageName : LPWSTR (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pszPublisher : LPWSTR (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; dwVersionHi : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; dwVersionLo : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwRevision : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; GpoId : GUID (+20, 16byte) varptr(st)+20 を基点に操作(16byte:入れ子/配列)
; pszPolicyName : LPWSTR (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; ProductId : GUID (+40, 16byte) varptr(st)+40 を基点に操作(16byte:入れ子/配列)
; Language : WORD (+56, 2byte) wpoke st,56,値 / 値 = wpeek(st,56)
; pszOwner : LPWSTR (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; pszCompany : LPWSTR (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; pszComments : LPWSTR (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; pszContact : LPWSTR (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; pszSupportUrl : LPWSTR (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; dwPathType : DWORD (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; bInstalled : BOOL (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; MANAGEDAPPLICATION サイズ: 128 バイト(x64)
dim st, 32 ; 4byte整数×32(構造体サイズ 128 / 4 切り上げ)
; pszPackageName : LPWSTR (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; pszPublisher : LPWSTR (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; dwVersionHi : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwVersionLo : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwRevision : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; GpoId : GUID (+28, 16byte) varptr(st)+28 を基点に操作(16byte:入れ子/配列)
; pszPolicyName : LPWSTR (+48, 8byte) qpoke st,48,値 / qpeek(st,48) ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; ProductId : GUID (+56, 16byte) varptr(st)+56 を基点に操作(16byte:入れ子/配列)
; Language : WORD (+72, 2byte) wpoke st,72,値 / 値 = wpeek(st,72)
; pszOwner : LPWSTR (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; pszCompany : LPWSTR (+88, 8byte) qpoke st,88,値 / qpeek(st,88) ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; pszComments : LPWSTR (+96, 8byte) qpoke st,96,値 / qpeek(st,96) ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; pszContact : LPWSTR (+104, 8byte) qpoke st,104,値 / qpeek(st,104) ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; pszSupportUrl : LPWSTR (+112, 8byte) qpoke st,112,値 / qpeek(st,112) ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; dwPathType : DWORD (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; bInstalled : BOOL (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global GUID, pack=1
#field int Data1
#field short Data2
#field short Data3
#field byte Data4 8
#endstruct
#defstruct global MANAGEDAPPLICATION
#field intptr pszPackageName
#field intptr pszPublisher
#field int dwVersionHi
#field int dwVersionLo
#field int dwRevision
#field GUID GpoId
#field intptr pszPolicyName
#field GUID ProductId
#field short Language
#field intptr pszOwner
#field intptr pszCompany
#field intptr pszComments
#field intptr pszContact
#field intptr pszSupportUrl
#field int dwPathType
#field bool bInstalled
#endstruct
stdim st, MANAGEDAPPLICATION ; NSTRUCT 変数を確保
st->dwVersionHi = 100
mes "dwVersionHi=" + st->dwVersionHi