VB.NET 中 GetClassName 的使用?

a854468521 2009-06-11 08:31:52
//声明:
GetClassName(
hWnd: HWND; {指定窗口句柄}
lpClassName: PChar; {缓冲区}
nMaxCount: Integer {缓冲区大小}
): Integer; {返回类名大小; 失败返回 0}


Private Declare Function GetClassName _
Lib "user32" _
Alias "GetClassNameA" ( _
ByVal hwnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long) _
As Long
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Dim ClassName As String
'该句为VB6.0语句,需转换为VB.NET
' ClassName = String(255, Chr(0))
'示例取出目前本程序的类名称。
GetClassName(Me.Handle.ToInt32, ClassName, 255)
’获得指定进程的类名称。

End Sub

不能正确获得进程的类名称(不用反射)
...全文
505 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
a854468521 2009-06-11
  • 打赏
  • 举报
回复
已找到原因,参数传递错误,谢谢大家。
a854468521 2009-06-11
  • 打赏
  • 举报
回复
<DllImport("User32.Dll")> Public Shared Function GetClassName(ByVal h As Int32, ByVal s As StringBuilder, ByVal nMaxCount As Int32) As Long
End Function
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Exc = New Microsoft.Office.Interop.Excel.Application
Exc.Workbooks.Add()
Exc.Visible = True
Me.TextBox1.Text = Exc.Hwnd
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

Dim sb As New StringBuilder(255)
'Me.Text = GetClassName(Me.Handle, sb, sb.Capacity - 1)
Me.Text = GetClassName(Exc.Hwnd, sb, sb.Capacity)
MsgBox(sb.ToString)
返回 XLMIAN
'Exc.Quit()
End Sub
所读出的数据和在EXCEL用VBA 读出的不一样?

'//取得类名
Private Declare Function GetClassName _
Lib "user32" _
Alias "GetClassNameA" ( _
ByVal hwnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long) _
As Long
sub sy
ClassName = String(255, Chr(0))
GetClassName application.Hwnd, ClassName, 255
ClassName = Left(ClassName, InStr(ClassName, vbNullChar) - 1)
返回:EXCEL6
end sub

在VBA和VB.NET返回值不一样,GetClassName (传入的句柄一样),为什么呢?


古今多少事 2009-06-11
  • 打赏
  • 举报
回复
学习了!
feiyun0112 2009-06-11
  • 打赏
  • 举报
回复
Private Declare Auto Function GetClassName Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal className As System.Text.StringBuilder, ByVal buffersize As Integer) As Integer

Dim s As New System.Text.StringBuilder(256)
GetClassName(Me.Handle.ToInt32, s, s.Capacity)
MsgBox s.ToString


*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
cnzdgs 2009-06-11
  • 打赏
  • 举报
