About neohope

一直在努力,还没想过要放弃...

Linux及BSD包管理系统

大家都知道,
Linux发行版=Linux内核+包管理系统

当下,Linux的主要包管理系统分为两大阵营,RPM和DEB,
(其主要原因是,子发行版多沿用了父发行版的包管理系统)
但每种有特色的发行版,又都会开发自己独特的包管理系统。
主要Linux发行版的管理统系统计如下:

RPM:
RHEL;Fedora;CentOS;
openSUSE;SUSE Linux Enterprise;
PCLinuxOS;
Mageia;
Fuduntu;
Mandriva Linux;
Scientific Linux;
Oracle Linux;

DEB:
Debian;
Ubuntu;Kubuntu;Xubuntu;Ubuntu Studio;
Lubuntu;
Linux Mint;
Ultimate Edition;
Bodhi Linux;
Pinguy OS;
Zorin OS;
MEPIS Linux;
KNOPPIX;
BackTrack;

Pacman:
Arch Linux;
Chakra GNU/Linux;

Portage:
Gentoo

PET:
Puppy

TCE:
Tiny Core Linux

Entropy:
Sabayon Linux

TXZ:
Slackware Linux

TBZ:
FreeBSD;
DragonFly BSD;

TGZ:
OpenBSD

PBI/TGZ:
PC-BSD

IPS, pkgadm:
Oracle Solaris

pkgin:
MINIX

Jar包签名

1、生成keystore及key

#生成私钥
keytool -validity 10000 -genkey -alias xxxxxx -keypass xxxxxx -storepass xxxxxx -keystore xxxxxx.jks -dname "CN=(R&D),O=(ATS),C=(CN)" -keyalg RSA

导出证书

#证书DER格式
keytool -exportcert -alias xxxxxx -keypass xxxxxx -keystore xxxxxx.jks -storepass xxxxxx -file xxxxxx.der
#证书PEM格式
keytool -exportcert -alias xxxxxx -keypass xxxxxx -keystore xxxxxx.jks -storepass xxxxxx -rfc -file xxxxxx.pem

枚举证书

keytool -list -keystore xxxxxx.jks 

2、签名

jarsigner -keystore xxxxxx.jks -storepass xxxxxx -keypass xxxxxx xxxxxx.jar xxxxxx

3、验证

JARsigner -verbose -verify  xxxxxx.jar

C#调用cdll指针参数处理

1、API声明(包括**参数)

int GetTheLastErrorA(char **pcError);
int GetTheLastErrorW(wchar_t **pwError);

2、C#代码

using System.Runtime.InteropServices;

[DllImport("StringAW.dll", CallingConvention = CallingConvention.Winapi, 
CharSet = CharSet.Ansi, EntryPoint = "GetTheLastErrorA")]
extern static int GetTheLastErrorA(ref IntPtr a);

[DllImport("StringAW.dll", CallingConvention = CallingConvention.Winapi, 
CharSet = CharSet.Auto, EntryPoint = "GetTheLastErrorW")]
extern static int GetTheLastErrorW(ref IntPtr w);

IntPtr a = IntPtr.Zero;
GetTheLastErrorA(ref a);
String sa = Marshal.PtrToStringAnsi(a);
MessageBox.Show(sa);

IntPtr w = IntPtr.Zero;
GetTheLastErrorW(ref w);
String sw = Marshal.PtrToStringUni(w);
MessageBox.Show(sw);

HL7 V2消息类型

