intj-H 如何解释INTJ-H

大家好,如果您还对intj-H不太了解,没有关系,今天就由本站为大家分享intj-H的知识,包括如何解释INTJ-H的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

一、如何解释INTJ-H

解释INTJ-H:

H型你可以理解成在INTJ系统、明确集合虚幻与现实的理念前提增加了对世界的包容,也就是人们通常所说的情商。骨子里不在意他人看法的INTJ在H维度的影响也会将他人感受纳入考量进行综合性判断,是有Fe(外倾情感)功能综合实现Te(外倾思考)视角补完的情况。

结合H的对立维C来理解,对世界的高冷等同于屏蔽情感因素采取极端自我本质外显化的角度,H相对而言更接近ENTP的外热内冷,表面亲和而实际骨底仍旧是孤傲不可一世的INTJ,只是更多将审判之力针对内在而未外显出与他人的孤绝。

温暖不意味着一定博爱有同情心(九号人格),很可能只是INTJ的人格表象,内在思索的也许是这样行动是否合逻辑或者达成某种目的,只是对外界的包容力更强而不至于显得格格不入。

二、如何用C++编写Windows服务

环境: vs2010,多字符集

以下是一些基本知识,不得不耐下心去理解,这对程序理解和编写非常用帮助.

首先Microsoft Windows服务(即,以前的 NT服务)使您能够创建在它们自己的Windows会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。

服务是有状态的,当我们使用windows自带的服务管理程序sc.exe查看服务状态时可以显示服务的当前状态,这个状态是由我们在程序代码中进行控制的。你最好在服务初始化的时候将服务设置为SERVICE_START_PENDING,当初始化完毕时设为SERVICE_RUNNING,这些状

态是系统自定义的状态,可通过msdn查看其他状态。这个状态信息你会在sc.exe中看到。

在编写windows服务程序过程中你需要关注的函数有:

1.首先是main函数,由于windows服务不需要界面,所以大部分程序为win32控制台应用程序,所以程序主函数为main而不是WinMain()。在主函数要做的主要工作就是初始化一个SERVICE_TABLE_ENTRY分派表结构体,然后调用StartServiceCtrlDispatcher();这将把调用进程的主线程转换为控制分派器。该分派器启动一个新线程,该线程运行分派表中对应于你的服务的ServiceMain()函数。ServiceMain()函数将在下面提到。

此过程示例代码如下:

SERVICE_TABLE_ENTRY entrytable[2];

entrytable[0].lpServiceName=”testservice”;

entrytable[0].lpServiceProc=(LPSERVICE_MAIN_FUNCTION)ServiceMain;

entrytable[1].lpServiceName=NULL;

entrytable[1].lpServiceProc=NULL;

StartServiceCtrlDispatcher(entrytable);

在这之后系统将自动创建一个线程去执行ServiceMain函数的内容,你应该将你要执行的任务

在ServiceMain中循环,这样服务就开始运行了。

2.ServiceMain函数为void WINAPI ServiceMain(int argc, char** argv)格式的函数,函数名字可以任意定义。它的作用就是:将你需要执行的任务放到该函数中循环执行即可。这就是服务程序的工作函数。在ServiceMain执行你的任务前,需要给SERVICE_TABLE_ENTRY分派

表结构体进行赋值,注意由于此时服务还没有开始执行你的任务所以我们将服务的状态设置为SERVICE_START_PENDING,即正在初始化。我们进行如下赋值:

servicestatus.dwServiceType= SERVICE_WIN32;

servicestatus.dwCurrentState= SERVICE_START_PENDING;

servicestatus.dwControlsAccepted=SERVICE_ACCEPT_SHUTDOWN|SERVICE_ACCEPT_STOP;

//在本例中只接受系统关机和停止服务两种控制命令

servicestatus.dwWin32ExitCode= 0;

servicestatus.dwServiceSpecificExitCode= 0;

servicestatus.dwCheckPoint= 0;

servicestatus.dwWaitHint= 0;

hstatus=::RegisterServiceCtrlHandler(“testservice”, CtrlHandler);

CtrlHandler为void WINAPI CtrlHandler(DWORD request)型的函数,函数名字可以任意设定。将在下一点讲到。

Hstatus为SERVICE_STATUS_HANDLE类型的全局变量。当需要改变服务状态时SetServiceStatus()函数需要它做为参数来标识一个服务。

3. void WINAPI CtrlHandler(DWORD request),函数的主要功能是,接收系统传递的控制命令,比如当你通过sc.exe关闭服务时,该函数会收到SERVICE_CONTROL_STOP消息,你就可以对服务进行必要的管理。在本例子程序中就只接收SERVICE_ACCEPT_SHUTDOWN和

