📄 rapi.cs
字号:
CEVT_FILETIME = 64,
CEVT_LPWSTR = 31,
CEVT_BLOB = 65,
CEVT_BOOL = 11,
CEVT_R8 = 5,
}
[StructLayout(LayoutKind.Explicit,CharSet=CharSet.Unicode)]
public struct CEVALUNION
{
[FieldOffset(0)] short iVal;
[FieldOffset(0)] ushort uiVal;
[FieldOffset(0)] int lVal;
[FieldOffset(0)] uint ulVal;
[FieldOffset(0)] FILETIME filetime;
[FieldOffset(0)] string lpwstr;
[FieldOffset(0)] CEBLOB blob;
[FieldOffset(0)] int boolVal;
[FieldOffset(0)] Double dblVal;
};
public enum CEDB_PROPVAL_FLAGS
{
CEDB_PROPNOTFOUND = 0x0100,
CEDB_PROPDELETE = 0x0200,
}
[StructLayout(LayoutKind.Sequential,Pack=4,CharSet=CharSet.Unicode)]
public struct CEPROPVAL
{
int propid;
short wLenData;
short wFlags;
CEVALUNION val;
};
public const int CEDB_MAXDATABLOCKSIZE = 4092;
public const int CEDB_MAXPROPDATASIZE = CEDB_MAXDATABLOCKSIZE*16;
public const int CEDB_MAXRECORDSIZE = 128*1024;
public enum CEDB_READRECORDPROPFLAGS
{
CEDB_ALLOWREALLOC = 0x00000001,
}
public enum SYSMEM
{
SYSMEM_CHANGED = 0,
SYSMEM_MUSTREBOOT = 1,
SYSMEM_REBOOTPENDING = 2,
SYSMEM_FAILED = 3,
}
[StructLayout(LayoutKind.Sequential,Pack=4,CharSet=CharSet.Unicode)]
public struct CEOSVERSIONINFO
{
int dwOSVersionInfoSize;
int dwMajorVersion;
int dwMinorVersion;
int dwBuildNumber;
int dwPlatformId;
[ MarshalAs( UnmanagedType.ByValTStr, SizeConst=128)]
string szCSDVersion;
};
public enum AC
{
AC_LINE_OFFLINE = 0x00,
AC_LINE_ONLINE = 0x01,
AC_LINE_BACKUP_POWER = 0x02,
AC_LINE_UNKNOWN = 0xFF,
}
public enum BATTERY_FLAG
{
BATTERY_FLAG_HIGH = 0x01,
BATTERY_FLAG_LOW = 0x02,
BATTERY_FLAG_CRITICAL = 0x04,
BATTERY_FLAG_CHARGING = 0x08,
BATTERY_FLAG_NO_BATTERY = 0x80,
BATTERY_FLAG_UNKNOWN = 0xFF,
}
public const int BATTERY_PERCENTAGE_UNKNOWN = 0xFF;
public const int BATTERY_LIFE_UNKNOWN = unchecked((int)0xFFFFFFFF);
public enum REGDISP
{
REG_CREATED_NEW_KEY = 0x00000001,
REG_OPENED_EXISTING_KEY = 0x00000002,
}
[StructLayout(LayoutKind.Sequential,Pack=4)]
public struct SYSTEM_POWER_STATUS_EX
{
Byte ACLineStatus;
Byte BatteryFlag;
Byte BatteryLifePercent;
Byte Reserved1;
int BatteryLifeTime;
int BatteryFullLifeTime;
Byte Reserved2;
Byte BackupBatteryFlag;
Byte BackupBatteryLifePercent;
Byte Reserved3;
int BackupBatteryLifeTime;
int BackupBatteryFullLifeTime;
};
public const int CERAPI_E_ALREADYINITIALIZED = unchecked((int)0x80041001);
[StructLayout(LayoutKind.Sequential,Pack=4)]
public struct RAPIINIT
{
public int cbSize;
public IntPtr heRapiInit;
public int hrRapiInit;
};
[StructLayout(LayoutKind.Sequential,Pack=4)]
public struct SYSTEM_INFO
{
[StructLayout(LayoutKind.Explicit)]
public struct _SYSTEM_INFO_ARCH
{
[FieldOffset(0)] int dwOemId;
[FieldOffset(0)] short wProcessorArchitecture;
[FieldOffset(2)] short wReserved;
};
int dwPageSize;
Byte [] lpMinimumApplicationAddress;
Byte [] lpMaximumApplicationAddress;
int dwActiveProcessorMask;
int dwNumberOfProcessors;
int dwProcessorType;
int dwAllocationGranularity;
short wProcessorLevel;
short wProcessorRevision;
};
[StructLayout(LayoutKind.Sequential,Pack=4)]
public struct PROCESS_INFORMATION
{
public IntPtr hProcess;
public IntPtr hThread;
public int dwProcessId;
public int dwThreadId;
};
[StructLayout(LayoutKind.Sequential,Pack=4)]
public struct MEMORYSTATUS
{
int dwLength;
int dwMemoryLoad;
int dwTotalPhys;
int dwAvailPhys;
int dwTotalPageFile;
int dwAvailPageFile;
int dwTotalVirtual;
int dwAvailVirtual;
};
// From WINBASE.H -- for CeCreateFile
public enum ACCESS : uint
{
READ = 0x80000000,
WRITE = 0x40000000,
}
// From WINBASE.H -- for CeCreateFile
public enum SHARE
{
READ = 0x00000001,
WRITE = 0x00000002,
}
// From WINBASE.H -- for CeCreateFile
public enum ACTION
{
CREATE_NEW = 1,
CREATE_ALWAYS = 2,
OPEN_EXISTING = 3,
OPEN_ALWAYS = 4,
TRUNCATE_EXISTING = 5
}
// From WINBASE.H -- for CeCreateFile
public enum FILEFLAGATT : uint
{
ATTRIBUTE_READONLY = 0x00000001,
ATTRIBUTE_HIDDEN = 0x00000002,
ATTRIBUTE_SYSTEM = 0x00000004,
ATTRIBUTE_DIRECTORY = 0x00000010,
ATTRIBUTE_ARCHIVE = 0x00000020,
ATTRIBUTE_INROM = 0x00000040,
ATTRIBUTE_ENCRYPTED = 0x00000040,
ATTRIBUTE_NORMAL = 0x00000080,
ATTRIBUTE_TEMPORARY = 0x00000100,
ATTRIBUTE_SPARSE_FILE = 0x00000200,
ATTRIBUTE_REPARSE_POINT = 0x00000400,
ATTRIBUTE_COMPRESSED = 0x00000800,
ATTRIBUTE_OFFLINE = 0x00001000,
ATTRIBUTE_ROMSTATICREF = 0x00001000,
ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000,
ATTRIBUTE_ROMMODULE = 0x00002000,
FLAG_WRITE_THROUGH = 0x80000000,
FLAG_OVERLAPPED = 0x40000000,
FLAG_NO_BUFFERING = 0x20000000,
FLAG_RANDOM_ACCESS = 0x10000000,
FLAG_SEQUENTIAL_SCAN = 0x08000000,
FLAG_DELETE_ON_CLOSE = 0x04000000,
FLAG_BACKUP_SEMANTICS = 0x02000000,
FLAG_POSIX_SEMANTICS = 0x01000000,
}
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeCheckPassword (string lpszPassword);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeCloseHandle (IntPtr hObject);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeCopyFile (string lpExistingFileName, string lpNewFileName, int bFailIfExists);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeCreateDatabase (string lpszName, int dwDbaseType, short wNumSortOrder, ref SORTORDERSPEC rgSortSpecs);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeCreateDatabaseEx (ref System.Guid pceguid, ref CEDBASEINFO lpCEDBInfo);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeCreateDirectory (string lpPathName, int Reserved);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern IntPtr CeCreateFile (string lpFileName, ACCESS dwDesiredAccess, SHARE dwShareMode, int Res1, ACTION dwCreationDisposition, FILEFLAGATT dwFlagsAndAttributes, int Res2);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeCreateProcess (string lpApplicationName, string lpCommandLine, int Res1, int Res2, int Res3, int dwCreationFlags, int Res4, int Res5, int Res6, ref PROCESS_INFORMATION lpProcessInformation);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeCreateProcess (string lpApplicationName, int Zero, int Res1, int Res2, int Res3, int dwCreationFlags, int Res4, int Res5, int Res6, ref PROCESS_INFORMATION lpProcessInformation);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeDeleteDatabase (int oidDbase);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeDeleteDatabaseEx (ref System.Guid pguid, int oid);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeDeleteFile (string lpFileName);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeDeleteRecord (IntPtr hDatabase, int oidRecord);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeEnumDBVolumes (ref System.Guid pceguid, string lpBuf, int dwNumChars);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeFindAllDatabases (int dwDbaseType, FAD wFlags, ref short cFindData, ref IntPtr ppFindData);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeFindAllFiles (string szPath, FAF dwFlags, ref int lpdwFoundCount, ref IntPtr ppFindDataArray);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeFindClose (IntPtr hFindFile);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern IntPtr CeFindFirstDatabase (int dwDbaseType);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern IntPtr CeFindFirstDatabaseEx (ref System.Guid pceguid, int dwDbaseType);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern IntPtr CeFindFirstFile (string lpFileName, ref CE_FIND_DATA lpFindFileData);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeFindNextDatabase (IntPtr hEnum);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeFindNextDatabaseEx (IntPtr hEnum, ref System.Guid pceguid);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeFindNextFile (IntPtr hFindFile, ref CE_FIND_DATA lpFindFileData);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetClassName (IntPtr hWnd, string lpClassName, int nMaxCount);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetDesktopDeviceCaps (int nIndex);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetFileAttributes (string lpFileName);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetFileSize (IntPtr hFile, ref int lpFileSizeHigh);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetFileTime (IntPtr hFile, ref FILETIME lpCreationTime, ref FILETIME lpLastAccessTime, ref FILETIME lpLastWriteTime);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetLastError ();
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetSpecialFolderPath (int nFolder, int nBufferLength, string lpBuffer);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetStoreInformation (ref STORE_INFORMATION lpsi);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern void CeGetSystemInfo (ref SYSTEM_INFO lpSystemInfo);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetSystemPowerStatusEx (ref SYSTEM_POWER_STATUS_EX pstatus, int fUpdate);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetTempPath (int nBufferLength, string lpBuffer);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetVersionEx (ref CEOSVERSIONINFO lpVersionInformation);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern IntPtr CeGetWindow (IntPtr hWnd, int uCmd);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetWindowLong (IntPtr hWnd, int nIndex);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeGetWindowText (IntPtr hWnd, string lpString, int nMaxCount);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern void CeGlobalMemoryStatus (ref MEMORYSTATUS lpmst);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeMountDBVol (ref System.Guid pceguid, string lpszDBVol, int dwFlags);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeMoveFile (string lpExistingFileName, string lpNewFileName);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeOidGetInfo (int oid, ref CEOIDINFO poidInfo);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeOidGetInfoEx (ref System.Guid pceguid, int oid, ref CEOIDINFO poidInfo);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern IntPtr CeOpenDatabase (ref int poid, string lpszName, int propid, int dwFlags, IntPtr hwndNotify);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern IntPtr CeOpenDatabaseEx (ref System.Guid pceguid, ref int poid, string lpszName, int propid, int dwFlags, ref CENOTIFYREQUEST pRequest);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeRapiFreeBuffer (IntPtr pBuffer);
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeRapiGetError ();
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeRapiInit ();
[DllImport(DllName, CharSet=CharSet.Unicode)]
public static extern int CeRapiInitEx (ref RAPIINIT pRapiInit);
// Block mode
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -