导航:首页 > 源码编译 > c取模块句柄源码

c取模块句柄源码

发布时间:2022-10-05 21:24:01

‘壹’ c语言如何获得当前运行的控制台程序的句柄

句柄(HANDLE)是WINDOWS环境下特有的窗口程序运行的识别号,而C语言是DOS环境下运行的代码,在DOS环境下,没有句柄的概念,理论上说,新时期环境下的新产物,不可能在旧环境下找到,就像要求达尔文用电子邮件给出版社发送文稿一样荒诞不经,即使在控制台上运行的C程序可以通过WINDOWS任务管理器看到PID,但每次运行都不相同,那么有如何使用呢?

‘贰’ Linux下获取进程打开的句柄数,用C代码实现

可以通过指令查询当前进程打开了多少句柄,Linux下有exec函数族可以执行指令,把指令写进去就行了。
-查看当前进程打开了多少句柄数
# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
-根据ID号来查看进程名。
# ps aef|grep ID号

‘叁’ 易语言 游戏基址=模块dll+偏移量 应该怎么才能读取出来

你要先获取模块DLL的句柄

你可以网络下载一个 取模块句柄的易语言模块 后缀是.EC的

然后再易语言左边的程序栏里面————模块引用表右键导入添加模块引用,把你刚刚下载的模块导入进去

然后写一个格式类似这样的

进程句柄 = 取模块句柄 (“GGWAR3.dll”)

基址 = 内存_读整数型 (进程ID, 进程句柄 + 十六到十 (“1C1160”))

模块地址我已经打包好了pan.lanzou.com/i0unjvi 复制后浏览器打开就行

‘肆’ C# 获取其他窗体句柄

[DllImport("User32.dll", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);

[DllImport("user32.dll", EntryPoint = "FindWindowEx",SetLastError = true)]
private static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter, stringlpszClass, string lpszWindow);

[DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(IntPtr hWnd,int Msg, IntPtr wParam, string lParam);

const int WM_GETTEXT = 0x000D;
const int WM_SETTEXT = 0x000C;
const int WM_CLICK = 0x00F5;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

int retval = 0; //增加一个返回值用来判断操作是否成功
//string lpszParentClass = "#32770"; //整个窗口的类名
string lpszParentWindow = "Form1"; //窗口标题
string lpszClass = "WindowsForms10.EDIT.app.0.b7ab7b"; //需要查找的子窗口的类名,也就是输入框
//string lpszClass = "Edit";
string lpszClass_Submit = "WindowsForms10.BUTTON.app.0.b7ab7b"; //需要查找的Button的类名
//string lpszClass_Submit = "Button";
string lpszName_Submit = "确定"; //需要查找的Button的标题
string text = "";

IntPtr ParenthWnd = new IntPtr(0);
IntPtr EdithWnd = new IntPtr(0);

//查到窗体,得到整个窗体
ParenthWnd = FindWindow(null, lpszParentWindow);

//判断这个窗体是否有效
if (!ParenthWnd.Equals(IntPtr.Zero))
{
//得到Form1这个子窗体的文本框,并设置其内容
EdithWnd = FindWindowEx(ParenthWnd, EdithWnd, lpszClass, ""); [color=#FF0000]这里获取到的EdithWnd始终为0;[/color]

if (!EdithWnd.Equals(IntPtr.Zero))
{
text = "test1";
//调用SendMessage方法设置其内容
SendMessage(EdithWnd, WM_SETTEXT, IntPtr.Zero, text);
retval++;
}

//得到Button这个子窗体,并触发它的Click事件
EdithWnd = FindWindowEx(ParenthWnd,
(IntPtr)0, lpszClass_Submit, lpszName_Submit);
if (!EdithWnd.Equals(IntPtr.Zero))
{
SendMessage(EdithWnd, WM_CLICK, (IntPtr)0, "0");
retval++;
}
}
}

‘伍’ 怎么通过c语言 获得 浏览器句柄啊

给你个例子

HWND GetDlgItem( int nID ) const;
Retrieves the specified child window.
GetDlgItem(ID)->GetWindowText(str)

‘陆’ C语言中如何获得当前进程句柄,谢谢!

DWORD PID;
PID = GetProcessPID(L"test.exe");
//获取进程pid函数
DWORD GetProcessPID(LPCTSTR pName)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE == hSnapshot) {
return NULL;
}
PROCESSENTRY32 pe = { sizeof(pe) };
BOOL fOk;
for (fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe)){
if (!_tcsicmp(pe.szExeFile, pName)) {
CloseHandle(hSnapshot);
return pe.th32ProcessID;
}
}
return NULL;
}
//由进程pid获取进程句柄,置顶
HWND hh = GetProcessTopWindows(PID);
HWND GetProcessTopWindows(DWORD dwPID){
count = 0;
EnumWindows((WNDENUMPROC)EnumWndProc, (LPARAM)dwPID);
if(count > 0) {
//cout << "窗口句柄是:" << nhWnd[count -1] << endl;//输出句柄,可用spy++工具核对
return (nhWnd[count -1]);
}
return NULL;
}
别忘了添加对应头文件。

