there is a problem with this windows installer package

sloves1988 2010-05-19 07:17:56
我自己用c#建了一个安装文件,就是我的项目的,在安装的时候同时安装了数据库PostgreSQL,但是在安装到PostgreSQL的时候报错了:there is a problem with this windows installer package. a program run as part of the setup did not finish as expected. contact your support personnel or package vendor.
大家知道是什么原因么?
...全文
2565 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxingmin 2010-05-19
  • 打赏
  • 举报
回复
检测到另一个安装包在运行,结束你的安装包,再安装PostgreSql
gxingmin 2010-05-19
  • 打赏
  • 举报
回复
用SetupFactory打包工具,给段制作SetupFactory安装包的脚本给你参考一下
<Script>-- 比较两个数字的 if ... else 语句
----1、检测操作系统版本必须在Win98第二版以上。
sysName = System.GetOSName();
osInfo = System.GetOSVersionInfo();
if (sysName == "Windows 95") then
Dialog.Message("提示","本系统只支持Windows98第二版以上的Windows操作系统,请先升级您的操作系统再安装。");
Application.Exit(0);
end
if (sysName == "Windows 98") then
if(osInfo.BuildNumber ~= "2222" ) then
Dialog.Message("提示","本系统只支持Windows98第二版以上的Windows操作系统,请先升级您的操作系统再安装。");
Application.Exit(0);
end
end
--if (sysName == "Windows 2000") then
-- if (String.Find(osInfo.CSDVersion,"Service Pack 4") < 0) then
-- Dialog.Message("提示","您的操作系统需要先安装Windows 2000SP4的补丁。");
-- File.Run("%SourceFolder%\\Win2000SP4\\w2ksp4_cn.exe","","",SW_SHOWNORMAL,true);
-- end
--end
----2、判断Windows安装服务的版本必须在2.0版本以上,否则先安装WinInstaller2.0。
winInstaller = _SystemFolder .. "\\msiexec.exe";
if (File.DoesExist(winInstaller) == false) then
Dialog.Message("提示","您的操作系统上没有“Window安装服务”,必须先安装“WinInstaller2.0”或更高版本。");
if(osInfo.PlatformId == "1")then
File.Run("%SourceFolder%\\WinInstaller\\instmsia2026002.exe","","",SW_SHOWNORMAL,true);
else
File.Run("%SourceFolder%\\WinInstaller\\instmsiW.exe","","",SW_SHOWNORMAL,true);
end
end


vInfo = File.GetVersionInfo(winInstaller);
if (vInfo.FileVersion < "2.0") then
Dialog.Message("提示","您的操作系统上的“Window安装服务”版本太低,必须先安装“WinInstaller2.0”或更高版本。");
if(osInfo.PlatformId == "1")then
File.Run("%SourceFolder%\\WinInstaller\\instmsia2026002.exe","","",SW_SHOWNORMAL,true);
else
File.Run("%SourceFolder%\\WinInstaller\\instmsiW.exe","","",SW_SHOWNORMAL,true);
end
end

vInfo = File.GetVersionInfo(winInstaller);
if (vInfo.FileVersion < "2.0") then
Application.Exit(0);
end

--3、判断IE版本必须大于5.1,否则先安装IE6。
ieversion = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Internet Explorer", "Version", true);
if ( ieversion < "6.0" ) then
Dialog.Message("提示信息","您的操作系统需要先安装Internet Explorer5.1以上版本的浏览器。");
--File.Run("%SourceFolder%\\IE60\\ie6setup.exe","","",SW_SHOWNORMAL,true);
Application.Exit(0);
end

--ieversion = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Internet Explorer", "Version", true);
--if ( ieversion < "6.0" ) then
--Application.Exit(0);
--end

--4、判断是否安装了.net2.0,否则先安装.net2.0
bNet11 = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\.NETFramework\\v3.0");
if (bNet11 == false) then
Dialog.Message("提示信息","您的操作系统需要先安装.net3.0。");
File.Run("%SourceFolder%\\Net3.0\\dotnetfx3.exe","","",SW_SHOWNORMAL,true);
end

bNet11 = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\.NETFramework\\v3.0");
if (bNet11 == false) then
Application.Exit(0);
end


--5、安装进销存系统
-- 判断是否已经安装了本程序
bInstalled = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{5B4B2552-795E-4718-81E9-941236D0F68A}");
if (bInstalled == true) then
bAutoUpdate=Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{5B4B2552-795E-4718-81E9-941236D0F68A}","DisplayName");
if String.Find(bAutoUpdate,"进销存系统",1,false)>0 then
Dialog.Message("提示信息","系统检测到已经安装了\"进销存系统\"的一个早期版本,需要卸载后再安装!\r\n请点确定按钮卸载早期版本的进销存系统。");
sArg = "/x {5B4B2552-795E-4718-81E9-941236D0F68A}";
File.Run("msiexec.exe",sArg,"",SW_SHOWNORMAL,true);
end
end

bInstalled = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{5B4B2552-795E-4718-81E9-941236D0F68A}");
if (bInstalled == true) then
Dialog.Message("提示信息","系统检测到已经安装了\"进销存系统\"的一个早期版本,\r\n请先卸载后再执行Setup重新安装。");
Application.Exit(0);
end

File.Run("%SourceFolder%\\PCClient\\Setup.exe","","",SW_SHOWNORMAL,true);

----6、安装进销存系统
--sArg = "/i " .. _SourceFolder .. "\\PCSetup.msi";
-- --Dialog.Message("提示信息","安装包路径:" .. sArg);
--File.Run("msiexec.exe",sArg,"",SW_SHOWNORMAL,true);


--Dialog.Message("提示", "安装完毕。");
Application.Exit(0);</Script>
sloves1988 2010-05-19
  • 打赏
  • 举报
