Subversion Repositories userdetect2

Compare Revisions

No changes between revisions

Regard whitespace Rev 80 → Rev 81

/trunk/UserDetect2/Documentation.rtf
39,7 → 39,7
\b\fs32\lang1031\langfe1031\kerning32\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 \sbasedon0 \snext0 \slink15 \sqformat \spriority9 \styrsid4871690 heading 1;}{\s2\ql \li0\ri0\sb240\sa60\sl259\slmult1
\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\ai\af0\afs28\alang1025 \ltrch\fcs0 \b\i\fs28\lang1031\langfe1031\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031
\sbasedon0 \snext0 \slink16 \sunhideused \sqformat \spriority9 \styrsid16262044 heading 2;}{\*\cs10 \additive \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 \snext11 \ssemihidden \sunhideused
Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0 \b\fs32\kerning32\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 \styrsid4871690 \'dcberschrift 1 Zchn;}{\*\cs16 \additive \rtlch\fcs1 \ab\ai\af0\afs28
\ltrch\fcs0 \b\i\fs28\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked \spriority9 \styrsid16262044 \'dcberschrift 2 Zchn;}{\*\cs17 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf17 \sbasedon10 \sunhideused \styrsid9307250 Hyperlink;}{
46,43 → 46,37
\s18\qc \li0\ri0\sb240\sa60\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1031\langfe1031\kerning28\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 \sbasedon0 \snext0 \slink19 \sqformat \spriority10 \styrsid5325168 Title;}{\*\cs19 \additive \rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0
\b\fs32\kerning28\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink18 \slocked \spriority10 \styrsid5325168 Titel Zchn;}{\s20\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025
\ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 \snext20 \sqformat \spriority1 \styrsid9132286 No Spacing;}}{\*\listtable{\list\listtemplateid-1858021260\listhybrid{\listlevel\levelnfc0\levelnfcn0
\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67567631\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0
\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67567641\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2
\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567643\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0
\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567631\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0
\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567641\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2
\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567643\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0
\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567631\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0
\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567641\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2
\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567643\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li6480\lin6480 }{\listname ;}\listid601692740}
{\list\listtemplateid1211160680\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0
\fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\lin1440 }
{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567621\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\lin2160 }{\listlevel
\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc23
\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567621\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
\levelspace360\levelindent0{\leveltext\leveltemplateid67567621\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\lin6480 }{\listname ;}\listid846022938}{\list\listtemplateid-306535956\listhybrid{\listlevel\levelnfc0\levelnfcn0
\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67567631\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0
\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567641\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2
\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567643\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0
\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567631\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0
\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567641\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2
\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567643\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0
\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567631\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0
\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567641\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2
\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67567643\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li6480\lin6480 }{\listname ;}\listid1281301155}
{\list\listtemplateid-145336956\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0
\fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\lin1440 }
{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567621\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\lin2160 }{\listlevel
\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc23
\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567621\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
\levelspace360\levelindent0{\leveltext\leveltemplateid67567621\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\lin6480 }{\listname ;}\listid1330524869}{\list\listtemplateid132298292\listhybrid{\listlevel\levelnfc23\levelnfcn23
\ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 \snext20 \sqformat \spriority1 \styrsid9132286 No Spacing;}{\*\ts21\tsrowd\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10
\trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031
\sbasedon11 \snext21 \spriority39 \styrsid3561916 Table Grid;}}{\*\listtable{\list\listtemplateid-1858021260\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
\leveltemplateid67567631\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
\leveltemplateid67567641\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
\leveltemplateid67567643\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
\leveltemplateid67567631\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
\leveltemplateid67567641\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
\leveltemplateid67567643\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
\leveltemplateid67567631\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
\leveltemplateid67567641\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
\leveltemplateid67567643\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li6480\lin6480 }{\listname ;}\listid601692740}{\list\listtemplateid1211160680\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360
\levelindent0{\leveltext\leveltemplateid67567621\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0
{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext
\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567621
\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567617
\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567619
\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567621
\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\lin6480 }{\listname ;}\listid846022938}{\list\listtemplateid-306535956\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
\levelindent0{\leveltext\leveltemplateid67567631\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0
\levelindent0{\leveltext\leveltemplateid67567641\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0
\levelindent0{\leveltext\leveltemplateid67567643\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0
\levelindent0{\leveltext\leveltemplateid67567631\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0
\levelindent0{\leveltext\leveltemplateid67567641\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0
\levelindent0{\leveltext\leveltemplateid67567643\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0
\levelindent0{\leveltext\leveltemplateid67567631\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0
\levelindent0{\leveltext\leveltemplateid67567641\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0
\levelindent0{\leveltext\leveltemplateid67567643\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li6480\lin6480 }{\listname ;}\listid1281301155}{\list\listtemplateid-145336956\listhybrid{\listlevel\levelnfc23\levelnfcn23
\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
\levelspace360\levelindent0{\leveltext\leveltemplateid67567621\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360
91,6 → 85,15
\leveltemplateid67567621\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext
\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext
\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567621
\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\lin6480 }{\listname ;}\listid1330524869}{\list\listtemplateid132298292\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
\levelindent0{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0
{\leveltext\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext
\leveltemplateid67567621\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext
\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext
\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567621
\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567617
\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567619
\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567621
\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\lin6480 }{\listname ;}\listid1377975272}{\list\listtemplateid816618932\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
\levelindent0{\leveltext\leveltemplateid67567617\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext
\leveltemplateid67567619\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67567621
158,17 → 161,18
{\*\listoverridetable{\listoverride\listid2130318317\listoverridecount0\ls1}{\listoverride\listid601692740\listoverridecount0\ls2}{\listoverride\listid1468545555\listoverridecount0\ls3}{\listoverride\listid1377975272\listoverridecount0\ls4}
{\listoverride\listid846022938\listoverridecount0\ls5}{\listoverride\listid1730224345\listoverridecount0\ls6}{\listoverride\listid2091078015\listoverridecount0\ls7}{\listoverride\listid1281301155\listoverridecount0\ls8}{\listoverride\listid1772311604
\listoverridecount0\ls9}{\listoverride\listid1652171673\listoverridecount0\ls10}{\listoverride\listid1330524869\listoverridecount0\ls11}{\listoverride\listid1811554379\listoverridecount0\ls12}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0
\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid150970\rsid156011\rsid203795\rsid206584\rsid266111\rsid288678\rsid460155\rsid538759\rsid668536\rsid674965\rsid938415\rsid1340899\rsid1599487\rsid1647630\rsid1657439\rsid1730088
\rsid1929326\rsid1966307\rsid1981563\rsid2167583\rsid2388964\rsid2576803\rsid2753010\rsid2884605\rsid3022222\rsid3025658\rsid3028086\rsid3163531\rsid3285525\rsid3433762\rsid3569955\rsid3622538\rsid3635325\rsid3895034\rsid3943969\rsid3998625\rsid4476179
\rsid4656946\rsid4871690\rsid5064448\rsid5114084\rsid5178738\rsid5325168\rsid5733712\rsid5793177\rsid5907818\rsid6372815\rsid6442210\rsid6511812\rsid6707673\rsid6709676\rsid6776079\rsid6896162\rsid6964071\rsid7105396\rsid7146872\rsid7495966\rsid7544628
\rsid7814608\rsid8086032\rsid8269150\rsid8799422\rsid8859247\rsid9121458\rsid9132286\rsid9180311\rsid9257259\rsid9258736\rsid9307250\rsid9318354\rsid9373535\rsid9388365\rsid9596859\rsid9704937\rsid9711883\rsid9838644\rsid10516537\rsid10644118\rsid10766123
\rsid10829644\rsid10842502\rsid11096861\rsid11404612\rsid11426136\rsid11541424\rsid11754596\rsid11882324\rsid11930278\rsid11931191\rsid12134973\rsid12146773\rsid12258161\rsid12390765\rsid12666715\rsid12719322\rsid12853255\rsid12933746\rsid13119319
\rsid13328561\rsid13381599\rsid13506709\rsid13852431\rsid13961185\rsid13966640\rsid13978329\rsid14159743\rsid14251116\rsid14380172\rsid14488370\rsid14512558\rsid14576865\rsid14754795\rsid15078789\rsid15082545\rsid15082913\rsid15095912\rsid15153839
\rsid15484970\rsid15536699\rsid15888011\rsid15940546\rsid16212651\rsid16262044\rsid16282930\rsid16384757\rsid16387594\rsid16410202\rsid16413704}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440
\mintLim0\mnaryLim1}{\info{\operator Daniel Marschall}{\creatim\yr2015\mo9\dy22\hr19\min3}{\revtim\yr2016\mo6\dy16\hr18\min53}{\version111}{\edmins0}{\nofpages13}{\nofwords2898}{\nofchars18263}{\nofcharsws21119}{\vern11}}{\*\xmlnstbl {\xmlns1 http://schem
as.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect
\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid150970\rsid156011\rsid203795\rsid206584\rsid266111\rsid288678\rsid460155\rsid538759\rsid668536\rsid674965\rsid938415\rsid942449\rsid1123216\rsid1340899\rsid1599487\rsid1647630
\rsid1657439\rsid1730088\rsid1929326\rsid1966307\rsid1981563\rsid2167583\rsid2388964\rsid2576803\rsid2623011\rsid2753010\rsid2884605\rsid3022222\rsid3025658\rsid3028086\rsid3163531\rsid3285525\rsid3433762\rsid3561916\rsid3569955\rsid3622538\rsid3635325
\rsid3895034\rsid3943969\rsid3998625\rsid4476179\rsid4481755\rsid4655556\rsid4656946\rsid4871690\rsid5064448\rsid5114084\rsid5178738\rsid5316061\rsid5325168\rsid5576494\rsid5733712\rsid5793177\rsid5907818\rsid6372815\rsid6442210\rsid6511812\rsid6707673
\rsid6709676\rsid6776079\rsid6896162\rsid6906030\rsid6964071\rsid7105396\rsid7146872\rsid7495966\rsid7544628\rsid7814608\rsid8086032\rsid8269150\rsid8799422\rsid8859247\rsid9121458\rsid9132286\rsid9180311\rsid9257259\rsid9258736\rsid9307250\rsid9318354
\rsid9322229\rsid9373535\rsid9388365\rsid9596859\rsid9704937\rsid9711883\rsid9838644\rsid10516537\rsid10644118\rsid10766123\rsid10829644\rsid10842502\rsid11096861\rsid11404612\rsid11426136\rsid11541424\rsid11754596\rsid11882324\rsid11930278\rsid11931191
\rsid12134973\rsid12146773\rsid12258161\rsid12390765\rsid12666715\rsid12719322\rsid12853255\rsid12933746\rsid13119319\rsid13328561\rsid13381599\rsid13506709\rsid13852431\rsid13961185\rsid13966640\rsid13978329\rsid14159743\rsid14251116\rsid14380172
\rsid14422958\rsid14488370\rsid14512558\rsid14576865\rsid14754795\rsid15078789\rsid15082545\rsid15082913\rsid15095912\rsid15153839\rsid15356399\rsid15484970\rsid15536699\rsid15888011\rsid15940546\rsid16212651\rsid16262044\rsid16282930\rsid16384757
\rsid16387594\rsid16410202\rsid16413704}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator Daniel Marschall}{\creatim\yr2015\mo9\dy22\hr19\min3}
{\revtim\yr2016\mo6\dy17\hr1\min18}{\version121}{\edmins0}{\nofpages14}{\nofwords3104}{\nofchars19560}{\nofcharsws22619}{\vern11}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale140\rsidroot9121458 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale150\rsidroot9121458 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}
{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}
{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9
\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\s18\qc \li0\ri0\sb240\sa60\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid5325168 \rtlch\fcs1
176,12 → 180,12
\hich\af31502\dbch\af31501\loch\f31502 ViaThinkSoft UserDetect2}{\rtlch\fcs1 \af0 \ltrch\fcs0 \fs40\lang1033\langfe1031\langnp1033\insrsid5325168
\par }\pard\plain \ltrpar\qr \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12134973 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 Daniel Marschall
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid266111 \hich\af31506\dbch\af31505\loch\f31506 2}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9132286 \hich\af31506\dbch\af31505\loch\f31506 3 }{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13506709 \hich\af31506\dbch\af31505\loch\f31506 October }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 2015}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9322229 \hich\af31506\dbch\af31505\loch\f31506 17}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9132286 \hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5316061 \hich\af31506\dbch\af31505\loch\f31506 June}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13506709 \hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5316061 \hich\af31506\dbch\af31505\loch\f31506 2016}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973
\par }\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid4871690 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1031\langfe1031\kerning32\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9307250 \hich\af31502\dbch\af31501\loch\f31502 What is UserDetect2?
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9307250 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\par }\pard\plain \ltrpar\qj \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5316061 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid8859247\charrsid8859247 \hich\af31506\dbch\af31505\loch\f31506
UserDetect2 is a program that allows the user to execute different programs depending on their current environment}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 (}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid8859247 \hich\af31506\dbch\af31505\loch\f31506 e.g. }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 MAC}{\rtlch\fcs1 \af0 \ltrch\fcs0
196,7 → 200,7
\par }\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid12666715 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1031\langfe1031\kerning32\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715\charrsid4871690 \hich\af31502\dbch\af31501\loch\f31502 Usage}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13119319 \hich\af31502\dbch\af31501\loch\f31502 example}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715\charrsid4871690
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12666715 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\par }\pard\plain \ltrpar\qj \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2623011 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506
You have an external harddisk which you use for a daily backup with }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid266111 \hich\af31506\dbch\af31505\loch\f31506 a }{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 backup tool}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid266111 \hich\af31506\dbch\af31505\loch\f31506 (e.g. Microsoft RoboCopy)}{\rtlch\fcs1
210,7 → 214,7
\par \hich\af31506\dbch\af31505\loch\f31506 E:\\JohnPC\\backup_shutdown.bat
\par \hich\af31506\dbch\af31505\loch\f31506 E:\\JohnLaptop\\backup_no_shutdown.bat
\par \hich\af31506\dbch\af31505\loch\f31506 E:\\JohnLaptop\\backup_shutdown.bat
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12666715 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506
\par }\pard \ltrpar\qj \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2623011 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506
If you accidently start the wrong \hich\af31506\dbch\af31505\loch\f31506 batch file, the backups will be inconsistent, and there may be data loss.
\par \hich\af31506\dbch\af31505\loch\f31506 But if you use UserDetect2, you could create following Task}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 Definition }{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 File:
222,9 → 226,9
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af2\dbch\af31505\loch\f2 ComputerName:JohnPC}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912
\hich\af2\dbch\af31505\loch\f2 =}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af2\dbch\af31505\loch\f2 JohnPC\\backup_no_shutdown.bat}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af2\dbch\af31505\loch\f2 ComputerName:JohnLaptop}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912
\hich\af2\dbch\af31505\loch\f2 =}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af2\dbch\af31505\loch\f2 JohnLaptop\\backup_no_shutdown.bat}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af2\dbch\af31505\loch\f2 Co\hich\af2\dbch\af31505\loch\f2 mputerName:JohnLaptop}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912 \hich\af2\dbch\af31505\loch\f2 =}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af2\dbch\af31505\loch\f2 JohnLaptop\\backup_no_shutdown.bat}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912 \hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af2\dbch\af31505\loch\f2 Shutdown}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912 \hich\af2\dbch\af31505\loch\f2 ]
236,7 → 240,8
\hich\af2\dbch\af31505\loch\f2 =}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af2\dbch\af31505\loch\f2 JohnLaptop\\backup_shutdown.bat}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12666715 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\par \hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 In this case, you would only need to run \'93\loch\f31506 E:\\\hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 UserDetect2.exe\'94\loch\f31506 (maybe even use it}{\rtlch\fcs1 \af0 \ltrch\fcs0
\par }\pard \ltrpar\qj \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2623011 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506
\hich\f31506 In this case, you would only need to run \'93\loch\f31506 E:\\\hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 UserDetect2.exe\'94\loch\f31506 (maybe even use it}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid8799422 \hich\af31506\dbch\af31505\loch\f31506 as AutoRun}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 application}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid8799422 \hich\af31506\dbch\af31505\loch\f31506 , if you are working with Windows Vista or previous versions of Windows}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\hich\af31506\dbch\af31505\loch\f31506 ) and then select if you want to perform a backup with or without shutdown. UserDetect2 will select the correct batch file for \hich\af31506\dbch\af31505\loch\f31506 you.
244,50 → 249,87
\b\fs32\lang1031\langfe1031\kerning32\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912 \hich\af31502\dbch\af31501\loch\f31502 Command Line}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31502\dbch\af31501\loch\f31502 usage}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15095912
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12666715 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15484970 \hich\af31506\dbch\af31505\loch\f31506 Syntax:\tab \tab }{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155 \hich\af2\dbch\af31505\loch\f2 UD2.exe [}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af2\dbch\af31505\loch\f2 TaskDefinitionFile}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155 \hich\af2\dbch\af31505\loch\f2 [TaskName]]}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715\charrsid15484970
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14422958 \hich\af31506\dbch\af31505\loch\f31506 The syntax can be retrieved by calling
 
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid14422958\charrsid14422958 \hich\af2\dbch\af31505\loch\f2 UD2.exe /?
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1031\langnp1033\insrsid14422958\charrsid14422958 \hich\af31506\dbch\af31505\loch\f31506 Syntax:
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5576494 \hich\af2\dbch\af31505\loch\f2 UD2.exe\line }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid14422958\charrsid14422958 \hich\af2\dbch\af31505\loch\f2
[T}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5576494 \hich\af2\dbch\af31505\loch\f2 askDefinitionFile [/T TaskName] }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid14422958\charrsid14422958
\hich\af2\dbch\af31505\loch\f2 | /C IdentificationTerm}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5576494 \hich\af2\dbch\af31505\loch\f2 [Command] }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid14422958\charrsid14422958 \hich\af2\dbch\af31505\loch\f2 | /?]}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid5576494
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16387594 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1031\langnp1033\insrsid16387594\charrsid9388365
\hich\af31506\dbch\af31505\loch\f31506 Examples:
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12666715 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155
\hich\af2\dbch\af31505\loch\f2 UD2.exe}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 without parameters
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid16387594 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\par }\pard \ltrpar\qj \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid14422958 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\hich\af31506\dbch\af31505\loch\f31506 The GUI of UserDetect2 will be used.
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12666715 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155
\hich\af2\dbch\af31505\loch\f2 UD2.exe Foo.ini
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid16387594 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\par }\pard \ltrpar\qj \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid14422958 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\hich\af31506\dbch\af31505\loch\f31506 The GUI of UserDet}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 ect2 will be used, and the Task Definition }{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 File Foo.ini will be used (the d\hich\af31506\dbch\af31505\loch\f31506 efault }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973
\hich\af31506\dbch\af31505\loch\f31506 Task Definition File}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 File Foo.ini will be used (the default }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506
Task Definition File}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14422958 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12666715 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155
\hich\af2\dbch\af31505\loch\f2 UD2.exe Foo.ini ExampleTask1
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid16387594 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\hich\af2\dbch\af31505\loch\f2 UD2.exe Foo.ini }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid14422958 \hich\af2\dbch\af31505\loch\f2 /T }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155 \hich\af2\dbch\af31505\loch\f2 ExampleTask1
\par }\pard \ltrpar\qj \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid14422958 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\hich\af31506\dbch\af31505\loch\f31506 The GUI will not be used. Instead, the task ExampleTask1 of the Task}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 Definition }{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 File Foo.ini will be called immediately.
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 File Foo.ini will be c\hich\af31506\dbch\af31505\loch\f31506 alled immediately.
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14422958 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid14422958\charrsid460155
\hich\af2\dbch\af31505\loch\f2 UD2.exe }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid14422958 \hich\af2\dbch\af31505\loch\f2 /C ComputerName:JohnPC}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid14422958\charrsid460155
\par }\pard \ltrpar\qj \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid14422958 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14422958
\hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 The GUI will not be used. A single check will be performed to check if the plugin providing the identification \'93\loch\f31506 \hich\f31506 ComputerName\'94\loch\f31506 \hich\f31506 returns \'93
\loch\f31506 \hich\f31506 JohnPC\'94\loch\f31506 . In this case, the }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5576494 \hich\af31506\dbch\af31505\loch\f31506 return code}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid14422958 \hich\af31506\dbch\af31505\loch\f31506 will be 0. Otherwise, it will be\hich\af31506\dbch\af31505\loch\f31506 1. You can query these }{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid5576494 \hich\af31506\dbch\af31505\loch\f31506 return codes}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14422958 \hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 with \'93\loch\f31506
\hich\f31506 IF ERRORLEVEL\'94\loch\f31506 in Windows\hich\f31506 \rquote \loch\f31506 s batch files.
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5576494 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5576494\charrsid460155
\hich\af2\dbch\af31505\loch\f2 UD2.exe }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5576494 \hich\af2\dbch\af31505\loch\f2 /C ComputerName:JohnPC $ADMIN$calc.exe
\par }\pard \ltrpar\qj \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid5576494 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5576494
\hich\af31506\dbch\af31505\loch\f31506 If the computer\hich\f31506 \rquote \loch\f31506 s name is JohnPC, the program calc.exe will be launched with administrator privileges.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15356399
\hich\af31506\dbch\af31505\loch\f31506 The return codes 0 and\hich\af31506\dbch\af31505\loch\f31506 1 are still used like described above.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5316061
\hich\af31506\dbch\af31505\loch\f31506 Additionally, following return codes are possible due to the launch of the application: }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5576494
\par }\pard \ltrpar\qj \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid5316061 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5316061\charrsid11882324
\hich\af2\dbch\af31505\loch\f2 EXITCODE_RUN_FAILURE}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5316061 \hich\af2\dbch\af31505\loch\f2 (2)}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid5316061\charrsid5576494
\par }\pard \ltrpar\qj \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid5576494 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5316061 \hich\af2\dbch\af31505\loch\f2 EXIT
}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5316061\charrsid11882324 \hich\af2\dbch\af31505\loch\f2 CODE_SYNTAX_ERROR}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5316061
\hich\af2\dbch\af31505\loch\f2 (13)
\par }\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid12666715 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1031\langfe1031\kerning32\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324 \hich\af31502\dbch\af31501\loch\f31502 Return codes (ErrorLevel)
 
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11882324 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324 \hich\af2\dbch\af31505\loch\f2 EXITCODE_OK = 0
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324 \tab \hich\af31506\dbch\af31505\loch\f31506 No error was reported.
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324 \hich\af2\dbch\af31505\loch\f2 EXITCODE_TASK_NOTHING_MATCHES = 1
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324 \tab \hich\af31506\dbch\af31505\loch\f31506 The task was found, but no definition matched the current environment.}{\rtlch\fcs1 \af0 \ltrch\fcs0
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid5316061 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324
\hich\af31506\dbch\af31505\loch\f31506 No error was reported.
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11882324 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\hich\af2\dbch\af31505\loch\f2 EXITCODE_TASK_NOTHING_MATCHES = 1
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid5316061 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324
\hich\af31506\dbch\af31505\loch\f31506 The task was found, but no definition matched the current environment.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11882324 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\hich\af2\dbch\af31505\loch\f2 EXITCODE_RUN_FAILURE = 2
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid5316061 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324
\hich\af31506\dbch\af31505\loch\f31506 The task was found, but at least one executable was not found resp. couldn\hich\f31506 \rquote \loch\f31506 t be launched.}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324 \hich\af2\dbch\af31505\loch\f2 EXITCODE_RUN_FAILURE = 2
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324 \tab \hich\af31506\dbch\af31505\loch\f31506 The task was found, but at least one executable was not found resp. couldn\hich\f31506 \rquote \loch\f31506 t be launched.}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324 \hich\af2\dbch\af31505\loch\f2 EXITCODE_TASK_NOT_EXISTS = 10
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324 \tab \hich\af31506\dbch\af31505\loch\f31506 The\hich\af31506\dbch\af31505\loch\f31506 specified task does not exist.}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324 \hich\af2\dbch\af31505\loch\f2 EXITCODE_INI_NOT_FOUND = 11
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324 \tab \hich\af31506\dbch\af31505\loch\f31506 The specified Task Definition file does not exist.
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324 \hich\af2\dbch\af31505\loch\f2 EXITCODE_RUNCMD_SYNTAX_ERROR = 12
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324 \tab \hich\af31506\dbch\af31505\loch\f31506 The syntax of the command defined in the Task Definition File is wrong.
\par \tab \hich\af31506\dbch\af31505\loch\f31506 In special, the opening quote sign d\hich\af31506\dbch\af31505\loch\f31506 oes not have a matching a closing quote sign.}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324 \hich\af2\dbch\af31505\loch\f2 EXTICODE_SYNTAX_ERROR = 13
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324 \tab \hich\af31506\dbch\af31505\loch\f31506 The syntax of the arguments passed to UserDetect2.exe is wrong.}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11882324 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\hich\af2\dbch\af31505\loch\f2 EXITCODE_TASK_NOT_EXISTS = 10
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2623011 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324
\hich\af31506\dbch\af31505\loch\f31506 The sp\hich\af31506\dbch\af31505\loch\f31506 ecified task does not exist.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11882324 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\hich\af2\dbch\af31505\loch\f2 EXITCODE_INI_NOT_FOUND = 11
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2623011 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324
\hich\af31506\dbch\af31505\loch\f31506 The specified Task Definition file does not exist.
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11882324 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\hich\af2\dbch\af31505\loch\f2 EXITCODE_RUNCMD_SYNTAX_ERROR = 12
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2623011 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324
\hich\af31506\dbch\af31505\loch\f31506 The syntax of the command defined in the Task Definition File is wrong.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid2623011
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324 \hich\af31506\dbch\af31505\loch\f31506 In special, the opening quote sign does no\hich\af31506\dbch\af31505\loch\f31506 t have a matching a closing quote sign.}{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11882324 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5316061 \hich\af2\dbch\af31505\loch\f2 EXIT}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324 \hich\af2\dbch\af31505\loch\f2 CODE_SYNTAX_ERROR = 13
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2623011 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324
\hich\af31506\dbch\af31505\loch\f31506 The syntax of the arguments passed to UserDetect2.exe is wrong.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11882324\charrsid11882324
\par }\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid12666715 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1031\langfe1031\kerning32\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14159743 \hich\af31502\dbch\af31501\loch\f31502 Task Definition File (}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid938415 \hich\af31502\dbch\af31501\loch\f31502 U}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14159743 \hich\af31502\dbch\af31501\loch\f31502 ser}{\rtlch\fcs1 \af0
299,14 → 341,14
\b\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid938415 \hich\af31506\dbch\af31505\loch\f31506 Task Definition File}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 is called }{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid938415 \hich\af31506\dbch\af31505\loch\f31506 U}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 ser}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid938415 \hich\af31506\dbch\af31505\loch\f31506 D}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 etect}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid938415 \hich\af31506\dbch\af31505\loch\f31506 2}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506
.ini . A different INI file can be used using a Command Line argument. If }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3163531 \hich\af31506\dbch\af31505\loch\f31506 no file with the name}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid938415 \hich\af31506\dbch\af31505\loch\f31506 2}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 .ini . A different INI file can
\hich\af31506\dbch\af31505\loch\f31506 be used using a Command Line argument. If }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3163531 \hich\af31506\dbch\af31505\loch\f31506 no file with the name}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid938415 \hich\af31506\dbch\af31505\loch\f31506 U}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 ser}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid938415 \hich\af31506\dbch\af31505\loch\f31506 D}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 etect}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid938415 \hich\af31506\dbch\af31505\loch\f31506 2}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 .ini}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3163531 \hich\af31506\dbch\af31505\loch\f31506 or <ApplicationName>.ini file is }{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 existing, and no command line argument is used, the GUI will ask the user for the path of the }{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 Task Definition F\hich\af31506\dbch\af31505\loch\f31506 ile}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 .
\lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 Task Definition File}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 .
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11426136 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506
Her}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11426136 \hich\af31506\dbch\af31505\loch\f31506 e is an example of a }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973
\hich\af31506\dbch\af31505\loch\f31506 Task Definition File}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11426136 \hich\af31506\dbch\af31505\loch\f31506 :}{\rtlch\fcs1 \af0 \ltrch\fcs0
350,15 → 392,15
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12666715 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506
Each section starts with a name in square brackets, e.g. }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid14251116 \hich\af2\dbch\af31505\loch\f2 [ExampleTask1]}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 . There can be multiple sections. Each section defines a task.
Each section starts with a name in square brackets, e.g. }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid14251116 \hich\af2\dbch\af31505\loch\f2 [Exam\hich\af2\dbch\af31505\loch\f2 pleTask1]}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \hich\af31506\dbch\af31505\loch\f31506 . There can be multiple sections. Each section defines a task.
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid3895034 \hich\af31506\dbch\af31505\loch\f31506 Field }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\ul\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid3895034
\hich\af2\dbch\af31505\loch\f2 Description
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155 \hich\af31506\dbch\af31505\loch\f31506 The description is an optional field, but is highly recommended. In the GUI, it will be shown as name for the task.
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid3895034 \hich\af31506\dbch\af31505\loch\f31506 Field }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\ul\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid3895034
\hich\af2\dbch\af31505\loch\f2 Icon
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155 \hich\af31506\dbch\af31505\loch\f31506 This is an optional field, to rep\hich\af31506\dbch\af31505\loch\f31506
lace the icon of the task with a different icon. The syntax is:
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155 \hich\af31506\dbch\af31505\loch\f31506 This is an optional field, to replace \hich\af31506\dbch\af31505\loch\f31506
the icon of the task with a different icon. The syntax is:
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid6372815 \hich\af2\dbch\af31505\loch\f2 Icon: <IconDLL>,<IconIndex>
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155 \hich\af31506\dbch\af31505\loch\f31506 For example, }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12666715\charrsid460155
\hich\af2\dbch\af31505\loch\f2 Icon=%SystemRoot%\\system32\\Shell32.dll,3
419,14 → 461,14
\hich\af31506\dbch\af31505\loch\f31506 dentification method n}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid2884605\charrsid2884605 \hich\af31506\dbch\af31505\loch\f31506 ame}{\rtlch\fcs1 \af0 \ltrch\fcs0
\b\lang1033\langfe1031\langnp1033\insrsid2884605\charrsid12258161 \hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715 \loch\af31506\dbch\af31505\hich\f31506 \'93\loch\f31506 \hich\f31506
ComputerName\'94\loch\f31506 will }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12853255 \hich\af31506\dbch\af31505\loch\f31506 returns}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12666715
\hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 the identification \'93\loch\f31506 \hich\f31506 John\'94\loch\f31506 \hich\f31506 , then the program \'93\loch\f31506 \hich\f31506 calc.exe\'94\hich\af31506\dbch\af31505\loch\f31506 will be started.}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16387594\charrsid16387594
\hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 the identification \'93\loch\f31506 \hich\f31506 John\'94\loch\f31506 \hich\f31506 , then the program \'93\loch\f31506 \hich\f31506 calc.exe\'94\loch\f31506 will be sta
\hich\af31506\dbch\af31505\loch\f31506 rted.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16387594\charrsid16387594
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16387594 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12258161 \hich\af31506\dbch\af31505\loch\f31506
\hich\f31506 The short name of the plugins, as well as the identification strings can be seen in the GUI in the \'93\loch\f31506 \hich\f31506 Identifications\'94\loch\f31506 tab. The GUI can also create a Task Definition File (INI file) template for you.
 
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3163531 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12258161 \hich\af31506\dbch\af31505\loch\f31506
Alternatively to the }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid9388365 \hich\af2\dbch\af31505\loch\f2 MethodName}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12258161
\hich\af31506\dbch\af31505\loch\f31506 , you can\hich\af31506\dbch\af31505\loch\f31506 use the GUID of the plugin. The syntax is }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12258161\charrsid16282930 \{
\hich\af31506\dbch\af31505\loch\f31506 , you can use the GUI\hich\af31506\dbch\af31505\loch\f31506 D of the plugin. The syntax is }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12258161\charrsid16282930 \{
\hich\af2\dbch\af31505\loch\f2 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12258161 \hich\af31506\dbch\af31505\loch\f31506 .
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid12258161\charrsid12258161 \hich\af31506\dbch\af31505\loch\f31506 Attention:}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid9388365
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \b\f2\fs22\lang1033\langfe1031\langnp1033\insrsid2884605 \hich\af2\dbch\af31505\loch\f2 1.\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\sa160\sl259\slmult1
433,13 → 475,13
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls8\adjustright\rin0\lin720\itap0\pararsid3028086 {\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid2884605 \hich\af2\dbch\af31505\loch\f2 IdentificationMethodName}{\rtlch\fcs1 \af0
\ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid12258161\charrsid12258161 \hich\af31506\dbch\af31505\loch\f31506 and }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12258161\charrsid12853255 \hich\af2\dbch\af31505\loch\f2
IdentificationString}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid12258161\charrsid12258161 \hich\af31506\dbch\af31505\loch\f31506 are case sensitive! If you use a GUID instead of }{\rtlch\fcs1 \af2 \ltrch\fcs0
\b\f2\lang1033\langfe1031\langnp1033\insrsid2884605 \hich\af2\dbch\af31505\loch\f2 IdentificationMethodName}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid12258161\charrsid12258161 \hich\af31506\dbch\af31505\loch\f31506 , either al
\hich\af31506\dbch\af31505\loch\f31506 l digits have to be uppercase, or all digits have to be lowercase, but not mixed.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid12258161
\b\f2\lang1033\langfe1031\langnp1033\insrsid2884605 \hich\af2\dbch\af31505\loch\f2 IdentificationMethodName}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid12258161\charrsid12258161 \hich\af31506\dbch\af31505\loch\f31506
, either all digits ha\hich\af31506\dbch\af31505\loch\f31506 ve to be uppercase, or all digits have to be lowercase, but not mixed.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid12258161
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \b\f31506\fs22\lang1033\langfe1031\langnp1033\insrsid9388365 \hich\af31506\dbch\af31505\loch\f31506 2.\tab}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid9388365
\hich\af31506\dbch\af31505\loch\f31506 Although it is recommended }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid9388365\charrsid3028086 \hich\af31506\dbch\af31505\loch\f31506 to name the DLL file equally to the }{\rtlch\fcs1
\af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid3028086\charrsid3028086 \hich\af31506\dbch\af31505\loch\f31506 identification method name}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid9388365\charrsid3028086
\hich\af31506\dbch\af31505\loch\f31506 , there is no guarantee that they match. Only the }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid3028086\charrsid3028086 \hich\af31506\dbch\af31505\loch\f31506 identification method name }{
\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid9388365\charrsid3028086 \hich\af31506\dbch\af31505\loch\f31506 will be used, not the name of the DLL file!
\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid9388365\charrsid3028086 \hich\af31506\dbch\af31505\loch\f31506 will be used, no\hich\af31506\dbch\af31505\loch\f31506 t the name of the DLL file!
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3163531 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1031\langnp1033\insrsid14512558\charrsid9388365
\hich\af31506\dbch\af31505\loch\f31506 Notes about the command}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1031\langnp1033\insrsid12258161\charrsid9388365 \hich\af31506\dbch\af31505\loch\f31506 launching}{\rtlch\fcs1 \af0 \ltrch\fcs0
\i\lang1033\langfe1031\langnp1033\insrsid14512558\charrsid9388365 \hich\af31506\dbch\af31505\loch\f31506 :
488,11 → 530,11
. In this case, the working directory of example.bat will be test\\ , instead of the directory where UserDetect2.exe was started from.
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1031\langnp1033\insrsid12853255\charrsid9388365 \hich\af31506\dbch\af31505\loch\f31506 Note:
\par }\pard \ltrpar\ql \li720\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid12853255 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16413704
\hich\af31506\dbch\af31505\loch\f31506 If your application or batch file is intolerant to different working directories, please consider following}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12853255
\hich\af31506\dbch\af31505\loch\f31506 to solve this bug \hich\f31506 \endash \loch\f31506 i}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15484970 \hich\af31506\dbch\af31505\loch\f31506 t would be in your interest}{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16413704 \hich\af31506\dbch\af31505\loch\f31506 :
\hich\af31506\dbch\af31505\loch\f31506 If your application o\hich\af31506\dbch\af31505\loch\f31506 r batch file is intolerant to different working directories, please consider following}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid12853255 \hich\af31506\dbch\af31505\loch\f31506 to solve this bug \hich\f31506 \endash \loch\f31506 i}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15484970
\hich\af31506\dbch\af31505\loch\f31506 t would be in your interest}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16413704 \hich\af31506\dbch\af31505\loch\f31506 :
\par \hich\af31506\dbch\af31505\loch\f31506 In Batch files (*.bat), use }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid16413704\charrsid16413704 \hich\af2\dbch\af31505\loch\f2 %~dp0}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid16413704 \hich\af31506\dbch\af31505\loch\f31506 to receive the directory name where the script is located in (in\hich\af31506\dbch\af31505\loch\f31506 cluding trailing path delimiter).
\lang1033\langfe1031\langnp1033\insrsid16413704 \hich\af31506\dbch\af31505\loch\f31506 to receive the directory name where the script is located in (including trailing path\hich\af31506\dbch\af31505\loch\f31506 delimiter).
\par \hich\af31506\dbch\af31505\loch\f31506 In Delphi projects, use }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid16413704\charrsid16413704 \hich\af2\dbch\af31505\loch\f2 IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)))}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16413704 \hich\af31506\dbch\af31505\loch\f31506 to receive this path. You may want to pass this path into }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid16413704\charrsid16413704 \hich\af2\dbch\af31505\loch\f2 SetCurrentDir()}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16413704 .
501,8 → 543,9
\b\i\fs28\lang1031\langfe1031\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546 \hich\af31502\dbch\af31501\loch\f31502 Concatenations
\par }\pard\plain \ltrpar\ql \li0\ri0\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12666715 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546 \hich\af31506\dbch\af31505\loch\f31506 Multiple identification }{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11096861 \hich\af31506\dbch\af31505\loch\f31506 criteria}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546 \hich\af31506\dbch\af31505\loch\f31506 \hich\f31506
can be merged with an \'93\loch\f31506 \hich\f31506 AND\'94\loch\f31506 \hich\f31506 condition. This is done with the expression \'93\loch\f31506 \hich\f31506 &&\'94}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6896162 .
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11096861 \hich\af31506\dbch\af31505\loch\f31506 criteria}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546 \hich\af31506\dbch\af31505\loch\f31506 ca
\hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 n be merged with an \'93\loch\f31506 \hich\f31506 AND\'94\loch\f31506 \hich\f31506 condition. This is done with the expression \'93\loch\f31506 \hich\f31506 &&\'94}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid6896162 .
\par
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1031\langnp1033\insrsid7146872\charrsid9388365 \hich\af31506\dbch\af31505\loch\f31506 Example:}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1031\langnp1033\insrsid15940546\charrsid9388365
\par }\pard \ltrpar\ql \li0\ri0\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15940546 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid15940546
520,17 → 563,17
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535 \hich\af31506\dbch\af31505\loch\f31506
This error message can have 2 reasons:}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid3028086\charrsid3028086 \hich\af31506\dbch\af31505\loch\f31506 Reason 1
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535 \hich\af31506\dbch\af31505\loch\f31506 You have the same plugin twice, with \hich\af31506\dbch\af31505\loch\f31506 different file names. In this case, you s}{
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535 \hich\af31506\dbch\af31505\loch\f31506 You have the same plugin twice, with different file n\hich\af31506\dbch\af31505\loch\f31506 ames. In this case, you s}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3028086 \hich\af31506\dbch\af31505\loch\f31506 hould delete on of these files.
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1031\langnp1033\insrsid3028086\charrsid7814608 \hich\af31506\dbch\af31505\loch\f31506 Solution}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3028086
\hich\af31506\dbch\af31505\loch\f31506 : }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535 \hich\af31506\dbch\af31505\loch\f31506
You might want to keep the file with the highest version number and/or modification date.
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid3028086\charrsid3028086 \hich\af31506\dbch\af31505\loch\f31506 Reason 2
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535 \hich\af31506\dbch\af31505\loch\f31506 The plugin developer accidently used a GUID twice, or didn't change the GU\hich\af31506\dbch\af31505\loch\f31506
ID while using a code template. In this case you have to create a workaround.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535 \hich\af31506\dbch\af31505\loch\f31506 The plugin developer accidently used a GUID twice, or didn't change the GUID while using a
\hich\af31506\dbch\af31505\loch\f31506 code template. In this case you have to create a workaround.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1031\langnp1033\insrsid3028086\charrsid7814608 \hich\af31506\dbch\af31505\loch\f31506 Solution}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3028086
\hich\af31506\dbch\af31505\loch\f31506 : }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535 \hich\af31506\dbch\af31505\loch\f31506 Create a new INI file with the name Plugins\\
<Name>.ini where <Name> is the filename of one of the conflicting plugins. For example, if the DLL file is named Plugins\\Exa\hich\af31506\dbch\af31505\loch\f31506 mple.dll , the INI file would be named Plugins\\Example.ini . This INI file }{\rtlch\fcs1
<Name>.ini where <Name> is the filename of one of the conflicting plugins. For example, if the DLL file is named Plugins\\Example.dll , the I\hich\af31506\dbch\af31505\loch\f31506 NI file would be named Plugins\\Example.ini . This INI file }{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid4656946 \hich\af31506\dbch\af31505\loch\f31506 should have following contents:}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535
\par }\pard \ltrpar\ql \li0\ri0\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4656946 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid9373535\charrsid4656946
\hich\af2\dbch\af31505\loch\f2 [Compatibility]
540,13 → 583,13
\hich\af2\dbch\af31505\loch\f2 <GUID>}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535 \hich\af31506\dbch\af31505\loch\f31506 is a GUID in the format }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid9373535\charrsid4476179 \{\hich\af2\dbch\af31505\loch\f2 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535 .
\par \hich\af31506\dbch\af31505\loch\f31506 You }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid12390765 \hich\af31506\dbch\af31505\loch\f31506 can gener}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid4656946\charrsid9318354 \hich\af31506\dbch\af31505\loch\f31506 ate a new GUID at this website: }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9318354
\hich\af31506\dbch\af31505\loch\f31506 HYPERLINK "http://}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9318354\charrsid12390765 \hich\af31506\dbch\af31505\loch\f31506
\lang1033\langfe1031\langnp1033\insrsid4656946\charrsid9318354 \hich\af31506\dbch\af31505\loch\f31506 ate a n\hich\af31506\dbch\af31505\loch\f31506 ew GUID at this website: }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid9318354 \hich\af31506\dbch\af31505\loch\f31506 HYPERLINK "http://}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9318354\charrsid12390765 \hich\af31506\dbch\af31505\loch\f31506
www.viathinksoft.de/~daniel-marschall/tools/uuid_mac_decoder/interprete_uuid.php?uuid=CREATE}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9318354 \hich\af31506\dbch\af31505\loch\f31506 " }{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid16410202 {\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90be000000068007400740070003a002f002f007700770077002e007600690061007400680069006e006b0073006f00660074002e00640065002f007e00640061006e00690065006c002d006d0061007200730063006800
61006c006c002f0074006f006f006c0073002f0075007500690064005f006d00610063005f006400650063006f006400650072002f0069006e00740065007200700072006500740065005f0075007500690064002e007000680070003f0075007500690064003d004300520045004100540045000000795881f43b1d7f48af
2c825dc485276300000000a5ab000100000000650000ea000000b300}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs17\ul\cf17\lang1033\langfe1031\langnp1033\insrsid9318354\charrsid8086032 \hich\af31506\dbch\af31505\loch\f31506
2c825dc485276300000000a5ab000100000000650000ea000000b300000000000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs17\ul\cf17\lang1033\langfe1031\langnp1033\insrsid9318354\charrsid8086032 \hich\af31506\dbch\af31505\loch\f31506
www.viathinksoft.de/~daniel-marschall/tools/uuid_mac_decoder/interprete_uuid.php?uuid=CREATE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \fs20\lang1033\langfe1031\langnp1033\insrsid9373535\charrsid4476179
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535\charrsid9373535 \hich\af31506\dbch\af31505\loch\f31506 You have to copy the field "Your UUID" and add curly braces around it.
\par \hich\af31506\dbch\af31505\loch\f31506 Please also contact the plugin authors and inform him about the issue.
558,7 → 601,8
\f2\lang1033\langfe1031\langnp1033\insrsid3028086\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 IdentificationMethodNameW}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3028086\charrsid16410202
\hich\af31506\dbch\af31505\loch\f31506 )}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3028086 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3028086\charrsid3028086
\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid16262044 \rtlch\fcs1 \ab\ai\af0\afs28\alang1025 \ltrch\fcs0
\b\i\fs28\lang1031\langfe1031\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid2167583 \hich\af31502\dbch\af31501\loch\f31502 Location of plugin files
\b\i\fs28\lang1031\langfe1031\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid2167583 \hich\af31502\dbch\af31501\loch\f31502 Location of pl
\hich\af31502\dbch\af31501\loch\f31502 ugin files
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2167583 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid2167583 \hich\af31506\dbch\af31505\loch\f31506
UserDetect2 will detect following files as plugins:
567,8 → 611,7
\lang1033\langfe1031\langnp1033\insrsid2167583\charrsid2167583
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f3\fs22\lang1033\langfe1031\langnp1033\insrsid2167583 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid2167583
\hich\af31506\dbch\af31505\loch\f31506 Plugins\\*.smp
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f3\fs22\lang1033\langfe1031\langnp1033\insrsid2167583 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid2167583
\hich\af31506\dbch\af31505\loch\f31506 Plugins\\*.dll
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f3\fs22\lang1033\langfe1031\langnp1033\insrsid2167583 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}\hich\af31506\dbch\af31505\loch\f31506 Plugins\\*.dll
\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid16262044 \rtlch\fcs1 \ab\ai\af0\afs28\alang1025 \ltrch\fcs0
\b\i\fs28\lang1031\langfe1031\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16262044 \hich\af31502\dbch\af31501\loch\f31502 SDK Contents}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16262044\charrsid16262044
575,10 → 618,10
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4871690 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815 \hich\af31506\dbch\af31505\loch\f31506 UserDetect}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid13328561\charrsid13328561 \hich\af31506\dbch\af31505\loch\f31506 2 as well as the default plugins are developed in Delphi.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13328561
\hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13328561\charrsid13328561 \hich\af31506\dbch\af31505\loch\f31506 However, plugins can be \hich\af31506\dbch\af31505\loch\f31506 written in a}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5114084 \hich\af31506\dbch\af31505\loch\f31506 ny programming language like C++}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13328561\charrsid13328561 .}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13328561 \hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16262044 \hich\af31506\dbch\af31505\loch\f31506 The SDK provides}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5114084 \hich\af31506\dbch\af31505\loch\f31506 header files for Delphi and C}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16262044 .
\hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13328561\charrsid13328561 \hich\af31506\dbch\af31505\loch\f31506 However, plugins can be written in a}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid5114084 \hich\af31506\dbch\af31505\loch\f31506 ny programming language like C++}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13328561\charrsid13328561 .}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid13328561 \hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16262044 \hich\af31506\dbch\af31505\loch\f31506 The SDK provides}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid5114084 \hich\af31506\dbch\af31505\loch\f31506 header files for Delphi and C}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16262044 .
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid16262044\charrsid15484970 \hich\af31506\dbch\af31505\loch\f31506 Delphi}{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid9180311
\hich\af31506\dbch\af31505\loch\f31506 units}{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid16262044\charrsid15484970 \hich\af31506\dbch\af31505\loch\f31506 :
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f3\fs22\lang1033\langfe1031\langnp1033\insrsid16262044 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\sa160\sl259\slmult1
597,8 → 640,8
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin720\itap0\pararsid1730088 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1730088 \hich\af31506\dbch\af31505\loch\f31506 ud2_utils.h (included via ud2_api.h)
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f3\fs22\lang1033\langfe1031\langnp1033\insrsid1730088 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}\hich\af31506\dbch\af31505\loch\f31506 ud2_guid.h (included via ud2_api.h)
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f3\fs22\lang1033\langfe1031\langnp1033\insrsid11404612 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\sa160\sl259\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin720\itap0\pararsid16262044 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11404612 \hich\af31506\dbch\af31505\loch\f31506 ud2_status.h (included via ud2_api.h)
 
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin720\itap0\pararsid16262044 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid11404612 \hich\af31506\dbch\af31505\loch\f31506 ud2_status.h (include
\hich\af31506\dbch\af31505\loch\f31506 d via ud2_api.h)
\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid3025658 \rtlch\fcs1 \ab\ai\af0\afs28\alang1025 \ltrch\fcs0
\b\i\fs28\lang1031\langfe1031\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3025658 \hich\af31502\dbch\af31501\loch\f31502 Exported functions}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3025658\charrsid13328561
622,7 → 665,7
\ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 ; }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 cdecl}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 ;
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 function}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973
\hich\af2\dbch\af31505\loch\f2 PluginVendorW(\hich\af2\dbch\af31505\loch\f2 lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13381599 \hich\af2\dbch\af31505\loch\f2
\hich\af2\dbch\af31505\loch\f2 PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLa\hich\af2\dbch\af31505\loch\f2 ngID: LANGID): }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13381599 \hich\af2\dbch\af31505\loch\f2
UD2_STATUS}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 ; }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid4476179
\hich\af2\dbch\af31505\loch\f2 cdecl}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 ;
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 function}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973
634,9 → 677,10
\ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 ; }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 cdecl}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 ;
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid5793177 \hich\af2\dbch\af31505\loch\f2 function}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973
\hich\af2\dbch\af31505\loch\f2 IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13381599 \hich\af2\dbch\af31505\loch\f2 UD2_STATUS}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 ; }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 cdecl}{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 ;}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13328561
\hich\af2\dbch\af31505\loch\f2 IdentificationStringW(lpIdentifier: \hich\af2\dbch\af31505\loch\f2 LPWSTR; cchSize: DWORD): }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13381599 \hich\af2\dbch\af31505\loch\f2 UD2_STATUS}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 ; }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid4476179
\hich\af2\dbch\af31505\loch\f2 cdecl}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 ;}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13328561
 
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177 \hich\af2\dbch\af31505\loch\f2 function}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177
\hich\af2\dbch\af31505\loch\f2 DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177
\hich\af2\dbch\af31505\loch\f2 cdecl}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177 \hich\af2\dbch\af31505\loch\f2 ;
655,8 → 699,8
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 PluginVersionW(LPWSTR lpPluginVersion, DWORD cchSize, LANGID wLangID);
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid7814608 \hich\af2\dbch\af31505\loch\f2 __cdecl}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13381599 \hich\af2\dbch\af31505\loch\f2 UD2_STATUS}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid10644118\charrsid12134973
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 Plu\hich\af2\dbch\af31505\loch\f2
ginVendorW(LPWSTR lpPluginVendor, DWORD cchSize, LANGID wLangID);
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 PluginVendorW(LPWSTR lpPluginVendor, DWORD cchSize, LANGID wLa\hich\af2\dbch\af31505\loch\f2
ngID);
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid7814608 \hich\af2\dbch\af31505\loch\f2 __cdecl}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13381599 \hich\af2\dbch\af31505\loch\f2 UD2_STATUS}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid10644118\charrsid12134973
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 CheckLicense(LPVOID lpReserved);
665,11 → 709,11
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 IdentificationMethodNameW(LPWSTR lpIdentificationMethodName, DWORD cchSize);
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid7814608 \hich\af2\dbch\af31505\loch\f2 __cdecl}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13381599 \hich\af2\dbch\af31505\loch\f2 UD2_STATUS}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid10644118\charrsid12134973
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 IdentificationStringW(L\hich\af2\dbch\af31505\loch\f2 PWSTR lpIdentifier, DWORD cchSize);}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12134973\charrsid12134973 \hich\af2\dbch\af31505\loch\f2 IdentificationStringW(LPWSTR lpIdentifier, DWORD cchSize);}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid12134973
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177 \hich\af2\dbch\af31505\loch\f2 __cdecl}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177
\hich\af2\dbch\af31505\loch\f2 BOOL DescribeOwnStatusCodeW(LPWSTR lpErrorDescription, DWORD cchSize, UD2_STAT}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5793177 \hich\af2\dbch\af31505\loch\f2 US statusCode, LANGID wLangID);}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid12134973
\hich\af2\dbch\af31505\loch\f2 BOOL DescribeOw\hich\af2\dbch\af31505\loch\f2 nStatusCodeW(LPWSTR lpErrorDescription, DWORD cchSize, UD2_STAT}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5793177 \hich\af2\dbch\af31505\loch\f2
US statusCode, LANGID wLangID);}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid12134973
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4871690 {\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid13328561
\hich\af31506\dbch\af31505\loch\f31506 Method }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13328561\charrsid13328561 \hich\af2\dbch\af31505\loch\f2 PluginInterfaceID}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid13328561
686,24 → 730,24
\f2\ul\lang1033\langfe1031\langnp1033\insrsid3569955 \hich\af2\dbch\af31505\loch\f2 W}{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid13978329\charrsid13978329
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid288678 \hich\af31506\dbch\af31505\loch\f31506 The}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13978329 \hich\af31506\dbch\af31505\loch\f31506
function returns the}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid288678 \hich\af31506\dbch\af31505\loch\f31506 identification string}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13978329
\hich\af31506\dbch\af31505\loch\f31506 , which }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid288678 \hich\af31506\dbch\af31505\loch\f31506 is a null-terminated C-st\hich\af31506\dbch\af31505\loch\f31506 \hich\f31506
ring which contains the value of the identification performed. For example, the UserName-Plugin would output \'93}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid288678\charrsid6372815 \hich\af2\dbch\af31505\loch\f2 John<NUL>}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid288678 \loch\af31506\dbch\af31505\hich\f31506 \'94\loch\f31506 \hich\f31506 . With this output, the task \'93}{\rtlch\fcs1 \af2 \ltrch\fcs0
\hich\af31506\dbch\af31505\loch\f31506 , which }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid288678 \hich\af31506\dbch\af31505\loch\f31506 is a null-terminated C-string which contains the value of the identific
\hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 ation performed. For example, the UserName-Plugin would output \'93}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid288678\charrsid6372815 \hich\af2\dbch\af31505\loch\f2 John<NUL>
}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid288678 \loch\af31506\dbch\af31505\hich\f31506 \'94\loch\f31506 \hich\f31506 . With this output, the task \'93}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid288678\charrsid6372815 \hich\af2\dbch\af31505\loch\f2 UserName:John=calc.exe}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid288678 \loch\af31506\dbch\af31505\hich\f31506 \'94\loch\f31506
would be performed (calc.exe will be called).
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1031\langnp1033\insrsid13978329\charrsid11096861 \hich\af31506\dbch\af31505\loch\f31506 Annotations:
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1031\langnp1033\insrsid9121458\charrsid9121458 \hich\af31506\dbch\af31505\loch\f31506 1.\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\sa160\sl259\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0\pararsid13978329 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9121458\charrsid9121458 \hich\af31506\dbch\af31505\loch\f31506
Empty string = no identification could be performed, e.g. }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9121458 \hich\af31506\dbch\af31505\loch\f31506
the MAC-Plugin cannot work on a computer without network interfaces. In this case, the output of the plugin will be IGNORED. For ex}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815 \hich\af31506\dbch\af31505\loch\f31506
Empty string = no identification could be performed, e.g. }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9121458 \hich\af31506\dbch\af31505\loch\f31506 the MAC-\hich\af31506\dbch\af31505\loch\f31506
Plugin cannot work on a computer without network interfaces. In this case, the output of the plugin will be IGNORED. For ex}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815 \hich\af31506\dbch\af31505\loch\f31506
ample, for the MAC-plugin, the t}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9121458 \hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 ask \'93}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid1340899
\hich\af2\dbch\af31505\loch\f2 LAN_}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid9121458\charrsid6372815 \hich\af2\dbch\af31505\loch\f2 MAC:=calc.exe}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9121458
\loch\af31506\dbch\af31505\hich\f31506 \'94\loch\f31506 will }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815 \hich\af31506\dbch\af31505\loch\f31506 NOT}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid9121458 \hich\af31506\dbch\af31505\loch\f31506 be\hich\af31506\dbch\af31505\loch\f31506 executed, because the identifica}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16212651
\hich\af31506\dbch\af31505\loch\f31506 tion string (after the colon) cannot be}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9121458 \hich\af31506\dbch\af31505\loch\f31506 empty.
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1031\langnp1033\insrsid9121458 \hich\af31506\dbch\af31505\loch\f31506 2.\tab}\hich\af31506\dbch\af31505\loch\f31506
Multiple outputs: Multiple identifications, e.g. multiple MAC addresses are separated with a linefeed (0x10). Each identification will be traded separately. For example, if \hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 the MAC-Plugin returns \'93}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid9121458\charrsid6372815 \hich\af2\dbch\af31505\loch\f2 11-22-33-44-55-66<LF>66-55-44-33-22-11<NUL>}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815
\lang1033\langfe1031\langnp1033\insrsid9121458 \hich\af31506\dbch\af31505\loch\f31506 be executed, because the identifica}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid16212651 \hich\af31506\dbch\af31505\loch\f31506
tion string (after the colon) can\hich\af31506\dbch\af31505\loch\f31506 not be}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9121458 \hich\af31506\dbch\af31505\loch\f31506 empty.
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1031\langnp1033\insrsid9121458 \hich\af31506\dbch\af31505\loch\f31506 2.\tab}\hich\af31506\dbch\af31505\loch\f31506 \hich\f31506
Multiple outputs: Multiple identifications, e.g. multiple MAC addresses are separated with a linefeed (0x10). Each identification will be traded separately. For example, if the MAC-Plugin returns \'93}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid9121458\charrsid6372815 \hich\af2\dbch\af31505\loch\f2 11-22-33-44-55-66<LF>66-55-44-33-22-11<NUL\hich\af2\dbch\af31505\loch\f2 >}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815
\loch\af31506\dbch\af31505\hich\f31506 \'94}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9121458 \hich\af31506\dbch\af31505\loch\f31506 , the fo}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815
\hich\af31506\dbch\af31505\loch\f31506 llowing tasks will be executed:
\par }\pard \ltrpar\ql \li1080\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin1080\itap0\pararsid6372815 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid1340899 \hich\af2\dbch\af31505\loch\f2
716,7 → 760,7
\lang1033\langfe1031\langnp1033\insrsid5733712 \hich\af31506\dbch\af31505\loch\f31506 bit).
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3569955 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3569955 \hich\af31506\dbch\af31505\loch\f31506
\hich\f31506 The string must not contain an equal-sign (=) or \'93\loch\f31506 \hich\f31506 &&\'94.
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3635325 \hich\af31506\dbch\af31505\loch\f31506 The output will be treated case sensitive.
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3635325 \hich\af31506\dbch\af31505\loch\f31506 The output will be trea\hich\af31506\dbch\af31505\loch\f31506 ted case sensitive.
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13978329 {\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid13978329\charrsid13978329
\hich\af31506\dbch\af31505\loch\f31506 Method}{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid206584 \hich\af31506\dbch\af31505\loch\f31506 s}{\rtlch\fcs1 \af0 \ltrch\fcs0
\ul\lang1033\langfe1031\langnp1033\insrsid13978329\charrsid13978329 \hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\ul\lang1033\langfe1031\langnp1033\insrsid3569955 \hich\af2\dbch\af31505\loch\f2 Plugin}{\rtlch\fcs1 \af2
741,8 → 785,8
\hich\af31506\dbch\af31505\loch\f31506 Method }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\ul\lang1033\langfe1031\langnp1033\insrsid5064448 \hich\af2\dbch\af31505\loch\f2 CheckLicense}{\rtlch\fcs1 \af0 \ltrch\fcs0
\ul\lang1033\langfe1031\langnp1033\insrsid5064448\charrsid13978329
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3569955 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15153839 \hich\af31506\dbch\af31505\loch\f31506
This method will be called before the plugin is loaded. The plugin has the ability to check if it may be used or not. For example, a plugin with a time-limited license can check the computer clock, or a plugin for Beta-Testers can check if it
\hich\af31506\dbch\af31505\loch\f31506 is running on the intended computer only.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5064448
This method will be called before the plugin is loaded. The plugin has the ability to check if it may be used or not. For example, a plugin with a time-limited license can check the computer clock, or a plugin for Beta-Testers can check if it is running o
\hich\af31506\dbch\af31505\loch\f31506 n\hich\af31506\dbch\af31505\loch\f31506 the intended computer only.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5064448
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15153839 \hich\af31506\dbch\af31505\loch\f31506 The return value should be}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9373535
\hich\af31506\dbch\af31505\loch\f31506 either}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15153839 \hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid9373535
\hich\af2\dbch\af31505\loch\f2 UD2_STATUS_OK_LICENSED }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15153839 \hich\af31506\dbch\af31505\loch\f31506 or }{\rtlch\fcs1 \af2 \ltrch\fcs0
753,14 → 797,14
\hich\af31506\dbch\af31505\loch\f31506 Method }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\ul\lang1033\langfe1031\langnp1033\insrsid16384757\charrsid16384757 \hich\af2\dbch\af31505\loch\f2 Identification}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\ul\lang1033\langfe1031\langnp1033\insrsid16384757 \hich\af2\dbch\af31505\loch\f2 M}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\ul\lang1033\langfe1031\langnp1033\insrsid13978329\charrsid13978329 \hich\af2\dbch\af31505\loch\f2 ethodName}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\ul\lang1033\langfe1031\langnp1033\insrsid3569955 \hich\af2\dbch\af31505\loch\f2 W}{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid13978329\charrsid13978329
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13978329 \hich\af31506\dbch\af31505\loch\f31506 This method returns a short string of\hich\af31506\dbch\af31505\loch\f31506
the identification method. This name will be used in the identifications lines in the }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 Task Definition File}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13978329 \hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 . For example, the MAC-Addresses plugin will have the method name \'93}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid1340899 \hich\af2\dbch\af31505\loch\f2 LA}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid1340899\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 N_}{\rtlch\fcs1 \af2 \ltrch\fcs0
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13978329 \hich\af31506\dbch\af31505\loch\f31506 This method returns a short string of the identifi\hich\af31506\dbch\af31505\loch\f31506
cation method. This name will be used in the identifications lines in the }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 Task Definition File}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid13978329 \hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 . For example, the MAC-Addresses plugin will have the method name \'93}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid1340899
\hich\af2\dbch\af31505\loch\f2 LA}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid1340899\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 N_}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid13978329\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 MAC}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13978329 \loch\af31506\dbch\af31505\hich\f31506 \'94\loch\f31506 \hich\f31506
, so that a task \'93}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid1340899 \hich\af2\dbch\af31505\loch\f2 LAN_}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13978329\charrsid6372815
\hich\af2\dbch\af31505\loch\f2 MAC:11-22-33-44-55-66=calc.exe}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13978329 \loch\af31506\dbch\af31505\hich\f31506 \'94\hich\af31506\dbch\af31505\loch\f31506 can be defined in the }{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 Task Definition File}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13978329 .
\hich\af2\dbch\af31505\loch\f2 MAC:11-22-33-44-55-66=calc.exe}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13978329 \loch\af31506\dbch\af31505\hich\f31506 \'94\loch\f31506 can be defined in the }{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid12134973 \hich\af31506\dbch\af31505\loch\f31506 Task Definition File}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13978329 .
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5733712 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5733712\charrsid5733712
\hich\af31506\dbch\af31505\loch\f31506 The identification }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3569955 \hich\af31506\dbch\af31505\loch\f31506 method name}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid5733712\charrsid5733712 \hich\af31506\dbch\af31505\loch\f31506 must be}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3569955 \hich\af31506\dbch\af31505\loch\f31506 a wide string (16}{
772,16 → 816,14
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177 \hich\af31506\dbch\af31505\loch\f31506 Method }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\ul\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177
\hich\af2\dbch\af31505\loch\f2 DescribeOwnStatusCodeW}{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5793177 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177
\hich\af31506\dbch\af31505\loch\f31506 This function should\hich\af31506\dbch\af31505\loch\f31506
return human readable descriptions of the non-generic status codes which THIS plugin is returning. You do not need to describe generic status codes (because they are already described of the UserDetect2 API). This function will only be invoked, once a st
\hich\af31506\dbch\af31505\loch\f31506 a\hich\af31506\dbch\af31505\loch\f31506 tus code could not be resolved. Return TRUE, if you could describe the code, FALSE otherwise, e.g. if the status code is unknown}{\rtlch\fcs1 \af0 \ltrch\fcs0
\hich\af31506\dbch\af31505\loch\f31506 This function should return human readable \hich\af31506\dbch\af31505\loch\f31506
descriptions of the non-generic status codes which THIS plugin is returning. You do not need to describe generic status codes (because they are already described of the UserDetect2 API). This function will only be invoked, once a status code could not be
\hich\af31506\dbch\af31505\loch\f31506 r\hich\af31506\dbch\af31505\loch\f31506 esolved. Return TRUE, if you could describe the code, FALSE otherwise, e.g. if the status code is unknown}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid5793177 \hich\af31506\dbch\af31505\loch\f31506 or if the buffer is too small.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13978329 {\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid5793177\charrsid5793177
\hich\af31506\dbch\af31505\loch\f31506 Attention: If the requested language is not available, please return TRUE, and return the descri\hich\af31506\dbch\af31505\loch\f31506 ption in English.}{\rtlch\fcs1 \af0 \ltrch\fcs0
\b\lang1033\langfe1031\langnp1033\insrsid13961185
\hich\af31506\dbch\af31505\loch\f31506 Attention: If the requested language is not available, please return TRUE, and return the description in English.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid13961185
\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid13961185 \rtlch\fcs1 \ab\ai\af0\afs28\alang1025 \ltrch\fcs0
\b\i\fs28\lang1031\langfe1031\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid13961185 \page }{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid3025658 \hich\af31502\dbch\af31501\loch\f31502 Status codes
\b\i\fs28\lang1031\langfe1031\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3025658 \hich\af31502\dbch\af31501\loch\f31502 Status codes
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid150970 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid13966640\charrsid13966640 \hich\af31506\dbch\af31505\loch\f31506
Structure of status codes (}{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid13966640\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 UD2_STATUS}{\rtlch\fcs1 \af0 \ltrch\fcs0
814,10 → 856,10
\hich\af31506\dbch\af31505\loch\f31506 (ud2_status.h)
\par }\pard \ltrpar\ql \li0\ri0\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13961185 {\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185
\hich\af2\dbch\af31505\loch\f2 typedef}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185 \hich\af2\dbch\af31505\loch\f2 WORD UD2_STATUSCAT;
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185 \hich\af2\dbch\af31505\loch\f2 typede\hich\af2\dbch\af31505\loch\f2 f}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185 \hich\af2\dbch\af31505\loch\f2 GUID UD2_STATUSAUTH;
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185 \hich\af2\dbch\af31505\loch\f2 typedef}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185
\hich\af2\dbch\af31505\loch\f2 DWORD UD2_STATUSMSG;}{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185
\hich\af2\dbch\af31505\loch\f2 GUID UD2_STATUSAUTH;
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185 \hich\af2\dbch\af31505\loch\f2 ty\hich\af2\dbch\af31505\loch\f2 pedef}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185 \hich\af2\dbch\af31505\loch\f2 DWORD UD2_STATUSMSG;}{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185
\par \hich\af2\dbch\af31505\loch\f2 typedef}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185 \hich\af2\dbch\af31505\loch\f2 DWORD UD2_STATUSEXTRAINFO;
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid13961185
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \b\f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185 \hich\af2\dbch\af31505\loch\f2 #pragma}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185
891,13 → 933,14
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid3622538 0000}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid4476179 \hich\af2\dbch\af31505\loch\f2 01..}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid150970\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 0x}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid3622538 \hich\af2\dbch\af31505\loch\f2 FFFF}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid150970\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 FFFF = }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1647630 \hich\af31506\dbch\af31505\loch\f31506 the status in}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970 \hich\af31506\dbch\af31505\loch\f31506 category "C", issued by authority "A".}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid150970
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970 \hich\af31506\dbch\af31505\loch\f31506 cate\hich\af31506\dbch\af31505\loch\f31506 gory "C", issued by authority "A".}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid150970
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\ul\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185 \hich\af2\dbch\af31505\loch\f2 dwExtraInfo}{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid13961185\charrsid13961185
\hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid9132286\charrsid13961185 \hich\af31506\dbch\af31505\loch\f31506 Extra Information
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9132286 \hich\af31506\dbch\af31505\loch\f31506 This field can be used to pass additional information, for example, a pointer to shared memory, or passing an
\hich\af31506\dbch\af31505\loch\f31506 error code of a failed external API}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6511812 \hich\af31506\dbch\af31505\loch\f31506 (e.g. WinAPI)}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid9132286 .
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid150970 \hich\af31506\dbch\af31505\loch\f31506 Currently assigned generic status codes
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9132286 \hich\af31506\dbch\af31505\loch\f31506
This field can be used to pass additional information, for example, a pointer to shared memory, or passing an error code of a failed external API}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6511812
\hich\af31506\dbch\af31505\loch\f31506 (e.g. WinAPI)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9132286 .
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid150970 \hich\af31506\dbch\af31505\loch\f31506 Currently as\hich\af31506\dbch\af31505\loch\f31506 signed generic status codes
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3998625 {\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid3998625\charrsid3998625
\hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 Category \'93\loch\f31506 \hich\f31506 Successful\'94}{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid3998625
\par }\pard \ltrpar\ql \li0\ri0\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3998625 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12933746\charrsid4476179
910,8 → 953,8
\hich\af31506\dbch\af31505\loch\f31506 = Success, multiple identifiers returned}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6964071 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970
 
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3998625 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12933746\charrsid4476179
\hich\af2\dbch\af31505\loch\f2 UD2_STATUS_OK_LICENSED}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970 \hich\af31506\dbch\af31505\loch\f31506 = The plugin is licensed}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid6964071 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3998625
\hich\af2\dbch\af31505\loch\f2 UD2_STATUS_OK_LICENSED}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970 \hich\af31506\dbch\af31505\loch\f31506 = \hich\af31506\dbch\af31505\loch\f31506 The plugin is licensed}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6964071 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3998625
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1031\langnp1033\insrsid3998625\charrsid3998625 \hich\af31506\dbch\af31505\loch\f31506 \hich\f31506 Category \'93\loch\f31506 \hich\f31506 Not available\'94}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid3998625
\par }\pard \ltrpar\ql \li0\ri0\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5178738 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12933746\charrsid4476179
920,7 → 963,7
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12933746\charrsid11096861 \hich\af2\dbch\af31505\loch\f2 UD2_STATUS_NOTAVAIL_OS_NOT_SUPPORTED}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970 \hich\af31506\dbch\af31505\loch\f31506 = Operating system not supported}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6964071 .}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12933746\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 UD2_ST\hich\af2\dbch\af31505\loch\f2 ATUS_NOTAVAIL_HW_NOT_SUPPORTED}{\rtlch\fcs1 \af0 \ltrch\fcs0
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12933746\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 UD2_STATUS_NOTAVAIL_HW_NOT_SUPPORTED}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970 \hich\af31506\dbch\af31505\loch\f31506 = Hardware not supported}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6964071 .}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12933746\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 UD2_STATUS_NOTAVAIL_NO_ENTITIES}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid150970
946,8 → 989,8
FAILURE}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid12933746\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 _BUFFER_TOO_SMALL}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970
\hich\af31506\dbch\af31505\loch\f31506 = Buffer too small}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6964071 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid6964071\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 UD2_STATUS_}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid7544628 \hich\af2\dbch\af31505\loch\f2
FAILURE}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid6964071\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 _INVALID\hich\af2\dbch\af31505\loch\f2 _ARGS}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970 \hich\af31506\dbch\af31505\loch\f31506 = Invalid arguments passed to function}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6964071 .}{\rtlch\fcs1 \af0 \ltrch\fcs0
FAILURE}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid6964071\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 _INVALID_ARGS}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970
\hich\af31506\dbch\af31505\loch\f31506 = Invalid arguments passed to functio\hich\af31506\dbch\af31505\loch\f31506 n}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6964071 .}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid150970\charrsid150970
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5178738 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid6964071\charrsid4476179
\hich\af2\dbch\af31505\loch\f2 UD2_STATUS_}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid7544628 \hich\af2\dbch\af31505\loch\f2 FAILURE}{\rtlch\fcs1 \af2 \ltrch\fcs0
1050,14 → 1093,85
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1929326
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af2\afs22 \ltrch\fcs0 \f3\fs22\lang1033\langfe1031\langnp1033\insrsid15940546\charrsid668536 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\sa160\sl259\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin720\itap0\pararsid15940546 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid15940546\charrsid668536 \hich\af2\dbch\af31505\loch\f2 __}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid15940546 \hich\af2\dbch\af31505\loch\f2 GUID()}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546\charrsid15940546 \hich\af31506\dbch\af31505\loch\f31506
will convert a string literal to a}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid15940546 \hich\af2\dbch\af31505\loch\f2 GUID}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546\charrsid538759
\hich\af31506\dbch\af31505\loch\f31506 . }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546\charrsid15940546 \hich\af31506\dbch\af31505\loch\f31506 This improves the readability of the source code}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid538759 \hich\af31506\dbch\af31505\loch\f31506 , since the GUID does not have to be written in a }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid538759\charrsid4476179
\hich\af2\dbch\af31505\loch\f2 const struct}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid538759 \hich\af31506\dbch\af31505\loch\f31506 expression. }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546
\line \hich\af31506\dbch\af31505\loch\f31506 In Delphi, this helper method is not necessary, since the compiler is able to convert a G\hich\af31506\dbch\af31505\loch\f31506 UID-string to a GUID structure (record) at compile time.}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1929326\charrsid15940546
\ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid15940546 \hich\af2\dbch\af31505\loch\f2 GUID()}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546\charrsid15940546 \hich\af31506\dbch\af31505\loch\f31506 will convert
\hich\af31506\dbch\af31505\loch\f31506 a string literal to a}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid15940546 \hich\af2\dbch\af31505\loch\f2 GUID}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid15940546\charrsid538759 \hich\af31506\dbch\af31505\loch\f31506 . }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546\charrsid15940546 \hich\af31506\dbch\af31505\loch\f31506
This improves the readability of the source code}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid538759 \hich\af31506\dbch\af31505\loch\f31506 , since the GUID does not have to be written in a }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\lang1033\langfe1031\langnp1033\insrsid538759\charrsid4476179 \hich\af2\dbch\af31505\loch\f2 const struct}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid538759 \hich\af31506\dbch\af31505\loch\f31506 expression. }{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15940546 \line \hich\af31506\dbch\af31505\loch\f31506 In Delphi, this helper method is not necessary, since the compiler is able to convert a GUID-string to\hich\af31506\dbch\af31505\loch\f31506
a GUID structure (record) at compile time.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1929326\charrsid15940546
\par }\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid9307250 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1031\langfe1031\kerning32\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31502\dbch\af31501\loch\f31502 Migration from testuser (}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31502\dbch\af31501\loch\f31502 predecessor}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916
\hich\af31502\dbch\af31501\loch\f31502 )
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3561916 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506
UserDetect 2.1 has all identification methods that existed in }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 ViaThinkSoft testuser}{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid3561916 .
\par \ltrrow}\trowd \irow0\irowband0\ltrrow\ts21\trgaph70\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid3561916\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx4665\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx9438
\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid3561916\yts21 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 ViaThinkSoft testuser
\cell \hich\af31506\dbch\af31505\loch\f31506 ViaThinkSoft UserDetect 2.1\cell }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \trowd \irow0\irowband0\ltrrow\ts21\trgaph70\trleft-108\trbrdrt\brdrs\brdrw10
\trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid3561916\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx4665\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx9438\row \ltrrow
}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid3561916\yts21 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 testuser ":}{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 USER}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 :" "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 xxx}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \cell \hich\af31506\dbch\af31505\loch\f31506 UD2.exe /C \hich\af31506\dbch\af31505\loch\f31506 UserName:xxx\cell }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1
\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid3561916 \trowd \irow1\irowband1\ltrrow\ts21\trgaph70\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid3561916\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx4665\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx9438\row \ltrrow
}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid3561916\yts21 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 testuser ":COMP:" "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 xxx}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \cell \hich\af31506\dbch\af31505\loch\f31506 UD2.exe /C ComputerName:xxx\cell }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1
\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid3561916 \trowd \irow2\irowband2\ltrrow\ts21\trgaph70\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid3561916\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx4665\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx9438\row \ltrrow
}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid3561916\yts21 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 testuser ":}{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 SID}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 :" "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 xxx}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \cell \hich\af31506\dbch\af31505\loch\f31506 UD2.exe /C AccountSID:xxx\cell }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1
\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid3561916 \trowd \irow3\irowband3\ltrrow\ts21\trgaph70\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid3561916\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx4665\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx9438\row \ltrrow
}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid3561916\yts21 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 testuser ":}{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 HOME}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 :" "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 xxx}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \cell \hich\af31506\dbch\af31505\loch\f31506 UD2.exe /C HomeDir:xxx\cell }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1
\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid3561916 \trowd \irow4\irowband4\ltrrow\ts21\trgaph70\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid3561916\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx4665\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx9438\row \ltrrow
}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid3561916\yts21 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 testuser ":}{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 HOMESHARE}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 :" "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 xxx}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \cell \hich\af31506\dbch\af31505\loch\f31506 UD2.exe /C HomeShare:xxx\cell }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1
\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid3561916 \trowd \irow5\irowband5\ltrrow\ts21\trgaph70\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid3561916\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx4665\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx9438\row \ltrrow
}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid3561916\yts21 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 testuser ":}{\rtlch\fcs1
\af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 HOMECOMP}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 :" "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 xxx}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 "}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \cell \hich\af31506\dbch\af31505\loch\f31506 UD2.exe /C HomeDirUNC:xxx\cell }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1
\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid3561916 \trowd \irow6\irowband6\lastrow \ltrrow\ts21\trgaph70\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid3561916\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx4665\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4773\clshdrawnil \cellx9438\row
}\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid9307250 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1031\langfe1031\kerning32\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1981563 \hich\af31502\dbch\af31501\loch\f31502 Known Compatibility Issues
 
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1981563 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
1068,17 → 1182,30
IP, DHCP_MAC, GatewayIP, GatewayMAC}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1981563\charrsid1981563 \hich\af31506\dbch\af31505\loch\f31506 , LAN_IP}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1981563
\hich\af31506\dbch\af31505\loch\f31506 are not working because the WinAPI function }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid1981563\charrsid1981563 \hich\af2\dbch\af31505\loch\f2 GetAdaptersInfo()}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1981563\charrsid1981563 \hich\af31506\dbch\af31505\loch\f31506 is not supported}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1981563 \hich\af31506\dbch\af31505\loch\f31506 (}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid1981563\charrsid1981563 \hich\af2\dbch\af31505\loch\f2 ERROR_NOT_SUP\hich\af2\dbch\af31505\loch\f2 PORTED}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1981563
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid1981563\charrsid1981563 \hich\af2\dbch\af31505\loch\f2 ERROR_NOT_SUPPORTED}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1981563
\hich\af31506\dbch\af31505\loch\f31506 )}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1981563\charrsid1981563 .
\par }\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid9307250 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1031\langfe1031\kerning32\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3433762 \hich\af31502\dbch\af31501\loch\f31502 Changelog
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3433762 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3433762 \hich\af31506\dbch\af31505\loch\f31506 2.1\tab \tab 16 Jun 2016\tab Added }{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid3433762\charrsid3433762 \hich\af2\dbch\af31505\loch\f2 $ADMIN$}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3433762 \hich\af31506\dbch\af31505\loch\f31506
prefix.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14380172
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9322229 \hich\af31506\dbch\af31505\loch\f31506 2.1\tab \tab 17}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3433762 \hich\af31506\dbch\af31505\loch\f31506 Jun 2016\tab Added }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1031\langnp1033\insrsid3433762\charrsid3433762 \hich\af2\dbch\af31505\loch\f2 $ADMIN$}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3433762 \hich\af31506\dbch\af31505\loch\f31506 prefix.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14380172
\par }\pard \ltrpar\ql \fi720\li2160\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin2160\itap0\pararsid14380172 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14380172
\hich\af31506\dbch\af31505\loch\f31506 Allow loading of *.smp files as alternative to *.dll files.
\par \hich\af31506\dbch\af31505\loch\f31506 Smaller bugfixes.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14380172\charrsid3433762
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid2623011 \hich\af31506\dbch\af31505\loch\f31506 Extended command line usage (/T and /C modes)
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid4481755 \hich\af31506\dbch\af31505\loch\f31506 In command line mode, the main window doesn\hich\f31506 \rquote \loch\f31506 t flicker.
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6906030 \hich\af31506\dbch\af31505\loch\f31506 New plugins:
\par }\pard \ltrpar\ql \li3600\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin3600\itap0\pararsid1123216 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6906030
\hich\af31506\dbch\af31505\loch\f31506 WinBuildNumber}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1123216 \line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6906030 \hich\af31506\dbch\af31505\loch\f31506
WinMajorVersion}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1123216 \line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6906030 \hich\af31506\dbch\af31505\loch\f31506 WinMinorVersion}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid1123216 \line \hich\af31506\dbch\af31505\loch\f31506 WinVersion\line UserName\line HomeDir\line HomeDirUNC\line }{\rtlch\fcs1 \af0 \ltrch\fcs0
\lang1033\langfe1031\langnp1033\insrsid6906030\charrsid6906030 \hich\af31506\dbch\af31505\loch\f31506 HomeShare}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9322229 \line \hich\af31506\dbch\af31505\loch\f31506 MachineSID}{
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916 \line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3561916\charrsid3561916 \hich\af31506\dbch\af31505\loch\f31506 EnvironmentString}{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6906030
\par }\pard \ltrpar\ql \fi720\li2160\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin2160\itap0\pararsid14380172 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6906030
\hich\af31506\dbch\af31505\loch\f31506 Fixed update download.
\par }\pard \ltrpar\ql \fi720\li2160\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin2160\itap0\pararsid6906030 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid14380172
\hich\af31506\dbch\af31505\loch\f31506 Smaller bugfixes.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6906030\charrsid3433762
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3433762 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid3433762 \hich\af31506\dbch\af31505\loch\f31506
2.0.1\tab \tab 28 Feb 2016\tab Compatibility bugfix for Windows Server 2008
\par \hich\af31506\dbch\af31505\loch\f31506 2.0\tab \tab 03 Oct 2015\tab Initial release
1085,25 → 1212,25
\par }\pard\plain \ltrpar\s1\ql \li0\ri0\sb240\sa60\sl259\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid9307250 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1031\langfe1031\kerning32\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9307250 \hich\af31502\dbch\af31501\loch\f31502 Contact
\par }\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4871690 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9307250 \hich\af31506\dbch\af31505\loch\f31506 UserDetect2 is a project of ViaThinkSoft ( }
{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9307250 \hich\af31506\dbch\af31505\loch\f31506 HYPERLINK "http://www.viathinksoft.com" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5733712
{\*\datafield
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9307250 \hich\af31506\dbch\af31505\loch\f31506 UserDetect2 is a project of ViaT
\hich\af31506\dbch\af31505\loch\f31506 hinkSoft ( }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9307250 \hich\af31506\dbch\af31505\loch\f31506 HYPERLINK "http://www.viathinksoft.com" }{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5733712 {\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5200000068007400740070003a002f002f007700770077002e007600690061007400680069006e006b0073006f00660074002e0063006f006d002f000000795881f43b1d7f48af2c825dc485276300000000a5ab0001
002d006d001400001400000000680000652dff001e00}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs17\ul\cf17\lang1033\langfe1031\langnp1033\insrsid9307250\charrsid9257259 \hich\af31506\dbch\af31505\loch\f31506 www.viathinksoft.com}}}\sectd \ltrsect
002d006d001400001400000000680000652dff001e00d00000000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs17\ul\cf17\lang1033\langfe1031\langnp1033\insrsid9307250\charrsid9257259 \hich\af31506\dbch\af31505\loch\f31506 www.viathinksoft.com}}}\sectd \ltrsect
\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9307250 \hich\af31506\dbch\af31505\loch\f31506 ) and is released under the terms of GPLv3.
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815 \hich\af31506\dbch\af31505\loch\f31506 Project leader:
\par }\pard \ltrpar\ql \fi720\li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6372815 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid9307250
\hich\af31506\dbch\af31505\loch\f31506 Daniel Marschall
\hich\af31506\dbch\af31505\loch\f31506 Daniel \hich\af31506\dbch\af31505\loch\f31506 Marschall
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815 \hich\af31506\dbch\af31505\loch\f31506 eMail:\tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815
\hich\af31506\dbch\af31505\loch\f31506 HYPERLINK "mailto:info@daniel-marscha\hich\af31506\dbch\af31505\loch\f31506 ll.de" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5733712 {\*\datafield
\hich\af31506\dbch\af31505\loch\f31506 HYPERLINK "mailto:info@daniel-marschall.de" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5733712 {\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b580000006d00610069006c0074006f003a0069006e0066006f004000640061006e00690065006c002d006d006100720073006300680061006c006c002e00640065000000795881f43b1d7f48af2c825dc48527630000
0000a5ab00010067004c007000010000002c00000000c40000000060}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs17\ul\cf17\lang1033\langfe1031\langnp1033\insrsid6372815\charrsid9257259 \hich\af31506\dbch\af31505\loch\f31506 info@daniel-marschall.de}}}
0000a5ab00010067004c007000010000002c00000000c40000000060000000000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs17\ul\cf17\lang1033\langfe1031\langnp1033\insrsid6372815\charrsid9257259 \hich\af31506\dbch\af31505\loch\f31506 info@daniel-marschall.de}}}
\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815
\par \hich\af31506\dbch\af31505\loch\f31506 Web:\tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815 \hich\af31506\dbch\af31505\loch\f31506 HYPERLINK "http://www.daniel-marschall.de" }{\rtlch\fcs1 \af0
\ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid5733712 {\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5800000068007400740070003a002f002f007700770077002e00640061006e00690065006c002d006d006100720073006300680061006c006c002e00640065002f000000795881f43b1d7f48af2c825dc48527630000
0000a5ab000100000000000000000002000249000096030000c80564}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs17\ul\cf17\lang1033\langfe1031\langnp1033\insrsid6372815\charrsid9257259 \hich\af31506\dbch\af31505\loch\f31506 www.daniel-marschall.de}}}\sectd \ltrsect
\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815
0000a5ab000100000000000000000002000249000096030000c80564000000000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs17\ul\cf17\lang1033\langfe1031\langnp1033\insrsid6372815\charrsid9257259 \hich\af31506\dbch\af31505\loch\f31506 www.daniel-marschall.de}}}
\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid6372815
\par }\pard \ltrpar\ql \li0\ri0\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8799422 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid8799422\charrsid8799422
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
1244,8 → 1371,8
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000e049
4993efc7d101feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000a01d
176a25c8d101feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}
/trunk/UserDetect2/Plugins/AccountSID.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/AccountSID.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
46,7 → 95,7
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
56,6 → 105,10
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
68,7 → 121,7
Special=0
Private=0
DLL=1
Locale=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
75,10 → 128,13
FileDescription=AccountSID plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-AccountSID
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=AccountSID.dll
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/AccountSID.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/ComputerName.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/ComputerName.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
46,7 → 95,7
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
56,6 → 105,10
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
68,7 → 121,7
Special=0
Private=0
DLL=1
Locale=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
75,10 → 128,13
FileDescription=ComputerName plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-ComputerName
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=CompuerName.dll
OriginalFilename=ComputerName.dll
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/ComputerName.dpr
4,6 → 4,7
Windows,
SysUtils,
Classes,
MiscUtils,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
18,19 → 19,6
result := PLUGIN_GUID;
end;
 
