×

windows获取进程目录

windows获取进程目录(获取系统进程)

admin admin 发表于2023-03-29 10:06:12 浏览60 评论0

抢沙发发表评论

本文目录一览:

Windows下怎么用C语言获取正在运行的程序的路径

很简单:

API函数:

GetModuleFileName(模块句柄,保存的字符数组,字符数组的大小);

一般来说,要获取正在运行程序的全路径,那就在第一个参数写个0

参数2是保存的数组,获取的路径将保存在这个数组

参数三是字符数组的大小

给你一个示例程序:

#include windows.h

#include stdio.h

void main()

{

char ExePlace[1024];/*保存地址的数组/

GetModuleFileName(0,ExePlace,1024);/*获取当前运行全路径*/

puts(ExePlace);/*输出获取到的路径*/

}

在Windows Service 中怎么获取活动用户的进程列表

在windows底层的api中,提供了以下的方法来满足需求:

WTSGetActiveConsoleSessionId: 获取当前active User的 session ID。

CreateProcessAsUser:用当前用户创建一个新的进程。

下面的程序提供了两个方法,一是获取当前活动的用户包括域名和用户名,二是用当前用户创建一个新的进程。

如何获得Windows任务管理器中所显示的进程列表

using System.Data;

using System.Data.SqlClient;

//混合登录模式 用户名(uid)为sa 密码(pwd)为123456; 没得密码就是 uid=sa;pwd=";

string connString = "Data Source=localhost;database=MyDatabase#1;uid=sa;pwd=123456";

//Windows登录

string connString = "Data Source=localhost;database=MyDatabase#1;"Trusted_Connsection=SSPI"

SqlConnection conn = new SqlConnection(connString);

Windows如何显示进程路径

安装完成后,界面上将出现“Wmic:root\cli”提示符,表明程序已在WMIC交互模式下工作。在命令提示符下输入“Process”,回车。可以看到每个进程的启动路径。这对于判断是否为木马程序有很好的帮助。-windows获取进程目录

Windows下:

1) 获取端口对应的进程ID (PID)

netstat -ao

Windows 7/Windows Vista 任务管理器中如何显示进程的文件路径

不过,在 Windows Vista 和 Windows 7 中可就方便多了。具体步骤如下: 在任务栏空白处点击鼠标右键,选择“启动任务管理器”。 切换到“进程”选项卡,点击工具栏上的“查看”-〉“选择列”。 在“进程页列”中,找到并勾选“映像路径名称”、“命令行”两项,按“确定”退出。 这两项,前者可以查看进程的文件路径,后者则可以查看所显示的进程是否被伪装。 如果觉得某项进程可疑,可以上网输入该进程名字查查,若是病毒进程,直接根据文件路径打开文件,将其执行权限去掉。-windows获取进程目录

VC 如何根据进程名称找程序的目录

你首先需要为VC下载一个Microsoft

Platform

SDK

for

Windows

XP

SP2,有了这个包以后,将psapi.h和psapi.lib拷贝到VC的include和lib目录,采用PSAPI编程:

1、用EnumProcesses函数列出当前所有进程

2、用OpenProcess打开进程

3、用GetProcessImageFileName函数就可以获取程序的完整目录

上面三个函数的资料在互联网上很完整,你可以用函数名作为关键字搜索一下就知道了。

下面举个例子:

#include

windows.h

#include

stdio.h

#include

tchar.h

#include

psapi.h

#pragma

comment(lib,

"psapi.lib")

void

PrintProcessNameAndID(

DWORD

processID

)

{

TCHAR

szProcessName[MAX_PATH]

=

TEXT("unknown");

TCHAR

szProcessPath[MAX_PATH]

=

TEXT("unknown");

//

获取进程句柄

HANDLE

hProcess

=

OpenProcess(

PROCESS_QUERY_INFORMATION

|

PROCESS_VM_READ,

FALSE,

processID

);

//

获取进程名称和路径

if

(NULL

!=

hProcess

)

{

HMODULE

hMod;

DWORD

cbNeeded;

if

(

EnumProcessModules(

hProcess,

hMod,

sizeof(hMod),

cbNeeded)

)

{

GetModuleBaseName(

hProcess,

hMod,

szProcessName,

sizeof(szProcessName)/sizeof(TCHAR)

);

}

GetProcessImageFileName(hProcess,

szProcessPath,

MAX_PATH);

}

//

打印进程名、进程号和路径地址.

_tprintf(

TEXT("%s

(PID:

%u)

%s\n"),

szProcessName,

processID,

szProcessPath

);

CloseHandle(

hProcess

);

}

void

main(

)

{

//

获取进程列表.

DWORD

aProcesses[1024],

cbNeeded,

cProcesses;

unsigned

int

i;

if

(

!EnumProcesses(

aProcesses,

sizeof(aProcesses),

cbNeeded

)

)

return;

//

计算当前一共多少个活动进程

cProcesses

=

cbNeeded

/

sizeof(DWORD);

//打印进程信息

for

(

i

=

0;

i

cProcesses;

i++

)

if(

aProcesses[i]

!=

)

PrintProcessNameAndID(

aProcesses[i]

);

}