回复
在我制作安装文件时,怎么才能设置我一个安装包结束时,才安装另一个呢?
******************************************* ************ WPTOOLS 6 History ************ ********** http://www.wpcubed.com ********* **** Copyright (C) 2012 J. Ziersch and **** **** WPCubed GmbH, Munich, Germany ******** ******************************************* * - = bug fix * + = new feature * * = changed, expanded feature ******************************************* * IMPORTANT: Please edit file WPINC.INC to * activate WPREPORTER, WPSPELL, wPDF, TBX * and GraphicEx / PNGImage support! * Delphi 2009 and later as inbuilt PNGImage ******************************************* * THE MANUAL (PDF) AND REFERENCE (HLP,CHM) * ARE PROVIDED AS SEPERATE DOWNLOADS! ******************************************* ~~~~~~~~~~ Important Notes ~~~~~~~~~~~~ - With Delphi XE2 or XE3 it is possible to compile WPTools into a 64 bit applications. You need WPTools 6 PRO or WPTools 6 Premium for this. - Localization and Inch/CM selection see http://www.wpcubed.com/manuals/wp5man/index.html?localization.htm Also see demo\tasks\localization. There are the required XML files. - if flag wpDontAddExternalFontLeading is active in property FormatOptionsEx the text will be formatted more like WPTools4/MS-Word. You can alternatively set global variable WPDoNotAddExternalFontLeading := TRUE and select the Printer WYSIWYG mode: TWPRichText1.HeaderFooter.UpdateReformatMode(true) - The FormatOption wpDisableAutosizeTables can be required for good display of tables. wpNoMinimumCellPadding for narrow layout, too. - If you plan to use DBWPRichText please check http://www.wpcubed.com/forum/viewtopic.php?p=3456 - The reader/writer receive their options through "FormatStrings" please see list at http://www.wpcubed.com/manuals/formatstrings.htm - WPTools is configured using the file WPINC.INC, here WPREPORTER is activated and the optional WPShared, WPSPell and wPDF can be selected to be compiled into main WPTools package. - also see FAQ: http://www.wpcubed.com/forum/viewforum.php?f=15 - and support forum: http://www.wpcubed.com/forum/ - WPTools 6 PRO and PREMIUM will be compiled as Version 5 if $define "WP6" is not set ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We recommend to use TMS components to create modern user interfaces, toolbars and ribbons. 19.2.2013 - WPTools 6.29.1 - fix in rtf writing code to solve problem with merged cells - fix possible rangecheck error - fix problem with TextObject.LoadFromFile and Delphi XE3 * RTF reader now handles UNC file links which use "\\" in the path * the cursor was not painted if DoubleBuffered was set to true for the parent of the editor + WPTools Premium: Saves and loads \column * improved theming of TWPToolbar and TWPToolPanel + new event: OnPaintDesktopBackground. It can be used to draw the parent of the editor, for example if it is a TMS panel or pager control. Example: procedure TForm1.WPRichText1PaintDesktopBackground(Sender: TObject; Canvas: TCanvas; R: TRect); begin // This would paint the TWPRichText, too - but TWPRichText is locked for repaint during this event AdvOfficePager1.PaintTo(Canvas, -WPRichText1.Left, -WPRichText1.Top); end; - HighlightTextColor can now also be used if 2Pass Painting is used 21.12.2012 - WPTools 6.29 - images in RTF label were not painted when label was moved + added support for XE3 to WPTools STD edition * stream RTFvariables were not loaded from WPT format. They are loaded now. 9.11.2012 - WPTools 6.28 - Update to RTF reader to load landscape flag for sections better - when page mirror was used, after a page break the text indentation was sometimes wrong - hyphenation code was broken - workaround for word files which have space characters in table definitions 16.10.2012 - WPTools 6.27'' * some additions to the PRO edition for XE3 26.9.2012 - WPTools 6.27' * The PRO Version now supports Delphi XE3 3.8.2012 - WPTools 6.27 - fix for wrong display of tables with header and footer rows. Sometimes both were painted without any data. + to load old Hiedit templates as RTF code use the formatstring -HiEditFields. This will create merge fields for ALL fields. - NL sign was not shown right after CTRL+ENTER was pressed (requires ShowNL) - fix for rangecheck exception with paintpages array - fix for footer and page mirror - doubleclick word selection now stops at NL - Workaround for Windows Spooler problems - some images would get lost - sections use footer and header of previous section, not general - ASetBorder did change all border types 12.3.2012 - WPTools 6.25.4 * allows changing of column width in redonly editors. Can be switchoed off in EditOptions or set compiler define TOTALREADONLY + wpDisableSelectAll in EditOptionsEx2 * changed reformat/repaint after Undo/Redo - pro and premium: Due to a problem with precompiler cursoir selection did not work correctly 8.3.2012 - WPTools 6.25.3' - borders for paragraphs with multiple lines were not drawn correctly - change in DBWPRich.pas to use LoadFromString instead of Text - fix possible range check error - change in WPTbar.pas to use different default for BevelOuter - change in WPIOHTML to use default charattr of paragraph is a paragraph is empty 9.2.2012 - WPTools 6.25.2 * new 2-pass painting triggers CustomPaint event only on second loop (when the text is painted) * changed protection of empty paragraph to WPTools 5 way + inside of the OnPrepareImageForSaving event it is now possible to set Writer.CurrentImageName to the name of the file which should be saved. This is only useful if ObjRef = nil and so no ObjRef.Filename can be set. + TParagraph.GetSubText now has optional parameter to disable the object reference char codes #1, #2 and #3 * HTML writer ignores #13 codes when writing the text. * additional savety code in HTML writer * HTML reader sets image width and height to contents, (if possible) * HTML reader: changes UTF8 handling for UTF8Sequence=1 * HTML reader does not stop on \0 anymore * HTML writer writes img tag also for empty images IF a name is provided in event PrepareImageforSaving * HTML reader does not add space at end anymore - the UNICODE reader uses attribute of current paragraph. This is important for consistent behaviour between ANSI and UNICODE version - when writing HTML background color is not set to white when shading is 0. 0 is treated as default value. - image align center and right now works in HTML - fix an endless loop when image was too large - improvement of table border drawing - improvement for right align in table cells + numbering will be used when wpFormatAsWebpage was set in AsWebpage 10.1.2012 - WPTools 6.25 + HTML reader reads cell heighs - RTF writer writes background color easier to understand by Word * improved XML reader/writer (unit WPIOXml1) * improved word wise cursor movement when fields are used + new "paint attributes" mode. Use WPRichText1.BrushStart to select this mode. - dashes were not painted using the current font color - some stability improvements 7.11.2011 - WPTools 6.22 + procedure TParagraph.CellSelectionAdd; + procedure CellSelectionRemove; + EditOptionsEx2: wpCellMultiSelect - allows multiselection in tables when CTRL is pressed + improved XML import/export (unit WPIOXML1.PAS) - some smaller bugs fixed 3.11.2011 - WPTools 6.21.2 - fix problem with TWPToolButton - improved HTML writer to write parameters in "" - improved display of arabic text 24.10.2011 - WPTools 6.21.1 - fix problem when painting insertpoints after tab stops. They were painted two times. - fix in XML and HTML writer. Close tags when extracting text from fields 19.10.2011 - WPTools 6.21 + CodeLocate can now also accessed in non-visual TWPRTFDataCollection and not just TWPCustomRtfEdit + CodeSelect can now also accessed in non-visual TWPRTFDataCollection and not just TWPCustomRtfEdit + TWPRTFDataCollection.CodeLocatePair( FormatName : String; var spar, epar : TParagraph; var spos, epos, : Integer ) :Integer; - solves problem with integrated Bin64 decoder + DeleteField now has optional "Contents" parameter to delete a certain field with contents + the text writer now understand the option -softlinebreaks to create a \n at the end of every line. In fact all soft line breaks will be handled like the #10 code. + CodeLoadSaveEmbeddedText - load or save text in fields, bookmarks, hyperlinks + the regular save and load methods (LoadFromFile, SaveToFile) can now access text wrapped by paired objects. specify the fieldname in the format string, i.e. "f:name=RTF" to save or load the contents of the field "name". + There is an overloaded LoadFromString which expects a WideString as parameter (Delphi 6+) - The Setup named the Delphi 2009 files "Delphi 2005" due to a typo. (Delphi 2005 units are not included anymore) - fix probable range check error in WPRTEDEFS 13.10.2011 - WPTools 6.20 + completely new setup procedure. The PRO and Premium releases don't include object files which makes them much smaller. * compiled new WPTools 6 Reference (CHM file) * Delphi XE2: several small changes to improve theming support * Delphi XE2: several small changes to provide compatibilty to 64bit compiler (requires WPTools PRO) + new demo developed with Delphi XE2, showcases actions, splitscreen, simulated MDI and property dialogs (Demos\XE2\WPWord) + wpDeleteAtEOFRemovesSpaceAfter in EditOptionsEx2 - TextObjectsGetList did not work * WPRuler uses Delphi XE2 VCL Theme plus * added defaults to properties TWPRichText - change in RTF reader to let section inherit the default layout, not the current page layout - fix of problem with table borders when also PageMirror was used. * change to DeleteMarkedChar. It now has additional parameter DeleteEmptyParAndTables : Boolean * change in unit WPWordConv to handle RTF as DOC files if they do not start with "{\rtf" * updated border dialog TWPParagraphBorderDlgEx * updated border drawing code - now supports dotted lines with wider lines. * modified method DeleteColumn * modified WPT reading code to repair table width which were negative + improved image rendering code for transparent (PNG) images. They will be drawn transparently also when scaled and also in high resolution rendering mode. + new code to draw dotted lines which also supports wider lines + new function WPReplaceTokens (unit WPUtils.PAS). It is a ReplaceTokens function to be used on a TWPRTFDataCollection, not TWPRichText - WPPremium - fix problem when there were too columns * MergeText now restores before Merge Cursor position and selection (except for cell selection) * resizing a table column does not move the cursor to the nearby cell anymore * different frame line when resizing columns and rows + InsertColumn now also works if wpAllowSplitOfCombinedCellsOnly was used in EditOptionsEx + new event OnPaintTextFrameRect let you paint background and borders for text frames, i.e. the text body or, with WPTools Premium, custom frames. + WPPREMIUM: In OnMeasureTextPage it is possible to set columns for certain pages. Using PageInfo.colflags=1 it is possible to activate a line between the columns It is also possible to add custom frames using PageInfo.rtfpage.AddFrameRect. + new ViewOptionEx: wpHideParBordersBeforAndAfterPageBreaks + improved paint routine now avoids clipping of characters which were overlapping their bounding box, such as italic letters or "f". The improvement is especially visible when selecting text or using character background colors + WPPREMIUM: it is now possible to print a line between columns using wpShowColumnCenterLine in ViewOptionsEx + With WPTools Premium it is now possible to print a line between certain colums - use par.ASet(WPAT_COLFLAGS, WPCOLUM_LINE); + paragraph styles can now contain border definion for paragraphs + TWPTextObjList now has a IndexOfSource function and a Source[] string array to access the objects * revised code to draw double borders - always draws twou lines on screen even when zoomed * improved saving of numbering attributes with styles * style dialog can now apply number level even if style does not have numbering yet. * revised wpNoEditOutsideTable - was not checked for keyboard input * fix problem with - - - - - at end of line - fix problem with spell-as-you go after hyperlinks - fix problem with page numbers in sections when tables were spanning pages - fix problem with right aligned negative numbers in merge fields * automatic text attribute was not inherited to tables inserted in fields * images with mode "under text " can now be also clicked at positiones where there is no text. - WPLngCtr now defines DONT_OVERRIDE_COM, that fixes the IDE problem with DevExpress Toolbar controls 18.7.2011 - WPTools 6.16.2 * ObjectMode wpobjPositionAtCenter can be used to aligh character based images to the center line. (Other RTF reader will not understand this feature) * some changes to prepare 64bit compatibility (requires WPTools 6 PRO) 7.7.2011 - WPTools 6.16.1 * change to avoid flickering when doing auto scroll * message strings are now loaded from resource strings - modified DBCS support for RTF reader * outerborder action now works for sinle cells and paragraphs 15.6.2011 - WPTools 6.16 + Many improvements to new Border Dialog. It is now possible to apply borders and colors to odd and even rows only. * RTF reader defines symbol IGNORE_AUTOWIDTH_TBL. This disable the Word2010 auto width columns which are not read correctly. Reason: Word 2010 seem to always add an empty column to the end. + using WPRichText1.Caret.Blink:=true it is possible to activate the blinking caret (0.5sec interval). * updated actions to apply inner and outer borders to selected cells * update to ExSymbolDialog, Tab and Table dialog - improved WPTOOLS reader to read and apply outline properties to current outline setting (unless wpLoadDoesNotOverride is used) - wpsec_ResetPageNumber flag is now saved in WPTOOLS format * tripple click in margin selects paragraph + double click in margin selects current cell + tripple click in margin selects current row - change for PaintEngine and TWPRichTextLabel to not shrink tables which are small enough to fit the page This solves a problem with dissapearing text in WPRichTextLabel - fix selection problem when several images were linked to same paragraph - when moving images the Z order will not be reset - HTML Writer: A style with name "DIV" will be added to the style sheet to save the default font - HTML Writer: BaseFont tag will now be written with font size (requires -writebasefont option) - improved display of character background color for fields and other special code - Saving a style sheet did not work with Unicode Compiler 8.5.2011 - WPTools 6.15 * updated border painting * updated Inner/Outer Border Action * new object sizing routine lets the user make the size larger than the page - update in WPTools reader to overwrite outline styles when loading tzhe same group 9.3.2011 - WPTools 6.14.6 * change in format routine to fix problem when a nested table cell caused a page break. 14.12.2010 - WPTools 6.14 * fix for SetAsString code (Unicode Delphi) * several fixes and updates in editor * WPTools Premium: $define DONT_AUTOENTER_TEXTBOXES in WPINC.INC to switch of the behavior, that when editing a textbox the user can click on any other and edit that. 22.9.2010 - WPTools 6.13.3 * WPCtrMemo.PAS now defines TEXT_IS_UNICODE fro Delphi 2009 and later. Now the property Text and SelText reads and writes unicode strigs * change in RTF reader to read ANSI characters in the range 128..255 * Tables and rows can now be hidden. (TParagraph.Hidden) * The Lines property now supports unicode strings (Delphi 2009 and later) + HTML reader and writer now use the entitly ­ as soft hyphen 27.8.2010 - WPTools 6.13.2a + new ViewOptionEx wpUnderlineWebLinks. If active links like http://www.wptools.de will be drawn using the attributes for hyperlinks The HyperlinkCursor will be selected and the hyperlink event will be triggered * other fixes in RTF engine - Memo._OverrideCharset was not set to -1 27.7.2010 - WPTools 6.13.1 + WPRichText1.Memo.ColorGridLines can be used to change the color of the grid lines (ViewOptions) 23.7.2010 - WPTools 6.13 * several improvements of editor * improvement to RTF writer to when writing table cells * improved right aligned text * fixed problem with line heights of lines which are empty except for new line character 22.6.2010 - WPTools 6.12.1b - fix for problem when pressing Accent + Backspace - fix for WPReporter to assign default attribute to destination - fix for WPReporter to move images when converting templates 18.6.2010 - WPTools 6.12.1a * the new border dialog now reads the current border attributes from table cells, tables or selections - Premium: fix problem when loading columns which started on first line - fix in wpfUseKerning mode (FormatOptionsEx2) - it did not work as expected with some texts (We recommend to use wpfUseKerning - it produces better print quality on screen) * Pasting of HTML now works better - fix for right tabs when also borders were used 13.6.2010 - WPTools 6.12 + all new, powerful yet intuitive Border dialog. The border dialog can modify a range of selected cells, columns, rows, tables and also only modify certain properties while leaving the others unchanged. You need to activate the compiler symbol NEWBORDER to use it by default + new method: procedure SetBorderProperties(Inner, Outer: TWPTextStyle; ApplyMode : TWPParagraphBordApply; Mode : TWPUpdateBorderProperties = [wpSetBorderFlags, wpSetBorderType, wpSetBorderWidth, wpSetBorderColor, wpSetParColor, wpSetParShading]); This method is mainly used by the new border dialog. + new flags in ViewOptionsEx: wpShowCurrentCellAsSelected, // Displays current cell to be selected. Disables current selection wpShowCurrentRowAsSelected, // Displays current table row to be selected. Disables current selection wpShowCurrentTableAsSelected // Displays current table to be selected. Disables current selection + new property YOffsetNormal to defined an upper border for normal and wordwrap view. * feature Header.MarginMirror changed to work like MS Word new flag: wpMarginMirrorBookPrint in FormatOptionsEx2 to enable the previous logic * workaround for MouseWheel UP beeing triggered too often (10 mms check) + ClipboardOption wpcoDontPasteHTML to disable HTML pasting completely (avoid problems with firefox) + it is now possible to load base64 embedded JPEGs from HTML * it is now possible to change width of tables which exceed right margin - fix bug in HTML writer for lists in table cells - fix in RTF writer to write character colors also for text which is using a character style - fix: numbering was not always updated - fix: better use fonts in certain RTF files written by MS Word + Update to WPLanguageControl to make Localization easier to use. Only< this code is not required: procedure TForm1.WPLanguageControl1Loaded(Sender: TObject); begin WPLangInterface := TWPLocalizationInterface.Create(WPLanguageControl1); WPLocalizeAllStrings; end; 6.5.2010 - WPTools 6.11.2 * improvement to border rendering * improvement to XML unit WPIOXML1 (Premium) 5.5.2010 - WPTools 6.11.1 + ConvertTableToText now supports option to also handle soft line breaks - fix problems with underlines at end of line - fix problem when loading hyperlinks in RTF - fix problem when saving attributes to XML (WPTools Premium) - fix problem with text rendering - fix problem with tables which habe header row and pages with different header margin 19.4.2010 - WPTools 6.11 + EditOptionEx: wpRowMultiSelect + new event: OnInternPaintPar + new event: RTFDataCollection AfterApplyUndoObject 14.4.2010 - WPTools 6.10.6 * fields are now passed as unicode strings to PDF exporter * Delphi 2010/2009 import has been improved to load unicode values which are stroed in fields. 5.4.2010 - WPTools 6.10.5 + flag: wpDontExtendSelectionToRightMargin. Do not extend selection to end of line + wpInvertActiveRow in ViewOptionsEx - some fixes for Delphi 2009 and Delphi 2010 - fix for section support - WPTools premium: Fix for images in text boxes - workwaround to load RTF which use emfblib for pngblib 28.2.2010 - WPTools 6.10 - improve word left/right movement to skip hidden text - improve http load of images - improve support for numbering - improve saving of character style attributes 11.2.2010 - WPTools 6.09.1 + LoadFromString now has a "WithClear" parameter - fix in RTF reader to better load files which do not define codepage - fix in paint routine to solve a rare lockup - fix in format routine to improve section support 6.2.2010 - WPTools 6.09.1 - fix of problem in save routine when footnotes were used (WPTools premium) - fix in HTML writer - Image optiions now have a Rotation property which allows 90, 180 and 270 setting. - HTML reader and writer now support different colors for left,right,top, bottom lines 1.2.2010 - WPTools 6.09 - HTML writer will write 8 hard spaces for TAB stops at the start of a paragraph - HTML writer will write page information only if -PageInfo was used in format string - fix problem with left aligned text and image wrap around (wrong alignment) - fix problem with sometimes duplicated images in PDF export - fix problem with black rectangle in first line under Windows 7, 64 bit - Improvment to RTF reader to ignore section properties which are not followed by \sect 14.12.2009 - WPTools 6.08 - graphics are resized to fill text area - fixed problems in numbering - fixed problem with one word paragraphs in justified paragraphs - other improvements in editor 27.10.2009 - WPTools 6.07 - fixed one leaking TList per TWPRichText * improved layout of most important dialogs * improved extended insert symbol dialog - fix in RTF reader to load sections and header+footer written by Word 2003 - don't add unwanted cell padding when loading table cells - fix in WPTools reader to read custom number styles - if paragraph styles use number styles the indent defined in the style has priority over numberstyle - LabelDef now also works for one row and one column - better handling of mousewheel event - fix for tabs in tables + GIF animation (requires GifImage) library (not threaded) to use it You need to set ViewOption wpUseOwnDoubleBuffer and call the method RefreshAniImages using a timer object. - fix problem when sections were used with LabeDef.Active = true * change in HTML writer to close tags before paragraph end 4.10.2009 - WPTools 6.06 - fix problem with Delphi 2010 support (language control) - fix problem with PDF export to reduce PDF size - improve support for IME * improve AsWebPage format mode. Now WordWrap propery is supported. - fix searching text upwards with "Whole Word" selected + RTF writer now can use format option "-writehighlight" to writh \highlight instead of \cb 14.9.2009 - WPTools 6.05.9 + added Delphi 2010 Support - problem when pasting from "The Bat" - fix problem in Delphi 2009 (Assign Method) 3.8.2009 - WPTools 6.05.8' * when using "Delete All" in the tabstop dialog, all tabs will be cleared added to manual: Tabstop Category - fixed problem when deleting text in a paragraph. The alignment was cleared unexpectedly. - fix problem with installer, WPMangeHeaderFooter.DFM was not included - fix for IPara in mail merge field objects - improved handling of hoover effect for hyperlinks - improved text rendering for wPDF output (CID Mode) - add correct WPManHeadFoot.dfm 23.7.2009 - WPTools 6.05.7 + WRITE_PROP_WPTOOLSOBJ $define in WPIOWriteRTF. Avoid problems when saving RTF and opting in Word In case of special objects, such as SPAN codes, \*\wpfldinst is beeing written what is ignored by WOrd + Dialog HeaderFooter can optionally create and manage header&footer for the current section + new KeepN Handling. This is by default activated in FormatOptionsEx2 + new wpfHideParagraphWithHiddenText in FormatOptionsEx2. Now paragraphs will be hidden if empty or only contain hidden text. + new format option -zap1 will remove the every first byte to convert a two byte stream into singly byte -zap2 will remove every second byte. Usie this option when loading data from unicode data sets - bugfix for table loading in RTF 15.7.2009 - WPTools 6.05 + TParagraph.Trim method to remove white spaces at start and end + Vertical Scrolling by pressing the middle mouse button now works. + improved auto thumbnail mode * enhancement to HTML reader / writer to handle embedded SPAN objects + new method: ApplySPANStyles(and_remove : Boolean=false; ignore_charattr : Boolean = false); can be used to apply SPAN styles to the text which it embeds + The function InputSpanObjects( Attributes : TWPAbstractCharAttrInterface ) : TWPTextObj; can be used to wrap the selected text into SPAN objects + method LoadCSSheet can be used to load paragraph styles in CSS format from a string - fix problem with Wordrwap and centered text + new even OnTextObjectMovePosition (move event) - OnTextObjectMove is still used for resize (unchanged) 28.6.2009 - WPTools 6.04 + WPTools Premium: Column Balancing * many improvements in RTF reader. Word documents are now understood better * Improvement in check for protected text (ppMergedText) + new ViewOptionsEx property - auto hyperlinks were not working + TWPComboBox has an event OnUpdateItems which will be triggered after the items had been automatically assigned. 24.6.2009 - WPTools 6.03.6 * thinner page borders in thumbnail mode. ViewOptionsEx: wpAutoThumbnailMode will show pagenumbers only when in thubmbnail mode (= wpShowPageNRinGap in ViewOptions) + property ColorDesktop and DeskGradientHorizontal to render the background with a gradient fill * fix for protected text handling (CR after a field) * fix for text alignment near a movable image - EditOption AutoDetectHyperlinks was not working anymore * WPReporter: SuperMerge.Stack.PageBreakAFterGroup := true was ot working when footers were used 1.6.2009 - WPTools 6.03.5 - fix problem with display of character attributes when attributes were inherited from paragraph styles - fix problems with selection deletion in single column, single row tables - improvement of RTF writer when writing sections 11.5.2009 - WPTools 6.03.3 - improved report band dialog, new ShowOptions property - fix in RTF reader to load header/footer - change in HTML writer to save SPAN instead of FONT tag - several fixes in editor * WPTools Premium: better column support. Fixed column height now splits correctly on 2 pages. 28.4.2009 - WPTools 6.03.2 - fix problem with justified text in PDF 21.4.2009 - WPTools 6.03.1 - fix problem with images when used in Delphi 2009 - better support for header/footer in RTF files created by word. (Ignore bogus header/footer) - soome stability fixes 25.3.2009 - WPTools 6.03 + improved text rendering - optimation for character distances on screen to provide better display + improvement on ShowMergeFieldNames to improve cursor movement and drag and drop + automatic disable dragging of fields inside of fields + improved merge field selection. TextObject.SelectedObject now returns the mergefield if it was completely selected + change in HTML saving code to save src in after width adn height (for outlook) * various bugfixes 17.1.2009 - WPTools 6.02 - WPPREMIUM: Text after Columns initialized with WPAT_COLUMNS_Y is now allowed + TWPToolBar FontName drop down now lists fonts used by document first - fix for tables which use a fixed row height and are splitted on different pages + improvements necessary for Delphi 2009 - the Locaization demo now works + EditOptionEx wpDontPreserveObjectsAgainstDeletion - fix problem in ImageObject LoadFromStream when GraphicEx is used - fix problem with Delphi 2009 when loading WPReporter templates - fix problem with HTML reader with paragraph style of first paragraph + GetFontUnicodeRanges dynamically linked to avoid Win98 problem 26.10.2008 - WPTools 6.01 * updated HTTP Demo, now with "Source View" + DELETE/BACKSPC at start of line removes right/center alignment + loads background images for paragraphs, tables and styles * improvement to text protection (empty lines) - improvements to HTML and CSS reader - improved HTML format routine - improved MIME loading - now supports binary data despite Synapse does not) + MIME reader capturesHTML body for SourceVIew * DataProvider now uses MergeText('',true) instead of MergeText + boolean wphttp_Disable to disconnect HTTP temporarily * several changes to improve compatibility with Delphi 2009 17.10.2008 - WPTools 6.00.1 - several changes to fix problems which occured with use of Delphi 2009 * update to WPIO_MIME to also load binary encoded GIFS and JPEGS from EML files 16.10.2008 - WPTools 6.00 * new installer + VCL demo * fixed problem with TWPComboBox and default attributes * updated "Tasks\Mini" demo project - fix in default actions 3.10.2008 - WPTools 6 Beta c - remove not required unit reference form WPRTEReport * update to manual 2.10.2008 - WPTools 6 Beta b - fix in Installation script 30.9.2008 - WPTools 6 Beta a 1) Application-Server-Mode WPTools 6 introduces a feature which is called "Application-Server-Mode". This is only available when you have the PREMIUM version. This mode is activated when true is assigned to the global boolean variable WPAppServerMode. When this mode is activated the editor does not use the double buffered output anymore. While this can cause some flickering the network traffic is reduced when the application runs on an application server, such as Citrix. Please note, effective with WPTools 6, software which was written for application servers (such as clinic software) may only be distributed when a TEAM or SITE license of WPTools was acquired.END 2) Integrated Label Printing When activated the integrated label printing shows multiple labels on one virtual sheet of paper. The cursor can move from label to label freely. The user can so edit the labels, add new or delete unwanted labels before the complete sheet is printed. This is a very unique and versatile feature. 3) Additions to the PDF export with wPDF V3 Create embedded data objects Create edit / memo fields Create a check box field Also the creation of PDF tags was enhanced. So now hints to paragraph styles will be also exported. 4) Additional Control over Clipboard Actions a) properties to select the format b) added security 5) Added Section API + WPRichText1.ActiveSection + WPRichText1.InputSection + TWPPagePropDlg has new method ExecuteEx. Use it to change current page size or Section WPPagePropDlg1.ExecuteEx(WPRichText1.ActiveSection); 6) Load over HTTP connections (requires Synapse) 7) Load and save MIME encoded HTML with embedded images (requires Synapse) 8) Integrated XML syntax highlighting (non destructive) 9) WPReporter: Token to Template conversion with syntax highlighting 10) Additions to paragraph API 11) Special mode to format HTML documents
Release history (reverse chronological order) This release 1.3.7.1 Release date: December 11, 2006 Known bugs: none Fixes/features added from previous release: a) added support for multiple filters per process in VsDrvr.dll b) updated manual Previous release 1.3.5 Release date: October 11th, 2005 Known bugs: none Fixes/features added from previous release a) added VsSetWavelengthStep and VsGetWavelengthStep functions b) added VsSetWavelengthWavesConfirm() function c) fixed error-handling of VsSetWavelength() In earlier revisions, the error status light was cleared after a VsSetWavelength() call failed, so the user did not see the light turn red to alert that an error had occurred. This has been fixed in 1.35 so the error light remains lit, and an error code is returned. d) added range-check to VsDefinePalette() Previous revisions did not range-check the palette index number, and hard crashes could be produced if out-of-range values were supplied to this routine. Previous release 1.33b Release date: February 9, 2005 Known bugs: none Fixes/features changed from previous release: a) Fixed installer: programmers?guide (vsdrvr.pdf) installed when SDK is selected. Previous release 1.33a Release date: January 10th, 2005 Known bugs: i) SDK programmers?guide is not installed even if SDK is selected. Fixes/features added from previous release a) VsDrvr.dll fixed handling of COMx ports that do not support 460kb The autobaud sequence tries a variety of baud rates, some of which are not supported by RS-232 interfaces (but are supported on USB virtual COM ports). This was not handled properly, so if a call was made to VsOpen when no VariSpec was present, but a later call was made when a filter was present, the latter would fail. b) VsGui added check of which COMx ports are present on computer This program now filters its COMx list and only shows ports which actually exist; it used to show COM1 ?COM8 even if not all of these were present. c) VsGui added automatic filter detection on Configure dialog This checks all ports in turn, and reports the first detected filter. The search order is determined by the order in which the computer lists ports in the Registry. d) VsGui changed to recognize filters as present while initializing In prior revisions, VsGui would not report no filter found if a filter was present but still going through its power-up initialization. Now, a message box is posted to indicate that a filter was found, and the program checks whether initialization is complete, at 1 second intervals. When the filter is done initializing, the VsGui controls become active and report the filter information (serial number, wavelength range, etc). e) VsGui added filter status item to Configure dialog Adjacent the COMx combo box, there is now a text field that indicates filter status as 揘ot found? 揑nitializing? or 揜eady? This field is updated whenever the combo box selection is changed. Previous release 1.32 Release date: July 27th, 2004 Known bugs: COMx port described above as 1.33 fix item a) Fixes/features added from previous release a) VsGui added a sweep feature to enable cycling the filter The wavelength start, stop, and step are adjustable. Cycling can be done a fixed number of times or indefinitely. Previous release 1.30 Release date: June 23rd, 2004 Known bugs: none Fixes/features added from previous release a) New commands VsSetWaveplateAndWaves(), VsGetWaveplateAndWaves(), VsGetWaveplateLimits(), and VsGetWaveplateStages() were added for support of variable retarder models. b) New commands VsSetRetries() and VsSetLatencyMs() were added for control of serial port latency and automatic retry in case of error. c) New commands VsSetMode() and VsGetMode() were added for control of the VariSpec filter抯 triggering and sweep modes d) New command VsGetSettleMs() was added to learn optics settling time e) New commands VsIsDiagnostic() and VsIsEngagedInBeam() were added. These are reserved for CRI use and are not supported for use by end users. f) The command syntax and functionality of the VsSendCommand() function was changed - see description of this command for details g) The VsGui program was modified to add sweep function, and the associated files were added to the file manifest. The new functions are assigned higher ordinal numbers than the earlier commands, so the ordinal numbers assigned to routines in the earlier VsDrvr routines are preserved. This means one may use the new VsDrvr.dll file with applications that were developed and linked with the earlier release, without any need to recompile or relink the application. Of course, to use the new functions one must link the application code with the new .lib file containing these functions. Previous release: 1.20 Release date December 3rd, 2003 Known bugs: a) there is a conflict when one uses the implicit palette to set wavelengths, and also defines palette states explicitly using the VsDefinePalette() function. When the explicitly set palette state overwrites a palette state implicitly associated with a certain wavelength, that wavelength will not be accurately set when one issues the VsSetWavelength() command. This is fixed in release 1.30 Fixes/features added from previous release a) fixes bug with implicit palette in September 8 release b) incorporates implicit retry for command send/reply if error in transmission c) recognizes filters with serial numbers > 60000 (normally VariLC numbers) d) supports binary transfer of >127 bytes Previous release 1.11 Release date September 8, 2003 Known bugs a) implicit palette can fail to create palette entry, causing tuning error b) VsSendBinary() fails if 128 chars or more sent (signed char error) Fixes/features added from previous release a) included VsIsPresent() function omitted from function list of 1.10 release Previous release 1.10 Release date: August 28th, 2003 Known bugs: a) VsIsPresent function not included ?generates 搖nresolved external?at link-time Fixes/features added from previous release: b) added command VsEnableImplicitPalette() to code and documentation added command VsConnect() to code and documentation added command VsClose() to code and documentation added local variable to avoid unnecessary querying of diagnostic status documented that command VsConnect() will not be supported in future documented that command VsDisconnect() will not be supported in future documented that command VsIsConnected() will not be supported in future changed to Windows Installer from previous ZIP file added table summary of commands to this manual Previous release 1.00 Release date: November 5th, 2002 Known bugs: a) none Fixes/features added from previous release b) n/a ?initial releaseDescription This package provides a set of functions to control the VariSpec filter, which may be called from C or C++ programs. It incorporates all aspects of the filter communication, including low-level serial routines. With these routines, one can address the filter as a virtual object, with little need for detailed understanding of its behavior. This simplifies the programming task for those who want to integrate the VariSpec into larger software packages. File manifest All files are contained in a single installer file which includes the following: vsdrvr.h declaration file vsdrvr.lib library stub file vsdrvr.dll run-time library vsdrvr_r1p30.pdf (this file) release notes and programmer抯 guide {sample program using VsDrvr package} registryAccess.cpp registryAccess.h resource.h stdafx.h VsConfigDlg.cpp VsConfigfDlg.h VsGui.cpp VsGui.h VsGui.mak VsGui.rc VsGuiDlg.cpp VsGuiDlg.h VsSweep.cpp VsSweep.h Development cycle In order to use the DLL, one should take the following steps: a) Add #include 搗sdrvr.h?statements to all files that access the VariSpec software b) Add vsdrvr.lib to the list of modules searched by the linker c) Place a copy of vsdrvr.dll in either the folder that includes the executable code for the program being developed; or, preferably, in the windows system folder. Failures in step a) will lead to compiler errors; in step b) to linker errors; in step c) to a run-time error message that 揳 required .DLL file, vsdrvr.dll, was not found? VariSpec filter configuration The VariSpec filter communicates via ASCII commands sent over an RS-232 interface or USB. The RS232 can operate at 9600 or 19,200 baud, while the USB appears as a virtual COMx device. While it appears to be present at either 9600 baud or 115.2 kbaud , the actual data transmission occurs at 12 MBaud over the USB. Each command is terminated with an end-of-line terminator which can be either a carriage-return or line feed . For RS-232 models, the baud rate and terminator character are selected using DIP switches inside the VariSpec electronics module. Default settings are 9600 baud, and the character (denoted 慭r?in the C language). For USB devices, the terminator is always . For latest information, or to determine how to alter the settings from the factory defaults, consult the VariSpec manual. Timing and latency The VariSpec filter takes a finite time to process commands, which adds an additional delay to that imposed by simple communication delays. In general, the time to process a given command is short except for the following operations: ?filter initialization ?wavelength selection ?palette definition The first of these is quite lengthy (30 seconds or more) because it involves measurements and exercising of the liquid crystal optics. The latter two are much faster but still can take a significant amount of time (up to 300 ms) on the older RS-232 electronics due to the computations involved. On the newer, USB electronics, the latter two functions are completed in less than 5 ms. For this reason, the functions that handle these actions offer the option of waiting until the action is complete before returning (so-called synchronous operation); although they can be called in an asynchronous mode where the function returns as soon as all commands have been sent to the VariSpec, without waiting for them to run to completion. Another option is to use implicit palette tables. If this is enabled, by calling the VsEnableImplicitPalette() function, the driver will define the settings for a given wavelength once, then saves the results within the VariSpec for faster access next time that wavelength is used. Subsequent access times are essentially instantaneous, until either all of the 128 palette states are in use, or the palette is cleared via the VsClearPalette() command. The VsIsReady() function can be used to determine whether a filter is done processing all commands. Ideally, one should check VsIsReady() using a timer or the like to wait efficiently, so that the host PC is free to do other tasks while waiting for the VariSpec. The VariSpec always processes each command to completion before starting on the next command, and it has a 256 byte input buffer, so there is no problem issuing several commands at once; they will all be executed, and in the order given. This also indicates another way to coordinate one抯 program with the VariSpec filter: one can issue any of the VsGetxxx() functions, which query the filter. Since these do not return until the filter has responded, one may be sure that there are no pending commands when the VsGetxxx() function completes. The VsDrvr package provides for automatic re-try of commands up to 3 times, in the event that communications are garbled, and will wait up to 2 seconds for completion of serial commands. The number of retries can be set from 0 to 10, and the latency adjusted, if desired. However, there should be no need to do so. The hardware and software have been tested and observed to execute several million commands without a single communications error, so in practice the need for the retry protocol is very slight. Communication speed is not improved by reducing the latency, since commands proceed when all characters are received, and the latency time to time-out is only relevent when there is a communications lapse ?and as noted, these are very unlikely so the performance burden of retries should not be a practical consideration. Multiple Filters and Multiple Processes These routines only permit one VariSpec per process, and one process per VariSpec. So, these routines cannot control multiple filters at once from a single process; nor can several active processes seek to control the same filter at the same time. The VsDrvr package anticipates a future upgrade to enable control of multiple filters per process, so it makes use of an integer handle to identify which VariSpec is being controlled, even though (for now) only a single filter can be active. This handle is checked, and the correct handle must be used in all calls. Program flow and sequence Typical programs should use the following API calls (all applications, upon initiating link to the filter) ?call VsOpen() to establish communications link (required) ?call VsIsPresent() to confirm a filter is actually present ?call VsIsReady() in case filter is still doing power-up sequence ?call VsGetFilterIdentity() to learn wavelength limits and serial number if needed (if setting wavelengths via implicit palettes; recommended especially with older filters) ?call VsEnableImplicitPalettes() ? (to set wavelengths, either directly or via implicit palettes) ?call VsSetWavelength() and VsGetWavelength() to select and retrieve tuning (if setting wavelengths by means of palettes, and managing palettes explicity) ?call VsDefinePaletteEntry() and VsClearPalette() to define palette entries ?call VsSetPalette() and VsGetPalette() to select and retrieve palette state (all applications, when done with the filter) ?call VsClose() to release the communications link (required) Sample program Source code for a sample program, VsGui, is provided, which illustrates how to control a VariSpec filter using the VsDrvr package. All filter control code lives in the VsGuiDlg.cpp module, specifically in the Connect(), RequestToSetWavelength(), and VsWriteTimerProc() functions. The latter two use a system timer to decouple the GUI from the actual filter control, for more responsive feedback to the user. Such an approach is unnecessary if palettes are used, which is preferable when one wishes the best real-time performance. See the VariSpec manual for further information. Auxiliary commands Certain commands are normally only used at the factory when filters are being built and configured, or in specialized configurations. These appear after the normal command set in the listing below. Obsolescent commands The VsConnect(), VsIsConnected(), and VsDisconnect() functions are obsolescent. They are supported in this release, but will not necessarily exist in releases after 1.3x. As they are obsolescent, they are not recommended for new code. These function calls are not documented further in this manual.Summary of commands Normal Commands VsClearError(vsHnd) VsClearPalette(vsHnd) VsClearPendingCommands(vsHnd) VsClose(vsHnd) VsDefinePalette(vsHnd, palEntry, wl) VsEnableImplicitPalette(vsHnd, isEnabled) VsGetError(vsHnd, *pErr) VsGetFilterIdentity(vsHnd, *pVer, *pSerno, *pminWl, *pmaxWl) VsGetMode(vsHnd, int *pMode) VsGetPalette(vsHnd, *ppalEntryNo) VsGetSettleMs(vsHnd, *psettleMs) VsGetTemperature(vsHnd, *pTemperature) VsGetWavelength(vsHnd, *pwl) VsGetWavelengthAndWaves(vsHnd, double *pWl, double *pwaves) VsGetWaveplateLimits(vsHnd, double *pminWaves, double *pmaxWaves) VsGetWaveplateStages(vsHnd, int *pnStages) VsIsPresent(vsHnd) VsIsReady(vsHnd) VsOpen(*pvsHnd, portName, *pErrorCode) VsSetLatencyMs(vsHnd, nLatencyMs) VsSetMode(vsHnd, mode) VsSetPalette(vsHnd, palEntry) VsSetRetries(vsHnd, nRetries) VsSetWavelength(vsHnd, wl, confirm) VsSetWavelengthAndWaves(vsHnd, wl, waveplateVector) Auxiliary commands VsGetAllDrive(vsHnd, *pStages, drive[]) VsGetNstages(vsHnd, *pStages) VsGetPendingReply(vsHnd, reply, nChars, *pQuit, firstMs, subsequentMs) VsGetReply(vsHnd, reply, nChars, waitMs) VsIsDiagnostic(vsHnd) VsIsEngagedInBeam(vsHnd) VsSendBinary(vsHnd, bin[], nChars, clearEcho) VsSendCommand(vsHnd, cmd, sendEolChar) VsSetStageDrive(vsHnd, stage, drive) VsThermistorCounts(vsHnd, *pCounts) Alphabetical list of function calls Syntax Throughout this manual, the following conventions are used: VSDRVR_API Int32 VsOpen( VS_HANDLE *vsHnd, LPCSTR port, Int32 *pErrorCode ) Bold text is used for function names Italics indicate variables whose names (or values) are supplied by the user in their code Name-mangling The declaration file vsdrvr.h includes statements that render the API names accurately in a C++ environment, i.e. free of the name-mangling decoration suffix that is normally added by C++ compilers. Thus the functions can be called freely from either C or C++ programs, using the names exactly as shown in this manual or in the VsDrvr.h file. Call and argument declarations The call protocol type, VSDRVR_API, is declared in vsdrvr.h, as are the types Int32 and VS_HANDLE. Errors All functions return an Int32 status value, which is TRUE if the routine completed successfully and FALSE if there was an error. If there is an error in the VsOpen() function, the error is returned in *pErrorCode. If there is an error in communicating with a filter after a successful VsOpen(), one should use the VsGetError() function to obtain the specific error code involved. This function returns VSD_ERR_NOERROR if there is no error pending. Main and auxiliary functions The next section provides a description of the main functions, in alphabetic order; followed by the auxiliary functions, also in alphabetical order. In normal use, one will probably have no need for the auxiliary functions, but this list is provided for completeness. VSDRVR_API Int32 VsClearError( VS_HANDLE vsHnd ) Arguments: vsHnd handle value returned by VsOpen() Purpose: this function clears any pending error on the VariSpec. This resets the error LED on the filter, and sets the pending error to VS_ERR_NOERROR. Returns: TRUE if successful, FALSE otherwise Notes: noneVSDRVR_API Int32 VsClearPalette( VS_HANDLE vsHnd ) Arguments: vsHnd handle value returned by VsOpen() Function: clears all elements of the current filter palette and renders the current palette element undefined. Returns: TRUE if successful, FALSE otherwise Notes: none VSDRVR_API Int32 VsClearPendingCommands( VS_HANDLE vsHnd ) Arguments: vsHnd handle value returned by VsOpen() Function: clears all pending commands including any presently in-process Returns: TRUE if successful, FALSE otherwise Notes: none VSDRVR_API Int32 VsClose( VS_HANDLE vsHnd ) Arguments: vsHnd handle value returned by VsOpen(). May also be NULL, in which case all VariSpec filters are disconnected. Function: Disconnects the filter. Returns: TRUE if successful, FALSE otherwise Notes: No other functions will work until VsOpen() is called to re-establish communications with the filter. VSDRVR_API Int32 VsDefinePalette( VS_HANDLE vsHnd, Int32 palEntry, double wl) Arguments: vsHnd handle value returned by VsOpen() palEntry palette entry to be defined, in the range [0, 127] wl wavelength associated with this palette entry Function: creates a palette entry for the entry and wavelength specified. This palette entry can then be accessed using VsSetPalette() and VsGetPalette() functions. Returns: TRUE if successful, FALSE otherwise Notes: palettes provide a fast way to define filter settings for wavelengths that are to be repeatedly accessed. The calculations are performed once, at the time the palette element is defined, and the results are saved in a palette table to tune to that wavelength without repeating the underlying calculations. And, one may cycle through the palette table, once defined, by means of TTL a trigger signal to the filter electronics. For more information about using palettes, consult the VariSpec user抯 manual. VSDRVR_API Int32 VsEnableImplicitPalette( VS_HANDLE vsHnd, BOOL imlEnabled) Arguments: vsHnd handle value returned by VsOpen() implEnabled selects whether to use implicit palette definition Function: enables or disables implicit palette generation when wavelengths are defined using the VsSetWavelength function. If enabled, a new palette entry is created whenever a new wavelength is accessed, and the VsSetWavelength function will use this palette entry whenever that wavelength is accessed again, until the palette is cleared. The result is improved tuning speed; however, it means that the palette contents are altered dynamically, which can be a problem if one relies upon the palette contents remaining fixed. Clearing the palette with VsClearPalette() will clear all implicit palette entries as well as explicitly defined palette entries. This is useful if one knows that wavelengths used previously will not be used again, or that a new set of wavelengths is about to be defined and one wishes to make sure there is sufficient room in the palette. Returns: TRUE if successful, FALSE otherwise Notes: By default, the implicit palette is enabled for VariSpec filters that have RS-232 interface, and is disabled for newer VariSpec filters that have the USB interface. This is because the newer filters perform the filter tuning calculations fast enough that no performance improvement is obtained by using the implicit palette to set wavelength. For more information about using palettes, consult the VariSpec user抯 manual. VSDRVR_API Int32 VsGetError( VS_HANDLE vsHnd, Int32 *pErr) Arguments: vsHnd handle value returned by VsOpen() pErr pointer to the int that will receive the most recent error code Purpose: this function clears any pending error on the VariSpec. This resets the error LED on the filter, and sets the pending error to VS_ERR_NOERROR. Returns: TRUE if successful, FALSE otherwise Notes: noneVSDRVR_API Int32 VsGetFilterIdentity( VS_HANDLE vsHnd, Int32 *pVer, Int32 *pSerno, double *pminWl, double *pmaxWl ) Arguments: vsHnd handle value returned by VsOpen() pVer pointer to variable that receives the filter firmware version pSerno pointer to variable that receives the filter serial number pminWl pointer to variable that receives the filter抯 minimum wavelength pmaxWl pointer to variable that receives the filter抯 maximum wavelength Purpose: this function reads the filter抯 information using the VariSpec 慥?command, and puts it to the call variables. Any one of the pointers may be NULL, in which case that piece of information is not returned. Returns: TRUE if successful, FALSE otherwise Notes: none VSDRVR_API Int32 VsGetMode( VS_HANDLE vsHnd, Int32 *pMode ) Arguments: vsHnd handle value returned by VsOpen() pMode pointer to variable that receives the filter mode Purpose: this function enables one to read the filter抯 present mode. The mode describes how the filter responds to hardware triggers, and is described in the filter manual. If the pointer *pMode is NULL, no information is returned. Returns: TRUE if successful, FALSE otherwise Notes: none VSDRVR_API Int32 VsGetPalette( VS_HANDLE vsHnd, Int32 *ppalEntry ) Arguments: vsHnd handle value returned by VsOpen() ppalEntry pointer to int that receives the 0-based palette entry number. This pointer may not be NULL. Purpose: this function determines what palette entry is currently active and returns it to *ppalEntry. If the present palette entry is undefined, it sets *ppalEntry to ? and returns a successful status code. Returns: TRUE if successful, FALSE otherwise Notes: noneVSDRVR_API Int32 VsGetSettleMs( VS_HANDLE vsHnd, Int32 *pSettleMs ) Arguments: vsHnd handle value returned by VsOpen() pSettleMs pointer to variable that receives the filter settling time Purpose: this function returns the filter抯 settling time, in milliseconds. This is useful for establishing overall system timing. The settling time is defined as beginning at the moment that the electronics have processed the request to change wavelength, as determined by VsIsReady() or equivalent. At that moment, the new set of drive signals are applied to the optics, and the optics will settle in *psettleMs milliseconds. The settling time is defined as a 95% settling time, meaning the filter has settled to 95% of its ultimate transmission value at the new wavelength being tuned to. Returns: TRUE if successful, FALSE otherwise Notes: none VSDRVR_API Int32 VsGetTemperature( VS_HANDLE vsHnd, double *pTemperature ) Arguments: vsHnd handle value returned by VsOpen() pTemperature pointer to double that will receive the filter temperature, in C This pointer may not be NULL Purpose: this function determines the filter temperature using the VariSpec 慪?command, and puts the result to *pTemperature. Returns: TRUE if successful, FALSE otherwise Notes: noneVSDRVR_API Int32 VsGetWavelength( VS_HANDLE vsHnd, double *pwl ) Arguments: vsHnd handle value returned by VsOpen() pwl pointer to double that will receive the filter wavelength, in nm This pointer may not be NULL Purpose: this function determines the current filter wavelength and returns it to *pwl. If the present wavelength is undefined, it sets *pwl to ? and returns a successful status code. Returns: TRUE if successful, FALSE otherwise Notes: none VSDRVR_API Int32 VsGetWavelengthAndWaves( VS_HANDLE vsHnd, double *pwl, double *pwaves ) Arguments: vsHnd handle value returned by VsOpen() pwl pointer to double that will receive the filter wavelength, in nm. This pointer may not be NULL pwaves pointer to double array that will receive one or more waveplate settings. The actual number of settings may be determined by VsGetWaveplateStages(). Purpose: this function determines the current filter wavelength and returns it to *pwl. If the present wavelength is undefined, it sets *pwl to ? and returns a successful status code. If the present wavelength is defined, it also returns the waves of retardance at each of the polarization analysis waveplates in the optics, in the pwaves[] array. Returns: TRUE if successful, FALSE otherwise Notes: See the description of the VsGetWaveplateStages() command for more detail on what stages are considered waveplates. VSDRVR_API Int32 VsGetWaveplateLimits( VS_HANDLE vsHnd, double *pminWaves, double *pmaxWaves ) Arguments: vsHnd handle value returned by VsOpen() pminWaves pointer to double array that will receive the minimum retardances possible at each of the waveplate stages in the filter optics. pmaxWaves pointer to double array that will receive the maximum retardances possible at each of the waveplate stages in the filter optics Purpose: this function determines the range of retardances that are possible at each waveplate stage, in waves, at the present wavelength setting. Note that the retardance range is itself a function of wavelength, so the results will vary as the wavelength is changed. Returns: TRUE if successful, FALSE otherwise Notes: See the description of the VsGetWaveplateStages command for more detail on what stages are considered waveplates. VSDRVR_API Int32 VsGetWaveplateStages( VS_HANDLE vsHnd, Int32 *pnwpStages ) Arguments: vsHnd handle value returned by VsOpen() pnwpStages pointer to Int32 that will receive the number of waveplate stages in the filter optics. This pointer may not be NULL Purpose: this function determines how many polarization analysis stages are present in the optics and returns this number. Note that although all VariSpec filters operate by means of variable retarder element, optical stages that perform wavelength tuning rather than polarization analysis are not treated as waveplate stages. For example, most VariSpec filters do not include any polarization analysis stages and thus report no waveplates. VsGetWaveplateStages will return a value of 2 for conventional PolScope optics. In contrast, VsGetNstages() reports the total number of stages in a filter, including stages that perform polarization analysis and stages that perform wavelength tuning. Returns: TRUE if successful, FALSE otherwise Notes: none VSDRVR_API Int32 VsIsPresent( VS_HANDLE vsHnd ) Arguments: vsHnd handle value returned by VsOpen() Function: determines whether a filter is actually present and responding. This is done using the status-check character ??as described in the VariSpec manual. Returns: TRUE if successful, FALSE otherwise Notes: none VSDRVR_API Int32 VsIsReady( VS_HANDLE vsHnd ) Arguments: vsHnd handle value returned by VsOpen() Function: determines whether the filter is done processing all commands, and is ready to receive new commands. Returns: TRUE if successful, FALSE otherwise Notes: this is useful when sending commands such as VsSetWavelength(), VsInitialize(), VsExercise(), and VsDefinePaletteEntry() in asynchronous mode. These commands take a prolonged time, and running them synchronously ties up the processor waiting. Alternatively, one can create a loop that uses CreateWaitableTimer(), SetWaitableTimer(), and WaitForSingleObject() to call VsIsReady() at intervals, checking whether the filter is ready. This approach, though more work for the programmer, leaves most of the processor capacity free for other tasks such as GUI update and the like. VSDRVR_API Int32 VsOpen (VS_HANDLE *pvsHnd, LPCSTR port, Int32 *pErrorCode ) Arguments: pvsHnd pointer to handle. This pointer may not be NULL. port port name, such as 揅OM1? pErrorCode pointer to Int32 to receive an error code if VsOpen() fails Purpose: establishes a connection to the VariSpec using the port specified, and automatically determines the baud rate and end-of-line character for subsequent communications. It also retrieves the filter抯 serial number and wavelength range, to confirm that it is a VariSpec and not some other similar device. However, these are retrieved purely as an integrity check, and the values are not returned to the calling application. See VsGetFilterInfo() to access this information. If the device responds as a VariSpec does when it is not ready (i.e. still initializing), VsOpen() fails and returns the error code VSD_ERR_BUSY. However, one may not be sure that the device is a VariSpec until VsOpen() completes successfully The error codes returned by this function are listed in VsDrvr.h. When VsOpen() runs successfully, *pErrorCode is set to VSD_ERR_NOERROR. The handle associated with this filter is set by VsOpen() to a nonzero handle value if successful, or to NULL if no connection is established. The port may refer to COM1 through COM8. Return: TRUE if successful, FALSE otherwise Notes: Until this function is called, none of the other functions will work. VSDRVR_API Int32 VsSetLatency( VS_HANDLE vsHnd, Int32 latencyMs ) Arguments: vsHnd handle value returned by VsOpen() latencyMs the serial port latency, in ms, in the range [1, 5000] Purpose: this function sets the latency time for USB or RS-232 commands to the value given by latencyMs. Commands that do not conclude in this time are considered to have timed-out. Returns: TRUE if successful, FALSE otherwise Notes: increasing the latency time does not increase the time for commands to complete, nor does it insert any delays in normal processing. It merely defines the window for maximum transmission time, beyond which time an error is reported. VSDRVR_API Int32 VsSetPalette( VS_HANDLE vsHnd, Int32 palEntry ) Arguments: vsHnd handle value returned by VsOpen() palEntry the palette entry to be set, in the range [0, 127] Purpose: this function sets the filter to the palette entry specified by palEntry Returns: TRUE if successful, FALSE otherwise Notes: palettes are a good way to control the filter in applications where it will be cycled repeatedly to various, fixed wavelength settings. Palettes calculate the filter settings once, and save the results for rapid access later, rather than calculating them each time, as occurs when one sets the wavelength directly with VsSetWavelength(). See the VariSpec manual for more information on palettes.VSDRVR_API Int32 VsSetRetries( VS_HANDLE vsHnd, Int32 nRetries ) Arguments: vsHnd handle value returned by VsOpen() nRetries the number serial communications retries, in the range [0, 10] Purpose: The VsDrvr software automatically detects errors in communication and re-sends if an error is detected. This function sets the number of times to retry sending any single command, before reporting a communications failure. The default is 3, which should be adequate, and one should rarely need to change this, if ever. The primary purpose of this function is to enable setting the number of retries to zero, to force single-error events to cause detectable errors (as they would normally be fixed automatically via the retry mechanism) Returns: TRUE if successful, FALSE otherwise Notes: noneVSDRVR_API Int32 VsSetWavelength( VS_HANDLE vsHnd, double wl, BOOL confirm ) Arguments: vsHnd handle value returned by VsOpen() wl wavelength to tune to, in nm confirm logical flag, indicating whether to confirm actual wavelength value Purpose: this function sets the filter wavelength to the value in wl. If confirm is TRUE, it waits for the filter to complete the command, and then reads back the actual wavelength to confirm it was implemented successfully. Note that the only time there can be a disparity is when the wavelength requested by wl lies outside the legal range for that filter, or if the wavelength is specified to a finer resolution than the filter recognizes (normally, 0.01 nm). Returns: TRUE if successful, FALSE otherwise Notes: noneVSDRVR_API Int32 VsGetAllDrive( VS_HANDLE vsHnd, Int32 *pStages, Int32 drive[] ) Arguments: vsHnd handle value returned by VsOpen() pStages pointer to int that will receive the number of stages in the filter drive[] int array to receive the filter drive levels. Purpose: this function reports the number of filter stages in *pStages. If this argument is NULL, it is ignored. The function returns the actual drive level at each stage, in counts, in drive[] , which must not be NULL. Returns: TRUE if successful, FALSE otherwise Notes: The array drive[] must be large enough to receive all the drive levels ?if the exact number of stages is not known, call VsGetNstages() first, or allocate enough array elements (12) to accommodate the largest filter design.VSDRVR_API Int32 VsGetNstages( VS_HANDLE vsHnd, Int32 *pStages ) Arguments: vsHnd handle value returned by VsOpen() pStages pointer to int that will receive the number of stages in the filter Purpose: this function determines the number of optical stages in the filter and returns it in *pStages, which may not be NULL. Returns: TRUE if successful, FALSE otherwise Notes: noneVSDRVR_API Int32 VsGetPendingReply( VS_HANDLE vsHnd, LPSTR reply, Int32 nChars, Int32 *pQuit, Int32 firstMs, Int32 subsequentMs ) Arguments: vsHnd handle value returned by VsOpen() reply pointer to buffer that is to receive the reply nChars number of characters to receive pQuit pointer to flag to control this function ?see Notes below firstMs maximum time to wait, in ms, for first character of reply subsequentMs maximum time to wait, in ms, for each subsequent character Purpose: this function is used to exploit some of the less-common aspects of the filter, and it is likely that most programs will require its use. It receives a reply from the filter that may not arrive for a long time. The routine waits up to firstMs for the first character to arrive. Subsequent characters must arrive within subsequentMs of one another. Typically, this routine is called with a high value for firstMs and a lower value for subsequentMs. Returns: TRUE if successful, FALSE otherwise Notes: pQuit can be used to cancel this function while it is waiting for the reply, if that is desired, such as to respond to a user cancellation request. To use this feature, pQuit must be non-NULL and *pQuit must be FALSE at the time VsGetPendingReply() is called. VsGetPendingReply() checks this address periodically, and if it discovers that *pQuit is TRUE, it will cancel and return immediately.VSDRVR_API Int32 VsGetReply( VS_HANDLE vsHnd, LPSTR reply, Int32 nChars, Int32 waitMs ) Arguments: vsHnd handle value returned by VsOpen() reply pointer to buffer that will receive the filter reply nChars the number of characters sought waitMs the maximum time, in ms, to wait for the reply Purpose: this function is used to exploit those filter commands that are not directly provided by other functions, and most programmers will not need to use it. If the reply is not received in the time indicated by waitMs, or if less than nChars are received, the function returns with an unsuccessful status code. Returns: TRUE if successful, FALSE otherwise Notes: noneVSDRVR_API Int32 VsIsDiagnostic( VS_HANDLE vsHnd ) Arguments: vsHnd handle value returned by VsOpen() Function: determines whether the filter is in the diagnostic mode that is used at the factory for setup and calibration. This command is reserved for CRI use only. Returns: TRUE if diagnostic, FALSE otherwise. VSDRVR_API Int32 VsIsEngagedInBeam( VS_HANDLE vsHnd ) Arguments: vsHnd handle value returned by VsOpen() Function: determines whether the filter is engaged in the beam, when configured into certain CRI systems. This function is reserved for CRI use only Returns: TRUE if engaged in the beam, FALSE otherwise VSDRVR_API Int32 VsSendBinary( VS_HANDLE vsHnd, char *bin, Int32 nChars, BOOL clearEcho ) Arguments: vsHnd handle value returned by VsOpen() bin pointer a buffer that contains binary data to be sent to the filter nChars the number of binary characters to be sent clearEcho flag indicating whether to clear echo characters from the queue Purpose: this routine sends binary blocks of data to the filter. This is only necessary when programming calibration data to the filter, and it is not anticipated that this function will be necessary in any normal use. Returns: TRUE if successful, FALSE otherwise Notes: none VSDRVR_API Int32 VsSendCommand( VS_HANDLE vsHnd, LPCSTR cmd, BOOL sendEolChar) Arguments: vsHnd handle value returned by VsOpen() cmd pointer to the command to be sent to the filter sendEolChar flag indicating whether to append the end-of-line character or not Purpose: this function sends the command in cmd to the filter, and appends an end-of-line terminator (or not) based on sendEolChar. It automatically retrieves and discards the character echo of this command by the VariSpec. It does not automatically retrieve the reply, if any, from the VariSpec. Returns: TRUE if successful, FALSE otherwise Notes: The parameter sendEolChar should normally be true in all cases, unless one is sending individual character commands such as the ??or 慇?commands described in the VariSpec user抯 manual.VSDRVR_API Int32 VsSetStageDrive( VS_HANDLE vsHnd, Int32 stage, Int32 drive ) Arguments: vsHnd handle value returned by VsOpen() stage stage number whose drive level is to be adjusted drive drive level, in counts, for that stage Purpose: this function provides a way to manually adjust the drive levels at each of the filter抯 optical stages. It is normally used only during manufacture, and is not a function that most software programs will have any reason to use. Returns: TRUE if successful, FALSE otherwise Notes: none VSDRVR_API Int32 VsThermistorCounts( VS_HANDLE vsHnd, Int32 *pCounts ) Arguments: vsHnd handle value returned by VsOpen() pCounts pointer to int that will receive the thermistor signal, in counts Purpose: this function provides a way to determine the signal level, in counts, at the thermistor. It is normally used only during manufacture, and is not a function that most software programs will have any reason to use. Returns: TRUE if successful, FALSE otherwise Notes: none
用于无声卡电脑- Virtual Audio Cable At first, please unpack the distribution package into an empty folder on a local drive, making sure that local folder path does not contain special characters like "#", "&" or similar. Unpacking the package, preserve folder structure (after unpacking, destination folder should contain "x86" and "x64" subfolders). If you are new to Virtual Audio Cable, please read the user manual before installation. The best way to open the manual is to run installer application named Setup and click the "Help" button in the first installation dialog. The user manual file (vac.chm, a file named "vac" with a sheet and question mark icon) is an HTML Help format file. Do not open manual file from a network path or directly from the package otherwise help pages may not be displayed due to security restrictions. Copy the file to a local drive before opening. Please make sure that local file path does not contain special characters. If user manual file is opened from a local drive but pages on the right pane are not displayed properly, please check if vac.chm file has the "Unblock" button in its Properties form (right-click the file to open its properties). If yes, unblock it. See also "How blocking some attachments helps protect your computer" topic in Windows Help (Start - Help and Support) and http://support.microsoft.com/kb/902225. Reading the manual, don't forget that there is the "Search" tab. Having a problem, enter some words related to the problem and appropriate pages will be displayed. Of course, search feature will not help if you enter a question like "how can I use it?". It only finds pages containing given keywords.
************************************************************ * Product: Intel(R) Chipset Software Installation Utility * Release: Production * Version: 7.2.2.1006 * Target Chipset(s)#: 955X/XM/975X/945G/P/PL/GM/PM/GMS/940GML/E7230/E8501 * Date: October 13 2005 ************************************************************ NOTE: For the list of supported chipsets, please refer to the Release Notes ************************************************************ * CONTENTS OF THIS DOCUMENT ************************************************************ This document contains the following sections: 1. Overview 2. System Requirements 3. Contents of the Distribution Package 4. List of Available Command Line Flag Options 5. Contents of the Extracted Files 6. Installing the Software in Interactive Mode 7. Installing the Software in Silent Mode 8. Installing the INF Files Prior to OS Installation 8A. Installing the Windows* 2000 INF Files Prior to OS Installation 8B. Installing the Windows* XP INF Files Prior to OS Installation 8C. Installing the Windows Server* 2003 INF Files Prior to OS Installation 9. Installing the INF Files After OS Installation 9A. Installing the Windows* 2000 INF Files After OS Installation 9B. Installing the Windows* XP INF Files After OS Installation 9C. Installing the Windows Server* 2003 INF Files After OS Installation 10. Verifying Installation of the Software and Identifying the Software Version Number 11. Troubleshooting ************************************************************ * 1. OVERVIEW ************************************************************ The Intel(R) Chipset Software Installation Utility installs Windows* INF files to the target system. These files outline to the operating system how to configure the Intel(R) chipset components in order to ensure that the following features function properly: - Core PCI and ISAPNP Services - PCIe Support - IDE/ATA33/ATA66/ATA100 Storage Support - SATA Storage Support - USB Support - Identification of Intel(R) Chipset Components in the Device Manager This software can be installed in three modes: Interactive, Silent and Unattended Preload. Interactive Mode requires user input during installation; Silent Mode and Unattended Preload do not. This software also offers a set of command line flags, which provide additional installation choices. The command line flags are not case sensitive. Refer to Section 4 for detailed descriptions of these flags. Important Note: The Intel(R) Chipset Software Installation Utility is distributed in two formats: self extracting .EXE files (INFINST_AUTOL.EXE) or compressed .ZIP files (INFINST_AUTOL.ZIP). Depending on which distribution format is being executed, the command-line syntax may differ. Refer to Section 4 for more details. ************************************************************ * 2. SYSTEM REQUIREMENTS ************************************************************ 1. Please refer to the Release Notes to view the list of chipsets that the software included with this distribution package is designed to operate with. 2. One of the following operating systems must be fully installed and running on the system before installing this software: Microsoft Windows* Server 2003 with Service Pack 1 Microsoft Windows Server 2003 x64 Edition* Microsoft Windows XP Professional x64 Edition Microsoft Windows XP with Service Pack 2 Microsoft Windows 2000 with Service Pack 4 NOTE: This software is designed for the latest service pack releases of above operating systems. To verify which operating system has been installed onto the target system, follow the steps below: a. Click on Start. b. Select Settings. c. Select Control Panel. d. Double-click on the System icon. e. Click on the General system properties tab. f. Verify which OS has been installed by reading the System information. 3. It is recommended that the software be installed on systems with at least 64MB of system memory when using Windows* 2000, Windows* XP and Windows Server* 2003. 4. It is recommended that there be a minimum of 5MB of hard disk space on the system in order to install this software. 5. The operating system must be fully installed and running on the system before running this software. 6. Close any running applications to avoid installation problems. 7. It is recommended that the Intel(R) Chipset Software Installation Utility be installed onto the target system prior to the installation of other drivers. Please check with the system provider to determine which operating system and Intel(R) chipset are used in the system. ************************************************************ * 3. CONTENTS OF THE DISTRIBUTION PACKAGE ************************************************************ The Intel(R) Chipset Software Installation Utility package contains the following items: File(s) ------- INFINST_AUTOL.EXE -or- INFINST_AUTOL.ZIP README.TXT, RELEASE_xxx.HTM *** NOTE: Only the files that reference the currently detected devices are copied to the system. If the -A option is exercised, the files are not copied to the <Windows>\INF directory. Refer to Section 4 for more information. ************************************************************ * 4. LIST OF AVAILABLE COMMAND LINE FLAG OPTIONS ************************************************************ The Intel(R) Chipset Software Installation Utility supports several command line flags for various installation options. Due to the different distribution formats available for the Intel(R) Chipset Software Installation Utility, the command line flag syntax may vary: 1. Self-Extracting .EXE Distribution: When installing this software using the .EXE distribution, an extra '-A' must be appended to the INFINST_AUTOL.EXE program call (i.e. INFINST_AUTOL.EXE -A) in order to successfully pass command line flags. NOTE: The extra '-A' flag for the self-extracting .EXE package is different from the '-A' command line flag option described under Compressed .ZIP Distribution. Example: To extract INF files using the '-A' flag described below, the installation program should be invoked as follows: INFINST_AUTOL.EXE -A -A (optional -P) 2. Compressed .ZIP Distribution: When installing this software using the .ZIP distribution, use the command line flags exactly as described below. Example: To extract INF files using the '-A' flag described below, the installation program should be invoked as follows: SETUP.EXE -A (optional -P) Below is a list of all the available command line flags that may be used with the program call. Note that the '-L' and the '-S' flags MUST be specified at the end of the command line flag list. Flag Description ---- ----------- -? Displays the list of available command line flags. This flag works in Interactive Mode only. -A Extracts all the INF files and Readme to either "C:\Program Files\Intel\InfInst" or the directory specified using the '-P' flag. The software will NOT install these INF files to the system. This flag can be combined only with the '-P' flag. All other options will be ignored if the '-A' flag is specified. This flag works in Interactive Mode only. -Aonly Extracts only the INF files necessary for the current system. If the install has been run once successfully, '-Aonly' will not return any INFs. When used in conjunction with '-overall' switch, all the needed INFs for the system will be extracted. -B Automatically reboots the system after installation. This flag is ignored if '-A' flag is specified. This flag works in either Silent Mode or Interactive Mode. -f2 Specifies an alternate location and name of the log file created by InstallShield Silent. This option is used for silent installation from a CD. 'Path' indicates the directory path where installation status is logged in file 'Logfile' -L Forces the installer user interface to display the specified language during setup. Note that there should be NO space between '-L' and the 4-digit language code (see below). This flag must be placed at the end of the command line flag list. This flag works in Interactive Mode only. -NOLIC Does not display the license agreement dialog box during installation. This parameter works in Interactive Mode only. -NOREAD Does not display the Readme display during installation. This flag works in Interactive Mode only. -NOWEL Does not display the welcome screen during installation. This flag works in Interactive Mode only. -OVERALL Updates ALL INF drivers on all available devices even if third party drivers are currently installed. This flag works in Interactive Mode only. -OVERIDE Updates the storage drivers even if a third party storage driver is currently installed. This flag works in Interactive Mode only. -OVERSMB Updates the SMBus drivers even if third party SMBus drivers are currently installed. This flag works in Interactive Mode only. -P Specifies the hard disk location to which the INF program files are copied. If this flag is not specified at the command line, the directory is as follows: C:\Program Files\Intel\INFInst If this flag is used without the '-A' option, only the Readme will be copied to . The directory name can include spaces, but then a pair of double quotes (") must enclose the directory name. There should not be any space between the switch '-p' and the directory name. This flag works in either Silent Mode or Interactive Mode. -S Runs the Installer in Silent Mode (no user interface is displayed). This flag and the '-L' flag must be placed at the end of the command line flag list. -SKIP Suppresses the installation of one or more devices.This flag works in either Silent Mode or Interactive Mode. Below are the language codes used with the '-L' flag: Language -------- ---------- 0001 Arabic (International) 0804 Chinese (Simplified) 0404 Chinese (Traditional) 0005 Czech 0006 Danish 0013 Dutch 0009 English (United States) 000B Finnish 040C French (International) 0007 German 0008 Greek 000D Hebrew 000E Hungarian 0010 Italian 0011 Japanese 0012 Korean 0014 Norwegian 0015 Polish 0416 Portuguese (Brazil) 0816 Portuguese (Standard) 0019 Russian 000A Spanish (International) 001D Swedish 001E Thai 001F Turkish ************************************************************ * 5. CONTENTS OF THE EXTRACTED FILES ************************************************************ INF files are copied to the hard disk after running the Intel(R) Chipset Software Installation Utility executable with an '-A' flag (i.e., "INFINST_AUTOL.EXE -A -A" or "SETUP.EXE -A"). The location of the INF files depends on whether a '-P' flag is specified along with the '-A' flag: 1. If a '-P' flag is not specified, then the INF files are copied to the following directory: "C:\Program Files\Intel\INFINST" 2. If a '-P' flag is specified, then the INF files are copied to the location listed immediately after the '-P' flag. Refer to Section 4 for more information on flag usage. After INF file extraction, the INF files and components are copied to the . These files and components are categorized according to the operating system. The following table summarizes the locations of the INF files by operating system: The directories are classified according to the operating system that they are designed for: Win2000\ Contains INF files designed for Windows* 2000 ONLY. XP\ Contains INF files designed for Windows* XP ONLY. Win2003\ Contains INF files designed for Windows Server* 2003 ONLY. NOTE: The sub directories (e.g. SP) contains special INFs. NOTE: INFAnswr.TXT makes a CUSTOM.INF template that installs the INF files for Intel(R) chipsets during operating system setup. OEMs can incorporate this file into the Setup directory for the OEM Preload Kit. (Refer to Section 8 for more details.) ************************************************************ * 6. INSTALLING THE SOFTWARE IN INTERACTIVE MODE ************************************************************ 1. Verify that all system requirements have been met as described in Section 2 above. 2. Run the installation program: Self-extracting .EXE distribution: INFINST_AUTOL.EXE Compressed .ZIP distribution: SETUP.EXE 3. You will be prompted to agree to the license agreement. If you do not agree, the installation program will exit before extracting any files. 4. Once the operating system reboots, follow the on-screen instructions and accept default settings to complete the setup. ************************************************************ * 7. INSTALLING THE SOFTWARE IN SILENT MODE ************************************************************ 1. Verify that all system requirements have been met as described in section 2. 2. Run the installation program: For silent install with auto-reboot: Self-extracting .EXE distribution: INFINST_AUTOL.EXE -a -b -s Compressed .ZIP distribution: SETUP.EXE -b -s - or - For silent install without auto-reboot: Self-extracting .EXE distribution: INFINST_AUTOL.EXE -a -s Compressed .ZIP distribution: SETUP.EXE -s 3. The utility will perform the necessary updates and record the installation status in the following system registry key: HKEY_LOCAL_MACHINE\Software\Intel\INFInst 4. If the utility was invoked with the "-b" flag, the system will automatically reboot if the update was successful. NOTE: The system MUST be rebooted for all device updates to take effect. 5. To determine whether the install was successful, verify the "install" value in the registry key specified in Step 3. 6. In Silent Mode the utility will not display the license agreement. When using Silent Mode the license agreement, license.txt, will be placed in the following folder: Program Files/Intel/INFInst folder. Please read this agreement. The following describes the various parameters: Name: "install" Type: String Data: "success" The installation was successful. Data: "fail" The installation was not successful. No INF files were copied to the system. Name: "reboot" Type: String Data: "Yes" A reboot is required to complete the installation. Data: "No" No reboot is required to complete the installation. Name: "version" Type: String Data: Current version number of the Intel(R) Chipset Software Installation Utility ************************************************************ * 8. INSTALLING THE INF FILES PRIOR TO OS INSTALLATION ************************************************************ This procedure requires a minimum of 5MB of hard disk space. It is important to make sure there is enough disk space before beginning the copy process. Copy the operating system installation files from the setup directory to a directory on the hard disk. This can be done by opening 'My Computer', right-clicking on the correct drive, and selecting 'Properties'. The directories shall be referred to as follows: Windows* 2000 : Windows* XP : Windows Server* 2003 : ************************************************************ * 8A. INSTALLING THE WINDOWS* 2000 INF FILES PRIOR TO * OS INSTALLATION ************************************************************ NOTE: The Windows* 2000 OEM Preload Kit distribution CD contains a setup directory with all the base operating system setup files and installation programs (WINNT.EXE and WINNT32.EXE). The name of the directory may vary depending on the distribution CD (e.g., \I386\). 1. Create the following directory structure under the : \$OEM$\$$\INF 2. Copy the Windows* 2000 INF files from \Win2000 to the directory created in Step 1 above: \$OEM$\$$\INF 3. Create the following directory structure under the : \$OEM$\$1\drivers\IntelINF 4. Copy the Windows* 2000 INF files and the catalog files (.CAT) from \Win2000 to the directory created in Step 3 above: \$OEM$\$1\drivers\IntelINF 5. Either modify the default Windows* 2000 installation answer file, UNATTEND.TXT, located in , or create a customized answer file. The answer file must include the following information: [Unattended] OemPreinstall = Yes OemPnPDriversPath="drivers\IntelINF" A sample answer file for preloading the Intel(R) Chipset Software Installation utility files is available at: \Win2000\INFAnswr.TXT For more information about Windows* 2000 answer files and unattended installations, please refer to the Microsoft* Windows* 2000 Guide to Unattended Setup. If you are a computer manufacturer, refer to the Microsoft Windows* 2000 OEM Preinstallation Kit (OPK) User Guide for more information about the \$OEM$ folder. Otherwise, refer to the Microsoft Windows* 2000 Deployment Guide. 6. Run "WINNT.EXE /u: /s:" to install Windows* 2000. ************************************************************ * 8B. INSTALLING THE WINDOWS* XP INF FILES PRIOR TO * OS INSTALLATION ************************************************************ NOTE: The Windows* XP OEM Preload Kit distribution CD contains a setup directory with all the base operating system setup files and installation programs (WINNT.EXE and WINNT32.EXE). The name of the directory may vary depending on the distribution CD (e.g., \I386\). 1. Create the following directory structure under the : \$OEM$\$$\INF 2. Copy the Windows* XP INF files from \XP to the directory created in Step 1 above: \$OEM$\$$\INF 3. Create the following directory structure under the : \$OEM$\$1\drivers\IntelINF 4. Copy the Windows* XP INF files AND the catalog files (.CAT) from \XP to the directory created in Step 3 above: \$OEM$\$1\drivers\IntelINF 5. Either modify the default Windows* XP installation answer file, UNATTEND.TXT, located in , or create a customized answer file. The answer file must include the following information: [Unattended] OemPreinstall = Yes OemPnPDriversPath="drivers\IntelINF" A sample answer file for preloading the Intel(R) Chipset Software Installation utility files is available: \XP\INFAnswr.TXT If you are a computer manufacturer, refer to the Microsoft* Windows* XP Guide to Unattended Setup for more information about Windows* XP answer files and unattended installations. For more information about the \$OEM$ folder, refer to the Microsoft Windows* XP OEM Preinstallation Kit (OPK) User Guide. If you are not a manufacturer, refer to the Microsoft Windows* XP Deployment Guide. 6. Run "WINNT.EXE /u: /s:" to install Windows* XP. ************************************************************ * 8C. INSTALLING THE WINDOWS SERVER* 2003 INF FILES PRIOR * TO OS INSTALLATION ************************************************************ NOTE: The Windows Server* 2003 OEM Preload Kit distribution CD contains a setup directory with all the base operating system setup files and installation programs (WINNT.EXE and WINNT32.EXE). The name of the directory may vary depending on the distribution CD (e.g., \I386\). 1. Create the following directory structure under the : \$OEM$\$$\INF 2. Copy the Windows Server* 2003 INF files from \Win2003 to the directory created in Step 1 above: \$OEM$\$$\INF 3. Create the following directory structure under the : \$OEM$\$1\drivers\IntelINF 4. Copy the Windows Server* 2003 INF files and the catalog files (.CAT) from \Win2003 to the directory created in Step 3 above: \$OEM$\$1\drivers\IntelINF 5. Either modify the default Windows Server* 2003 installation answer file, UNATTEND.TXT, located in , or create a customized answer file. The answer file must include the following information: [Unattended] OemPreinstall = Yes OemPnPDriversPath="drivers\IntelINF" A sample answer file for preloading the Intel(R) Chipset Software Installation utility files is available: \Win2003\INFAnswr.TXT For more information about Windows Server* 2003 answer files and unattended installations, please refer to the Microsoft Windows Server* 2003 Guide to Unattended Setup. If you are a computer manufacturer, refer to the Microsoft Windows Server* 2003 OEM Preinstallation Kit (OPK) User Guide for more information about the \$OEM$ folder. Otherwise, refer to the Microsoft Windows Server* 2003 Deployment Guide. 6. Run "WINNT.EXE /u: /s:" to install Windows* 2000. ************************************************************ * 9. INSTALLING THE INF FILES AFTER OS INSTALLATION ************************************************************ ************************************************************ * 9A. INSTALLING THE WINDOWS* 2000 INF FILES AFTER OS * INSTALLATION ************************************************************ Some Intel(R) chipset platforms already are supported by Windows* 2000, so it may not be necessary to use the INF files provided by this software to update Windows* 2000. The following steps describe the installation process of the Windows* 2000 INF files. You may need to repeat these steps to update all Intel(R) chipset devices not supported by Windows* 2000. 1. Copy the contents of the \Win2000 directory to the root directory of the floppy disk (A:\). 2. Close all programs currently running on the system. 3. Click on Start. 4. Select Settings. 5. Select Control Panel. 6. Double-click on the System icon. 7. Click on the Hardware tab. 8. Click on the Device Manager button. 9. Select "Devices by connection" under the View menu. 10. Click on MPS Uniprocessor PC -OR- MPS Multiprocessor PC. NOTE: Only one of the above items will be displayed for a given system. 11. Click on PCI bus. 12. Right-click on the line containing the description PCI standard host CPU bridge -or- PCI standard ISA bridge -or- PCI standard PCI-to-PCI bridge -or- PCI System Management Bus -or- Standard Dual PCI IDE Controller -or- Standard Universal PCI to USB Host Controller (This line will be selected.) 13. Select Properties from the pull-down menu. 14. Click on the Driver tab. 15. Click on the Update Driver button. 16. Windows* 2000 will launch the Upgrade Device Driver Wizard. Select Next. 17. Ensure that the following choice is selected: Search for a suitable driver for my device (recommended) 18. Insert the floppy containing the Windows* 2000 INF files into the floppy drive. 19. Select Next. 20. Windows* 2000 will list locations from where the updated driver file can be found. Ensure that the following choice is selected: Floppy disk drives 21. Select Next. 22. Windows* 2000 should report that a driver has been found: (The detected device name will be displayed.) Select Next. 23. Select Finish. 24. Reboot the system when prompted to do so. ************************************************************ * 9B. INSTALLING THE WINDOWS* XP INF FILES AFTER OS * INSTALLATION ************************************************************ Some Intel(R) chipset platforms already are supported by Windows* XP so it may not be necessary to use the INF files provided by this software to update Windows* XP. The following steps describe the installation process of the Windows* XP INF files. You may need to repeat these steps to update all Intel(R) chipset devices not supported by Windows* XP. 1. Copy the contents of the \XP directory to the root directory of the floppy disk (A:\). 2. Close all programs currently running on the system. 3. Click on Start. 4. Select Settings. 5. Select the Control Panel. 6. Double-click on the System icon. 7. Click on the Hardware tab. 8. Click on the Device Manager button. 9. Select "Devices by connection" under the View menu. 10. Click on MPS Uniprocessor PC -OR- MPS Multiprocessor PC. NOTE: Only one of the above items will be displayed for a given system. 11. Click on PCI bus. 12. Right-click on the line containing the description PCI standard host CPU bridge -or- PCI standard ISA bridge -or- PCI standard PCI-to-PCI bridge -or- PCI System Management Bus -or- Standard Dual PCI IDE Controller -or- Standard Universal PCI to USB Host Controller (This line will be selected.) 13. Select Properties from the pull-down menu. 14. Click on the Driver tab. 15. Click on the Update Driver button. 16. Windows* XP will launch the Upgrade Device Driver Wizard. Select Next. 17. Ensure that the following choice is selected: Search for a suitable driver for my device (recommended) 18. Insert the floppy containing the Windows* XP INF files into the floppy drive. 19. Select Next. 20. Windows* XP will list locations from where the updated driver file can be found. Ensure that the following choice is selected: Floppy disk drives 21. Select Next. 22. Windows* XP should report that a driver has been found: (The detected device name will be displayed.) Select Next. 23. Select Finish. 24. Reboot the system when prompted to do so. ************************************************************ * 9C. INSTALLING THE WINDOWS SERVER* 2003 INF FILES AFTER * OS INSTALLATION ************************************************************ Some Intel(R) chipset platforms already are supported by Windows Server* 2003 so it may not be necessary to use the INF files provided by this software to update Windows Server* 2003. The following steps describe the installation process of the Windows* XP INF files. You may need to repeat these steps to update all Intel(R) chipset devices not supported by Windows Server* 2003. 1. Copy the contents of the \Win2003 directory to the root directory of the floppy disk (A:\). 2. Close all programs currently running on the system. 3. Click on Start. 4. Select Settings. 5. Select the Control Panel. 6. Double-click on the System icon. 7. Click on the Hardware tab. 8. Click on the Device Manager button. 9. Select "Devices by connection" under the View menu. 10. Click on MPS Uniprocessor PC -OR- MPS Multiprocessor PC. NOTE: Only one of the above items will be displayed for a given system. 11. Click on PCI bus. 12. Right-click on the line containing the description PCI standard host CPU bridge -or- PCI standard ISA bridge -or- PCI standard PCI-to-PCI bridge -or- PCI System Management Bus -or- Standard Dual PCI IDE Controller -or- Standard Universal PCI to USB Host Controller (This line will be selected.) 13. Select Properties from the pull-down menu. 14. Click on the Driver tab. 15. Click on the Update Driver button. 16. Windows Server* 2003 will launch the Upgrade Device Driver Wizard. Select Next. 17. Ensure that the following choice is selected: Search for a suitable driver for my device (recommended) 18. Insert the floppy containing the Windows Server* 2003 INF files into the floppy drive. 19. Select Next. 20. Windows Server* 2003 will list locations from where the updated driver file can be found. Ensure that the following choice is selected: Floppy disk drives 21. Select Next. 22. Windows Server* 2003 should report that a driver has been found: (The detected device name will be displayed.) Select Next. 23. Select Finish. 24. Reboot the system when prompted to do so. ************************************************************ * 10. IDENTIFYING THE SOFTWARE VERSION NUMBER ************************************************************ The version numbers displayed by Device Manager for a given device may not be the same as the Intel(R) Chipset Software Installation Utility version. The correct version number is shown at the top of this file. ************************************************************ * 11. TROUBLESHOOTING ************************************************************ It is assumed that the system requirements in Section 2 above have been satisfied. Issue: At the end of executing the Chipset Software Installation Utility, the USB keyboard and mouse will stop functioning. This problem only occurs when using Windows XP with SP1 or Windows 2000 Server with SP4 on a system configured with a USB keyboard and/or mouse. This condition is temporary until a system reset. Solution1: A recommended fix has been provided by Microsoft in Knowledge Base article(822603). For additional information, please refer to the KB article located at http://support.microsoft.com/default.aspx?scid=kb;[LN];822603 Please use the following installation procedures: - Windows XP installed with SP1 - QFE (822603) installed - Latest Chipset Utility Software installed. Solution2: The command line flag "-Skip " can be used with the Intel(R) Chipset Software Installation Utility program to cause the USB2 driver not to be installed. The DevID's for ICH4/ICH5 are 24CD/24DD. This will cause the USB2 controller to have a yellow exclamation point in Device Manager (Usually located under Other Devices and identified as "Universal Serial Bus (USB) Controller"). To install the USB2 driver right-click this entry, select update driver, and allow the system to install automatically. When completed, nothing more should be required. Issue: System locks up during Device Manager Remove or during restart. Solution: System lockup can occur during reboot as a result of several possible system issues. In the event of system lockup, reboot the machine and view Device Manager. If devices are listed properly and the system experiences no further problems, then the .INF file restore process was successful. If devices are not configured correctly, try re-running the procedures outlined in Section 3. If this does not fix the issue or further issues are experienced, reinstall the operating system. Issue: After running the setup program and rebooting the machine, Windows reports that it cannot find one of the following files: ESDI_506.pdr Solution: Click Browse in the dialog box where this issue occurs, locate the <Windows>\System\IOSubsys directory. Click OK. The system should be able to locate this file in this directory and continue re-enumerating for the new devices. Issue: After running the setup program and rebooting the machine, Windows reports that it cannot find one of the following files: UHCD.SYS USBD.SYS USBHUB.SYS Solution: Click Browse in the dialog box where this issue occurs and locate the following directory: \System32\drivers Click OK. The system should be able to locate the files in this directory and continue re-enumerating for the new devices. Issue: After running the setup program and rebooting the machine, Windows reports that it cannot find the following file: ISAPNP.VXD Solution: Click Browse in the dialog box where this issue occurs and locate the \System directory. Click OK. The system should be able to locate this file in this directory and continue re-enumerating for the new devices. Issue: After performing the silent install, the HKLM\Software\Intel\InfInst key was not created or the data of the value "install" is not "success". Solution: This is caused by one of the following scenarios: - The current system does not contain a supported operating system, or -or- - The current system does not contain a supported chipset. Verify that the System Requirements are met as outlined in Section 2. ************************************************************ * DISCLAIMER ************************************************************ Intel is making no claims of usability, efficacy or warranty. The Intel(R) SOFTWARE LICENSE AGREEMENT (OEM / IHV / ISV Distribution & Single User) completely defines the licensed use of this software. ************************************************************ Information in this document is provided in connection with Intel(R) products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty relating to sale and/or use of Intel(R) products, including liability or warranties relating to fitness for a particular purpose, merchantability or infringement of any patent, copyright or other intellectual property right. Intel(R) products are not intended for use in medical, life saving, or life-sustaining applications. ************************************************************ Intel Corporation disclaims all warranties and liabilities for the use of this document and the information contained herein, and assumes no responsibility for any errors which may appear in this document, nor does Intel make a commitment to update the information contained herein. Intel reserves the right to make changes to this document at any time, without notice. ************************************************************ ************************************************************ * Intel is a trademark or registered trademark of Intel Corporation or its subsidiaries in the United States and other countries. * Other brands and names are the property of their respective owners. Copyright (c) Intel Corporation, 1997-2005

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