function GetComputerName: string;
// http://www.delphi-treff.de/tipps-tricks/netzwerkinternet/netzwerkeigenschaften/computernamen-des-eigenen-rechners-ermitteln/
var
Len: DWORD;
begin
Len := MAX_COMPUTERNAME_LENGTH+1;
SetLength(Result,Len);
if Windows.GetComputerName(PChar(Result), Len) then
SetLength(Result,Len)
else
RaiseLastOSError;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentifier: WideString;
/trunk/UserDetect2/Plugins/ComputerName.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/DHCP_IP.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/DHCP_IP.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
46,7 → 95,7
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
56,6 → 105,10
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
68,7 → 121,7
Special=0
Private=0
DLL=1
Locale=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
75,10 → 128,10
FileDescription=DHCP_IP plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-DHCP_IP
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=DHCP_IP.dll
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
/trunk/UserDetect2/Plugins/DHCP_IP.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/DHCP_MAC.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/DHCP_MAC.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
46,7 → 95,7
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
56,6 → 105,10
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
68,7 → 121,7
Special=0
Private=0
DLL=1
Locale=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
75,10 → 128,10
FileDescription=DHCP_MAC plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-DHCP_MAC
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=DHCP_MAC.dll
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
/trunk/UserDetect2/Plugins/DHCP_MAC.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/DomainName.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/DomainName.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
46,7 → 95,7
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
56,6 → 105,10
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
68,7 → 121,7
Special=0
Private=0
DLL=1
Locale=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
75,10 → 128,10
FileDescription=DomainName plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-DomainName
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=CompuerName.dll
OriginalFilename=DomainName.dll
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
/trunk/UserDetect2/Plugins/DomainName.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/EnvironmentString.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/EnvironmentString.dof
0,0 → 1,140
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=1
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=EnvironmentString plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-EnvironmentString
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=EnvironmentString.dll
ProductName=UserDetect2
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/EnvironmentString.dpr
0,0 → 1,88
library EnvironmentString;
 
