วิธีการเข้ารหัส และถอดรหัสสิ่งที่แนบมาของแฟ้มโดยทางโปรแกรม โดยใช้ Visual c# ใน InfoPath

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 892730 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

ใน Microsoft Office InfoPath 2007 หรือ ใน Microsoft Office InfoPath 2003 Service Pack 1 (SP1), คุณสามารถใช้เป็นสิ่งที่แนบมาของแฟ้มควบคุมการแนบแฟ้มไปยังต้นแบบของฟอร์ม InfoPath ในสถานการณ์ที่เฉพาะเจาะจง คุณอาจต้อง การเข้ารหัสแล้ว ถอดรหัสไฟล์ที่แนบกับการสิ่งที่แนบมาของแฟ้มตัวควบคุม ในกรณีนี้ คุณสามารถใช้ Microsoft Visual c# เพื่อสร้างข้อตัวเข้ารหัสคลา และ aตัวถอดรหัสคลาสที่ แล้ว คุณสามารถใช้การตัวเข้ารหัสคลาและตัวถอดรหัสคลาสของการเข้ารหัส และถอดรหัสสิ่งที่แนบแฟ้ม

บทนำ

บทความนี้แนะนำวิธีการเข้ารหัส และถอดรหัสสิ่งที่แนบมาของแฟ้มโดยทางโปรแกรม โดยใช้ Microsoft Visual c#

ข้อมูลเพิ่มเติม

Microsoft แสดงตัวอย่างการเขียนโปรแกรมเพื่อประกอบการอธิบายเท่านั้น และไม่มีการรับประกัน ไม่ว่าโดยชัดแจ้งหรือโดยนัย ทั้งนี้รวมถึง แต่ไม่จำกัดเพียงการรับประกันโดยนัยในเรื่องการซื้อขายหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ บทความนี้อนุมานว่าคุณมีความคุ้นเคยกับภาษาการเขียนโปรแกรมที่แสดงอยู่ รวมทั้งเครื่องมือต่างๆ ที่ใช้ในการสร้างและแก้จุดบกพร่องกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายเกี่ยวกับหน้าที่การใช้งานของกระบวนการเฉพาะได้ แต่จะไม่ปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้มีหน้าที่การใช้งานที่เพิ่มขึ้น หรือสร้างกระบวนการใดๆ เพื่อตอบสนองความต้องการอย่างใดอย่างหนึ่งของคุณโดยเฉพาะ

สร้างโครงการ Visual c# InfoPath 2003

  1. เริ่ม Microsoft Visual Studio .NET 2003
  2. ในการแฟ้ม:เมนู คลิกใหม่แล้ว คลิกProject.
  3. ในการโครงการใหม่กล่องโต้ตอบ คลิกแสดงโครงการ c#ในโครงการ InfoPath Office ของ Microsoft โฟลเดอร์
  4. ในการชื่อ:กล่อง ชนิดAttachmentEncodingแล้ว คลิกตกลง.
  5. ในตัวช่วย Microsoft Office โครงการสร้าง คลิกสร้างแบบฟอร์มใหม่แล้ว คลิกเสร็จสิ้น.

    ตัวช่วยสร้างโครงการ Microsoft Office สร้างโครงการ 2003 .NET Studio แสดงผลใหม่ที่ชื่อ AttachmentEncoding นอกจากนี้ยังมีสร้างแม่แบบฟอร์มมี InfoPath แบบฟอร์ม InfoPath ชื่อ AttachmentEncoding