ACK Acknowledgment 消息回复
ADR^A19 Patient Query – Response
ADT^A04 Register a patient 病人注册
ADT^A08 Update patient information 病人信息更新
ADT^A05 Pre-admit a patient
ADT^A06 Change an outpatient to an inpatient 门诊转住院
ADT^A07 Change an inpatient to an outpatient 住院转门诊
ADT^A01 Admit/visit notification 查房开始
ADT^A03 Discharge/end visit 查房结束
ADT^A02 Transfer a patient 病人转院
ADT^A28 Add person information
ADT^A13 Cancel discharge/end visit
ADT^A14 Pending admit
ADT^A31 Update person information
ADT^A11 Cancel admit/visit notification
ADT^A10 Patient arriving – tracking 病人到达
ADT^A09 Patient departing – tracking 病人出发
ADT^A12 Cancel transfer 取消转院
ADT^A15 Pending transfer
ADT^A16 Pending discharge
ADT^A17 Swap patients
ADT^A18 Merge patient information (for backward compatibility only) 合并病人信息(低版本兼容)
ADT^A20 Bed status update
ADT^A32 Cancel patient arriving – tracking 取消病人到达
ADT^A33 Cancel patient departing – tracking 取消病人出发
ADT^A27 Cancel pending admit
ADT^A25 Cancel pending discharge
ADT^A26 Cancel pending transfer
ADT^A23 Delete a patient record 删除病人记录
ADT^A29 Delete person information 删除病人信息
ADT^A21 Patient goes on a “leave of absence”
ADT^A22 Patient returns from a “leave of absence”
ADT^A24 Link patient information 管理病人信息
ADT^A35 Merge patient information – account number only (for backward compati
ADT^A36 Merge patient information – patient ID and account number (for backwa
ADT^A34 Merge patient information – patient ID only (for backward compatibili
ADT^A30 Merge person information (for backward compatibility only)
ADT^A48 Change alternate patient ID (for backward compatibility only)
ADT^A49 Change patient account number
ADT^A46 Change patient ID (for backward compatibility only)
ADT^A47 Change patient identifier list
ADT^A37 Unlink patient information
ADT^A38 Cancel pre-admit
ADT^A41 Merge account – patient account number
ADT^A40 Merge patient – patient identifier list
ADT^A39 Merge person – patient ID (for backward compatibility only)
ADT^A42 Merge visit – visit number
ADT^A44 Move account information – patient account number
ADT^A43 Move patient information – patient identifier list
ADT^A45 Move visit information – visit number
ADT^A51 Change alternate visit ID
ADT^A50 Change visit number
ADT^A52 Cancel leave of absence for a patient
ADT^A53 Cancel patient returns from a leave of absence
ADT^A55 Cancel change attending doctor
ADT^A54 Change attending doctor
ADT^A60 Update allergy information
ADT^A62 Cancel change consulting doctor
ADT^A61 Change consulting doctor
BAR^P01 Add patient accounts
BAR^P02 Purge patient accounts
BAR^P05 Update account
BAR^P06 End account
BAR^P10 Transmit Ambulatory Payment Classification(APC)
BAR^P12 Update Diagnosis/Procedure
BPS^O29 Blood product dispense status
BRP^O30 Blood product dispense status acknowledgment
BRT^O32 Blood product transfusion/disposition acknowledgment
BTS^O31 Blood product transfusion/disposition
CRM^C02 Cancel a patient registration on clinical trial (for clerical mistakes onl
CRM^C06 Cancel patient entering a phase (clerical mistake)
CRM^C07 Correct/update phase information
CRM^C03 Correct/update registration information
CRM^C05 Patient enters phase of clinical trial
CRM^C04 Patient has gone off a clinical trial
CRM^C08 Patient has gone off phase of clinical trial
CRM^C01 Register a patient on a clinical trial
CSU^C09 Automated time intervals for reporting, like monthly
CSU^C11 Patient completes a phase of the clinical trial
CSU^C10 Patient completes the clinical trial
CSU^C12 Update/correction of patient order/result information
DFT^P03 Post detail financial transaction
DOC^T12 Document Query – Response
DFT^P11 Post Detail Financial Transactions – New
EAC^U07 Automated equipment command
EAN^U09 Automated equipment notification
EAR^U08 Automated equipment response
EHC^E01 Submit HealthCare Services Invoice
ESR^U02 Automated equipment status request
ESU^U01 Automated equipment status update
INR^U06 Automated equipment inventory request
INU^U05 Automated equipment inventory update
LSR^U13 Automated equipment log/service request
LSU^U12 Automated equipment log/service update
MDM^T05 Document addendum notification
MDM^T11 Document cancel notification
MDM^T07 Document edit notification
MDM^T09 Document replacement notification
MDM^T03 Document status change notification
MDM^T01 Original document notification
MDM^T06 Document addendum notification and content
MDM^T08 Document edit notification and content
MDM^T10 Document replacement notification and content
MDM^T04 Document status change notification and content
MDM^T02 Original document notification and content
MFK^M01 Master File – Not Otherwise Specified (for Backward Compatibility Only) – Response
MFN^M01 Master file not otherwise specified (for backward compatibility only)
MFN^M02 Master file – staff practitioner
MFN^M03 Master file – test/observation (for backward compatibility only)
MFN^M04 Master files charge description
MFN^M05 Patient location master file
MFN^M06 Clinical study with phases and schedules master file
MFN^M07 Clinical study without phases but with schedules master file
MFN^M08 Test/observation (numeric) master file
MFN^M09 Test/observation (categorical) master file
MFN^M10 Test /observation batteries master file
MFN^M11 Test/calculated observations master file
MFN^M12 Master file notification message
MFN^M13 Master file notification – general
MFN^M15 Inventory item master file notification
MFN^M14 Master file notification – site defined
MFN^Znn
MFR^M01
NMD^N02 Application management data message (unsolicited)
NMQ^N01 Application management query message
NMR^N01 Application Management Query Message – Response
OMB^O27 Blood product order
OMD^O03 Diet order
OMG^O19 General clinical order
OMI^O23 Imaging order
OML^O21 Laboratory order
OML^O33 Laboratory order for multiple orders related to a single specimen
OML^O35 Laboratory order for multiple orders related to a single container of a sp
OMN^O07 Non-stock requisition order
OMP^O09 Pharmacy/treatment order
OMS^O05 Stock requisition order
ORB^O28 Blood product order acknowledgment
ORD^O04 Diet order acknowledgment
ORF^R04 Response to query; transmission of requested observation
ORG^O20 General clinical order response
ORI^O24 Imaging order response message to any OMI
ORL^O22 General laboratory order response message to any OML
ORL^O34 Laboratory order response message to a multiple order related to single sp
ORL^O36 Laboratory order response message to a single container of a specimen OML
ORM^O01 Order message (also RDE, RDS, RGV, RAS)
ORN^O08 Non-stock requisition acknowledgment
ORP^O10 Pharmacy/treatment order acknowledgment
ORR^O02 Order response (also RRE, RRD, RRG, RRA)
ORS^O06 Stock requisition acknowledgment
ORU^R01 Unsolicited transmission of an observation message
ORU^R31 Unsolicited New Point-Of-Care Observation Message – Search For An Order
ORU^R30 Unsolicited Point-Of-Care Observation Message Without Existing Order – Pla
ORU^R32 Unsolicited Pre-Ordered Point-Of-Care Observation
OSQ^Q06 Query for order status
OSR^Q06 Query For Order Status – Response
OUL^R21 Unsolicited laboratory observation
OUL^R22 Unsolicited Specimen Oriented Observation Message
OUL^R23 Unsolicited Specimen Container Oriented Observation Message
OUL^R24 Unsolicited Order Oriented Observation Message
PEX^P07 Unsolicited initial individual product experience report
PEX^P08 Unsolicited update individual product experience report
PGL^PC6 PC/ goal add
PGL^PC8 PC/ goal delete
PGL^PC7 PC/ goal update
PMU^B01 Add personnel record
PMU^B02 Update personnel record
PMU^B03 Delete personnel re cord
PMU^B04 Active practicing person
PMU^B05 Deactivate practicing person
PMU^B06 Terminate practicing person
PMU^B07 Grant Certificate/Permission
PMU^B08 Revoke Certificate/Permission
PPG^PCG PC/ pathway (goal-oriented) add
PPG^PCJ PC/ pathway (goal-oriented) delete
PPG^PCH PC/ pathway (goal-oriented) update
PPP^PCB PC/ pathway (problem-oriented) add
PPP^PCD PC/ pathway (problem-oriented) delete
PPP^PCC PC/ pathway (problem-oriented) update
PPR^PC1 PC/ problem add
PPR^PC3 PC/ problem delete
PPR^PC2 PC/ problem update
PPT^PCL PC/ pathway (goal-oriented) query response
PPV^PCA PC/ goal response
PRR^PC5 PC/ problem response
PTR^PCF PC/ pathway (problem-oriented) query response
QBP^Z81 Dispense History
QBP^Z87 Dispense Information
QBP^Z89 Lab Results History
QBP^Z85 Pharmacy Information Comprehensive
QBP^Q11 Query by parameter requesting an RSP segment pattern response
QBP^Q31 QBP Query Dispense history
QBP^Q13 Query by parameter requesting an RTB – tabular response
QBP^Z93 Tabular Dispense History
QBP^Z95 Tabular Dispense History
QBP^Z75 Tabular Patient List
QBP^Z77 Tabular Patient List
QBP^Z91 Who Am I
QBP^Z99 Who Am I
QBP^Z97 Dispense History
QBP^Z79 Dispense Information
QBP^Q15 Query by parameter requesting an RDY display response
QBP^Q24 Allocate identifiers
QBP^Q22 Find candidates
QBP^Q23 Get corresponding identifiers
QBP^Q21 Get person demographics
QBP^Q25 Personnel Information by Segment Query
QBP^Z73 Information about Phone Calls
QCN^J01 Cancel query/acknowledge message
QSX^J02 Cancel subscription/acknowledge message
QRY^A19 Patient query
QRY^PC9 PC/ goal query
QRY^PCK PC/ pathway (goal-oriented) query
QRY^PCE PC/ pathway (problem-oriented) query
QRY^PC4 PC/ problem query
QRY^Q27 Pharmacy/treatment administration information
QRY^Q28 Pharmacy/treatment dispense information
QRY^Q29 Pharmacy/treatment encoded order information
QRY^Q30 Pharmacy/treatment dose information
QRY^Q26 Pharmacy/treatment order response
QRY^R02 Query for results of observation
QRY^T12 Document query
QSB^Z83 ORU Subscription
QSB^Q16 Create subscription
QVR^Q17 Query for previous events
RAR^RAR Pharmacy/Treatment Administration Information
RAS^O17 Pharmacy/treatment administration
RCL^I06 Request/Receipt Of Clinical Data Listing – Response
RDE^O11 Pharmacy/treatment encoded order
RDE^O25 Pharmacy/treatment refill authorization request
RDR^RDR Pharmacy/Treatment Dispense Information – Response
RDS^O13 Pharmacy/treatment dispense
RDY^Z98 Dispense History (Response)
RDY^K15 Display response in response to QBP^Q15
REF^I12 Patient referral
RER^RER Pharmacy/Treatment Encoded Order Information
RGR^RGR Pharmacy/Treatment Dose Information
RGV^O15 Pharmacy/treatment give
ROR^ROR Pharmacy prescription order query response
RPA^I08 Request For Treatment Authorization Information – Response
RPI^I01 Request For Insurance Information – Response
RPI^I04 Request For Patient Demographic Data – Response
RPL^I02 Request/Receipt Of Patient Selection Display List – Response
RPR^I03 Request/Receipt Of Patient Selection List – Response
RRI^I12 Patient Referral – Response
RQA^I11 Request for cancellation of an authorization
RQA^I09 Request for modification to an authorization
RQA^I10 Request for resubmission of an authorization
RQA^I08 Request for treatment authorization information
RQC^I05 Request for patient clinical information
RQC^I06 Request/receipt of clinical data listing
PIN^I07 Unsolicited insurance information
RQI^I01 Request for insurance information
RQI^I02 Request/receipt of patient selection display list
RQI^I03 Request/receipt of patient selection list
RQP^I04 Request for patient demographic data
RRA^O18 Pharmacy/treatment administration acknowledgment
RRD^O14 Pharmacy/treatment dispense acknowledgment
RRE^O12 Pharmacy/treatment encoded order acknowledgment
RRE^O26 Pharmacy/Treatment Refill Authorization Acknowledgement
RRG^O16 Pharmacy/treatment give acknowledgment
RDY^Z80 Dispense Information (Response)
RSP^K11 Segment pattern response in response to QBP^Q11
RSP^Z84 Who Am I (Response)
RSP^K22 Find candidates response
RSP^K21 Get person demographics response
RSP^K24 Allocate identifiers response
RSP^K23 Get corresponding identifiers response
RSP^K25 Personnel Information by Segment Response
RSP^K31 Dispense History Response
RSP^Z82 Dispense History (Response)
RSP^Z86 Pharmacy Information Comprehensive (Response)
RSP^Z88 Dispense Information (Response)
RSP^Z90 Lab Results History (Response)
RTB^K13 Tabular response in response to QBP^Q13
RTB^Z94 Tabular Dispense History (Response)
RTB^Z96 Tabular Dispense History (Response)
RTB^Z76 Tabular Patient List (Response)
RTB^Z78 Tabular Patient List (Response)
RTB^Z92 Who Am I (Response)
RTB^Z74 Information about Phone Calls (Response)
SIU^S18 Notification of addition of service/resource on appointment
SIU^S15 Notification of appointment cancellation
SIU^S17 Notification of appointment deletion
SIU^S16 Notification of appointment discontinuation
SIU^S14 Notification of appointment modification
SIU^S13 Notification of appointment rescheduling
SIU^S23 Notification of blocked schedule time slot(s)
SIU^S20 Notification of cancellation of service/resource on appointment
SIU^S22 Notification of deletion of service/resource on appointment
SIU^S21 Notification of discontinuation of service/resource on appointment
SIU^S19 Notification of modification of service/resource on appointment
SIU^S12 Notification of new appointment booking
SIU^S24 Notification of opened (“unblocked”) schedule time slot(s)
SIU^S26 SIU/ACK Notification that patient did not show up for schedule appointment
SQR^S25 Schedule Query Message And Responsem
SQM^S25 Schedule query message and response
SRM^S07 Request addition of service/resource on appointment
SRM^S04 Request appointment cancellation
SRM^S06 Request appointment deletion
SRM^S05 Request appointment discontinuation
SRM^S03 Request appointment modification
SRM^S02 Request appointment rescheduling
SRM^S09 Request cancellation of service/resource on appointment
SRM^S11 Request deletion of service/resource on appointment
SRM^S10 Request discontinuation of service/resource on appointment
SRM^S08 Request modification of service/resource on appointment
SRM^S01 Request new appointment booking
SRR^S01 Request New Appointment Booking – Response
SSR^U04 specimen status request
SSU^U03 Specimen status update
SUR^P09 Summary product experience report
TCR^U11 Automated equipment test code settings request
TCU^U10 Automated equipment test code settings update
VXQ^V01 Query for vaccination record
VXR^V03 Vaccination record response
VXU^V04 Unsolicited vaccination record update
VXX^V02 Response to vaccination query returning multiple PID matches

Maven常用参数

1.常用命令参数
进行编译

mvn compile

进行打包

#测试并打包
mvn package
#直接打包,不进行测试
mvn package -DskipTests=true
#打Jar包
mvn jar:jar
#打War包
mvn war:war
#打War包但不执行最后的压缩
mvn war:exploded

进行测试

#编译单元测试
mvn test-compile
#编译并允许单元测试
mvn test

安装到本地repository

mvn install
mvn install -DskipTests=true
mvn install -DskipTests=true --fail-at-end
#安装jar包到本地仓库
mvn install:install-file -DgroupId=groupId -DartifactId=artifactId -Dversion=1.0.0 -Dpackaging=jar -Dfile=xxx.jar

安装到远程repository

mvn deploy

进行清理

mvn clean

生成网站

#生成网站
mvn site
#生成网站并发布
mvn site-deploy

打包源码包

#打包源码
mvn source:jar
#下载项目源码
mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true

打包测试源码包

mvn source:test-jar

拷贝依赖到target目录

#拷贝依赖
mvn dependency:copy-dependencies
#依赖分析
mvn dependency:analyze
mvn dependency:tree

生成ecplise项目

mvn eclipse:eclipse

生成ecplise项目

mvn idea:idea

生成文档

#单模块项目生成文档
mvn javadoc:javadoc
#多模块项目生成文档
mvn javadoc:aggregate

创建Jar项目

mvn archetype:create -DgroupId=gourpid -DartifactId=artifactId

创建War项目

mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=gourpid  -DartifactId=artifactId

2.settings.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"]

<localRepository>X:/Maven/repository</localRepository>

<servers>
<server>
<id>neo-public</id>
<username>username</username>
<password>password</password>
</server>
<server>
<id>neo-releases</id>
<username>username</username>
<password>password</password>
</server>
<server>
<id>neo-snapshots</id>
<username>username</username>
<password>password</password>
</server>
</servers>

<mirrors>
<mirror>
<id>neo-public</id>
<name>Neohope Nexux Public Mirror</name>
<url>http://192.168.xxx.xxx:8081/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

<profiles>
<profile>
<id>myprofile</id>
<repositories>
<repository>
<id>neo-public</id>
<name>Neohope Nexux Public Mirror</name>
<url>http://192.168.xxx.xxx:8081/nexus/content/groups/public</url>
</repository>
</repositories>
</profile>
</profiles>

<activeProfiles>
<activeProfile>myprofile</activeProfile>
</activeProfiles>

</settings>

3.pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"]
<modelVersion>4.0.0</modelVersion>

<groupId>com.neohope.xxx</groupId>
<artifactId>xxx-xxx</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>

<name>xxx-xxx</name>
<url>http://neohope.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<nexus.url>http://192.168.xxx.xxx:8081</nexus.url>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>neo-releases</id>
<name>Internal Releases</name>
<url>${nexus.url}/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>neo-snapshots</id>
<name>Internal Snapshots</name>
<url>${nexus.url}/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>

Maven Lifecycles

Maven有三大生命周期
default:默认生命周期,用于软件构建
clean:用于项目清理
site:用于生成项目网站

1、default

<phases>
  <phase>validate</phase>
  <phase>initialize</phase>
  <phase>generate-sources</phase>
  <phase>process-sources</phase>
  <phase>generate-resources</phase>
  <phase>process-resources</phase>
  <phase>compile</phase>
  <phase>process-classes</phase>
  <phase>generate-test-sources</phase>
  <phase>process-test-sources</phase>
  <phase>generate-test-resources</phase>
  <phase>process-test-resources</phase>
  <phase>test-compile</phase>
  <phase>process-test-classes</phase>
  <phase>test</phase>
  <phase>prepare-package</phase>
  <phase>package</phase>
  <phase>pre-integration-test</phase>
  <phase>integration-test</phase>
  <phase>post-integration-test</phase>
  <phase>verify</phase>
  <phase>install</phase>
  <phase>deploy</phase>
</phases>

2、clean

<phases>
  <phase>pre-clean</phase>
  <phase>clean</phase>
  <phase>post-clean</phase>
</phases>
<default-phases>
  <clean>
    org.apache.maven.plugins:maven-clean-plugin:2.5:clean
  </clean>
</default-phases>

3、site

<phases>
  <phase>pre-site</phase>
  <phase>site</phase>
  <phase>post-site</phase>
  <phase>site-deploy</phase>
</phases>
<default-phases>
  <site>
    org.apache.maven.plugins:maven-site-plugin:3.3:site
  </site>
  <site-deploy>
    org.apache.maven.plugins:maven-site-plugin:3.3:deploy
  </site-deploy>
</default-phases>

Windows下以兼容模式启动EXE

有两种常用的方式,可以让Windows可以以兼容模式启动EXE程序。

方法1、修改注册表,永久模式(右键-》属性-》兼容模式,也是通过修改注册表达到兼容模式启动EXE的)
A、以WINXPSP3兼容模式,注册表命令行

reg.exe Add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "PATH_TO_EXE" /d "WINXPSP3"

B、以WINXPSP3兼容模式,注册表文件

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"PATH_TO_EXE"="WINXPSP3"

方法2、设置环境变量,单次运行

#注意:__COMPAT_LAYER前面是两个下划线
#两个LayerName之间用空格隔开
#!表示不可以使用该兼容模式
set __COMPAT_LAYER=[!]LayerName1 [LayerName2 ...]

#用WinXPsp3兼容模式启动程序
set __COMPAT_LAYER=WINXPSP3

#用WinXPsp3兼容模式启动程序,并禁用主题
set __COMPAT_LAYER=WINXPSP3 DISABLETHEMES

#以管理员身份、用WinXPsp3兼容模式启动程序,并禁用主题
set __COMPAT_LAYER=WINXPSP3 DISABLETHEMES RUNASADMIN

#禁用兼容模式
set __COMPAT_LAYER=

可用的设置选项有:

LayerName 含义
兼容模式(Compatibility Modes)
WIN95 Windows 95
WIN98 Windows 98
WIN4SP5 Windows NT 4.0 SP5
WIN2000 Windows 2000
WINXPSP2 Windows XP SP2
WINXPSP3 Windows XP SP3
VISTARTM Vista
VISTASP1 Vista SP1
VISTASP2 Vista SP2
WIN7RTM Windows 7
WINSRV03SP1 Windows Server 2003 SP1
WINSRV08SP1 Windows Server 2008 SP1
显示设置(Display Settings)
DISABLETHEMES 禁用主题
640X480 以640×480分辨率进行
HIGHDPIAWARE 高DPI设置时,禁用显示缩放
256COLOR 以256色运行
DISABLEDWM 禁用桌面组合
权限设置(Privilege Level)
RUNASADMIN 管理员权限运行EXE
RUNASINVOKER 以调用者权限运行EXE
RUNASHIGHEST 以用户最高权限运行EXE
Win8
ELEVATECREATEPROCESS 子进程将获取一个UAC提升权限对话框
PINDLL DLL内存常驻
DISABLEUSERCALLBACKEXCEPTION 禁用用户回调异常
VIRTUALIZEDELETE 该模式拦截受保护文件上的删除操作,防止应用由于未处理删除操作中的异常而失败
WRPMITIGATION 当应用尝试写入、修改或删除Windows受保护文件或注册表项时,该模式返回成功(实际上没有完成该操作)
DXMAXIMIZEDWINDOWEDMODE 该模式标识进入全屏模式的应用并指将这些应用重定向到最大化Window模式