SERVICE_ACCEPT_STOP消息,这是通过前面给servicestatus赋值设定的。这样一个基本的服务程序就完成了。本文结束的时候会附上如

何安装服务。

当服务程序需要使用某些功能时,由于用户的关系而受到限制,比如访问注册表的HKEY_CURRENT_USER键,使用网络等等,这时候就需要以当前登陆用户的身份去进行操作,通常会创建一个进程来完成需要的功能。如果使用CreateProcess,来创建进程的话,新创建的进程和服务程序依然是相同的用户身份,还是无法达到目的,只有使用CreateProcessAsUser了。但CreateProcessAsUser的第一个参数是HANDLE hToken,该参数通常应该用LogonUser来获得,但是LogonUser又需要用户名和用户密码,这样就很不现实。那应该怎么办呢?我想到了一个方法可以绕过LogonUser直接获得hToken。因为用户已经登陆,那么肯定有Shell(就是EXPLORER.EXE)运行了,我们可以通过遍历进程来取得Shell的hToken来运行进程。

因此需要

BOOL GetTokenByName(HANDLE&hToken,LPSTR lpName);

BOOL RunProcess(LPCSTR lpImage);两个函数

示例是关于基于opencv人脸识别,遍历样本文件夹,删除多余的图片保留10张,然后执行外部自定义程序”GetFeatureDATA.exe”函数提取特征

GetFeatureDATA.exe中最头上加上#pragma comment(linker,”/subsystem:\”Windows\”/entry:\”mainCRTStartup\””)就可以隐藏控制台窗口

开发环境vs2010,控制台应用程序一个.cpp文件.

//服务程序主函数。

[cpp] view plaincopy

#include”stdio.h”

#include”vector”

#include”Tlhelp32.h”

#include<afx.h>

#define_AFXDLL

//由于做的图像识别需要opencv头文件,需要什么文件自行更改

#include”cv.h”

#include”highgui.h”

usingnamespacestd;

//你的服务程序需要以下代码

SERVICE_STATUS servicestatus;

SERVICE_STATUS_HANDLE hstatus;//全局变量.是setServiceStatus()的参数,改变服务状态

voidWINAPI ServiceMain(intargc,char**argv);

voidWINAPI CtrlHandler(DWORD request);

boolbrun=false;//原来代码有的,我没有用,还是保留

//以下是以获取登录用户名

BOOL GetTokenByName(HANDLE&hToken,LPSTR lpName);

BOOL RunProcess(LPCSTR lpImage);

//自己添加的代码

inttrain_time;//以分钟计

vector<CString>Vec_Dir;//存放图片文件夹目录名称

vector<CString>Vec_Img;//

voidTraverseDir(CString&strDir,std::vector<CString>&vecDir);

intTraverseImg(CString&strDir,std::vector<CString>&vecFile);

voidTraverseDir(CString&strDir,std::vector<CString>&vecDir)

{

WIN32_FIND_DATA FindFileData;

CStringstrDirTmp;

strDirTmp=strDir;

strDirTmp+=”\\*.*”;

HANDLE hFind=::FindFirstFile(strDirTmp,&FindFileData);

if(INVALID_HANDLE_VALUE==hFind)

{

return;

}

while(TRUE)

{

if(FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)

{

if(FindFileData.cFileName[0]!=_T('.'))

{

strDirTmp=strDir;

strDirTmp+=”\\”;

strDirTmp+=FindFileData.cFileName;

vecDir.push_back(strDirTmp);//保存所有目录

//TraverseDir(strDirTmp,vecFile);

}

}

else//是文件

{

/*strDirTmp= strDir;

strDirTmp+=”\\”;

strDirTmp+= FindFileData.cFileName;

vecFile.push_back(strDirTmp);*/

}

if(!FindNextFile(hFind,&FindFileData))

break;

}

FindClose(hFind);

}

intTraverseImg(CString&strDir,std::vector<CString>&vecFile)//输入路径,得到img路径文件名不用的请忽视