สร้างคลาการเข้ารหัสใน Visual Studio .NET 2003

  1. คลิกขวาใน Explorer โซลูชันAttachmentEncodingชี้ไปที่addแล้ว คลิกเพิ่มรายการใหม่.
  2. ในการเพิ่มรายการใหม่กล่องโต้ตอบ คลิกคลาสในการแม่แบบ:บานหน้าต่าง ชนิดInfoPathAttachmentEncoder.csในการชื่อ:กล่อง แล้วคลิกOPEN.
  3. แทนที่รหัสทั้งหมดใน InfoPathAttachmentEncoder.cs แฟ้มที่ มีรหัสต่อไปนี้
    using System;
    using System.IO;
    using System.Text;
    using System.Security.Cryptography;
    
    namespace InfoPathAttachmentEncoding
    {
    	/// <summary>
    	/// InfoPathAttachment encodes file data into the format expected by InfoPath for use in file attachment nodes.
    	/// </summary>
    	public class InfoPathAttachmentEncoder
    	{
    		private string base64EncodedFile = string.Empty;
    		private string fullyQualifiedFileName;
    
    		/// <summary>
    		/// Creates an encoder to create an InfoPath attachment string.
    		/// </summary>
    		/// <param name="fullyQualifiedFileName"></param>
    		public InfoPathAttachmentEncoder(string fullyQualifiedFileName)
    		{
    			if (fullyQualifiedFileName == string.Empty)
    				throw new ArgumentException("Must specify file name", "fullyQualifiedFileName");
    
    			if (!File.Exists(fullyQualifiedFileName))
    				throw new FileNotFoundException("File does not exist: " + fullyQualifiedFileName, fullyQualifiedFileName);
    
    			this.fullyQualifiedFileName = fullyQualifiedFileName;
    		}
    
    		/// <summary>
    		/// Returns a Base64 encoded string.
    		/// </summary>
    		/// <returns>String</returns>
    		public string ToBase64String()
    		{
    			if (base64EncodedFile != string.Empty)
    				return base64EncodedFile;
    
    			// This memory stream will hold the InfoPath file attachment buffer before Base64 encoding.
    			MemoryStream ms = new MemoryStream();
    
    			// Get the file information.
    			using (BinaryReader br = new BinaryReader(File.Open(fullyQualifiedFileName, FileMode.Open, FileAccess.Read, FileShare.Read)))
    			{
    				string fileName = Path.GetFileName(fullyQualifiedFileName);
    
    				uint fileNameLength = (uint)fileName.Length + 1;
    
    				byte[] fileNameBytes = Encoding.Unicode.GetBytes(fileName);
    
    				using (BinaryWriter bw = new BinaryWriter(ms))
    				{
    					// Write the InfoPath attachment signature. 
    					bw.Write(new byte[] { 0xC7, 0x49, 0x46, 0x41 });
    
    					// Write the default header information.
    					bw.Write((uint)0x14);	// size
    					bw.Write((uint)0x01);	// version
    					bw.Write((uint)0x00);	// reserved
    
    					// Write the file size.
    					bw.Write((uint)br.BaseStream.Length);
    
    					// Write the size of the file name.
    					bw.Write((uint)fileNameLength);
    
    					// Write the file name (Unicode encoded).
    					bw.Write(fileNameBytes);
    
    					// Write the file name terminator. This is two nulls in Unicode.
    					bw.Write(new byte[] {0,0});
    
    					// Iterate through the file reading data and writing it to the outbuffer.
    					byte[] data = new byte[64*1024];
    					int bytesRead = 1;
    
    					while (bytesRead > 0)
    					{
    						bytesRead = br.Read(data, 0, data.Length);
    						bw.Write(data, 0, bytesRead);
    					}
    				}
    			}
    
    
    			// This memorystream will hold the Base64 encoded InfoPath attachment.
    			MemoryStream msOut = new MemoryStream();
    
    			using (BinaryReader br = new BinaryReader(new MemoryStream(ms.ToArray())))
    			{
    				// Create a Base64 transform to do the encoding.
    				ToBase64Transform tf = new ToBase64Transform();
    
    				byte[] data = new byte[tf.InputBlockSize];
    				byte[] outData = new byte[tf.OutputBlockSize];
    
    				int bytesRead = 1;
    
    				while (bytesRead > 0)
    				{
    					bytesRead = br.Read(data, 0, data.Length);
    
    					if (bytesRead == data.Length)
    						tf.TransformBlock(data, 0, bytesRead, outData, 0);
    					else
    						outData = tf.TransformFinalBlock(data, 0, bytesRead);
    
    					msOut.Write(outData, 0, outData.Length);
    				}
    			}
    
    			msOut.Close();
    			
    			return base64EncodedFile = Encoding.ASCII.GetString(msOut.ToArray());
    		}
    	}
    }