uses
Windows,
SysUtils,
Classes,
MiscUtils,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
 
{$R *.res}
 
const
PLUGIN_GUID: TGUID = '{145EEB93-8170-4220-8959-09253881E4B6}';
 
function PluginIdentifier: TGUID; cdecl;
begin
result := PLUGIN_GUID;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
sl: TStringList;
begin
sl := TStringList.Create;
try
EnvironmentStringsToStrings(sl);
result := UD2_WriteStringListToPointerW(lpIdentifier, cchSize, sl);
finally
sl.Free;
end;
end;
 
function PluginNameW(lpPluginName: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
var
stPluginName: WideString;
primaryLangID: Byte;
begin
primaryLangID := wLangID and $00FF;
if primaryLangID = LANG_GERMAN then
stPluginName := 'Umgebungsvariable'
else
stPluginName := 'Environment variable';
result := UD2_WritePascalStringToPointerW(lpPluginName, cchSize, stPluginName);
end;
 
function PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVendor, cchSize, 'ViaThinkSoft');
end;
 
function PluginVersionW(lpPluginVersion: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVersion, cchSize, '1.0');
end;
 
function IdentificationMethodNameW(lpIdentificationMethodName: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentificationMethodName: WideString;
begin
stIdentificationMethodName := 'EnvironmentString';
result := UD2_WritePascalStringToPointerW(lpIdentificationMethodName, cchSize, stIdentificationMethodName);
end;
 
function CheckLicense(lpReserved: LPVOID): UD2_STATUS; cdecl;
begin
result := UD2_STATUS_OK_LICENSED;
end;
 
function DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; cdecl;
begin
// This function does not use non-generic status codes
result := FALSE;
end;
 
exports
PluginInterfaceID name mnPluginInterfaceID,
PluginIdentifier name mnPluginIdentifier,
PluginNameW name mnPluginNameW,
PluginVendorW name mnPluginVendorW,
PluginVersionW name mnPluginVersionW,
IdentificationMethodNameW name mnIdentificationMethodNameW,
IdentificationStringW name mnIdentificationStringW,
CheckLicense name mnCheckLicense,
DescribeOwnStatusCodeW name mnDescribeOwnStatusCodeW;
 
end.
/trunk/UserDetect2/Plugins/EnvironmentString.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/ExecuteAlways.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/ExecuteAlways.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
46,7 → 95,7
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
56,6 → 105,10
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
68,7 → 121,7
Special=0
Private=0
DLL=1
Locale=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
75,10 → 128,10
FileDescription=ExecuteAlways plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-ExecuteAlways
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=ExecuteAlways.dll
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
/trunk/UserDetect2/Plugins/ExecuteAlways.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/GatewayIP.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/GatewayIP.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
46,7 → 95,7
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
56,6 → 105,10
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
68,7 → 121,7
Special=0
Private=0
DLL=1
Locale=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
75,10 → 128,10
FileDescription=GatewayIP plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-GatewayIP
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=GatewayIP.dll
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
/trunk/UserDetect2/Plugins/GatewayIP.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/GatewayMAC.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/GatewayMAC.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
46,7 → 95,7
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
56,6 → 105,10
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
68,7 → 121,7
Special=0
Private=0
DLL=1
Locale=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
75,10 → 128,10
FileDescription=GatewayMAC plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-GatewayMAC
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=GatewayMAC.dll
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
/trunk/UserDetect2/Plugins/GatewayMAC.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/HomeDir.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/HomeDir.dof
0,0 → 1,140
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=1
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=HomeDir plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-HomeDir
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=HomeDir.dll
ProductName=UserDetect2
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/HomeDir.dpr
0,0 → 1,83
library HomeDir;
 
uses
Windows,
SysUtils,
Classes,
MiscUtils,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
 
{$R *.res}
 
const
PLUGIN_GUID: TGUID = '{BCEB4CB6-8899-4EA0-8F00-748AA72F6C91}';
 
function PluginIdentifier: TGUID; cdecl;
begin
result := PLUGIN_GUID;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentifier: WideString;
begin
stIdentifier := GetHomeDir;
result := UD2_WritePascalStringToPointerW(lpIdentifier, cchSize, stIdentifier);
end;
 
function PluginNameW(lpPluginName: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
var
stPluginName: WideString;
primaryLangID: Byte;
begin
primaryLangID := wLangID and $00FF;
if primaryLangID = LANG_GERMAN then
stPluginName := 'Benutzerverzeichnis'
else
stPluginName := 'Home directory';
result := UD2_WritePascalStringToPointerW(lpPluginName, cchSize, stPluginName);
end;
 
function PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVendor, cchSize, 'ViaThinkSoft');
end;
 
function PluginVersionW(lpPluginVersion: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVersion, cchSize, '1.0');
end;
 
function IdentificationMethodNameW(lpIdentificationMethodName: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentificationMethodName: WideString;
begin
stIdentificationMethodName := 'HomeDir';
result := UD2_WritePascalStringToPointerW(lpIdentificationMethodName, cchSize, stIdentificationMethodName);
end;
 
function CheckLicense(lpReserved: LPVOID): UD2_STATUS; cdecl;
begin
result := UD2_STATUS_OK_LICENSED;
end;
 
function DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; cdecl;
begin
// This function does not use non-generic status codes
result := FALSE;
end;
 
exports
PluginInterfaceID name mnPluginInterfaceID,
PluginIdentifier name mnPluginIdentifier,
PluginNameW name mnPluginNameW,
PluginVendorW name mnPluginVendorW,
PluginVersionW name mnPluginVersionW,
IdentificationMethodNameW name mnIdentificationMethodNameW,
IdentificationStringW name mnIdentificationStringW,
CheckLicense name mnCheckLicense,
DescribeOwnStatusCodeW name mnDescribeOwnStatusCodeW;
 
end.
/trunk/UserDetect2/Plugins/HomeDir.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/HomeDirUNC.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/HomeDirUNC.dof
0,0 → 1,140
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=1
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=HomeDirUNC plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-HomeDirUNC
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=HomeDirUNC.dll
ProductName=UserDetect2
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/HomeDirUNC.dpr
0,0 → 1,89
library HomeDirUNC;
 
uses
Windows,
SysUtils,
Classes,
MiscUtils,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
 
{$R *.res}
 
const
PLUGIN_GUID: TGUID = '{D0787F3E-B8C3-47BE-903B-F39D57F81868}';
 
function PluginIdentifier: TGUID; cdecl;
begin
result := PLUGIN_GUID;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentifier: WideString;
begin
stIdentifier := GetHomeDir;
 
if stIdentifier <> '' then
begin
stIdentifier := '\\' + GetComputerName + '\' + StringReplace(stIdentifier, ':', '$', []);
end;
 
result := UD2_WritePascalStringToPointerW(lpIdentifier, cchSize, stIdentifier);
end;
 
function PluginNameW(lpPluginName: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
var
stPluginName: WideString;
primaryLangID: Byte;
begin
primaryLangID := wLangID and $00FF;
if primaryLangID = LANG_GERMAN then
stPluginName := 'Benutzerverzeichnis (UNC)'
else
stPluginName := 'Home directory (UNC)';
result := UD2_WritePascalStringToPointerW(lpPluginName, cchSize, stPluginName);
end;
 
function PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVendor, cchSize, 'ViaThinkSoft');
end;
 
function PluginVersionW(lpPluginVersion: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVersion, cchSize, '1.0');
end;
 
function IdentificationMethodNameW(lpIdentificationMethodName: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentificationMethodName: WideString;
begin
stIdentificationMethodName := 'HomeDirUNC';
result := UD2_WritePascalStringToPointerW(lpIdentificationMethodName, cchSize, stIdentificationMethodName);
end;
 
function CheckLicense(lpReserved: LPVOID): UD2_STATUS; cdecl;
begin
result := UD2_STATUS_OK_LICENSED;
end;
 
function DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; cdecl;
begin
// This function does not use non-generic status codes
result := FALSE;
end;
 
exports
PluginInterfaceID name mnPluginInterfaceID,
PluginIdentifier name mnPluginIdentifier,
PluginNameW name mnPluginNameW,
PluginVendorW name mnPluginVendorW,
PluginVersionW name mnPluginVersionW,
IdentificationMethodNameW name mnIdentificationMethodNameW,
IdentificationStringW name mnIdentificationStringW,
CheckLicense name mnCheckLicense,
DescribeOwnStatusCodeW name mnDescribeOwnStatusCodeW;
 
end.
/trunk/UserDetect2/Plugins/HomeDirUNC.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/HomeShare.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/HomeShare.dof
0,0 → 1,140
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=1
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=HomeShare plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-HomeShare
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=HomeShare.dll
ProductName=UserDetect2
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/HomeShare.dpr
0,0 → 1,84
library HomeShare;
 
uses
Windows,
SysUtils,
Classes,
MiscUtils,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
 
{$R *.res}
 
const
PLUGIN_GUID: TGUID = '{A04AD926-474D-40CC-A29D-64AE22AFDDAF}';
 
function PluginIdentifier: TGUID; cdecl;
begin
result := PLUGIN_GUID;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentifier: WideString;
begin
stIdentifier := ExpandEnvironmentStrings('%HOMESHARE%');
if stIdentifier = '%HOMESHARE%' then stIdentifier := '';
result := UD2_WritePascalStringToPointerW(lpIdentifier, cchSize, stIdentifier);
end;
 
function PluginNameW(lpPluginName: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
var
stPluginName: WideString;
primaryLangID: Byte;
begin
primaryLangID := wLangID and $00FF;
if primaryLangID = LANG_GERMAN then
stPluginName := 'Tauschverzeichnis'
else
stPluginName := 'Home share directory';
result := UD2_WritePascalStringToPointerW(lpPluginName, cchSize, stPluginName);
end;
 
function PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVendor, cchSize, 'ViaThinkSoft');
end;
 
function PluginVersionW(lpPluginVersion: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVersion, cchSize, '1.0');
end;
 
function IdentificationMethodNameW(lpIdentificationMethodName: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentificationMethodName: WideString;
begin
stIdentificationMethodName := 'HomeShare';
result := UD2_WritePascalStringToPointerW(lpIdentificationMethodName, cchSize, stIdentificationMethodName);
end;
 
function CheckLicense(lpReserved: LPVOID): UD2_STATUS; cdecl;
begin
result := UD2_STATUS_OK_LICENSED;
end;
 
function DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; cdecl;
begin
// This function does not use non-generic status codes
result := FALSE;
end;
 
exports
PluginInterfaceID name mnPluginInterfaceID,
PluginIdentifier name mnPluginIdentifier,
PluginNameW name mnPluginNameW,
PluginVendorW name mnPluginVendorW,
PluginVersionW name mnPluginVersionW,
IdentificationMethodNameW name mnIdentificationMethodNameW,
IdentificationStringW name mnIdentificationStringW,
CheckLicense name mnCheckLicense,
DescribeOwnStatusCodeW name mnDescribeOwnStatusCodeW;
 
end.
/trunk/UserDetect2/Plugins/HomeShare.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/LAN_IP.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
46,7 → 95,7
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
56,6 → 105,10
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
68,7 → 121,7
Special=0
Private=0
DLL=1
Locale=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
75,10 → 128,10
FileDescription=LAN_IP plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-LAN_IP
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=LAN_IP.dll
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
/trunk/UserDetect2/Plugins/LAN_IP.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/LAN_MAC.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
46,7 → 95,7
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
56,6 → 105,10
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
68,7 → 121,7
Special=0
Private=0
DLL=1
Locale=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
75,10 → 128,10
FileDescription=LAN_MAC plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-LAN_MAC
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=LAN_MAC.dll
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
/trunk/UserDetect2/Plugins/LAN_MAC.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/Plugins/MachineSID.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/MachineSID.dof
0,0 → 1,140
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=1
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=MachineSID plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-MachineSID
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=MachineSID.dll
ProductName=UserDetect2
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/MachineSID.dpr
0,0 → 1,83
library MachineSID;
 
uses
Windows,
SysUtils,
Classes,
MiscUtils,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
 
{$R *.res}
 
const
PLUGIN_GUID: TGUID = '{E0B9E9BE-2EE5-429F-BDA5-2487763A17FD}';
 
function PluginIdentifier: TGUID; cdecl;
begin
result := PLUGIN_GUID;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentifier: WideString;
begin
stIdentifier := GetComputerSid;
result := UD2_WritePascalStringToPointerW(lpIdentifier, cchSize, stIdentifier);
end;
 
function PluginNameW(lpPluginName: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
var
stPluginName: WideString;
primaryLangID: Byte;
begin
primaryLangID := wLangID and $00FF;
if primaryLangID = LANG_GERMAN then
stPluginName := 'SID des Computers'
else
stPluginName := 'Machine Security Identifier';
result := UD2_WritePascalStringToPointerW(lpPluginName, cchSize, stPluginName);
end;
 
function PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVendor, cchSize, 'ViaThinkSoft');
end;
 
function PluginVersionW(lpPluginVersion: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVersion, cchSize, '1.0');
end;
 
function IdentificationMethodNameW(lpIdentificationMethodName: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentificationMethodName: WideString;
begin
stIdentificationMethodName := 'MachineSID';
result := UD2_WritePascalStringToPointerW(lpIdentificationMethodName, cchSize, stIdentificationMethodName);
end;
 
function CheckLicense(lpReserved: LPVOID): UD2_STATUS; cdecl;
begin
result := UD2_STATUS_OK_LICENSED;
end;
 
function DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; cdecl;
begin
// This function does not use non-generic status codes
result := FALSE;
end;
 
exports
PluginInterfaceID name mnPluginInterfaceID,
PluginIdentifier name mnPluginIdentifier,
PluginNameW name mnPluginNameW,
PluginVendorW name mnPluginVendorW,
PluginVersionW name mnPluginVersionW,
IdentificationMethodNameW name mnIdentificationMethodNameW,
IdentificationStringW name mnIdentificationStringW,
CheckLicense name mnCheckLicense,
DescribeOwnStatusCodeW name mnDescribeOwnStatusCodeW;
 
end.
/trunk/UserDetect2/Plugins/MachineSID.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/MiscUtils.pas
0,0 → 1,153
unit MiscUtils;
 
interface
 
uses
SysUtils,
Registry,
Windows,
Classes;
 
function GetUserName: string;
function GetComputerName: string;
function ExpandEnvironmentStrings(ATemplate: string): string;
function GetHomeDir: string;
function GetComputerSID: string;
procedure EnvironmentStringsToStrings(outSL: TStrings);
 
implementation
 
function GetHomeDir: string;
var
reg: TRegistry;
begin
result := ExpandEnvironmentStrings('%HOMEDRIVE%%HOMEPATH%');
if result = '%HOMEDRIVE%%HOMEPATH%' then
begin
result := '';
 
// Windows 95
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKeyReadOnly('Software\Microsoft\Windows\CurrentVersion\ProfileReconciliation') then
begin
result := reg.ReadString('ProfileDirectory');
reg.CloseKey;
end;
finally;
reg.Free;
end;
end;
end;
 
function GetComputerName: string;
// http://www.delphi-treff.de/tipps-tricks/netzwerkinternet/netzwerkeigenschaften/computernamen-des-eigenen-rechners-ermitteln/
var
Len: DWORD;
begin
Len := MAX_COMPUTERNAME_LENGTH+1;
SetLength(Result,Len);
if Windows.GetComputerName(PChar(Result), Len) then
SetLength(Result,Len)
else
RaiseLastOSError;
end;
 
function ExpandEnvironmentStrings(ATemplate: string): string;
var
buffer: array[0..MAX_PATH] of Char; // MAX_PATH ?
size: DWORD;
begin
size := SizeOf(buffer);
ZeroMemory(@buffer, size);
Windows.ExpandEnvironmentStrings(PChar(ATemplate), buffer, size);
SetString(result, buffer, lstrlen(buffer));
end;
 
 
 
// --- http://stackoverflow.com/a/7643383 ---
 
function ConvertSidToStringSid(Sid: PSID; out StringSid: PChar): BOOL; stdcall;
external 'ADVAPI32.DLL' name {$IFDEF UNICODE} 'ConvertSidToStringSidW'{$ELSE} 'ConvertSidToStringSidA'{$ENDIF};
 
function SIDToString(ASID: PSID): string;
var
StringSid : PChar;
begin
ConvertSidToStringSid(ASID, StringSid);
Result := string(StringSid);
end;
 
function GetComputerSID:string;
var
Sid: PSID;
cbSid: DWORD;
cbReferencedDomainName : DWORD;
ReferencedDomainName: string;
peUse: SID_NAME_USE;
Success: BOOL;
lpSystemName : string;
lpAccountName: string;
begin
Sid:=nil;
try
lpSystemName:='';
lpAccountName:=GetComputerName;
 
cbSid := 0;
cbReferencedDomainName := 0;
// First call to LookupAccountName to get the buffer sizes.
Success := LookupAccountName(PChar(lpSystemName), PChar(lpAccountName), nil, cbSid, nil, cbReferencedDomainName, peUse);
if (not Success) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then
begin
SetLength(ReferencedDomainName, cbReferencedDomainName);
Sid := AllocMem(cbSid);
// Second call to LookupAccountName to get the SID.
Success := LookupAccountName(PChar(lpSystemName), PChar(lpAccountName), Sid, cbSid, PChar(ReferencedDomainName), cbReferencedDomainName, peUse);
if not Success then
begin
FreeMem(Sid);
Sid := nil;
RaiseLastOSError;
end
else
Result := SIDToString(Sid);
end
else
RaiseLastOSError;
finally
if Assigned(Sid) then
FreeMem(Sid);
end;
end;
 
procedure EnvironmentStringsToStrings(outSL: TStrings);
var
DosEnv: PChar;
begin
DosEnv := GetEnvironmentStrings;
try
while DosEnv^ <> #0 do
begin
outSL.Add(StrPas(DosEnv));
Inc(DosEnv, lStrLen(DosEnv) + 1);
end;
finally
FreeEnvironmentStrings(DosEnv);
end;
end;
 
function GetUserName: string; // Source: Luckie@DP
var
buffer: array[0..MAX_PATH] of Char; // MAX_PATH ?
size: DWORD;
begin
size := SizeOf(buffer);
ZeroMemory(@buffer, size);
Windows.GetUserName(buffer, size);
SetString(result, buffer, lstrlen(buffer));
end;
 
end.
/trunk/UserDetect2/Plugins/SPGetSid.pas
90,8 → 90,7
Result := True;
end;
 
function ObtainTextSid(hToken: THandle; pszSid: PChar;
var dwBufferLen: DWORD): BOOL;
function ObtainTextSid(hToken: THandle; pszSid: PChar; var dwBufferLen: DWORD): BOOL;
var
dwReturnLength: DWORD;
dwTokenUserLength: DWORD;
133,7 → 132,7
hAccessToken: THandle;
bSuccess: BOOL;
dwBufferLen: DWORD;
szSid: array[0..260] of Char;
szSid: array[0..MAX_PATH] of Char;
begin
Result := '';
 
/trunk/UserDetect2/Plugins/UserName.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/UserName.dof
0,0 → 1,140
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=1
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=UserName plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-UserName
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=UserName.dll
ProductName=UserDetect2
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/UserName.dpr
0,0 → 1,83
library UserName;
 
uses
Windows,
SysUtils,
Classes,
MiscUtils,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
 
{$R *.res}
 
const
PLUGIN_GUID: TGUID = '{B1DF529C-BE26-4D06-92D3-23F421CEEE11}';
 
function PluginIdentifier: TGUID; cdecl;
begin
result := PLUGIN_GUID;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentifier: WideString;
begin
stIdentifier := GetUserName;
result := UD2_WritePascalStringToPointerW(lpIdentifier, cchSize, stIdentifier);
end;
 
function PluginNameW(lpPluginName: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
var
stPluginName: WideString;
primaryLangID: Byte;
begin
primaryLangID := wLangID and $00FF;
if primaryLangID = LANG_GERMAN then
stPluginName := 'Benutzername'
else
stPluginName := 'Username';
result := UD2_WritePascalStringToPointerW(lpPluginName, cchSize, stPluginName);
end;
 
function PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVendor, cchSize, 'ViaThinkSoft');
end;
 
function PluginVersionW(lpPluginVersion: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVersion, cchSize, '1.0');
end;
 
function IdentificationMethodNameW(lpIdentificationMethodName: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentificationMethodName: WideString;
begin
stIdentificationMethodName := 'UserName';
result := UD2_WritePascalStringToPointerW(lpIdentificationMethodName, cchSize, stIdentificationMethodName);
end;
 
function CheckLicense(lpReserved: LPVOID): UD2_STATUS; cdecl;
begin
result := UD2_STATUS_OK_LICENSED;
end;
 
function DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; cdecl;
begin
// This function does not use non-generic status codes
result := FALSE;
end;
 
exports
PluginInterfaceID name mnPluginInterfaceID,
PluginIdentifier name mnPluginIdentifier,
PluginNameW name mnPluginNameW,
PluginVendorW name mnPluginVendorW,
PluginVersionW name mnPluginVersionW,
IdentificationMethodNameW name mnIdentificationMethodNameW,
IdentificationStringW name mnIdentificationStringW,
CheckLicense name mnCheckLicense,
DescribeOwnStatusCodeW name mnDescribeOwnStatusCodeW;
 
end.
/trunk/UserDetect2/Plugins/UserName.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/WinBuildNumber.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/WinBuildNumber.dof
0,0 → 1,140
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=1
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=WinBuildNumber plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-WinBuildNumber
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=WinBuildNumber.dll
ProductName=UserDetect2
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/WinBuildNumber.dpr
0,0 → 1,82
library WinBuildNumber;
 
uses
Windows,
SysUtils,
Classes,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
 
{$R *.res}
 
const
PLUGIN_GUID: TGUID = '{3C407420-66F5-4FAB-9B1C-2291C1D1A402}';
 
function PluginIdentifier: TGUID; cdecl;
begin
result := PLUGIN_GUID;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentifier: WideString;
begin
stIdentifier := IntToStr(Win32BuildNumber);
result := UD2_WritePascalStringToPointerW(lpIdentifier, cchSize, stIdentifier);
end;
 
function PluginNameW(lpPluginName: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
var
stPluginName: WideString;
primaryLangID: Byte;
begin
primaryLangID := wLangID and $00FF;
if primaryLangID = LANG_GERMAN then
stPluginName := 'Windows-Build-Nr.'
else
stPluginName := 'Windows build number';
result := UD2_WritePascalStringToPointerW(lpPluginName, cchSize, stPluginName);
end;
 
function PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVendor, cchSize, 'ViaThinkSoft');
end;
 
function PluginVersionW(lpPluginVersion: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVersion, cchSize, '1.0');
end;
 
function IdentificationMethodNameW(lpIdentificationMethodName: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentificationMethodName: WideString;
begin
stIdentificationMethodName := 'WinBuildNumber';
result := UD2_WritePascalStringToPointerW(lpIdentificationMethodName, cchSize, stIdentificationMethodName);
end;
 
function CheckLicense(lpReserved: LPVOID): UD2_STATUS; cdecl;
begin
result := UD2_STATUS_OK_LICENSED;
end;
 
function DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; cdecl;
begin
// This function does not use non-generic status codes
result := FALSE;
end;
 
exports
PluginInterfaceID name mnPluginInterfaceID,
PluginIdentifier name mnPluginIdentifier,
PluginNameW name mnPluginNameW,
PluginVendorW name mnPluginVendorW,
PluginVersionW name mnPluginVersionW,
IdentificationMethodNameW name mnIdentificationMethodNameW,
IdentificationStringW name mnIdentificationStringW,
CheckLicense name mnCheckLicense,
DescribeOwnStatusCodeW name mnDescribeOwnStatusCodeW;
 
end.
/trunk/UserDetect2/Plugins/WinBuildNumber.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/WinMajorVersion.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/WinMajorVersion.dof
0,0 → 1,140
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=1
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=WinMajorVersion plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-WinMajorVersion
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=WinMajorVersion.dll
ProductName=UserDetect2
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/WinMajorVersion.dpr
0,0 → 1,82
library WinMajorVersion;
 
uses
Windows,
SysUtils,
Classes,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
 
{$R *.res}
 
const
PLUGIN_GUID: TGUID = '{30EDE7BF-E70E-4D7D-B2AA-5E27CBEF6F45}';
 
function PluginIdentifier: TGUID; cdecl;
begin
result := PLUGIN_GUID;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentifier: WideString;
begin
stIdentifier := IntToStr(Win32MajorVersion);
result := UD2_WritePascalStringToPointerW(lpIdentifier, cchSize, stIdentifier);
end;
 
function PluginNameW(lpPluginName: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
var
stPluginName: WideString;
primaryLangID: Byte;
begin
primaryLangID := wLangID and $00FF;
if primaryLangID = LANG_GERMAN then
stPluginName := 'Windows-Hauptversion'
else
stPluginName := 'Windows major version';
result := UD2_WritePascalStringToPointerW(lpPluginName, cchSize, stPluginName);
end;
 
function PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVendor, cchSize, 'ViaThinkSoft');
end;
 
function PluginVersionW(lpPluginVersion: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVersion, cchSize, '1.0');
end;
 
function IdentificationMethodNameW(lpIdentificationMethodName: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentificationMethodName: WideString;
begin
stIdentificationMethodName := 'WinMajorVersion';
result := UD2_WritePascalStringToPointerW(lpIdentificationMethodName, cchSize, stIdentificationMethodName);
end;
 
function CheckLicense(lpReserved: LPVOID): UD2_STATUS; cdecl;
begin
result := UD2_STATUS_OK_LICENSED;
end;
 
function DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; cdecl;
begin
// This function does not use non-generic status codes
result := FALSE;
end;
 
exports
PluginInterfaceID name mnPluginInterfaceID,
PluginIdentifier name mnPluginIdentifier,
PluginNameW name mnPluginNameW,
PluginVendorW name mnPluginVendorW,
PluginVersionW name mnPluginVersionW,
IdentificationMethodNameW name mnIdentificationMethodNameW,
IdentificationStringW name mnIdentificationStringW,
CheckLicense name mnCheckLicense,
DescribeOwnStatusCodeW name mnDescribeOwnStatusCodeW;
 
end.
/trunk/UserDetect2/Plugins/WinMajorVersion.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/WinMinorVersion.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/WinMinorVersion.dof
0,0 → 1,140
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=1
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=WinMinorVersion plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-WinMinorVersion
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=WinMinorVersion.dll
ProductName=UserDetect2
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/WinMinorVersion.dpr
0,0 → 1,82
library WinMinorVersion;
 
uses
Windows,
SysUtils,
Classes,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
 
{$R *.res}
 
const
PLUGIN_GUID: TGUID = '{124264BB-E659-413B-A377-CAAD43C68725}';
 
function PluginIdentifier: TGUID; cdecl;
begin
result := PLUGIN_GUID;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentifier: WideString;
begin
stIdentifier := IntToStr(Win32MinorVersion);
result := UD2_WritePascalStringToPointerW(lpIdentifier, cchSize, stIdentifier);
end;
 
function PluginNameW(lpPluginName: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
var
stPluginName: WideString;
primaryLangID: Byte;
begin
primaryLangID := wLangID and $00FF;
if primaryLangID = LANG_GERMAN then
stPluginName := 'Windows-Nebenversion'
else
stPluginName := 'Windows minor version';
result := UD2_WritePascalStringToPointerW(lpPluginName, cchSize, stPluginName);
end;
 
function PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVendor, cchSize, 'ViaThinkSoft');
end;
 
function PluginVersionW(lpPluginVersion: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVersion, cchSize, '1.0');
end;
 
function IdentificationMethodNameW(lpIdentificationMethodName: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentificationMethodName: WideString;
begin
stIdentificationMethodName := 'WinMinorVersion';
result := UD2_WritePascalStringToPointerW(lpIdentificationMethodName, cchSize, stIdentificationMethodName);
end;
 
function CheckLicense(lpReserved: LPVOID): UD2_STATUS; cdecl;
begin
result := UD2_STATUS_OK_LICENSED;
end;
 
function DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; cdecl;
begin
// This function does not use non-generic status codes
result := FALSE;
end;
 
exports
PluginInterfaceID name mnPluginInterfaceID,
PluginIdentifier name mnPluginIdentifier,
PluginNameW name mnPluginNameW,
PluginVendorW name mnPluginVendorW,
PluginVersionW name mnPluginVersionW,
IdentificationMethodNameW name mnIdentificationMethodNameW,
IdentificationStringW name mnIdentificationStringW,
CheckLicense name mnCheckLicense,
DescribeOwnStatusCodeW name mnDescribeOwnStatusCodeW;
 
end.
/trunk/UserDetect2/Plugins/WinMinorVersion.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/WinVersion.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/Plugins/WinVersion.dof
0,0 → 1,140
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=1
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=WinVersion plugin for UserDetect2
FileVersion=1.0.0.0
InternalName=UD2-WinVersion
LegalCopyright=(C) 2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=WinVersion.dll
ProductName=UserDetect2
ProductVersion=2.1.0.0
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
/trunk/UserDetect2/Plugins/WinVersion.dpr
0,0 → 1,84
library WinVersion;
 
uses
Windows,
SysUtils,
Classes,
UD2_PluginIntf in '..\UD2_PluginIntf.pas',
UD2_PluginUtils in '..\UD2_PluginUtils.pas',
UD2_PluginStatus in '..\UD2_PluginStatus.pas';
 
{$R *.res}
 
const
PLUGIN_GUID: TGUID = '{07A0A0B0-4076-4A76-8992-57C6965269A0}';
 
function PluginIdentifier: TGUID; cdecl;
begin
result := PLUGIN_GUID;
end;
 
function IdentificationStringW(lpIdentifier: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentifier: WideString;
begin
stIdentifier := IntToStr(Win32MajorVersion) + '.' +
IntToStr(Win32MinorVersion) + '.' +
IntToStr(Win32BuildNumber);
result := UD2_WritePascalStringToPointerW(lpIdentifier, cchSize, stIdentifier);
end;
 
function PluginNameW(lpPluginName: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
var
stPluginName: WideString;
primaryLangID: Byte;
begin
primaryLangID := wLangID and $00FF;
if primaryLangID = LANG_GERMAN then
stPluginName := 'Windows-Version'
else
stPluginName := 'Windows version';
result := UD2_WritePascalStringToPointerW(lpPluginName, cchSize, stPluginName);
end;
 
function PluginVendorW(lpPluginVendor: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVendor, cchSize, 'ViaThinkSoft');
end;
 
function PluginVersionW(lpPluginVersion: LPWSTR; cchSize: DWORD; wLangID: LANGID): UD2_STATUS; cdecl;
begin
result := UD2_WritePascalStringToPointerW(lpPluginVersion, cchSize, '1.0');
end;
 
function IdentificationMethodNameW(lpIdentificationMethodName: LPWSTR; cchSize: DWORD): UD2_STATUS; cdecl;
var
stIdentificationMethodName: WideString;
begin
stIdentificationMethodName := 'WinVersion';
result := UD2_WritePascalStringToPointerW(lpIdentificationMethodName, cchSize, stIdentificationMethodName);
end;
 
function CheckLicense(lpReserved: LPVOID): UD2_STATUS; cdecl;
begin
result := UD2_STATUS_OK_LICENSED;
end;
 
function DescribeOwnStatusCodeW(lpErrorDescription: LPWSTR; cchSize: DWORD; statusCode: UD2_STATUS; wLangID: LANGID): BOOL; cdecl;
begin
// This function does not use non-generic status codes
result := FALSE;
end;
 
exports
PluginInterfaceID name mnPluginInterfaceID,
PluginIdentifier name mnPluginIdentifier,
PluginNameW name mnPluginNameW,
PluginVendorW name mnPluginVendorW,
PluginVersionW name mnPluginVersionW,
IdentificationMethodNameW name mnIdentificationMethodNameW,
IdentificationStringW name mnIdentificationStringW,
CheckLicense name mnCheckLicense,
DescribeOwnStatusCodeW name mnDescribeOwnStatusCodeW;
 
end.
/trunk/UserDetect2/Plugins/WinVersion.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/UD2_Main.ddp
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/UD2_Main.dfm
3,7 → 3,7
Top = 177
Width = 784
Height = 440
ActiveControl = IdentificationsListView
ActiveControl = TasksListView
Caption = 'ViaThinkSoft UserDetect2'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
22,7 → 22,7
Top = 0
Width = 768
Height = 402
ActivePage = TabSheet2
ActivePage = TasksTabSheet
Align = alClient
TabOrder = 0
object TasksTabSheet: TTabSheet
2085,9 → 2085,9
Caption = 'Errors'
ImageIndex = 5
object ErrorsMemo: TMemo
Left = 0
Left = 49
Top = 0
Width = 760
Width = 711
Height = 374
Align = alClient
Lines.Strings = (
2096,8 → 2096,59
ScrollBars = ssVertical
TabOrder = 0
end
object Panel2: TPanel
Left = 0
Top = 0
Width = 49
Height = 374
Align = alLeft
BevelOuter = bvNone
TabOrder = 1
object Image2: TImage
Left = 8
Top = 8
Width = 32
Height = 32
AutoSize = True
Picture.Data = {
055449636F6E0000010002002020100000000000E80200002600000010101000
00000000280100000E0300002800000020000000400000000100040000000000
8002000000000000000000000000000000000000000000000000800000800000
0080800080000000800080008080000080808000C0C0C0000000FF0000FF0000
00FFFF00FF000000FF00FF00FFFF0000FFFFFF00000007777777777777777777
7777770000007777777777777777777777777770003000000000000000000000
0007777703BBBBBBBBBBBBBBBBBBBBBBBB8077773BBBBBBBBBBBBBBBBBBBBBBB
BBB807773BBBBBBBBBBBBBBBBBBBBBBBBBBB07773BBBBBBBBBBBB8008BBBBBBB
BBBB07703BBBBBBBBBBBB0000BBBBBBBBBB8077003BBBBBBBBBBB0000BBBBBBB
BBB0770003BBBBBBBBBBB8008BBBBBBBBB807700003BBBBBBBBBBBBBBBBBBBBB
BB077000003BBBBBBBBBBB0BBBBBBBBBB80770000003BBBBBBBBB808BBBBBBBB
B07700000003BBBBBBBBB303BBBBBBBB8077000000003BBBBBBBB000BBBBBBBB
0770000000003BBBBBBB80008BBBBBB807700000000003BBBBBB30003BBBBBB0
77000000000003BBBBBB00000BBBBB80770000000000003BBBBB00000BBBBB07
700000000000003BBBBB00000BBBB8077000000000000003BBBB00000BBBB077
0000000000000003BBBB00000BBB807700000000000000003BBB80008BBB0770
00000000000000003BBBBBBBBBB80770000000000000000003BBBBBBBBB07700
000000000000000003BBBBBBBB8077000000000000000000003BBBBBBB077000
0000000000000000003BBBBBB807700000000000000000000003BBBBB0770000
00000000000000000003BBBB80700000000000000000000000003BB800000000
0000000000000000000003330000000000000000F8000003F0000001C0000000
80000000000000000000000000000001000000018000000380000003C0000007
C0000007E000000FE000000FF000001FF000001FF800003FF800003FFC00007F
FC00007FFE0000FFFE0000FFFF0001FFFF0001FFFF8003FFFF8003FFFFC007FF
FFC007FFFFE00FFFFFE01FFFFFF07FFFFFF8FFFF280000001000000020000000
0100040000000000C00000000000000000000000000000000000000000000000
00008000008000000080800080000000800080008080000080808000C0C0C000
0000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0007777777
777777700000000000000077BBBBBBBBBBBBB807BBBBBB808BBBB8070BBBBB80
8BBBB0700BBBBBB8BBBB807000BBBBB0BBBB070000BBBB808BB80700000BBB00
0BB07000000BBB000B8070000000BB000B0700000000BB808807000000000BBB
B070000000000BBB80700000000000BB07000000000000007000000080010000
0000000000000000000000008001000080010000C0030000C0030000E0070000
E0070000F00F0000F00F0000F81F0000F81F0000FC3F0000FC7F0000}
end
end
end
end
object OpenDialog1: TOpenDialog
DefaultExt = '.ini'
Filter = 'Task Definition File (*.ini)|*.ini|Any file (*.*)|*.*'
/trunk/UserDetect2/UD2_Main.pas
8,6 → 8,10
 
{$INCLUDE 'UserDetect2.inc'}
 
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF}
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ValEdit, UD2_Obj, ComCtrls, ImgList, ExtCtrls,
60,6 → 64,8
VersionLabel: TLabel;
LoadedPluginsPopupMenu: TPopupMenu;
MenuItem1: TMenuItem;
Panel2: TPanel;
Image2: TImage;
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TasksListViewDblClick(Sender: TObject);
85,6 → 91,8
function GetIniFileName: string;
procedure DoRun(ShortTaskName: string);
procedure CheckForErrors;
public
procedure Run;
end;
 
var
125,7 → 133,7
resourcestring
LNG_FILE_NOT_FOUND = 'File "%s" not found.';
begin
if ParamCount >= 1 then
if (ParamCount >= 1) and not CheckBoolParam(1, 'C') then
begin
if FileExists(ParamStr(1)) then
begin
222,9 → 230,7
try
ud2.GetCommandList(ShortTaskName, slCmds);
 
if (slCmds.Count = 0) and
ud2.ReadMetatagBool(ShortTaskName,
TagWarnIfNothingMatches, DefaultWarnIfNothingMatches) then
if (slCmds.Count = 0) and ud2.ReadMetatagBool(ShortTaskName, TagWarnIfNothingMatches, DefaultWarnIfNothingMatches) then
begin
MessageDlg(LNG_NOTHING_MATCHES, mtWarning, [mbOK], 0);
ExitCode := EXITCODE_TASK_NOTHING_MATCHES;
234,7 → 240,7
begin
cmd := slCmds.Strings[i];
if cmd = '' then continue;
UD2_RunCMD(cmd, SW_NORMAL); // Idea: let SW_NORMAL be configurable by the user?
UD2_RunCMD(cmd, SW_NORMAL); // Idea: Let SW_NORMAL be configurable by the user?
end;
finally
slCmds.Free;
352,52 → 358,11
end;
 
procedure TUD2MainForm.FormShow(Sender: TObject);
resourcestring
LNG_SYNTAX = 'Syntax: %s [TaskDefinitionFile [TaskName]]';
var
LoadedIniFile: string;
begin
ExitCode := EXITCODE_OK;
 
// To avoid accidental changes from the GUI designer
// To avoid accidental change of the default tab from the IDE VCL Designer
PageControl1.ActivePage := TasksTabSheet;
 
if ((ParamCount = 1) and (ParamStr(1) = '/?')) or (ParamCount >= 3) then
begin
ExitCode := EXTICODE_SYNTAX_ERROR;
MessageDlg(Format(LNG_SYNTAX, [GetOwnCmdName]), mtInformation, [mbOK], 0);
Close;
Exit;
end;
 
LoadedIniFile := GetIniFileName;
if LoadedIniFile = '' then
begin
Close;
Exit;
end;
ud2 := TUD2.Create(LoadedIniFile);
 
ud2.HandlePluginDir('', '*.smp');
ud2.HandlePluginDir('Plugins', '*.smp');
ud2.HandlePluginDir('Plugins', '*.dll');
 
if ParamCount >= 2 then
begin
DoRun(ParamStr(2));
Close;
Exit;
end
else
begin
LoadTaskList;
LoadDetectedIDs;
LoadINITemplate;
LoadLoadedPluginList;
CheckForErrors;
end;
end;
 
procedure TUD2MainForm.TasksListViewDblClick(Sender: TObject);
var
obj: TUD2ListViewEntry;
518,4 → 483,76
Clipboard.AsText := s;
end;
 
procedure TUD2MainForm.Run;
resourcestring
LNG_SYNTAX = 'Syntax: %s [TaskDefinitionFile [/T TaskName] | /C IdentificationTerm [Command] | /?]';
var
LoadedIniFile: string;
begin
ExitCode := EXITCODE_OK;
 
if ((ParamCount = 1) and CheckBoolParam(1, '?')) or
(CheckBoolParam(2, 'T') and (ParamCount > 3)) or
(CheckBoolParam(1, 'C') and (ParamCount > 3)) or
(not CheckBoolParam(2, 'T') and not CheckBoolParam(1, 'C') and (ParamCount > 1)) then
begin
ExitCode := EXITCODE_SYNTAX_ERROR;
MessageDlg(Format(LNG_SYNTAX, [GetOwnCmdName]), mtInformation, [mbOK], 0);
 
Visible := false;
Close;
Exit;
end;
 
LoadedIniFile := GetIniFileName;
if LoadedIniFile = '' then
begin
Visible := false;
Close;
Exit;
end;
ud2 := TUD2.Create(LoadedIniFile);
 
ud2.HandlePluginDir('', '*.smp');
ud2.HandlePluginDir('Plugins', '*.smp');
ud2.HandlePluginDir('Plugins', '*.dll');
 
if CheckBoolParam(1, 'C') then
begin
if ud2.FulfilsEverySubterm(ParamStr(2)) then
begin
ExitCode := EXITCODE_OK;
 
if ParamStr(3) <> '' then UD2_RunCMD(ParamStr(3), SW_NORMAL); // Idea: SW_NORMAL changeable via parameter
end
else
begin
ExitCode := EXITCODE_TASK_NOTHING_MATCHES;
end;
 
Visible := false;
Close;
Exit;
end
else if CheckBoolParam(2, 'T') then
begin
DoRun(ParamStr(3));
 
Visible := false;
Close;
Exit;
end
else
begin
LoadTaskList;
LoadDetectedIDs;
LoadINITemplate;
LoadLoadedPluginList;
CheckForErrors;
 
Visible := true;
Exit;
end;
end;
 
end.
/trunk/UserDetect2/UD2_Obj.pas
8,6 → 8,9
 
{$INCLUDE 'UserDetect2.inc'}
 
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
 
uses
Windows, SysUtils, Classes, IniFiles, Contnrs, Dialogs, UD2_PluginIntf,
UD2_PluginStatus;
67,6 → 70,11
property Errors: TStrings read FErrors;
property LoadedPlugins: TObjectList{<TUD2Plugin>} read FLoadedPlugins;
property IniFile: TMemIniFile read FIniFile;
 
procedure GetAllIdNames(outSL: TStrings);
function FulfilsEverySubterm(idTerm: WideString; slIdNames: TStrings=nil): boolean;
 
 
procedure GetCommandList(ShortTaskName: string; outSL: TStrings);
procedure HandlePluginDir(APluginDir, AFileMask: string);
procedure GetTaskListing(outSL: TStrings);
202,7 → 210,6
sPluginID, prevDLL: string;
{$ENDIF}
lngid: LANGID;
maskpath: string;
resourcestring
LNG_PLUGINS_SAME_GUID = 'Attention: The plugin "%s" and the plugin "%s" have the same identification GUID. The latter will not be loaded.';
begin
340,23 → 347,12
 
*)
 
procedure TUD2.GetCommandList(ShortTaskName: string; outSL: TStrings);
procedure TUD2.GetAllIdNames(outSL: TStrings);
var
i, j: integer;
cmd: string;
idTerm, idName: WideString;
slSV, slIdNames: TStrings;
x: TArrayOfString;
nameVal: TArrayOfString;
FulfilsEverySubterm: boolean;
pl: TUD2Plugin;
ude: TUD2IdentificationEntry;
begin
SetLength(x, 0);
SetLength(nameVal, 0);
 
slIdNames := TStringList.Create;
try
for i := 0 to LoadedPlugins.Count-1 do
begin
pl := LoadedPlugins.Items[i] as TUD2Plugin;
363,25 → 359,34
for j := 0 to pl.DetectedIdentifications.Count-1 do
begin
ude := pl.DetectedIdentifications.Items[j] as TUD2IdentificationEntry;
ude.GetIdNames(slIdNames);
ude.GetIdNames(outSL);
end;
end;
end;
 
slSV := TStringList.Create;
function TUD2.FulfilsEverySubterm(idTerm: WideString; slIdNames: TStrings=nil): boolean;
var
x: TArrayOfString;
i: integer;
idName: WideString;
cleanUpStringList: boolean;
begin
cleanUpStringList := slIdNames = nil;
try
FIniFile.ReadSectionValues(ShortTaskName, slSV);
for j := 0 to slSV.Count-1 do
if cleanUpStringList then
begin
// We are doing the interpretation of the line ourselves, because
// TStringList.Values[] would not allow multiple command lines with the
// same key (idTerm)
nameVal := SplitString('=', slSV.Strings[j]);
idTerm := nameVal[0];
cmd := nameVal[1];
slIdNames := TStringList.Create;
GetAllIdNames(slIdNames);
end;
 
if Pos(':', idTerm) = 0 then Continue;
SetLength(x, 0);
if Pos(':', idTerm) = 0 then
begin
result := false;
Exit;
end;
x := SplitString('&&', idTerm);
FulfilsEverySubterm := true;
result := true;
for i := Low(x) to High(x) do
begin
idName := x[i];
388,12 → 393,43
 
if slIdNames.IndexOf(idName) = -1 then
begin
FulfilsEverySubterm := false;
result := false;
break;
end;
end;
finally
if cleanUpStringList and Assigned(slIdNames) then
slIdNames.Free;
end;
end;
 
if FulfilsEverySubterm then outSL.Add(cmd);
procedure TUD2.GetCommandList(ShortTaskName: string; outSL: TStrings);
var
i: integer;
cmd: string;
idTerm: WideString;
slSV, slIdNames: TStrings;
nameVal: TArrayOfString;
begin
SetLength(nameVal, 0);
 
slIdNames := TStringList.Create;
try
GetAllIdNames(slIdNames);
 
slSV := TStringList.Create;
try
FIniFile.ReadSectionValues(ShortTaskName, slSV);
for i := 0 to slSV.Count-1 do
begin
// We are doing the interpretation of the line ourselves, because
// TStringList.Values[] would not allow multiple command lines with the
// same key (idTerm)
nameVal := SplitString('=', slSV.Strings[i]);
idTerm := nameVal[0];
cmd := nameVal[1];
 
if FulfilsEverySubterm(idTerm, slIdNames) then outSL.Add(cmd);
end;
finally
slSV.Free;
/trunk/UserDetect2/UD2_PluginIntf.pas
6,6 → 6,8
{$LEGACYIFEND ON}
{$IFEND}
 
{$WARN UNSAFE_TYPE OFF}
 
uses
Windows, SysUtils, UD2_PluginStatus;
 
/trunk/UserDetect2/UD2_PluginUtils.pas
6,6 → 6,9
{$LEGACYIFEND ON}
{$IFEND}
 
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
 
uses
Windows, Classes, UD2_PluginIntf, UD2_PluginStatus;
 
/trunk/UserDetect2/UD2_TaskProperties.ddp
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/UserDetect2/UD2_TaskProperties.pas
1,5 → 1,8
unit UD2_TaskProperties;
 
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
 
interface
 
uses
/trunk/UserDetect2/UD2_Utils.pas
8,6 → 8,9
 
{$INCLUDE 'UserDetect2.inc'}
 
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
 
uses
Windows, SysUtils, Dialogs, ShellAPI;
 
18,7 → 21,7
EXITCODE_TASK_NOT_EXISTS = 10;
EXITCODE_INI_NOT_FOUND = 11;
EXITCODE_RUNCMD_SYNTAX_ERROR = 12;
EXTICODE_SYNTAX_ERROR = 13;
EXITCODE_SYNTAX_ERROR = 13;
 
type
TArrayOfString = array of String;
42,6 → 45,7
// function GetHTML(AUrl: string): string;
procedure VTS_CheckUpdates(VTSID, CurVer: string);
function FormatOSError(ec: DWORD): string;
function CheckBoolParam(idx: integer; name: string): boolean;
 
implementation
 
256,12 → 260,19
end;
end;
 
ZeroMemory(@sei, SizeOf(sei));
 
if Pos(UD2_RUN_AS_ADMIN, cmdLine) >= 1 then
begin
cmdLine := StringReplace(cmdLine, UD2_RUN_AS_ADMIN, '', [rfReplaceAll]);
 
sei.lpVerb := 'runas';
end;
 
if Pos(UD2_RUN_IN_OWN_DIRECTORY_PREFIX, cmdLine) >= 1 then
begin
cmdLine := StringReplace(cmdLine, UD2_RUN_IN_OWN_DIRECTORY_PREFIX, '', [rfReplaceAll]);
 
cmdLine := Copy(cmdLine, 1+Length(UD2_RUN_IN_OWN_DIRECTORY_PREFIX), Length(cmdLine)-Length(UD2_RUN_IN_OWN_DIRECTORY_PREFIX));
 
cmdFile := ExtractFileName(cmdLine);
cmdDir := ExtractFilePath(cmdLine);
end
271,15 → 282,6
cmdDir := '';
end;
 
ZeroMemory(@sei, SizeOf(sei));
 
if Pos(UD2_RUN_AS_ADMIN, cmdLine) >= 1 then
begin
cmdLine := StringReplace(cmdLine, UD2_RUN_AS_ADMIN, '', [rfReplaceAll]);
 
sei.lpVerb := 'runas';
end;
 
sei.cbSize := SizeOf(sei);
sei.lpFile := PChar(cmdFile);
{$IFNDEF PREFER_SHELLEXECUTEEX_MESSAGES}
409,4 → 411,10
end;
end;
 
function CheckBoolParam(idx: integer; name: string): boolean;
begin
Result := ('/'+LowerCase(name) = LowerCase(ParamStr(idx))) or
('-'+LowerCase(name) = LowerCase(ParamStr(idx)));
end;
 
end.
/trunk/UserDetect2/UserDetect2.dof
1,5 → 1,5
[FileVersion]
Version=6.0
Version=7.0
[Compiler]
A=8
B=0
30,6 → 30,55
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=1
UnsafeCode=1
UnsafeCast=1
[Linker]
MapFile=0
OutputObjs=0
45,22 → 94,26
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
SearchPath=..\vcl
Packages=vcl;rtl;vclx;VclSmp;vclshlctrls
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
RunParams=/?
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=2
MinorVer=0
MinorVer=1
Release=0
Build=0
Debug=0
73,12 → 126,18
[Version Info Keys]
CompanyName=ViaThinkSoft
FileDescription=UserDetect2
FileVersion=2.0.0.0
FileVersion=2.1.0.0
InternalName=UD2
LegalCopyright=(C) 2015 ViaThinkSoft
LegalCopyright=(C) 2015-2016 ViaThinkSoft
LegalTrademarks=
OriginalFilename=UserDetect2.exe
ProductName=UserDetect2
ProductVersion=2.0.0.0
ProductVersion=2.1.0.0
Project leader=Daniel Marschall - www.daniel-marschall.de
Website=www.viathinksoft.de
Project leader=Daniel Marschall - www.daniel-marschall.de
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=1
Item0=..\vcl
/trunk/UserDetect2/UserDetect2.dpr
16,6 → 16,8
 
begin
Application.Initialize;
Application.ShowMainForm := false;
Application.CreateForm(TUD2MainForm, UD2MainForm);
UD2MainForm.Run;
Application.Run;
end.
/trunk/UserDetect2/UserDetect2.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/UserDetect2.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/UserDetect2/private/TODO.txt
4,20 → 4,20
 
* Develop more plugins
- workstation/server (NetServerGetInfo)
- Computer SID
- Win version
- pc name
- lanman workgroup name
- user name
* (future): also develop a commandline-only-tool that only returns errorlevels, and which does only check a single identification string (equal to testuser.exe, "UserDetect1")
* transfer all functionalities from testuser.exe
* (small detail): in CLI mode, you can see the mainform for a few milliseconds
* (future): Full Task Definition File Editor functionality
* (idea): pass arguments to the plugin, e.g. FileAge(Letter.doc):20=calc.exe
problem: too many requires escape signs and/or forbidden signs, and too complex
* (idea): make WM_NORMAL configurable via INI/parameters
* put geticon functions in ud2_obj.pas?
* (idea): can a plugin have multiple methodnames?
* offer possibility to re-load the Task Definition File (maybe even auto-detect if they were changed)
* offer possibility möglichkeit to re-load all plugins
* offer possibility to reload the Task Definition File (maybe even auto-detect if they were changed)
* offer possibility to reload all plugins
* (idea): slow DLL files killable (via GUI)
* splash screen because of probably slow DLLs
* (idea) environment variable plugin case-insensitive variant?
* (idea) command syntax: cmdline run task without spec ini
* (idea) status for "not available (0 elements)" ?
* guid column is not sorted correctly!
* (idea) command syntax: <ini> /T <job> /noexec --> returns only ExitCode, but does not run the application of the INI
/trunk/UserDetect2/private/warning.ICO
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/testuser/Functions.pas
56,7 → 56,7
 
function StrICmp(a, b: string): boolean;
begin
result := UpperCase(a) = UpperCase(b);
result := LowerCase(a) = LowerCase(b);
end;
 
function EnforceLength(s: string; len: integer; filler: char;
/trunk/vcl/PatchU.pas
1,5 → 1,8
unit PatchU;
 
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
 
interface
 
type
/trunk/vcl/VTSCompat.pas
4,6 → 4,10
{$LEGACYIFEND ON}
{$IFEND}
 
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF}
 
interface
 
uses
/trunk/vcl/VTSListView.pas
1,5 → 1,8
unit VTSListView;
 
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
 
interface
 
// This ListView adds support for sorting arrows
/trunk/vcl/ViaThinkSoft.cfg
0,0 → 1,35
-$A8
-$B-
-$C+
-$D-
-$E-
-$F-
-$G+
-$H+
-$I+
-$J+
-$K-
-$L-
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$Y-
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$51000000
-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl"
/trunk/vcl/ViaThinkSoft.dof
0,0 → 1,136
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=0
E=0
F=0
G=1
H=1
I=1
J=1
K=0
L=0
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=0
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=1
UnsafeCode=1
UnsafeCast=1
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=1358954496
ExeDescription=ViaThinkSoft VCL Components
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1031
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=