{

intImgNum=0;

WIN32_FIND_DATA FindFileData;

CStringstrDirTmp;

strDirTmp=strDir;

strDirTmp+=”\\*.*”;

HANDLE hFind=::FindFirstFile(strDirTmp,&FindFileData);

if(INVALID_HANDLE_VALUE==hFind)

{

//return;

}

while(TRUE)

{

if(FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)

{

if(FindFileData.cFileName[0]!=_T('.'))

{

/*strDirTmp= strDir;

strDirTmp+=”\\”;

strDirTmp+= FindFileData.cFileName;

TraverseDir(strDirTmp,vecFile);*/

}

}

else

{

strDirTmp=strDir;

strDirTmp+=”\\”;

intj-H 如何解释INTJ-H

strDirTmp+=FindFileData.cFileName;

vecFile.push_back(strDirTmp);//将图片路径传入

ImgNum++;

}

if(!FindNextFile(hFind,&FindFileData))

break;

}

FindClose(hFind);

returnImgNum;

}

voidWINAPI ServiceMain(intargc,char**argv)

{

servicestatus.dwServiceType=SERVICE_WIN32;

servicestatus.dwCurrentState=SERVICE_START_PENDING;

servicestatus.dwControlsAccepted=SERVICE_ACCEPT_SHUTDOWN|SERVICE_ACCEPT_STOP;//在本例中只接受系统关机和停止服务两种控制命令

servicestatus.dwWin32ExitCode=0;

servicestatus.dwServiceSpecificExitCode=0;

servicestatus.dwCheckPoint=0;

servicestatus.dwWaitHint=0;

hstatus=::RegisterServiceCtrlHandler(“testservice”,CtrlHandler);

if(hstatus==0)

{

return;

}

//向SCM报告运行状态

servicestatus.dwCurrentState=SERVICE_RUNNING;

SetServiceStatus(hstatus,&servicestatus);

//下面就

brun=true;

//以下是自己要写的代码的执行调用地方.开始任务循环了,你可以添加你自己希望服务做的工作

//SYSTEMTIME t;

//GetLocalTime(&t);

//int hour= t.wHour;//获取小时,可以在固定某个小时执行程序

while(1)//

{

CStringSamplesDirPath=_T(“G:\\Samples”);

TraverseDir(SamplesDirPath,Vec_Dir);//获取目录名称到vec_Dir

for(inti(0);i<Vec_Dir.size();i++)//

{

intImg_Num=TraverseImg(Vec_Dir[i],Vec_Img);//某个目录下的所有图片

if(Img_Num>10)

{

for(intj=Img_Num-10-1;j>=0;j–)

{

remove(Vec_Img[j]);

}

}

Vec_Img.clear();

}

//几种调用外部程序的方法,但除了RunProcess其他都是以system身份打开程序.

//WinExec(“G:\\about_MFC\\GetFeatureDATA.exe”, 0);

//system(“GetFeatureDATA.exe”);

//ShellExecute(NULL,”open”,”G:\\about_MFC\\GetFeatureDATA.exe”,NULL,NULL,SW_SHOWNORMAL);

RunProcess(“G:\\about_MFC\\GetFeatureDATA.exe”);

//从硬盘里读取时间来做个每隔多少时间进行

CvFileStorage*Threshold=cvOpenFileStorage(“./service_time.xml”,0,CV_STORAGE_READ);//读取预值

CvFileNode*ThresholdNode=cvGetFileNodeByName(Threshold,0,”circle_time”);

doubleservice_time=cvReadRealByName(Threshold,ThresholdNode,”circle_time”);

Sleep(service_time*60*1000);//sleep自定时间后再次执行操作

}

}

BOOL GetTokenByName(HANDLE&hToken,LPSTR lpName)

{

if(!lpName)

{

returnFALSE;

}

HANDLE hProcessSnap=NULL;

BOOL bRet=FALSE;

PROCESSENTRY32 pe32={0};

hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

if(hProcessSnap==INVALID_HANDLE_VALUE)

return(FALSE);

pe32.dwSize=sizeof(PROCESSENTRY32);

if(Process32First(hProcessSnap,&pe32))

{

do

{

if(!strcmp(_strupr(pe32.szExeFile),_strupr(lpName)))

{

HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION,

FALSE,pe32.th32ProcessID);

bRet=OpenProcessToken(hProcess,TOKEN_ALL_ACCESS,&hToken);

CloseHandle(hProcessSnap);

return(bRet);

}

}

while(Process32Next(hProcessSnap,&pe32));

bRet=TRUE;

}

else

bRet=FALSE;

CloseHandle(hProcessSnap);

return(bRet);

}

BOOL RunProcess(LPCSTR lpImage)

