24小时热门版块排行榜    

查看: 239  |  回复: 8
当前主题已经存档。
【悬赏金币】回答本帖问题,作者无声黑白破东风将赠送您 10 个金币

无声黑白破东风

银虫 (正式写手)

[求助] 懂VB的请进:如何查看一个程序运行后,记录的命令格式。

比如调用RNAstructure.exe后,输入的是rna.seq,得到的结果是rna.ct
命令记录就是:
D:\Program   Files\RNAstructure   4.11\RNAstructure.exe""   /fold   -s   rna.seq   -c   rna.ct

网上找到了有人编好的,可是看不懂,有高手帮我看看,如何用吗?
编好的在http://community.csdn.net/Expert/TopicView3.asp?id=5601470
“hotus“的
*****************************************************************
模块中
Private Declare Function NtQueryInformationProcess Lib "ntdll" (ByVal ProcessHandle As Long, ByVal ProcessInformationClass As Long, ByRef ProcessInformation As Any, ByVal lProcessInformationLength As Long, ByRef lReturnLength As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Const PROCESS_ALL_ACCESS = &H1F0FFF
Public Const PROCESS_TERMINATE = &H1
Public Const PROCESS_VM_READ = 16
Public Const PROCESS_QUERY_INFORMATION = 1024
Public Const PROCESS_SET_INFORMATION = 612
Private Type PROCESS_BASIC_INFORMATION
ExitStatus As Long
PebBaseAddress As Long
AffinityMask As Long
BasePriority As Long
UniqueProcessId As Long
InheritedFromUniqueProcessId As Long
End Type

Public Function GetCmdLine(ByVal plngPID As Long) As String
Dim strBuffer As String
Dim hProcess As Long
Dim offset1 As Long
Dim offset2 As Long
Dim Dummy As Long
Dim Info As PROCESS_BASIC_INFORMATION
Const STATUS_SUCCESS As Long = 0

offset1 = 1
offset2 = 0

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, plngPID)
If (hProcess = 0) Then
Exit Function
End If
If (NtQueryInformationProcess(hProcess, 0, Info, Len(Info), ByVal 0& <> STATUS_SUCCESS) Then
CloseHandle hProcess
Exit Function
End If
If (ReadProcessMemory(hProcess, (Info.PebBaseAddress + &H10), offset1, 4, Dummy) = STATUS_SUCCESS) Then
CloseHandle hProcess
Exit Function
End If

If (ReadProcessMemory(hProcess, (offset1 + &H44), offset2, 4, Dummy) = STATUS_SUCCESS) Then
CloseHandle hProcess
Exit Function
End If
strBuffer = String(256, " "
If (ReadProcessMemory(hProcess, offset2, ByVal strBuffer, 256, Dummy) = STATUS_SUCCESS) Then
CloseHandle hProcess
Exit Function
End If
CloseHandle hProcess
strBuffer = Left$(strBuffer, InStr(strBuffer, Chr(0) & Chr(0)))
GetCmdLine = StrConv(strBuffer, vbFromUnicode)
End Function


使用
msgbox getcmdline(进程PID)
****************************************************************

[ Last edited by 无声黑白破东风 on 2007-8-30 at 10:33 ]

» 猜你喜欢

周杰伦粉丝团团长!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liaoyongpi

木虫 (正式写手)

没明白什么意思?
要看命令格式好像命令后面+“?”就可以吧。
2楼2007-08-29 17:45:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

无声黑白破东风

银虫 (正式写手)

up              
3楼2007-08-30 10:34:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ihlw

★ ★ ★ ★ ★
无声黑白破东风(金币+5,VIP+0):你好,我试用了一下,输入了pid后,只看见方法一里有了exe文件的位置,但是点击后,总是报run-time error: '438'...这是为啥呢? xixi...
程序见:

http://ihlw.ys168.com/

里面“临时”目录。

包含源文件和编译好的程序。

直接运行“GetCommandLine.exe”后,点击方法1就行。方法2需要知道程序的pid值。打开任务管理器,菜单-》查看=》选择列-》选中pid,然后输入相对应的pid,按“方法2”也行。
4楼2007-08-31 12:26:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ihlw

★ ★ ★ ★ ★
无声黑白破东风(金币+2,VIP+0):不知为啥,还是不行,我把Rnastructure程序放到http://wshbpdf.ys168.com/了,辛苦你了
无声黑白破东风(金币+3,VIP+0):嘿嘿,我在winxp下试了,可以运行了,可惜看不到RNAstructure.exe的参数 【/fold -s rna.seq -c rna.ct】,估计比较难做吧^_^
请试试新版
5楼2007-09-03 23:25:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gyh

至尊木虫 (著名写手)

这个程序我理解是:先通过 OpenProcess获得D:\Program   Files\RNAstructure   4.11\RNAstructure.exe可执行文件的进程,然后利用NtQueryInformationProcess向该进程输入参数,即""   /fold   -s   rna.seq   -c   rna.ct,最后采用ReadProcessMemory来获得执行结果。这段程序的思想是进程之间操作。不知道你为何不采用excute等函数来完成任务(具体函数名称请查帮助)?
6楼2007-09-04 07:30:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

无声黑白破东风

银虫 (正式写手)

周杰伦粉丝团团长!
7楼2007-09-04 10:41:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

无声黑白破东风

银虫 (正式写手)

周杰伦粉丝团团长!
8楼2007-09-04 10:43:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 无声黑白破东风 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 请教下大家 2026年国家基金申请是双盲审吗? +3 lishucheng1 2026-03-22 5/250 2026-03-24 08:22 by gltch
[考研] 07化学280分求调剂 +4 722865 2026-03-23 4/200 2026-03-24 00:01 by chixmc
[考研] 求调剂 +7 十三加油 2026-03-21 7/350 2026-03-23 23:48 by 热情沙漠
[考研] 上海电力大学材料防护与新材料重点实验室招收调剂研究生(材料、化学、电化学,环境) +3 我爱学电池 2026-03-23 3/150 2026-03-23 17:16 by AZMK
[考研] 306求调剂 +9 chuanzhu川烛 2026-03-18 9/450 2026-03-23 13:17 by luoyongfeng
[考研] 寻找调剂 +4 倔强芒? 2026-03-21 4/200 2026-03-22 16:14 by 木托莫露露
[考研] 269专硕求调剂 +6 金恩贝 2026-03-21 6/300 2026-03-22 14:31 by ColorlessPI
[考研] 286求调剂 +10 Faune 2026-03-21 10/500 2026-03-21 23:34 by 314126402
[考研] 0805 316求调剂 +3 大雪深藏 2026-03-18 3/150 2026-03-21 18:55 by 学员8dgXkO
[考研] 一志愿南大,0703化学,分数336,求调剂 +3 收到VS 2026-03-21 3/150 2026-03-21 18:42 by 学员8dgXkO
[考研] 求调剂 +3 13341 2026-03-20 3/150 2026-03-21 18:28 by 学员8dgXkO
[考研] 0805材料320求调剂 +3 深海物语 2026-03-20 3/150 2026-03-21 15:46 by 无际的草原
[考研] 279求调剂 +5 红衣隐官 2026-03-21 5/250 2026-03-21 14:59 by lature00
[考研] 332求调剂 +3 凤凰院丁真 2026-03-20 3/150 2026-03-21 10:27 by luoyongfeng
[考研] 求调剂 +6 Mqqqqqq 2026-03-19 6/300 2026-03-21 08:04 by JourneyLucky
[考研] 303求调剂 +5 睿08 2026-03-17 7/350 2026-03-21 03:11 by JourneyLucky
[考研] 299求调剂 +6 △小透明* 2026-03-17 6/300 2026-03-21 02:42 by JourneyLucky
[考研] 华东师范大学-071000生物学-293分-求调剂 +3 研究生何瑶明 2026-03-18 3/150 2026-03-21 01:30 by JourneyLucky
[考研] 304求调剂 +6 曼殊2266 2026-03-18 6/300 2026-03-21 00:32 by JourneyLucky
[考研] 294求调剂材料与化工专硕 +15 陌の森林 2026-03-18 15/750 2026-03-20 23:28 by JourneyLucky
信息提示
请填处理意见