สร้างคลาสที่ตัวถอดรหัสใน Visual Studio .NET 2003

  1. คลิกขวาใน Explorer โซลูชันAttachmentEncodingชี้ไปที่addแล้ว คลิกเพิ่มรายการใหม่.
  2. ในการเพิ่มรายการใหม่กล่องโต้ตอบ คลิกคลาสในการแม่แบบ:บานหน้าต่าง ชนิดInfoPathAttachmentDecoder.csในการชื่อ:กล่อง แล้วคลิกOPEN.
  3. แทนที่รหัสทั้งหมดใน InfoPathAttachmentDecoder.cs แฟ้มที่ มีรหัสต่อไปนี้
    using System;
    using System.IO;
    using System.Text;
    
    namespace InfoPathAttachmentEncoding
    {
    	/// <summary>
    	/// Decodes a file attachment and saves it to a specified path.
    	/// </summary>
    	public class InfoPathAttachmentDecoder
    	{
    		private const int SP1Header_Size = 20;
    		private const int FIXED_HEADER = 16;
    
    		private int fileSize;
    		private int attachmentNameLength;
    		private string attachmentName;
    		private byte[] decodedAttachment;
    
    		/// <summary>
    		/// Accepts the Base64 encoded string
    		/// that is the attachment.
    		/// </summary>
    		public InfoPathAttachmentDecoder(string theBase64EncodedString)
    		{
    			byte [] theData = Convert.FromBase64String(theBase64EncodedString);
    			using(MemoryStream ms = new MemoryStream(theData))
    			{
    				BinaryReader theReader = new BinaryReader(ms);			
    				DecodeAttachment(theReader);
    			}
    		}
    
    		private void DecodeAttachment(BinaryReader theReader)
    		{
    			//Position the reader to get the file size.
    			byte[] headerData = new byte[FIXED_HEADER];
    			headerData = theReader.ReadBytes(headerData.Length);
    
    			fileSize = (int)theReader.ReadUInt32();
    			attachmentNameLength = (int)theReader.ReadUInt32() * 2;
    			
    			byte[] fileNameBytes = theReader.ReadBytes(attachmentNameLength);
    			//InfoPath uses UTF8 encoding.
    			Encoding enc = Encoding.Unicode;
    			attachmentName = enc.GetString(fileNameBytes, 0, attachmentNameLength - 2);
    			decodedAttachment = theReader.ReadBytes(fileSize);
    		}
    
    		public void SaveAttachment(string saveLocation)
    		{
    			string fullFileName = saveLocation;
    			if(!fullFileName.EndsWith(Path.DirectorySeparatorChar))
    			{
    				fullFileName += Path.DirectorySeparatorChar;
    			}
    
    			fullFileName += attachmentName;
    
    			if(File.Exists(fullFileName))
    				File.Delete(fullFileName);
    			
    			FileStream fs = new FileStream(fullFileName, FileMode.CreateNew);
    			BinaryWriter bw = new BinaryWriter(fs);
    			bw.Write(decodedAttachment);
    
    			bw.Close();
    			fs.Close();
    		}
    
    		public string Filename
    		{
    			get{ return attachmentName; }
    		}
    
    		public byte[] DecodedAttachment
    		{
    			get{ return decodedAttachment; }
    		}
    	}	
    }
    
    

เพิ่มตัวควบคุมสิ่งที่แนบมาของแฟ้มและตัวควบคุมกล่องข้อความให้กับฟอร์ม InfoPath

  1. ในเท็มเพลฟอร์ม AttachmentEncoding InfoPath คลิกตัวควบคุมในการงานออกแบบงานบานหน้าต่าง
  2. ในการตัวควบคุมงานบานหน้าต่างใน InfoPath 2003 คลิกแฟ้มสิ่งที่แนบมาภายใต้แทรกตัวควบคุม.

    ในการตัวควบคุมงานบานหน้าต่างใน InfoPath 2007 คลิกแฟ้มสิ่งที่แนบมาภายใต้แฟ้มและรูปภาพ.
  3. คลิกขวาสิ่งที่แนบมาของแฟ้มควบคุม และจากนั้น คลิกคุณสมบัติของสิ่งที่แนบแฟ้ม.
  4. ในการคุณสมบัติของสิ่งที่แนบแฟ้มกล่องโต้ตอบกล่อง พิมพ์theAttachmentFieldในการชื่อเขตข้อมูล:กล่อง แล้วคลิกตกลง.
  5. ในการตัวควบคุมงานบานหน้าต่างใน InfoPath 2003 คลิกกล่องข้อความภายใต้แทรกตัวควบคุม.

    ในการตัวควบคุมงานบานหน้าต่างใน InfoPath 2007 คลิกกล่องข้อความภายใต้มาตรฐาน.
  6. คลิกขวากล่องข้อความควบคุม และจากนั้น คลิกคุณสมบัติกล่องข้อความ.
  7. ในการคุณสมบัติกล่องข้อความกล่องโต้ตอบ ชนิดtheAttachmentNameในการชื่อเขตข้อมูล:กล่อง แล้วคลิกตกลง.

