找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
楼主: 0xAA55

【VB6】最简多线程(线程函数内可使用API、Form、控件、MsgBox

[复制链接]
发表于 2024-6-1 16:01:42 | 显示全部楼层
会崩溃
回复

使用道具 举报

 楼主| 发表于 2024-6-3 09:41:52 | 显示全部楼层

具体说说,怎样使用会崩溃
回复 赞! 靠!

使用道具 举报

发表于 2024-9-12 10:08:45 | 显示全部楼层
很好的资料,好好学习
回复 赞! 靠!

使用道具 举报

发表于 2025-5-28 08:50:25 | 显示全部楼层
用汇编创建一个MESSAGETIMEOUT对话框,晚个几百毫秒再退出这样其他进程都退成功了,再自动关闭这个对话框, VB6 进程就不会崩了
回复 赞! 靠!

使用道具 举报

发表于 2025-5-28 08:59:58 | 显示全部楼层
本帖最后由 逍遥爱迪生 于 2025-5-28 15:04 编辑

用汇编创建一个MESSAGETIMEOUT对话框,晚个几百毫秒再退出这样其他进程都退成功了,再自动关闭这个对话框, VB6 IDE 进程就不会崩了
Unloadexe

  1. Public Sub UnloadDll()
  2.    
  3.     Dim asm As New clsASM, t As Long
  4.    
  5.     With asm
  6.         .Push 1
  7.         .Push StrPtr("提示")
  8.         .Push StrPtr("你确定要卸载模块?")
  9.         .Push 0
  10.         .Mov_EAX GetProcAddress(动态链接库的模块句柄("User32.dll"), "MessageBoxW")
  11.         .Call_EAX
  12.         .Cmp_EAX 2
  13.         .JE "1E"
  14.         .Push 0
  15.         .Mov_EAX 过程内存地址(AddressOf 落叶的忧伤)
  16.         .Call_EAX
  17.         .Cmp_EAX 0
  18.         .JE "0E"
  19.         .Push_EAX
  20.         .Mov_EAX GetProcAddress(动态链接库的模块句柄("kernel32"), "FreeLibrary")
  21.         .Call_EAX
  22.         .Cmp_EAX 0
  23.         .JE "1D"
  24.         .Ret
  25.         .Push 0
  26.         .Push StrPtr("提示")
  27.         .Push StrPtr("获取DLL句柄失败,DLL卸载失败!")
  28.         .Push 0
  29.         .Mov_EAX GetProcAddress(动态链接库的模块句柄("User32.dll"), "MessageBoxW")
  30.         .Call_EAX
  31.         .Ret
  32.         .Push 0
  33.         .Push StrPtr("提示")
  34.         .Push StrPtr("DLL卸载失败!")
  35.         .Push 0
  36.         .Mov_EAX GetProcAddress(动态链接库的模块句柄("User32.dll"), "MessageBoxW")
  37.         .Call_EAX
  38.         .Ret
  39.     End With
  40.    
  41.     t = asm.Run_ASM
  42.    
  43.     CreateRemoteThread -1, 0, 0, t, 0, 0, 0                                     '远程创建线程
  44.    
  45. End Sub
  46. Public Function 落叶的忧伤(ByVal 参数 As Long) As Long
  47.    
  48.     Select Case 参数
  49.         
  50.     Case 0                                                                      '关闭窗口 返回自身DLL句柄
  51.         
  52.         
  53.         If 落叶的忧伤 = 0 Then 落叶的忧伤 = App.hInstance
  54.         
  55.         If 落叶的忧伤 = 0 Then MessageBox 0, "DLL为0", "卸载", 0
  56.         
  57.         
  58.         
  59.     Case 2
  60.         
  61.         MessageBox 0, "模块卸载失败!", "卸载", 0
  62.         
  63.     Case Else
  64.         
  65.         
  66.         参数 = 参数
  67.         
  68.     End Select
  69.    
  70. End Function
复制代码
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2025-6-15 03:01 , Processed in 0.024117 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表