回复 1
VB.NET中的Long类型与VB6不同,是64位整数,声明GetClassName时要用UInt32。
Private Declare Auto Function GetClassName Lib "user32" (ByVal hwnd As UInt32, ByVal lpClassName As String, ByVal nMaxCount As UInt32) As UInt32

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Dim ClassName As New String(ChrW(0), 255)
GetClassName(Me.Handle, ClassName, 255)
End Sub
专业CT胰腺癌分割数据集 本数据集包含1600例高质量腹部增强CT影像,覆盖门静脉期与动脉期关键期相,包含多样化的胰腺解剖变异、肿瘤位置(胰头、胰体、胰尾)及分期(可切除、临界可切除、局部晚期)。所有影像均经由顶尖医学心的胰腺外科与影像科专家团队进行联合双盲审核与体素级精细标注,确保胰腺实质与肿瘤区域的分割达到手术级精度,可作为胰腺癌诊断、可切除性评估及新辅助疗效评价的可靠标准。 数据集已进行前沿的预处理流程,包括多期相非线性配准、各向同性体素重采样(1.0×1.0×1.0 mm³)、模态特定的强度标准化,并严格按8:2比例划分为训练集与验证集。数据以NIfTI格式存储,配套标注明确区分以下三类目标: • 0: 背景(包括所有非胰腺腹部器官、组织及空腔) • 1: 胰腺实质 • 2: 胰腺癌病灶 本数据集专为训练最先进的医学影像分割模型(如nnUNet、TransUNet)而优化,可用于开发高精度、高鲁棒性的胰腺及胰腺癌自动分割系统,为肿瘤的精准定位、体积测量、影像组学分析及手术规划提供关键基础。 随附的专业分析工具包,支持一键生成肿瘤三维形态学与纹理特征提取、多期相增强模式量化分析、胰腺与病灶体积比计算,并提供交互式三维可视化对比工具,全面支撑影像组学研究与模型可解释性分析。 该数据集具有规模大、标注精准、多期相、临床意义明确的突出优势,是开展胰腺癌影像人工智能、计算机辅助诊断、预后预测及治疗反应评估研究的黄金标准数据集。基于本数据集训练的模型,有望实现胰腺及癌灶的亚毫米级精准分割。 在人工智能赋能精准胰腺外科与肿瘤学的关键领域,高质量、专家级、病灶特异性的标注数据是推动相关AI工具迈向临床决策的核心。我们隆重推出这套经多学科顶尖专家严格质控的CT胰腺癌分割数据集,致力于为全球研究者提供可靠、可验证、可直接驱动临床转化的高性能研究基础。
源码链接: https://pan.quark.cn/s/22f532ed24ae ### MySQL 密码变更指南#### 一、引言在数据库维护的日常实践,周期性更新数据库名称的访问密钥是一项关键的安全实践。MySQL平台提供了多样的途径来调整密码,涵盖了在Windows与Linux操作系统环境下的具体实施方法。本说明将详尽阐述如何在两种系统配置更改MySQL的登录凭证。#### 二、在Windows平台调整MySQL密码在Windows环境下修正MySQL密码主要涉及两个核心环节:接入MySQL服务器及运用指令修改密码。**阶段1:接入MySQL**1. 启动命令行界面(cmd)。2. 定位至MySQL的安装路径下的`bin`子目录。通常路径为`C:\Program Files\MySQL\MySQL Server xx\bin`,其`xx`代表MySQL服务器的特定版本标识。3. 运用以下指令连接至MySQL服务器: ```bash mysql -u root -p ``` 在提示时输入MySQL管理员(root)的当前密钥后按回车键即可成功接入。**阶段2:调整密码**1. 成功接入后,执行以下指令来变更密码: ```sql SET PASSWORD FOR root@localhost = PASSWORD(新密钥); ``` 其`新密钥`替换为你计划设定的新访问密钥。2. 若调整操作成功,MySQL将反馈确认信息,表明密码已成功更新。#### 三、在Linux平台调整MySQL密码相较于Windows系统,在Linux环境下修正MySQL密码的过程稍显复杂,需要首先终止MySQL服务的运行,然后启动一个临时的服务实例,最终才能执行密码的调...
内容概要:本文围绕“考虑储能和可再生能源消纳责任制的售电公司购售电策略”展开研究,提出了一种基于遗传算法的优化模型,用于帮助售电公司在多重约束条件下制定最优购售电决策。该模型综合考虑了储能系统的运行特性、可再生能源的波动性以及国家政策规定的可再生能源消纳责任权重,构建了一个多目标、多时段的优化框架。通过Python编程实现遗传算法求解,有效平衡了成本最小化与绿色指标达标之间的关系,提升了售电公司在复杂电力市场环境下的运营效益与合规能力。文还提供了完整的代码实现与案例仿真,验证了模型的有效性与实用性。; 适合人群:具备一定电力系统基础知识和Python编程能力,从事能源管理、电力市场分析或智能优化算法研究的科研人员及工程技术人员,尤其适合研究生及以上层次的学习者。; 使用场景及目标:①应用于电力市场化背景下售电公司的经营策略制定;②支持含储能与可再生能源接入的电力系统优化调度研究;③为遗传算法在能源领域的实际应用提供实践范例。; 阅读建议:建议读者结合代码与理论模型同步学习,重点关注目标函数设计、约束条件建模及遗传算法参数设置部分,宜自行调整场景参数进行仿真测试,以深入掌握模型的适应性与优化机制。

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