เพิ่มปุ่มเป็นสิ่งที่แนบกับฟอร์ม InfoPath

  1. ในการตัวควบคุมงานบานหน้าต่างใน InfoPath 2003 คลิกปุ่มภายใต้แทรกตัวควบคุม.

    ในการตัวควบคุมงานบานหน้าต่างใน InfoPath 2007 คลิกปุ่มภายใต้มาตรฐาน.
  2. คลิกขวาใหม่ปุ่มควบคุม และจากนั้น คลิกคุณสมบัติปุ่ม.
  3. ในการคุณสมบัติปุ่มกล่องโต้ตอบ ชนิดแนบในการป้ายชื่อกล่อง ชนิดbtnAttachในการหมายเลขกล่อง แล้วคลิกแก้ไขรหัสของฟอร์ม.
  4. เพิ่มรหัสต่อไปนี้ลงในbtnAttach_OnClickวิธีการ
    //Get a reference to the attachment node.
    IXMLDOMNode theAttachmentNode = thisXDocument.DOM.selectSingleNode("my:myFields/my:theAttachmentField");
    
    //Get a reference to the filename node.
    IXMLDOMNode fileNameNode = thisXDocument.DOM.selectSingleNode("my:myFields/my:theAttachmentName");
    //Get the text of the node.
    String fileName = fileNameNode.text;
    if(fileName.Length > 0)
    {
    	//Encode the file and assign it to the attachment node.
    	InfoPathAttachmentEncoding.Encoder myEncoder = new InfoPathAttachmentEncoding.Encoder(fileName);
    	if(theAttachmentNode.attributes.getNamedItem("xsi:nil") != null)
    		theAttachmentNode.attributes.removeNamedItem("xsi:nil");
    	theAttachmentNode.text = myEncoder.ToBase64String();
    }	
    

เพิ่มปุ่มบันทึกให้กับฟอร์ม InfoPath

  1. สลับไปยังต้นแบบของฟอร์ม AttachmentEncoding InfoPath
  2. ในการตัวควบคุมงานบานหน้าต่างใน InfoPath 2003 คลิกปุ่มภายใต้แทรกตัวควบคุม.

    ในการตัวควบคุมงานบานหน้าต่างใน InfoPath 2007 คลิกปุ่มภายใต้มาตรฐาน.
  3. คลิกขวาใหม่ปุ่มควบคุม และจากนั้น คลิกคุณสมบัติปุ่ม.
  4. ในการคุณสมบัติปุ่มกล่องโต้ตอบ ชนิดบันทึกในการป้ายชื่อกล่อง ชนิดbtnSaveในการหมายเลขกล่อง แล้วคลิกแก้ไขรหัสของฟอร์ม.
  5. เพิ่มรหัสต่อไปนี้ลงใน_OnClick btnSaveวิธีการ
    //Get a reference to the attachment node.
    IXMLDOMNode n = thisXDocument.DOM.selectSingleNode("my:myFields/my:theAttachmentField");
    //Get the text of the node.
    String theAttachment = n.text;
    if(theAttachment.Length > 0)
    {
    	InfoPathAttachmentEncoding.Decoder myDecoder = new InfoPathAttachmentEncoding.Decoder(theAttachment);
    	myDecoder.SaveAttachment(@"<Path to save the file>");
    }			
    
    หมายเหตุ:ในรหัสนี้ แทน<path to="" save="" the="" file=""></path>มีที่ตั้งที่คุณต้องการบันทึกแฟ้ม