‘柒’ 在C#中如何获取dll的句柄并调用dll中的方法

无法在DLL"HKPlugIn.dll"中找到名为"connectDVR"的入口
说明你的这个dll里没有connectDVR这个公共方法
你检查一下是不是大小写错了?或者不能被外部访问?

首先要DllImport,例如:
[DllImport(@"E:\DLL\abc.dll", EntryPoint = "调用方法名")]
protected static extern 方法返回类型 调用方法名(参数列表);

然后就可以在你的代码里使用这个方法了

比如:
[DllImport(@"E:\DLL\ExGif.dll", EntryPoint = "CheckGif")]
protected static extern bool CheckGif(string filename);

调用:
if(CheckGif("c:\\a.gif")){

}

‘捌’ C#怎样获得窗口句柄

一个网上的例子
c# 获取鼠标处窗口句柄,程序嵌入桌面

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

[DllImport("user32.dll", EntryPoint = "FindWindow")]
public static extern int FindWindow(
string lpClassName,
string lpWindowName
);

[DllImport("user32.dll", EntryPoint = "GetWindow")]//获取窗体句柄,hwnd为源窗口句柄
/*wCmd指定结果窗口与源窗口的关系,它们建立在下述常数基础上:
GW_CHILD
寻找源窗口的第一个子窗口
GW_HWNDFIRST
为一个源子窗口寻找第一个兄弟(同级)窗口,或寻找第一个顶级窗口
GW_HWNDLAST
为一个源子窗口寻找最后一个兄弟(同级)窗口,或寻找最后一个顶级窗口
GW_HWNDNEXT
为源窗口寻找下一个兄弟窗口
GW_HWNDPREV
为源窗口寻找前一个兄弟窗口
GW_OWNER
寻找窗口的所有者
*/
public static extern int GetWindow(
int hwnd,
int wCmd
);

[DllImport("user32.dll", EntryPoint = "SetParent")]//设置父窗体
public static extern int SetParent(
int hWndChild,
int hWndNewParent
);

[DllImport("user32.dll", EntryPoint = "GetCursorPos")]//获取鼠标坐标
public static extern int GetCursorPos(
ref POINTAPI lpPoint
);

[StructLayout(LayoutKind.Sequential)]//定义与API相兼容结构体,实际上是一种内存转换
public struct POINTAPI
{
public int X;
public int Y;
}

[DllImport("user32.dll", EntryPoint = "WindowFromPoint")]//指定坐标处窗体句柄
public static extern int WindowFromPoint(
int xPoint,
int yPoint
);

private void timer1_Tick(object sender, EventArgs e)
{
POINTAPI point = new POINTAPI();//必须用与之相兼容的结构体,类也可以

GetCursorPos(ref point);//获取当前鼠标坐标
int hwnd = WindowFromPoint(point.X, point.Y);//获取指定坐标处窗口的句柄

this.label1.Text =point.X.ToString() + ":" + point.Y.ToString() + "-" + hwnd.ToString();//显示效果,此时窗口已经嵌入桌面了
}

const int GW_CHILD = 5;//定义窗体关系
private void Form1_Load(object sender, EventArgs e)
{
int hDesktop = FindWindow("Progman", null);//获取系统句柄
hDesktop = GetWindow(hDesktop, GW_CHILD);//获取其子窗口句柄,就是桌面的句柄
SetParent((int)this.Handle, hDesktop);//设置父窗体,第一个为要被设置的窗口,第二个参数为指定其父窗口句柄
}
}
}

阅读全文

与c取模块句柄源码相关的资料

热点内容
云服务器桌面黑瓶 浏览:830
word加密后无密码 浏览:844
如何右键添加压缩 浏览:71
韩漫梦魇pdf 浏览:527
欧洲爱情高分电影 浏览:317
安卓版滴滴出行怎么删除行程 浏览:938
共享文件夹需要开启什么端口 浏览:760
粤语之家粤语站 浏览:864
一对夫妻的电影叫什么 浏览:946
应用加密了如何解密 浏览:577
编程代码比赛平台 浏览:726
穿越在很多电影的小说 浏览:524
angularjs数据加密 浏览:523
k66单片机 浏览:735
鸿蒙文件夹如何自动归类 浏览:666
慧医通医生端安卓手机怎么下载 浏览:699
电影放到安卓手机哪个文件夹 浏览:192
VT命令 浏览:590
ftp链接到linux服务器地址 浏览:479
美国大尺度青春电影 浏览:21