双击systreeview32的某一个item [问题点数:200分,结帖人smallflaybird]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs3
本版专家分:958
结帖率 100%
Bbs9
本版专家分:83120
Blank
银牌 2001年12月 总版技术专家分月排行榜第二
Blank
红花 2002年5月 Delphi大版内专家分月排行榜第一
2002年1月 Delphi大版内专家分月排行榜第一
Blank
黄花 2007年11月 .NET技术大版内专家分月排行榜第二
2007年1月 Delphi大版内专家分月排行榜第二
2006年12月 Delphi大版内专家分月排行榜第二
2006年10月 Delphi大版内专家分月排行榜第二
2002年8月 Delphi大版内专家分月排行榜第二
2002年6月 Delphi大版内专家分月排行榜第二
2001年12月 Delphi大版内专家分月排行榜第二
Blank
蓝花 2002年4月 Delphi大版内专家分月排行榜第三
Bbs3
本版专家分:939
Bbs3
本版专家分:958
Bbs9
本版专家分:83120
Blank
银牌 2001年12月 总版技术专家分月排行榜第二
Blank
红花 2002年5月 Delphi大版内专家分月排行榜第一
2002年1月 Delphi大版内专家分月排行榜第一
Blank
黄花 2007年11月 .NET技术大版内专家分月排行榜第二
2007年1月 Delphi大版内专家分月排行榜第二
2006年12月 Delphi大版内专家分月排行榜第二
2006年10月 Delphi大版内专家分月排行榜第二
2002年8月 Delphi大版内专家分月排行榜第二
2002年6月 Delphi大版内专家分月排行榜第二
2001年12月 Delphi大版内专家分月排行榜第二
Blank
蓝花 2002年4月 Delphi大版内专家分月排行榜第三
Bbs7
本版专家分:21540
Blank
蓝花 2008年12月 Delphi大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
python获取其他程序syslistview32的内容
python如何获取其他程序syslistview<em>32</em>的内容 win<em>32</em>gui.SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0)可以得到总行数
怎么获取SysTreeView32控件下所有节点句柄并发送消息选中单击某个指定名称节点
如图左边是<em>一个</em>SysTreeView<em>32</em>控件, 我想获取该控件下所有节点的句柄,并能发送消息选中单击某个指定名称节点 求指点。。。 小菜鸟刚接触API不久 在线等.....求源码 #region A
跨进程SysTreeView32单击子节点无反应【通达信独立交易软件】
PostMessage("根节点已获取", TVM_SELECTITEM, TVGN_CARET, "子节点以获取"); 样式效果出现,根据选中到子节点,但没有触发应有的单击事件 以上方法在部分程序可
模拟对Systreeview32内节点的单击
我只会c++语言。 如图,这个控件是Systreeview<em>32</em>。我需要单击“当日委托”这个按钮。 mouse_event的方法我已经实现了,但是有缺陷,不想用。 参照这篇模拟<em>双击</em>的方法 http://
向外部进程中的SysTreeView32的指定结点发送鼠标双击消息
我现在已经实现如下几步: 1。向外部进程的SysListView<em>32</em> 的项发送鼠标消息 :::SendMessage(hwnd, WM_LBUTTONDBLCLK, 0,MAKELONG(Rect.l
如何跨进程对SysTreeView32控件节点模拟双击
取节点坐标->然后移鼠标过去-><em>双击</em> 此方法已实现! 向tree控件的某节点位置发向两次如下的消息已过无效 ::SendMessage(GetParent(hTreeWnd), WM_LBUTTOND
SysListView32控件响应鼠标单击消息
本文出自程序人生 >> SysListView<em>32</em>控件响应鼠标单击消息 作者:代码疯子 SysListView<em>32</em>控件就是列表视图控件(MFC里面的CListCtrl就是对SysListView<em>32</em>进行的封装)。如果想知道用户选择了哪个元素,可以这么响应消息(注意,这里是Report风格):// Coded by 代码疯子 // http://www.programlife.net/
100分求助:读取远程TreeView节点上文字(如图)
本人菜鸟,看了网上高人写的两段代码后,突发奇想:如果自己能将两段代码组合成<em>一个</em>能读取远程TreeView节点文字的函数也算是真正理解了高人的代码,组合的结果是失败,最失败的是证明自己还没有真正读懂高
MFC:TabCtrl使用教程
示例下载一、新建基于对话框的MFC程序TabCtrl_Demo添加<em>一个</em>TabCtrl控件,绑定变量:CTabCtrl m_tabCtrl。二、创建Tab标签对应的子对话框插入3个子对话框,并设置属性Style=Child,Border=None。 为插入的3个子对话框分别添加对话框类CDialog1,CDialog2,CDialog3。三、在主对话框中添加tab标签子对话框对象并包含对应的头文件#
求助:跨进双击systreeview32的节点,高手请入[测试成功立付]
HWND TreeWnd; TV_ITEM tv<em>item</em>; RECT myrect; ..... 通过<em>一个</em>进程A操作另外<em>一个</em>进程B的树控件,树控件类型是<em>systreeview</em><em>32</em>,现在已经能定位到某节
Delphi 如何向SysTreeView32中的item发送双击操作或点击操作
我现在是这么做的,通过EnumChildWindows找到SysTreeView<em>32</em>句柄,然后通过TreeView_GetRoot获得第<em>一个</em><em>item</em>,现在发送SendMessage(vHandle,
用vb取得SysTreeView32里面所有节点的名字
最近在搞VB,想做<em>一个</em>类似可以自动点击天翼LIVE登陆,然后得到里面所有的联系人,现在可以自动登录,登陆后联系人都在 <em>一个</em>SysTreeView<em>32</em>的类名的窗体里,已经得到他的句柄,怎样才能得到里面所
获取SysTreeView32节点的句柄问题。求大牛
Spy没抓到 - -# C++论坛下看到 有大牛说 已成功获取了 节点句柄,就涨姿势。 当然如果用dll注入的话。这个姿势 最好给个demo来解锁 - -# 我一直没弄懂C#写的DLL 没有DLLMA
C++systreeview32 ,怎么 知道点击的哪个节点,并根据点击的节点响应不同的事件....
BOOL OnclickTree(NMHDR* pNMHDR) { POINT point; TVHITTESTINFO thti; HTREEITEM htItem; GetCursorPos(&
C# 无法获取Syslistview32 内容
``` #include #include TCHAR* ClassName = TEXT("FC数据下载 [运行监控] 日志检测"); //类名和窗口名 TCHAR* TitleName = TEXT("FC数据下载 [运行监控] 日志检测"); HWND hwnd; int total,column; HDC hdc; PAINTSTRUCT ps; HFONT hFont; CHAR szText[100] = TEXT("日志总数:"); CHAR hint[20]; int i; char <em>item</em>Text[100]={0}; LVITEM lv<em>item</em>, *plv<em>item</em>; char ItemBuf[512],*pItem; DWORD PID; HANDLE hProcess; static HWND hwndPB; //FC数据下载 [运行监控] CHAR hint1[20] = TEXT("成功:"); CHAR hint2[20] = TEXT("失败:"); CHAR hint3[20] = TEXT("未关闭文件:"); int a = 0; int b = 0; int c = 0; LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpszCmdLine,int nCmdShow){ HWND hwnd; //主窗口句柄,在CreateWindow中赋值 MSG msg; //消息变量,在GetMessage中使用 WNDCLASS wndclass; //窗口类 wndclass.hbrBackground = (HBRUSH)COLOR_WINDOW;//窗口背景 wndclass.hCursor = LoadCursor(NULL,IDC_ARROW); //鼠标 wndclass.hIcon = LoadIcon(NULL,IDI_QUESTION); //图标 wndclass.lpszClassName = ClassName; //类名 wndclass.cbClsExtra = 0; //类的额外参数 wndclass.cbWndExtra = 0; //窗口的额外参数.用于基于同一窗口类的窗口各自区分. //在自定义对话框类时必须指定为DLGWINDOWEXTRA的大小 wndclass.lpszMenuName = NULL; //菜单名.可以用作子窗口的id wndclass.style =CS_HREDRAW | CS_VREDRAW; //窗口风格 wndclass.lpfnWndProc = WndProc; //窗口过程 wndclass.hInstance = hInstance; //包含窗口过程的实例句柄 if( !RegisterClass(&wndclass) ){ //注册窗口类 MessageBox(NULL, "窗口注册失败!","错误",MB_ICONEXCLAMATION|MB_OK); return 0; } hwnd = CreateWindowEx( //创建窗口 WS_EX_TOPMOST, ClassName, //窗口类名 TitleName, //窗口标题 WS_OVERLAPPEDWINDOW, //窗口风格 CW_USEDEFAULT, //初始的x坐标 CW_USEDEFAULT, //初始的y坐标 500, //初始的宽度 700, //初始的高度 NULL, //父窗口 NULL, //菜单 hInstance, //和窗口相关的实例句柄 NULL //额外参数 ); //窗口居中 RECT rect; int xLeft,yTop; GetWindowRect(hwnd,&rect); xLeft = (GetSystemMetrics(SM_CXFULLSCREEN)-(rect.right-rect.left))/2; yTop = (GetSystemMetrics(SM_CYFULLSCREEN)-(rect.bottom-rect.top))/2; SetWindowPos(hwnd, HWND_TOPMOST, xLeft,yTop,-1,-1, SWP_NOSIZE | SWP_NOZORDER); ShowWindow( hwnd,nCmdShow ); //显示窗口 UpdateWindow( hwnd ); //更新窗口 if(hwnd == NULL) { MessageBox(NULL, "窗口创建失败!","错误",MB_ICONEXCLAMATION|MB_OK); return 0; } while( GetMessage(&msg,NULL,0,0) ) { //消息循环 TranslateMessage(&msg); //将WM_XXXKEYXXX消息翻译为WM_CHAR消息 DispatchMessage(&msg); //传递消息到窗口过程 } return msg.wParam; //返回 } DWORD WINAPI PBThreadProc( LPVOID lpParameter ){ //FC数据下载 [运行监控] hwnd = FindWindowEx(0,0,"Afx:400000:b:10003:6:e002c3","FC数据下载 [ 运行监控 ]"); hwnd = FindWindowEx(hwnd,NULL,"AfxMDIFrame42s",""); hwnd = FindWindowEx(hwnd,NULL,"#<em>32</em>770",""); hwnd = FindWindowEx(hwnd,NULL,"#<em>32</em>770",""); hwnd = FindWindowEx(hwnd,NULL,"SysListView<em>32</em>","List1"); if(!hwnd){ HWND hwnd_box = FindWindowEx(0,0,ClassName,TitleName); MessageBox(hwnd_box,"FC数据下载 [运行监控] 未启动","友情提示",MB_ICONEXCLAMATION); } //获取总条数 total = SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0); HWND hwndPB = (HWND) lpParameter; //进度条的窗口句柄 PBRANGE range; //进度条的范围 SendMessage( hwndPB, PBM_SETRANGE, //设置进度条的范围 (WPARAM)0, (LPARAM)(MAKELPARAM(0,total)) ); SendMessage( hwndPB, PBM_GETRANGE, //获取进度条的范围 (WPARAM)TRUE, //TRUE 表示返回值为范围的最小值,FALSE表示返回最大值 (LPARAM)&range ); while(TRUE){ SendMessage( hwndPB, PBM_DELTAPOS, //设置进度条的新位置为当前位置加上范围的1/40 (WPARAM)1, (LPARAM)0 );//((range.iHigh-range.iLow)/20) if( SendMessage( hwndPB, PBM_GETPOS, (WPARAM)0, (LPARAM)0 ) == range.iHigh ){ //取得进度条当前位置 break; } } } LRESULT WINAPI WndProc( HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam ){ switch( message ){ case WM_CREATE:{ //InitCommonControls(); //确保已注册了进度条类PROGRESS_CLASS hwndPB = CreateWindowEx( 0, PROGRESS_CLASS, NULL, WS_CHILD | WS_VISIBLE, 0,0,0,0, //位置和大小在WM_SIZE中设置 hwnd, (HMENU)0, ((LPCREATESTRUCT)lParam)->hInstance, NULL); CreateThread( //操作进度条的线程 NULL, 0, (LPTHREAD_START_ROUTINE)PBThreadProc, hwndPB, 0, 0 ); return 0; } case WM_PAINT:{ hdc = BeginPaint (hwnd, &ps); hFont=CreateFont(20,0,0,0,0,0,0,0,GB2312_CHARSET,0,0,0,0,TEXT("微软雅黑")); SetBkMode(hdc,TRANSPARENT); (HFONT)SelectObject(hdc,hFont); TextOut(hdc, 10, 10, szText, lstrlen(szText)); TextOut(hdc, 10, 75, hint1, lstrlen(hint1)); TextOut(hdc, 10, 98, hint2, lstrlen(hint2)); TextOut(hdc, 10, 125, hint3, lstrlen(hint3)); //FC数据下载 [运行监控] hwnd = FindWindowEx(0,0,"Afx:400000:b:10003:6:e002c3","FC数据下载 [ 运行监控 ]"); hwnd = FindWindowEx(hwnd,NULL,"AfxMDIFrame42s",""); hwnd = FindWindowEx(hwnd,NULL,"#<em>32</em>770",""); hwnd = FindWindowEx(hwnd,NULL,"#<em>32</em>770",""); hwnd = FindWindowEx(hwnd,NULL,"SysListView<em>32</em>","List1"); total = ListView_GetItemCount(hwnd); TextOut(hdc, 80, 10, _itoa(total,hint,10), lstrlen(_itoa(total,hint,10))); GetWindowThreadProcessId(hwnd,&PID); hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID); plv<em>item</em>=(LVITEM*)VirtualAllocEx(hProcess, NULL, sizeof(LVITEM), MEM_COMMIT, PAGE_READWRITE); pItem=(char*)VirtualAllocEx(hProcess, NULL, 128, MEM_COMMIT, PAGE_READWRITE); if(hProcess != NULL){ int j = 155; for(i=0; i < total; i++){ lv<em>item</em>.mask = LVIF_TEXT; lv<em>item</em>.cchTextMax=512; //FC数据下载 [运行监控] lv<em>item</em>.iSubItem=2; lv<em>item</em>.pszText=pItem; WriteProcessMemory(hProcess, plv<em>item</em>, &lv<em>item</em>, sizeof(LVITEM), NULL); SendMessage(hwnd, LVM_GETITEMTEXT, (WPARAM)i, (LPARAM)plv<em>item</em>); ReadProcessMemory(hProcess, pItem, ItemBuf, 512, NULL); //FC数据下载 [运行监控] if(strcmp(ItemBuf,"成功") == 0){ // strcmp 相等 a+=1; } if(strcmp(ItemBuf,"失败") == 0){ // strstr 包含 b+=1; } if(strstr(ItemBuf,"Z:") != NULL && strstr(ItemBuf,".") != NULL ){ //&& strstr(ItemBuf,".") != NULL c+=1; //打印出未关闭的文件路径 TextOut(hdc, 10, j, ItemBuf, lstrlen(ItemBuf)); j+=30; } } //FC数据下载 [运行监控] TextOut(hdc, 60, 76, _itoa(a,hint,10), lstrlen(_itoa(a,hint,10))); TextOut(hdc, 60, 99, _itoa(b,hint,10), lstrlen(_itoa(b,hint,10))); TextOut(hdc, 98, 125, _itoa(c,hint,10), lstrlen(_itoa(c,hint,10))); } CloseHandle(hwnd); CloseHandle(hProcess); VirtualFreeEx(hProcess, plv<em>item</em>, 0, MEM_RELEASE); VirtualFreeEx(hProcess, pItem, 0, MEM_RELEASE); return 0 ; } case WM_SIZE:{ RECT rc; GetClientRect(hwnd, &rc); MoveWindow( hwndPB, 10,//rc.left 距离左边距 40,//(rc.bottom - rc.top )/9 距离上边距 (rc.right - rc.left)-20,// 进度条长度 25,//(rc.bottom - rc.top )/12 进度条高度 TRUE); return 0; } case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc( hwnd,message,wParam,lParam ); } ```
SysListView32控件
代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/void InsertColumn(void) { LV_COLUMN lvc; lvc.mask = LVCF_TEXT | LVCF_WIDTH; lvc.pszTe
对SysTreeView32窗口类名中的某一行执行点击操作
如题
如何模拟双击SysListView32里的某一行?
现在已经获得另<em>一个</em>程序的SysListView<em>32</em>句柄,我想模拟<em>双击</em>SysListView<em>32</em>里的某一行,如何实现?谢谢!
怎么获取其他进程postmessage的消息
如题,现在写的程序需要用到其他进程postmessage的消息。 WNDCLASSEX注册的窗口过程函数调用不到,getmessage只能获取本线程post的消息 测试代码如下: ``` LRESULT CALLBACK MyWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (1233 != uMsg) return DefWindowProc(hWnd, uMsg, wParam, lParam); else std::cout << "helloworld" << lParam << std::endl; return 0; } int _tmain(int argc, _TCHAR* argv[]) { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = MyWndProc; wcex.cbWndExtra = wcex.cbClsExtra = 0; wcex.hInstance = GetModuleHandle(NULL); wcex.hIcon = wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wcex.lpszMenuName = NULL; wcex.lpszClassName = TEXT("__HARDWARE1__"); int x = RegisterClassEx(&wcex); HWND wnd = nullptr; wnd = CreateWindow(TEXT("__HARDWARE1__"), TEXT("HARDWARE_IMPL"), WS_POPUP, 0, 0, 60, 60, NULL, NULL, GetModuleHandle(NULL), &x); int err; if (wnd == nullptr) err = GetLastError(); std::thread a = std::thread( [wnd]() { while (1) { MSG msg; GetMessage(&msg, wnd, 0, 0); std::cout << "helloworld" << msg.message << std::endl; } }); while (true) { std::cin >> err; PostMessage(wnd, 1233, 0, err); } return 0; } ```
C#通过WIN32 API 获取外部程序sysListview的值和TreeView的值
C#通过WIN<em>32</em> API 获取外部程序sysListview的值   using System.Runtime.InteropServices; public const uint LVM_FIRST = 0x1000; public const uint LVM_GETITEMCOUNT = LVM_FIRST + 4; public const uint LVM_GET
跨进程控制SysTreeView32树状图控件的难题
最近公司在做<em>一个</em>智能化股票交易的项目,需要控制股票交易软件树状图进行翻页,刚开始我使用普通的WM_LBUTTONDOWN和WM_LBUTTONUP消息进行发送,发现只是实现了选择树状图节点,而没有达到实际效果,也就是控制页面跳转,遂怀疑是WM_NCHITTEST的问题,可是加入了WM_NCHITTEST消息,并把截获的消息全部依次发送后,仍无法成功。 后来发现在WM_LBUTTONUP消息后,有<em>一个</em>关键的TVM_HITTEST我没有进行处理,此时得知这个SysTreeView<em>32</em>的触发事件并不是ItemSelected,而是在鼠标点击时通过HitTest获取点击的节点,再触发下一步动作。 TVM_HITTEST消息向树状图发送了<em>一个</em>地址,这个地址指向<em>一个</em>TV_HITTESTINFO结构数据: public struct TV_HITTESTINFO { public POINTAPI pt; public int flags; public UInt<em>32</em> hItem; } 实际情况下发送的数据是这样的: ![](http://113.11.198.136:82/FileStore/1.jpg) 如果仅仅使用普通的鼠标模拟消息发送过去,pt的坐标值均为负数,显然达不到效果。可是我用WriteProcessMemory将有效的坐标值和节点句柄写入这个地址再发送过去发现,TVM_HITTEST消息中的pt坐标值会瞬间变为负值,仍然失败。如果新申请<em>一个</em>内存进行写入,结果相同。 ![](http://113.11.198.136:82/FileStore/2.jpg) 以下是用spy++截获的关键消息: ![](http://113.11.198.136:82/FileStore/3.jpg) 以下是模拟点击的代码,其中一些十六进制数值已根据实际数值进行替换 class Test { private int Handle, MainHandle, PID; public Test(int handle, int mainHandle, int pid) { this.Handle = handle; this.MainHandle = mainHandle; this.PID = pid; pHandle = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, false, PID); } public void SelectTreeItem() { int rtn; //windows鼠标消息 rtn = SendMessage(Handle, WM_NCHITTEST, 0x0, 0xAB0068); //0xAB0068是屏幕鼠标的坐标 rtn = SendMessage(Handle, WM_MOUSEACTIVATE, MainHandle, 0x2010001); rtn = SendMessage(Handle, WM_SETCURSOR, Handle, 0x2010001); //左键按下 rtn = PostMessage(Handle, WM_LBUTTONDOWN, 0x1, 0x9001D); //0x9001D是树状图内鼠标点击的相对坐标 //刷新树状图 rtn = SendMessage(Handle, WM_GETDLGCODE, 0x0, 0x0); rtn = PostMessage(Handle, WM_PAINT, 0x0, 0x0); //左键弹起 rtn = PostMessage(Handle, WM_LBUTTONUP, 0x0, 0x9001D); //0x9001D是树状图内鼠标点击的相对坐标 //改变节点 rtn = SendMessage(Handle, WM_CAPTURECHANGED, 0x0, 0x0); //HitTest欺骗 Hittest(); rtn = SendMessage(Handle, TVM_HITTEST, 0x0, 0x18F2AC); //0x18F2AC储存TV_HITTESTINFO结构数据 //选择节点 rtn = SendMessage(Handle, TVM_SELECTITEM, 0x9, 0x661770); //0x661770是目标节点的句柄(根据实际情况更改) rtn = SendMessage(Handle, WM_NCHITTEST, 0x0, 0xAB0068); } private void Hittest() { TV_HITTESTINFO NewItem = default(TV_HITTESTINFO); NewItem.pt = new POINTAPI(29, 9); NewItem.flags = TVHT_ONITEM | TVHT_ONITEMRIGHT | TVHT_BELOW | TVHT_TORIGHT | TVHT_TOLEFT | 0x77615080; NewItem.hItem = 0xF4F25FD0; WriteProcessMemory(pHandle, 0x18F2AC, NewItem, Marshal.SizeOf(typeof(TV_HITTESTINFO)), 0); } } 地址0x18F2AC也尝试过自行申请内存,结果同样。 无论怎么控制TV_HITTESTINFO数据,它的pt坐标总会变成负数。 被这个问题困扰了很久,尝试过各种办法均告失败,请各位老师帮忙看看,还有没有成功的可能性。
跨进程 SystreeView32 点击问题
大神们求救啊,小子在做<em>一个</em>自动控制软件,需要点击第三方SystreeView<em>32</em> 里面的某个节点, SystreeView<em>32</em> 窗口句柄和节点坐标,文字都已经成功获取,但是 用SendMessage发送(试过PostMessage)鼠标左键信息,目标窗口只能相应选中文本,无法触发选中后的事件.尝试加入WM NCHITTEST 消息,同样没有解决.请问如何才能实现点击SystreeView<em>32</em>并触发事件呢?
跨进程模拟左键单击另一程序的systreeview32的节点
现在有一程序B,其中有<em>一个</em><em>systreeview</em><em>32</em>窗口,我想通过我的程序A实现模拟鼠标左键单击此<em>systreeview</em><em>32</em>中的某一节点。现在<em>systreeview</em><em>32</em>的句柄我已找到,子节点的句柄也能
如何实现A进程对B进程SysTreeview32节点的点击效果
如图,被黑框选中的区域是SysTreeview<em>32</em>的<em>一个</em>节点,我要实现对这个节点的点击效果。 我已经在自己的程序里获取到这个SysTreeview<em>32</em>的句柄, 我向这个节点发送了WM_LBUTTON
CTreeView,如何确定其他程序的SysTreeView32当前节点是否为子节点
{ tv<em>item</em>.mask=TVIF_TEXT; tv<em>item</em>.cchTextMax=512; tv<em>item</em>.pszText=pItem; tv<em>item</em>.hItem=(HTREEITEM)::Send
跨进程 选择 SYSTREEVIEW32 树的CHECKBOX
如题,如何跨进程 选择 SYSTREEVIEW<em>32</em> 树的CHECKBOX? 小弟已经可以遍历 SYSTREEVIEW<em>32</em> ,折叠或者展开 节点,但是树状左边的CHECKBOX 如何才能选择到呢? 请高
跨进程 获取 syslistview32 内容
http://bbs.csdn.net/topics/100073407 (*// 标题:获取其他进程中ListView的文本 说明:Window2000+Delphi6调试通过 设计:Zswang 支持:wjhu111@21cn.com 日期:2004-03-25 //*) uses CommCtrl; function ListViewColumnCount(mHandle:
[WinForm]怎么让 TreeView 某节点处于被选中的状态和样式?
自我感觉正在问<em>一个</em>很蠢的问题、 要实现一种功能: 在点击节点事件中加入判断, 如果所选节点没有子节点,则正常选中; 如果有子节点,则选中它的第<em>一个</em>子节点 遇到的问题是, treeView1.Selec
Win32 SDK的SysTreeView如何获取和响应点击节点事件
Win<em>32</em> SDK的SysTreeView如何获取和响应点击节点事件
如何定位到treeview的某个节点?
如题
巧用SendMessage函数扩展Treeview功能
Option ExplicitPrivate Type TPoint    x As Long    y As LongEnd TypePrivate Type TVHITTESTINFO    pt As TPoint    flags As Long    hItem As LongEnd TypePrivate Type TVITEM    mask As Long    HTr...
TreeView 节点的显示,读取,操作
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;usi...
解决treeview的同一节点单击多次的执行问题
在使用treeview的AfterSelect函数的时候,单击同一节点多次无响应。 解决方法: 将首次单击的节点信息保存到selectTreeNode; 然后使用click函数,判断单击的节点是否和selectTreeNode一致。如果一致执行。 关键步骤: 1、根据鼠标位置得到当前活动节点。当然这一步得到的仍然可能在意料之外,因为TreeNode右边的空白位置算作它的区域...
关于外部程序SysTreeView32的问题
某一外部程序的SysTreeView里面有很多节点项目,现在可以选择那些项目。但是无法实现点击该项目的效果。 比如: 项目1 项目2 项目3 如何实现对该外部SysTreeView里的项目1实现鼠标点
它进程对SysTreeView32模拟点击
请问:windows控件SysTreeView<em>32</em>模拟点击(无论<em>双击</em>或者左键单击)怎么做? 有人说需要WM_NCHITTEST,但是似乎还是没用 我连发了6个消息,都没有用 SendMessage(m_lefttreeview, WM_NCHITTEST, NULL, m_iconOrders); PostMessage(m_lefttreeview, WM_LBUTTONDOWN, NULL, m_iconOrders); PostMessage(m_lefttreeview, WM_LBUTTONUP, NULL, m_iconOrders); PostMessage(m_lefttreeview, WM_LBUTTONDBLCLK, NULL, m_iconOrders); PostMessage(m_lefttreeview, WM_NCHITTEST, NULL, m_iconOrders); PostMessage(m_lefttreeview, WM_LBUTTONUP, NULL, m_iconOrders); ------------- 那种mouse_event的函数我能够实现此功能,但是此方案不太适合
有谁知道TreeView_getItemRect函数如何声明,使用他应该引用那个dll?
有谁知道TreeView_getItemRect函数如何声明,使用他应该引用那个dll?
关于c++ SysTreeView32 这玩意的....获得选中节点属性的方法
BOOL OnChildWindowsNotify(PVOID pParam) { LPNMHDR phdr = (LPNMHDR)pParam; if (phdr->hwndFrom != hwndTreeView) { return FALSE; } switch (((LPNMHDR)pParam)->code) { case NM_RCLICK:
向SysListView32里的某一行发送双击消息
演示如何向SysListView<em>32</em>里的某一行发送<em>双击</em>消息
获得SysListView32的值的软件源码
获得SysListView<em>32</em>的值VB很实用的源码,精心挑选的精品源码
句柄操作SYSLISTVIEW32
这几天公司有个项目是关于自动化的,说白了就是句柄操作。这几天遇到了<em>一个</em>syslistview<em>32</em>子项的<em>双击</em>事件,着是棘手,找了好半天才算苟延残喘地完成了,写篇总结,也给需要的人一些参考,少走些弯路吧。 单击(伪单击): 模拟SYSLISTVIEW<em>32</em>的Item的<em>一个</em>单击(选中该<em>item</em>)的话,这个不难,只需要遍历他的<em>item</em>,并把该<em>item</em>的状态设置为选中就可以了。上代码:        [
给其它程序的treeview发送消息的问题
我要做的是<em>一个</em>“阿里旺旺”的群发消息程序,它显示用户名的类为“SysTreeView<em>32</em>”。是<em>一个</em>和treevtew差不多的类。。。我想问下,我要怎么给SysTreeView<em>32</em>这个控件中的每一行发送
如何获取syslistview32某一行的屏幕坐标
如何获取syslistview<em>32</em>某一行的屏幕坐标(例如,迅雷的下载列表就是<em>一个</em>syslistview<em>32</em>控件),以下方式获取的坐标转变为屏幕坐标好像不对,请高手作答。 function GetIte
求此代码?
打开“设备管理器”,点击“网络适配器”前边的+号,点击选中“你自己的网卡”,右键选择“停用” 以上的步骤希望用代码实现,实现要求和手动操作一样。 我知道,停用网卡有其它的方法,这里我只想用这种方法实现
如何向SysListView32里的某一行发送双击消息
问题如题 定位和取内容都可以了 就差这个<em>双击</em>消息不懂怎么发 希望大虾们指点迷津
如何读取其他程序中syslistview32中的数据
当其他程序syslistview<em>32</em>中lvs_ownerdrawfixed设置为true时产生的数据如何读取。 下面的方法读取不出来,请高手帮忙 Option Explicit Private Con
SysTreeview32
vb 怎么读取 <em>systreeview</em> 中选中节点 文本名称呢
delphi中如何让treeview打开时默认自动展开到第三级(共6级)
delphi中如何让 treeview 打开时默认自动展开且只展开到第三级节点,比如有6节,我只想自动展开到第三级,三级以下都收起来 程序本身用的是dxdbtreeview 我想方法应该是一样的
delphi 中TreeView滚动条自动定位到被选中节点问题
delphi 中TreeView滚动条自动定位到被选中节点问题 有的开发程序,有EnsureVisible这个属性,但是delphi中怎么写代码啊。
跨进程获取设置了LVS_OWNERDATA 的SYSLISTVIEW32控件中的数据
跨进程获取设置了LVS_OWNERDATA 的SYSLISTVIEW<em>32</em>控件中的数据
Delphi 中递归生成TreeView节点的方法
在数据库中建一张表,包含:NodeName,NodeId,ParentId 3个字段,具体什么含义,一看就知了。过程如下:procedure TFRM_channel.formtreenode(parentid:string;TreeView1: TTreeView;parentnode:TTreeNode;ADOQuery1:TADOQuery);var    i:integer;   
跨进程点击treeview节点
最近写VBA程序,点击treeview控件的节点,只能用windows的api函数mouse_event,但是window系统锁屏的时候,mouse_event函数会被屏蔽,在网上找了半天,找到代码注入的方法,但在VBA里createremotethread时候,被注入的进程会崩溃,具体原因不太清楚。 最后用C++试了下WM_LBUTTONDBLCLK,竟然有作用,而同样的代码在VBA无效....
delphi 递归遍历TreeView树节点
/以下全部调试通过,你在窗体扔<em>一个</em>Treeview就行了 procedure GetRootNodes(ATreeView:TTreeView);//得到所有根节点 var vNode:TTreeNode; begin   vNode:=nil;   vNode:=ATreeView.Items.GetFirstNode;   While vNode   begin     S
Delphi代码片段:打开注册表编辑器并自动定位
以前用别人的系统维护工具的时候,都有这样<em>一个</em>功能:软件界面<em>双击</em>一项注册表信息,那么该软件就会打开注册表编辑器并自动定位到对应位置,方便用户浏览.这段时间我在开发<em>一个</em>工具的时候,就用到这种技术.
怎么获取SysTreeView32控件下所有节点句柄并发送消息选中单击
如图左边是<em>一个</em>SysTreeView<em>32</em>控件, 我想获取该控件下所有节点的句柄,并能发送消息选中单击某个指定名称节点 求指点。。。 小菜鸟刚接触API不久 在线等.....求源码 #region A
Python GUI 之 Treeview 学习
Python的Treeview手册  https://docs.python.org/3.1/library/tkinter.ttk.html?highlight=treeview#tkinter.ttk.Treeview <em>一个</em>不错的博客文章 https://blog.csdn.net/sinat_27382047/article/details/80161637 按列内的值进行排序 htt...
请教,如何用vb.net从系统SysListView32控件中读取文件名称
最近需要实现<em>一个</em>功能,即从程序外部获得鼠标左键点击选中的文件名称。大体思路如下。 1、设置鼠标钩子。当发生LeftButtionUp事激活处理程序。(注意:这里必须用LeftButtionDown,因
32,使其右边窗口可以跳转?">如何点击WIN7的"计算机"窗口的sysTreeview32,使其右边窗口可以跳转?
查找子节点,选中子节点,获取子节点的坐标都已经实现了,但是点击子节点,使计算机窗口右边跳转到相应地址,这个功能实现不了。网上都说用CreateRemoteThread来实现,但是都没贴代码出来,没有参
我想控制鼠标移动到另一个程序的SysTreeView32控件上,然后模拟鼠标单击右健选择弹出菜单的某一项,如何办?
我想控制鼠标移动到另<em>一个</em>程序的SysTreeView<em>32</em>控件上,然后模拟鼠标单击右健选择弹出菜单的某一项,如何办?
SysListView32通用表格控件内容读取程序
刚刚写的用来读取Windows通用控件之表格控件的程序. 在这两天学习Windows的服务的时候觉得要把MMC中服务管理列表提取出来研究所以做了这个软件,拿出来给大家共享 。主要用到的是: Write
Python调用autoit
1. 安装pywin<em>32</em>模块,地址:http://sourceforge.net/projects/pywin<em>32</em>/  选择对应的版本下载 2.从autoit3\AutoItX下找到AutoItX3_x64.dll AutoitX.dll,选择对应的<em>32</em>位/64位版本 3.注册dll       regsvr<em>32</em> AutoItX3_x64.dll 或regsvr<em>32</em> AutoitX.dll
C#如何获取其他程序ListView控件中的内容 含源码
需求:获取其他程序中的ListView控件的文本内容 原理:进程之间是相互隔离的,数据是不能共享的(有些特例)    LVM_GETTITEMTEXT:将<em>一个</em>数据缓冲区提供给listview<em>32</em>控件,你不能把你的进程的数据缓冲提供给另外的程序,所以要用openprocess 打开“任务管理器”进程, 然后     在“任务管理器进程”中申请足够长度的内存(VirualAllocEx),将这个内
请教如何使SysListView32一个Item处于选中状态
如何使用消息来实现这个操作 我用SetHotItem的时候不行,这个消息只能使<em>一个</em>Item的文字呈高亮,但并不是选中状态 请教高手
使用c#跨进程操作SysTreeView32
项目需要模拟鼠标点击其他应用程序的SystemTreeView<em>32</em>控件指定Item。 //define public const int TVM_ENSUREVISIBLE = 0x1100 + 20; public const int WM_LBUTTONDOWN = 0x0201; public const int WM_LBUTTONUP = 0x0202; public
sysTreeView32树形控件,模拟鼠标双击没有实现,请大家指教。。。
我想让软件自动点击新股申购中的批量申购新股,哪位高人提供个思路,尝试用SendMessage,PostMessage也没有实现成功。 用spy++查看类为SysTreeView<em>32</em>。
C#下用API 跨进程控制别的窗体的TreeView节点的展开与点击
如何在C#下用API 跨进程控制别的窗体的TreeView节点的展开与点击. 网上搜索是用SendMessage来实现,可是具体不知道怎样写! 高手帮帮忙啊!!
C# API 应用(跨进程控制别的窗体的TreeView节点的展开与点击)
class API { #region "API函数定义 " [DllImport( "user<em>32</em>.dll ", CharSet = CharSet.Unicode)] private static extern int SendMessage(int hWnd, int msg, IntPtr wParam, IntPtr lparam); [DllImport( "user<em>32</em>.dll ",
跨进程获取树控件节点信息
几天前在 myf1 上遇到人问如何获取其它程序中的树控件节点内容,当时就将要用到的几个 api 告诉了它,然后自己试了一试,成功!今天空闲时无意中又运行了它,结果却发现被探测的程序挂掉了!仔细回忆一下,原来测试时是在同<em>一个</em> vfp 内运行两个表单,<em>一个</em>做测试对象,里面有<em>一个</em> TreeView,另<em>一个</em>就是这个探测器;由于同在<em>一个</em> vfp 进程内,所以没有发生错误。这次不同是,被探测的是 msdn 的
如何跨进程双击TreeView节点?
要操作的目标进程是别人用VC++开发的外部程序。 现在我要在自己的程序里模拟鼠标<em>双击</em>目标进程内的TreeView控件中的节点。 已经获得: 要操作的进程句柄、TreeView控件句柄、要<em>双击</em>的节点的句
跨进程实现在Tree中快速定位节点
    前些日子写软件时,需要实现<em>一个</em>功能,就是在Tree中快速定位节点,比如注册表编辑器左边的Tree,只要给出Tree中的节点路径(以“/”分隔),就可以快速将树展开,并将当前节点定位到指定的节点。功能的实现并不难,但稍有些麻烦。原因在于,如果是本进程中的Tree,只要发消息就可以了,但如果是另外<em>一个</em>进程中的Tree,就要在那个进程中申请内存,将Tree节点的文字复制到这块内存,然后再把这块内
在C#中如何实现点击左边treeview的节点,右边显示相应的界面?
在母版页中,左侧加了treeview,右侧加了<em>一个</em>panel,在应用母版页的页面中,想要实现点击左侧节点,只改变右侧panel的内容,也就是显示相对应的网页,该如何实现?本人菜鸟一枚,如果不用pane
c#使用API跨进程单机TreeView子节点
我通过API能够获得其他进程的TreeView的句柄以及各个子节点的句柄,但是鼠标左右键单机消息无法实现,使用mouse_event的话,无法获得子节点的具体坐标,所以也就没办法实现,有什么方式能获得
vs2015C#treeView点击子节点触发事件怎么实现?
我想用vs实现treeview单击不同子节点显示不同label中的文字,比如单击左侧节点右侧label中显示节点名字。
C#通过Win32 API获取外部程序中SysTreeView32和ListView32的值,结果为空,这是为什么
小弟我用C#.NET通过Win<em>32</em> API获取外部程序中SysTreeView<em>32</em>和ListView<em>32</em>的值,结果为空,这是为什么? 这是我从网上找来的代码,运行结果获取到的值为空 请大神们帮忙指点迷
C#界面之为TreeView上任意子节点添加Click事件
PanPen120在CSDN上原创,如其他网站转载请注意排版和写明出处:  http://write.blog.csdn.net/postlist 主要解决的问题:WinForm中用到树TreeView控件,想要点选任意节点有Click事件,但是发现点击子节点没有进入代码弹出Click事件 因为有事,现在有点晚了,直接上刚刚给自己写好的Demo
???100分急求!!!如何向SysTreeView32中的item发送双击操作
已只SysTreeView<em>32</em>和<em>item</em>的句柄,如何向SysTreeView<em>32</em>中的<em>item</em>发送<em>双击</em>操作???
C#实现treeview节点三种选择状态
C# 实现treeview节点的三种选择状态,相比微软提供的checkbox控件的两种选择状态,该实例多了子节点部分选中,父节点实现半选状态
C#WINDOW VS2015 c#TreeView 之后点击树中的任何一个节点,触发事件问题
   private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)         {             if (e.Node.Text.Trim() == "销售部门")   //如果当前节点的文本为“系统退出”             {                
DelPhi Treeview 操作实例 onclick节点 treeview1.Selected.Level
怎么改变Treeview中的图标? OnClick事件Click获取Node.text 批量处理及实现TreeView结点拖拽的实例 //这个过程根据你的要求选择图标 procedure TForm1.TreeView1GetImageIndex(Sender: TObject; Node: TTreeNode); begin   if Node.HasChildren then  
C#遍历treeview节点,以及对应名字文件的内容获取
![图片说明](https://img-ask.csdn.net/upload/201806/22/1529662513_110983.png) ![图片说明](https://img-ask.csdn.net/upload/201806/22/1529662522_916192.png) C#treeview建立节点如上图所示,每建立<em>一个</em>节点,会在对应某个目录下生成相对应节点名字的txt文档,如图所示, 现在按照treeview顺序遍历treeview的节点,test01,test03,test02,test05,test04 遍历到test01,获取test01文件内容 tmp 遍历到test03,获取test03文件内容 遍历到test02,获取test02文件内容 遍历到test05,获取test05文件内容 遍历到test04,获取test04文件内容, 最后按照test01,test03,test02,test05,test04的顺序,把获取的所有内容叠加在一起tmp_all+=tmp; 最后遍历节点 匹配对应节点名字的文件 这块代码怎么写??
求TabCtrl自绘(SDK)代码,可加足300分!
要求: 1、平面型; 2、活动页面及页签按钮包含边框,非活动页面页签按钮没有边框; 3、活动页面与非活动页面、页签按钮背景色相一致(灰色); 4、页签按钮无间隙; 5、页签按钮等高,高度和宽度最好能在
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是<em>一个</em>层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
历届全国数学建模论文集合下载
此文件夹包含了进几年全国数学建模比赛的获奖论文,可以用来学习交流使用 相关下载链接:[url=//download.csdn.net/download/LIQINGWANGXIAOMEI/2697999?utm_source=bbsseo]//download.csdn.net/download/LIQINGWANGXIAOMEI/2697999?utm_source=bbsseo[/url]
微信弹层axure原型下载
此资源是微信弹层页面的axure设计,里面有设计的gif,有需要的同学可以进行下载 相关下载链接:[url=//download.csdn.net/download/gis815925677/10778427?utm_source=bbsseo]//download.csdn.net/download/gis815925677/10778427?utm_source=bbsseo[/url]
鸟哥的私房菜 linux入门好书下载
linux入门教材,个人感觉不错,可以另一个linux菜鸟对linux有个整体了解,是居家旅行不可或缺的好书. 相关下载链接:[url=//download.csdn.net/download/vxwumin/3015079?utm_source=bbsseo]//download.csdn.net/download/vxwumin/3015079?utm_source=bbsseo[/url]
相关热词 如何提升c#开发能力 矩阵乘法c# c#调用谷歌浏览器 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天
我们是很有底线的