{

if(!lpImage)

{

returnFALSE;

}

HANDLE hToken;

if(!GetTokenByName(hToken,”EXPLORER.EXE”))

{

returnFALSE;

}

STARTUPINFO si;

PROCESS_INFORMATION pi;

ZeroMemory(&si,sizeof(STARTUPINFO));

si.cb=sizeof(STARTUPINFO);

si.lpDesktop=TEXT(“winsta0\\default”);

BOOL bResult=CreateProcessAsUser(hToken,lpImage,NULL,NULL,NULL,

FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi);

CloseHandle(hToken);

if(bResult)

{

OutputDebugString(“CreateProcessAsUser ok!\r\n”);

}

else

{

OutputDebugString(“CreateProcessAsUser false!\r\n”);

}

returnbResult;

}

然后安装服务

点开始运行cmd.exe

输入以下:

sc create your_service_name binpath= D:\backup\GetXML.exe//这步注意等号右边有个空格

sc start your_service_name//启动服务,也可以启动任务管理器在服务一栏中找到你的服务启动或停止

sc stop testservicename//停止服务

sc delete testservicename//删除服务,该服务将在下次重启后删除,在重启之前将不能注册

同一个名字的服务。

启动服务,停止服务,等也可以在windows任务管理器中管理

OK,关于intj-H和如何解释INTJ-H的内容到此结束了,希望对大家有所帮助。

我们致力于保护作者版权,注重分享,被刊用文章【intj-H 如何解释INTJ-H】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(本人原创文章,百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!发布者:长久网,转转请注明出处:https://www.webseo9.com/25687.html

(0)
长久网的头像长久网
上一篇 2025年11月11日 上午9:11
下一篇 2025年11月11日 上午9:28

相关推荐

  • 怎么能快速分手?情感专家深度解析告别策略与心理重建

    Q:为什么有些人渴望快速结束关系? A:当爱情消失而责任依存时,拖延会加剧情感消耗。研究表明,长期处于不健康关系中的个体,其心理健康指数会持续下降。快速分手的本质并非绝情,而是通过明确界限避免持续伤害。 Q:如何判断是否应该分手? A:可通过三重维度评估: 1.情感投入产出比(是否长期单向付出) 2.未来可能性评估(是否存在不可调和的差异) 3.自我完整性检…

    2026年5月14日
    340
  • intj与istp istp和intj哪个聪明

    大家好,关于intj与istp很多朋友都还不太明白,今天小编就来为大家分享关于istp和intj哪个聪明的知识,希望对各位有所帮助! 一、istp和intj哪个聪明 我看到的资料上显示INTJ的智商要高一点,但也差不了多少,INTJ盒INTP都是高智商的人,差两三个百分点而已。而且就连发明MBTI的人后来写了《天资差异》的人也说,智商测评并不真的完全反应一个…

    2025年9月1日
    890
  • 扫脸测脸型免费:是精准洞察还是情感迷思?5大维度深度解读

    1.扫脸测脸型的技术原理是什么?准确度如何保证? 扫脸测脸型免费服务通常基于人工智能的面部识别技术,通过捕捉面部84个关键坐标点(如颧骨宽度、下颌角弧度、额头高度),结合卷积神经网络算法对比数据库中的标准脸型模板(鹅蛋脸、圆脸、方脸、心形脸、菱形脸等)。免费模式的准确度取决于三个因素:一是图像采集质量(建议正面平视、光线均匀的自拍照);二是算法训练数据量(多…

    2026年5月11日
    290
  • infp人格为什么叫小蝴蝶,infp为什么被称为蝴蝶

    大家好,关于infp人格为什么叫小蝴蝶很多朋友都还不太明白,今天小编就来为大家分享关于infp为什么被称为蝴蝶的知识,希望对各位有所帮助! 一、infp为什么被称为蝴蝶 INFP人格被称为小蝴蝶是因为这一群人追逐美好、憧憬浪漫,也带着点亲近自然、无拘无束的意味。他们扭结现实与理想的两端,又翩跹于广阔的茫茫宇宙。 被称作调停者的INFP,又称小蝴蝶,是在互联网…

    2025年2月18日
    1200
  • 旅行家MBTI:你是哪种旅行人格?16型人格旅行偏好全揭秘

    一、什么是旅行家MBTI? MBTI(迈尔斯-布里格斯类型指标)作为描述个体心理差异的人格测评工具,近年来逐渐成为年轻人探索自我的社交名片。当这一理论应用于旅行场景时,我们发现每个人的旅行选择其实都深受其人格特质的影响——从目的地偏好、行程规划方式到旅行中的情绪反应,无不映射着深层的心理特征。通过了解自己的旅行家人格类型,你将解锁更符合内心的旅行方式,让旅程…

    2026年5月19日
    390

联系我们

在线咨询: QQ交谈

邮件:xp0123456789@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息