ตรวจสอบให้แน่ใจว่าแบบฟอร์ม InfoPath เชื่อถือได้อย่างสมบูรณ์

ก่อนที่คุณสามารถทดสอบแบบฟอร์มนี้ แบบฟอร์ม InfoPath ต้องเชื่อถือได้อย่างสมบูรณ์ คุณสามารถใช้วิธีการต่อไปนี้อย่างใดอย่างหนึ่งเพื่อให้แน่ใจว่า แบบฟอร์ม InfoPath ไม่เชื่อถือได้ทั้งหมด:
  • ใช้โปรแกรมอรรถประโยชน์ของการกำหนดค่า Microsoft .NET Framework 1.1 การให้สิทธิ์ที่น่าเชื่อถือแบบเต็มรูปแบบกับ Visual c# รหัสของคุณเท่านั้น
  • ใช้โปรแกรมอรรถประโยชน์ RegForm จากซอฟต์แวร์ InfoPath พัฒนา Kit (SDK) เพื่อทำให้แบบฟอร์มทั้งหมดที่เชื่อถือ ซึ่งให้สิทธิ์ความน่าเชื่อถือแบบเต็มรูปแบบของ Visual c# รหัส
  • ใช้ใบรับรองการเซ็นโค้ดเพื่อเซ็นชื่อแบบดิจิทัลแฟ้มแม่แบบฟอร์ม (.xsn) เมื่อคุณใช้ใบรับรองการเซ็นโค้ดเพื่อเซ็นชื่อแบบดิจิทัลแฟ้มแม่แบบของฟอร์ม ผู้ใช้จะได้รับพร้อมท์ให้ความเชื่อถือแบบฟอร์มเมื่อเปิดแบบฟอร์ม ซึ่งทำให้แบบฟอร์มทั้งหมดที่เชื่อถือ ดังนั้น สิทธิ์ที่น่าเชื่อถือทั้งหมดได้รับการ Visual c# รหัสของคุณ
  • ใช้แบบIPFullTrustแมโครจาก SDK InfoPath เพื่อทำให้แบบฟอร์มที่เชื่อถือได้อย่างสมบูรณ์ กระบวนการIPFullTrustแมโคร automates การตั้งค่าแฟ้มแสดงรายการ (.xsf) และแฟ้มแม่แบบฟอร์มในโครงการ InfoPath สำหรับบริษัททั้งหมด แล้วนี้IPFullTrustแมโครลงทะเบียนแม่แบบฟอร์มโดยอัตโนมัติ

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการติดตั้ง และใช้แมโคร แวะไปที่เว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:
    .aspx http://msdn2.microsoft.com/en-us/library/aa202736 (office.11)
  • ใช้การทำงานอัตโนมัติภายนอกใน InfoPath โทรRegisterSolutionวิธีการ โดยทั่วไป วิธีการนี้ถูกใช้เฉพาะสำหรับการพัฒนาแบบฟอร์มได้เนื่องจากแบบฟอร์มการลงทะเบียนเพียงลงทะเบียนสำหรับคอมพิวเตอร์แต่ละการ สำหรับรูปแบบใด ๆ เพิ่มเติม ผู้ใช้อื่นต้องลงทะเบียนฟอร์มเพิ่มเติมบนคอมพิวเตอร์ของตนเอง เราไม่แนะนำวิธีการนี้สำหรับรูปแบบเพิ่มเติม ขอแนะนำวิธีการก่อนหน้านี้ใด ๆ เมื่อคุณเผยแพร่แบบฟอร์ม
