C语言调用python,读取电脑识别码

本文介绍如何使用C语言调用Python程序来读取并识别电脑的CPU序列号、MAC地址和硬盘、主板序列号,以此创建‘一机一码’的授权系统。详细讲解了C语言代码和Python代码的实现,并提到了C调用Python时的注意事项,如设置附加库、路径配置等。
摘要由CSDN通过智能技术生成

多努力就会有多特殊(neverforever)——仌

关于 python读取电脑识别码 的程序请参考文章:
https://blog.csdn.net/weixin_44204327/article/details/85162826

目标

python实现c语言运行 用python语言,识别电脑机器码,通过授权码,只允许软件运行在唯一电脑上,实现“一机一码”。
然后通过C语言调用python程序,在C语言基础上完成软件授权码程序的编写。
:程序识别的机器码包括:

  1. CPU序列号(ID)
  2. 本地连接 无线局域网 以太网的MAC
  3. 硬盘序列号(唯一)
  4. 主板序列号(唯一)

C语言授权码程序运行分析

程序代码

C语言代码部分

#include<Python.h>
int main()
{
   
	Py_Initialize();//初始化python
	PyRun_SimpleString("import sys");
	PyRun_SimpleString("sys.path.append('../\\pythonbases\\site-packages')");
	PyRun_SimpleString("sys.path.append('../\\pythonbases\\site-packages\\win32')");
	PyRun_SimpleString("sys.path.append('../\\pythonbases\\site-packages\\win32\\lib')");
	
	PyObject * pModule = NULL; //声明变量
	PyObject * pFunc = NULL;
	pModule = PyImport_ImportModule("author");
	pFunc = PyObject_GetAttrString(pModule, "checkAuthored");
	PyEval_CallObject(pFunc, NULL);

	Py_Finalize(); //释放python
	return 0;
}

python语言代码部分

import wmi
import json
import win32com
import base64
from pyDes import *


############ 1. 获取硬件信息,输出 macode
#   1.CPU序列号(ID2.本地连接 无线局域网 以太网的MAC 3.硬盘序列号(唯一) 4.主板序列号(唯一)

global s
s = wmi.WMI()
#cpu 序列号
def get_CPU_info():
    cpu = []
    cp = s.Win32_Processor()
    for u in cp:
        cpu.append(
            {
   
                "Name": u.Name,
                "Serial Number": u.ProcessorId,
                "CoreNum": u.NumberOfCores
            }
        )
 #   print(
C语言是一种高级编程语言,而Python也是一种高级编程语言。在C语言调用Python程序可以通过使用Python的解释器来实现。要在C语言调用Python程序,首先需要在C中包含Python的头文件,以便可以使用Python的函数和数据结构。 在C代中,可以使用Py_Initialize()函数来初始化Python解释器。然后可以使用PyRun_SimpleString()函数或PyRun_SimpleFile()函数来执行Python。这样可以将C语言中的数据传递给Python程序进行处理,并获取Python的返回结果。 此外,还可以使用PyImport_ImportModule()函数来导入Python模块,并使用PyObject_CallObject()函数来调用Python函数。通过这些函数的使用,可以在C语言中直接调用Python函数。 在调用Python程序之前,需要先确保Python解释器已经安装在计算机上,并且路径已正确配置好。可以通过设置环境变量或在代中指定Python解释器的路径来实现。 需要注意的是,在调用Python程序时,C语言Python存储数据的方式是不同的。所以在C语言Python之间传递数据时,需要进行数据类型的转换。可以使用PyArg_ParseTuple()函数来将C语言的数据类型转换为Python的数据类型,或使用Py_BuildValue()函数将Python的数据类型转换为C语言的数据类型。 总之,通过上述方法,我们可以在C语言调用Python程序,实现C语言Python的互操作。这样可以充分利用C语言的性能和Python的灵活性,来开发更加复杂和强大的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值