要看是否是可以取出来的。
能够取出来的托盘在滑道内滑到头之后适当改变托盘的方向角度就能很轻易的取出。
如果厂家原设计就是不可以轻易取出来的,则在滑道的某个位置会有螺丝,螺丝刀拆掉这些螺丝后也可以把托盘取出来。
厂家说明书上面有相关的 *** 作说明,可以参照。
推荐你看下这个,C#里获取系统托盘信息,希望对你有帮助。
public sealed class NotifyHelper
{
private static int WM_TASKBARCREATED = RegisterWindowMessage("TaskbarCreated");
private const int WM_USER = 0x400;
private const int WM_TRAYMOUSEMESSAGE = 2048;
private const int WM_MOUSEMOVE = 0x200;
private const int WM_LBUTTONDOWN = 0x201;
private const int WM_LBUTTONUP = 0x202;
private const int WM_LBUTTONDBLCLK = 0x203;
private const int WM_RBUTTONDOWN = 0x204;
private const int WM_RBUTTONUP = 0x205;
private const int WM_RBUTTONDBLCLK = 0x206;
private const int WM_MBUTTONDOWN = 0x207;
private const int WM_MBUTTONUP = 0x208;
private const int WM_MBUTTONDBLCLK = 0x209;
private const int NIN_BALLOONSHOW = 0x402;
private const int NIN_BALLOONHIDE = 0x403;
private const int NIN_BALLOONTIMEOUT = 0x404;
private const int NIN_BALLOONUSERCLICK = 0x405;
private const int READ_CONTROL = 0x20000;
private const int STANDARD_RIGHTS_REQUIRED = 0xF0000;
private const int STANDARD_RIGHTS_READ = READ_CONTROL;
private const int STANDARD_RIGHTS_EXECUTE = READ_CONTROL;
private const int STANDARD_RIGHTS_ALL = 0x1F0000;
private const int STANDARD_RIGHTS_WRITE = READ_CONTROL;
private const int SYNCHRONIZE = 0x100000;
private const int PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF;
private const int PROCESS_TERMINATE = 0x1;
private const int PROCESS_VM_OPERATION = 0x8;
private const int PROCESS_VM_READ = 0x10;
private const int PROCESS_VM_WRITE = 0x20;
private const int MEM_RESERVE = 0x2000;
private const int MEM_COMMIT = 0x1000;
private const int MEM_RELEASE = 0x8000;
private const int PAGE_READWRITE = 0x4;
private const int TB_BUTTONCOUNT = (WM_USER + 24);
private const int TB_HIDEBUTTON = (WM_USER + 4);
private const int TB_GETBUTTON = (WM_USER + 23);
private const int TB_GETBITMAP = (WM_USER + 44);
private const int TB_DELETEBUTTON = (WM_USER + 22);
private const int TB_ADDBUTTONS = (WM_USER + 20);
private const int TB_INSERTBUTTON = (WM_USER + 21);
private const int TB_ISBUTTONHIDDEN = (WM_USER + 12);
private const int ILD_NORMAL = 0x0;
private const int TPM_NONOTIFY = 0x80;
#region Win32 API 引用
[DllImport("user32dll", CharSet = CharSetAuto)]
public static extern IntPtr PostMessage(HandleRef hwnd, int msg, int wparam, int lparam);
[DllImport("user32dll", CharSet = CharSetAuto)]
public static extern bool PostMessage(HandleRef hwnd, int msg, IntPtr wparam, IntPtr lparam);
[DllImport("user32dll", CharSet = CharSetAuto, ExactSpelling = true)]
private static extern bool SetForegroundWindow(HandleRef hWnd);
[DllImport("user32dll", CharSet = CharSetAuto)]
private static extern int RegisterWindowMessage(string msg);
[DllImport("kernel32", EntryPoint = "OpenProcess")]
private static extern IntPtr OpenProcess(
int dwDesiredAccess,
IntPtr bInheritHandle,
IntPtr dwProcessId
);
[DllImport("kernel32", EntryPoint = "CloseHandle")]
private static extern int CloseHandle(
IntPtr hObject
);
[DllImport("user32", EntryPoint = "GetWindowThreadProcessId")]
private static extern IntPtr GetWindowThreadProcessId(
IntPtr hwnd,
ref IntPtr lpdwProcessId
);
[DllImport("user32", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(
string lpClassName,
string lpWindowName
);
[DllImport("user32", EntryPoint = "FindWindowEx")]
private static extern IntPtr FindWindowEx(
IntPtr hWnd1,
IntPtr hWnd2,
string lpsz1,
string lpsz2
);
[DllImport("user32", EntryPoint = "SendMessage")]
private static extern int SendMessage(
IntPtr hwnd,
int wMsg,
int wParam,
int lParam
);
[DllImport("user32", EntryPoint = "SendMessage")]
private static extern int SendMessage(
IntPtr hwnd,
int wMsg,
int wParam,
IntPtr lParam
);
[DllImport("kernel32", EntryPoint = "ReadProcessMemory")]
private static extern int ReadProcessMemory(
IntPtr hProcess,
IntPtr lpBaseAddress,
ref IntPtr lpBuffer,
int nSize,
int lpNumberOfBytesWritten
);
[DllImport("kernel32", EntryPoint = "ReadProcessMemory")]
private static extern int ReadProcessMemory(
IntPtr hProcess,
IntPtr lpBaseAddress,
byte[] lpBuffer,
int nSize,
int lpNumberOfBytesWritten
);
[DllImport("kernel32", EntryPoint = "WriteProcessMemory")]
private static extern int WriteProcessMemory(
IntPtr hProcess,
ref int lpBaseAddress,
ref int lpBuffer,
int nSize,
ref int lpNumberOfBytesWritten
);
[DllImport("kernel32", EntryPoint = "VirtualAllocEx")]
private static extern IntPtr VirtualAllocEx(
IntPtr hProcess,
int lpAddress,
int dwSize,
int flAllocationType,
int flProtect
);
[DllImport("kernel32", EntryPoint = "VirtualFreeEx")]
private static extern int VirtualFreeEx(
IntPtr hProcess,
IntPtr lpAddress,
int dwSize,
int dwFreeType
);
#endregion
public static IntPtr FindNotifyIcon(string TipTitle)
{
if (TipTitleLength == 0) return IntPtrZero;
IntPtr pid = IntPtrZero;
IntPtr ipHandle = IntPtrZero; //图标句柄
IntPtr lTextAdr = IntPtrZero; //文本内存地址
IntPtr ipTemp = FindWindow("Shell_TrayWnd", null);
//找到托盤
ipTemp = FindWindowEx(ipTemp, IntPtrZero, "TrayNotifyWnd", null);
ipTemp = FindWindowEx(ipTemp, IntPtrZero, "SysPager", null);
IntPtr ipTray = FindWindowEx(ipTemp, IntPtrZero, "ToolbarWindow32", null);
GetWindowThreadProcessId(ipTray, ref pid);
if (pidEquals(0)) return ipHandle;
IntPtr hProcess = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, IntPtrZero, pid);
IntPtr lAddress = VirtualAllocEx(hProcess, 0, 4096, MEM_COMMIT, PAGE_READWRITE);
//得到图标个数
int lButton = SendMessage(ipTray, TB_BUTTONCOUNT, 0, 0);
for (int i = 0; i < lButton; i++)
{
SendMessage(ipTray, TB_GETBUTTON, i, lAddress);
//读文本地址
ReadProcessMemory(hProcess, (IntPtr)(lAddressToInt32() + 16), ref lTextAdr, 4, 0);
if (!lTextAdrEquals(-1))
{
byte[] buff = new byte[1024];
//读文本
ReadProcessMemory(hProcess, lTextAdr, buff, 1024, 0);
string title = SystemTextASCIIEncodingUnicodeGetString(buff);
// 从字符0处截断
int nullindex = titleIndexOf("\0");
if (nullindex > 0)
{
title = titleSubstring(0, nullindex);
}
//ReadProcessMemory(hProcess, lAddress, ref ipButtonID, 4, 0);
//判断是不是要找的图标
if (titleEquals(TipTitle))
{
IntPtr ipHandleAdr = IntPtrZero;
//读句柄地址
ReadProcessMemory(hProcess, (IntPtr)(lAddressToInt32() + 12), ref ipHandleAdr, 4, 0);
ReadProcessMemory(hProcess, ipHandleAdr, ref ipHandle, 4, 0);
break;
}
}
}
VirtualFreeEx(hProcess, lAddress, 4096, MEM_RELEASE);
CloseHandle(hProcess);
return ipHandle;
}
public static void UpdateNotify()
{
IntPtr pid = IntPtrZero;
IntPtr ipHandle = IntPtrZero; //图标句柄
IntPtr lTextAdr = IntPtrZero; //文本内存地址
IntPtr ipTemp = FindWindow("Shell_TrayWnd", null);
//找到托盤
打开管理器。
1、打开任务管理器,找到详细信息选项卡,在详细信息选项卡中找到explorerexe进程,并右键点击选择结束任务。
2、然后在任务管理器中选择文件菜单,点击运行新任务选项,在d出的新建任务对话框中,输入explorerexe并点击确定按钮。
以上就是关于美的微晶406冰箱冷藏室的滑动托盘怎样取下来全部的内容,包括:美的微晶406冰箱冷藏室的滑动托盘怎样取下来、如何获取系统托盘里的图标句柄或者图标个数、win11获取托盘文字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)