เนื่องจากแบบฟอร์มนี้อยู่ภายใต้การพัฒนาฟอร์ม คุณสามารถใช้วิธีการล่าสุด การทำเช่นนี้ ค้นหาแม่แบบของฟอร์ม AttachmentEncoding InfoPath และจากนั้น ทำตามขั้นตอนเหล่านี้:
  1. ในการเครื่องมือเมนู คลิกแบบฟอร์มตัวเลือก.
  2. คลิกการการรักษาความปลอดภัยแท็บ
  3. คลิกเพื่อยกเลิกเลือกนั้นกำหนดระดับความปลอดภัยที่ขึ้นอยู่กับการออกแบบของฟอร์ม (แนะนำ) โดยอัตโนมัติกล่องกาเครื่องหมาย

    หมายเหตุ:InfoPath ไม่สามารถตรวจหาตรรกะทางธุรกิจที่ต้องการสิทธิ์ที่น่าเชื่อถือทั้งหมดโดยอัตโนมัติ ดังนั้น คุณต้องเปิดสิทธิ์ความน่าเชื่อถือทั้งหมด
  4. คลิกความน่าเชื่อถือแบบเต็มแล้ว คลิกตกลง.
  5. ปิดแบบฟอร์ม AttachmentEncoding InfoPath ถ้าคุณได้รับการพร้อมท์ให้บันทึกการเปลี่ยนแปลง คลิกใช่.

    หมายเหตุ:อย่าปิดโครงการ Visual Studio .NET 2003
  6. ใน Visual Studio .NET 2003 คลิกสองครั้งManifest.xsfแฟ้มใน Explorer โซลูชัน เปิดแฟ้ม Manifest.xsf
  7. ในโหนดราก ค้นหานี้publishUrlแอตทริบิวต์ เอาออกแบบpublishUrlแอตทริบิวต์และค่าของการpublishUrlแอตทริบิวต์
  8. บันทึกการเปลี่ยนแปลง และของคุณแล้วปิด Manifest.xsf แฟ้ม
  9. คลิกเริ่มการทำงานคลิกเรียกใช้ประเภท:notepadแล้ว คลิกตกลง.
  10. เพิ่มรหัสต่อไปนี้ลงในแฟ้มข้อความที่เป็นค่าว่าง
    oApp = WScript.CreateObject("InfoPath.ExternalApplication");
    strAbsolutePath = "<project_folder_url>\\Manifest.xsf";
    oApp.RegisterSolution(strAbsolutePath,"overwrite"); 
    
    หมายเหตุ:ในรหัสนี้ แทน<project_folder_url></project_folder_url>มีเส้นทางของแฟ้ม Manifest.xsf ในโฟลเดอร์โครงการของคุณ อย่าลืม escape เส้นทางของแฟ้ม Manifest.xsf ทั้งหมดหนึ่ง backslashes (\) ในเส้นทางต้องถูกแทนที่ ด้วย backslashes ที่สอง (\)
  11. บันทึกแฟ้ม Manifest.xsf บนคอมพิวเตอร์ที่เป็นแฟ้ม Register.js
  12. เมื่อต้องการเรียกRegisterSolutionวิธีการ การคลิกสองครั้งRegister.jsแฟ้มที่คุณสร้างขึ้น

ทดสอบแบบฟอร์ม

  1. ในโครงการ AttachmentEncoding Visual Studio .NET 2003 คลิกเริ่มการทำงานในการตรวจแก้จุดบกพร่องเมนู ซึ่งเริ่มฟอร์ม InfoPath ในโหมดการแสดงตัวอย่าง
  2. ในแบบฟอร์ม InfoPath พิมพ์เส้นทางของแฟ้มที่คุณต้อง การแนบในกล่องข้อความ แล้ว คลิกแนบ.

    หมายเหตุ:คลิกสองครั้งสิ่งที่แนบมาของแฟ้มควบคุมการตรวจสอบว่า แฟ้มที่มีการเข้ารหัสอย่างถูกต้อง
  3. คลิกบันทึก. เส้นทางที่คุณให้ไว้ในการค้นหาตำแหน่ง "เพิ่มตัวบันทึกส่วนปุ่มฟอร์ม InfoPath"
  4. เมื่อต้องการสิ้นสุดการทดสอบ คลิกแสดงตัวอย่างที่ปิด.

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบส่วนหัวของแฟ้มที่แนบ ไปที่ MSDN เว็บไซต์ต่อไปนี้:
การแนบแฟ้มใน InfoPath 2003
.aspx http://msdn2.microsoft.com/en-us/library/aa168351 (office.11)

คุณสมบัติ

หมายเลขบทความ (Article ID): 892730 - รีวิวครั้งสุดท้าย: 22 กันยายน 2554 - Revision: 5.0
ใช้กับ
  • Microsoft Office InfoPath 2007
Keywords: 
kbcode kbscript kbsample kbxml kbprogramming kbhowto kbmt KB892730 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:892730

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com