VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索

超强shell,附例子(源码)

2012-8-5 11:01| 发布者: lyz8| 查看: 549| 评论: 7|原作者: lyz8

摘要: 最近在研究shell,在国外淘得一类,不敢独享 主要功能 1.定时结束程序 2.隐藏执行 3...........其它的自已下了慢慢看吧 我是新手我怕谁,下了不给加分的,杀无赦!
最近在研究shell,在国外淘得一类,不敢独享

主要功能

1.定时结束程序
2.隐藏执行
3...........其它的自已下了慢慢看吧


我是新手我怕谁,下了不给加分的,杀无赦!
shell.gif
Shell32.zip
发表评论

最新评论

引用 d9studio 2008-12-9 14:31
杀无赦啊,,不下了...
引用 lyz8 2008-12-9 14:36
原帖由 d9studio 于 2008-12-9 14:31 发表
杀无赦啊,,不下了...


老实交代,下载次数1,是不是你下的
引用 261001126 2008-12-9 15:14
这里也有一个加强shell

可以指定目标EXE的运行目录,进程优先级,启动方式(最大化最小化等),以及进程句柄(hProcess)和Pid等



  1. Attribute VB_Name = "ModSuperShell"
  2. Option Explicit

  3. Const INFINITE = &HFFFF
  4. Const STARTF_USESHOWWINDOW = &H1
  5. Public Enum enSW
  6.        SW_HIDE = 0
  7.        SW_NORMAL = 1
  8.        SW_MAXIMIZE = 3
  9.        SW_MINIMIZE = 6
  10. End Enum
  11. Private Type PROCESS_INFORMATION
  12.        hProcess  As Long
  13.        hThread  As Long
  14.        dwProcessId  As Long
  15.        dwThreadId  As Long
  16. End Type
  17. Private Type STARTUPINFO
  18.        cb  As Long
  19.        lpReserved  As String
  20.        lpDesktop  As String
  21.        lpTitle  As String
  22.        dwX  As Long
  23.        dwY  As Long
  24.        dwXSize  As Long
  25.        dwYSize  As Long
  26.        dwXCountChars  As Long
  27.        dwYCountChars  As Long
  28.        dwFillAttribute  As Long
  29.        dwFlags  As Long
  30.        wShowWindow  As Integer
  31.        cbReserved2  As Integer
  32.        lpReserved2  As Byte
  33.        hStdInput  As Long
  34.        hStdOutput  As Long
  35.        hStdError  As Long
  36. End Type
  37. Private Type SECURITY_ATTRIBUTES
  38.        nLength  As Long
  39.        lpSecurityDescriptor  As Long
  40.        bInheritHandle  As Long
  41. End Type
  42. Public Enum enPriority_Class
  43.        NORMAL_PRIORITY_CLASS = &H20
  44.        IDLE_PRIORITY_CLASS = &H40
  45.        HIGH_PRIORITY_CLASS = &H80
  46. End Enum
  47. Private Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
  48. Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
  49. Private Declare Function SetPriorityClass Lib "kernel32" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long
  50. Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

  51. Public Function SuperShell(ByVal App As String, ByVal WorkDir As String, ByVal start_size As enSW, ByVal Priority_Class As enPriority_Class, ByRef hPro As Long, ByRef PID As Long) As Boolean
  52.        Dim PClass   As Long
  53.        Dim sinfo   As STARTUPINFO
  54.        Dim pinfo   As PROCESS_INFORMATION
  55.        'Not  used,  but  needed
  56.        Dim sec1   As SECURITY_ATTRIBUTES
  57.        Dim sec2   As SECURITY_ATTRIBUTES
  58.        'Set  the  structure  size
  59.        sec1.nLength = Len(sec1)
  60.        sec2.nLength = Len(sec2)
  61.        sinfo.cb = Len(sinfo)
  62.        'Set  the  flags
  63.        sinfo.dwFlags = STARTF_USESHOWWINDOW
  64.        'Set  the  window's  startup  position
  65.        sinfo.wShowWindow = start_size
  66.        'Set  the  priority  class
  67.        PClass = Priority_Class
  68.        'Start  the  program
  69.        If CreateProcess(vbNullString, App, sec1, sec2, False, PClass, _
  70.        0&, WorkDir, sinfo, pinfo) Then
  71.                'Wait
  72.                WaitForSingleObject pinfo.hProcess, INFINITE
  73.                SuperShell = True
  74.                hPro = pinfo.hProcess
  75.                PID = pinfo.dwProcessId
  76.        Else
  77.                SuperShell = False
  78.        End If
  79. End Function

复制代码
引用 xthyx 2008-12-9 16:25
顶一下!!
引用 tonycasablanca 2008-12-10 21:56
楼主发的是好东西,顶!

请教4楼的,
ByVal WorkDir As String
请问它又什么具体的作用?

其实我感觉它用处不是很大
如果我只想shell个普通的exe文件
还要再把路径给它一份,麻烦!
如果设置为空的话,程序还不好用了呢!
引用 261001126 2008-12-10 22:18
原帖由 tonycasablanca 于 2008-12-10 21:56 发表
楼主发的是好东西,顶!

请教4楼的,
ByVal WorkDir As String
请问它又什么具体的作用?

其实我感觉它用处不是很大
如果我只想shell个普通的exe文件
还要再把路径给它一份,麻烦!
如果设置为空的话, ...

ByVal 按值传递(ByValue),意思是传入的形式参数改变了,但是不影响实际参数的数值
比如
在一个函数fn()有参数para,是byval的,
那么在函数里面如果有语句para=999,
有变量dim p as integer = 100;
那么调用
fn(p)
之后,p的值仍然是100,而不是999,函数里面的修改不影响外面的变量

与它对应的是ByRef ,按引用传递
这个时候,调用了函数之后,p的值就变成999了


加强的shell就是让shell能有更多的执行参数,你要shell普通exe,就用shell就行了
引用 tonycasablanca 2008-12-10 22:43
啊!
楼上的,我是想问 WorkDir 这个参数的作用啊
不是关键字和函数的调用啊,这些我知道的啦~~~

能否举个具体的例子,说明一下这些参数的具体作用,
尤其是这个 WorkDir

[ 本帖最后由 tonycasablanca 于 2008-12-10 22:44 编辑 ]

查看全部评论(7)

相关分类

文字版|手机版|小黑屋|VBGood  

GMT+8, 2021-4-14 00:04

VB爱好者乐园(VBGood)
返回顶部