使用PYthon获取当前计算机安装的NX
一直以来做NXopen的都是以C/C++为主流,但是我并不是专业做开发的,C++本来就是个半吊子,最近总觉得C/C++太麻烦了,想试试Python,总体来讲比C还是要方便很多滴,还没涉及到NXopen 先小试一下。
我的电脑上只装了一个NX12,但是理论上来讲正常安装的NX应该都可以获取到。
因为是遍历遍历了StartMenu目录,所以免安装的和绿色版应该是获取不到,之所以没做全盘遍历是因为Py多线程我还没学会,单线程全盘遍历又会耗时太久。
比较麻烦的是通过快捷方式获取真实路径,百度根本搜不到,卡了好几天,在隔壁404网站才找到的。
因为只有几十行,就没有写类,但是注释里面是包含类的写法,可能缩进改一下就OK了,有兴趣可以自己看看吧!
# -*- coding:utf-8 -*-
'''
Created on 2018年12月19日
@author: Yang
'''
import os,re
def GetShortcutRealPath(LnkPtah):
import sys
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut(LnkPtah)
return shortcut.Targetpath
#os.popen(StartMenuPath)
#os.environ.get(ProgramData)
#os.system("start explorer "+StartMenuPath)
#class Getlnk(object):
def GetAllLnk(StartPath,Keyword):
LnkFile=[]
TmpLnk=[]
for AllLnkfile in os.walk(StartPath):
StrTmpLnkfile = str(AllLnkfile)
TmpLnkpath = re.findall(r'[a-zA-Z]:\\{2}[\w*\\{2}\s\d.[\u4e00-\u9fa5]+]*', StrTmpLnkfile) #取路径,正则匹配到的是list
TmpLnk=re.findall(r'[A-Za-z0-9_\-\u4e00-\u9fa5+\s+\d+\w+.]+.lnk', StrTmpLnkfile)#取lnk后缀
for i in range(len(TmpLnk)):
TmpLnkFile=str(TmpLnkpath[0])+"\\"+str(TmpLnk[i])#合并
TmpLnkFile=TmpLnkFile.replace('\\\\','\\')
TmpLnkFile=GetShortcutRealPath(TmpLnkFile)
if Keyword in TmpLnkFile:
LnkFile.append(TmpLnkFile)
LnkFile=list(set(LnkFile))
for i in range(len(LnkFile)):
#print(i)
print(LnkFile[i])
if __name__ == '__main__':
StartPath=os.environ.get('ProgramData')+r"\Microsoft\Windows\Start Menu"
Keyword="ugraf"
GetAllLnk(StartPath,Keyword)