http://www.megaupload.com/?d=Z937D566 VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part06.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part06.rar 3.61 MB 0
http://www.megaupload.com/?d=SEMPCCY7 VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part03.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part03.rar 95.78 MB 0
http://www.megaupload.com/?d=4Z04QKQ9 VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part04.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part04.rar 95.78 MB 0
http://www.megaupload.com/?d=FH98CX06 VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part6.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part6.rar 15.61 MB 0
http://www.megaupload.com/?d=CH0OPQK6 VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part02.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part02.rar 95.78 MB 0
http://www.megaupload.com/?d=FSQ3WJA9 VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part01.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part01.rar 95.78 MB 0
http://www.megaupload.com/?d=WEQ2A474 VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part3.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part3.rar 95.78 MB 0
http://www.megaupload.com/?d=2DGRM8ZP VTC.CompTIA.A.Plus.Certification.2003.part2.rar VTC.CompTIA.A.Plus.Certification.2003.part2.rar 67.33 MB 0
http://www.megaupload.com/?d=4QLUSZ7U VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part05.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part05.rar 95.78 MB 0
http://www.megaupload.com/?d=U53POBGY VTC.intro.to.Ubuntu.part3.rar VTC.intro.to.Ubuntu.part3.rar 37.14 MB 0
http://www.megaupload.com/?d=QN3CNWXV VTC.Javascript.2007.by.CFE.part4.rar VTC.Javascript.2007.by.CFE.part4.rar 15.96 MB 0
http://www.megaupload.com/?d=1URPYFG1 VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part1.rar VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=MBV6YCLH VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part1.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=XWE7D5TX VTC.Java.2.Certified.Programmer.part1.rar VTC.Java.2.Certified.Programmer.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=9R7FZRVE VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part04.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part04.rar 95.78 MB 0
http://www.megaupload.com/?d=OI3PA7I2 VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part3.rar VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part3.rar 63.65 MB 0
http://www.megaupload.com/?d=78057E9A VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part02.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part02.rar 95.78 MB 0
http://www.megaupload.com/?d=PY40Z81A VTC.intro.to.Visual.Basic.NET.rar VTC.intro.to.Visual.Basic.NET.rar 86.42 MB 0
http://www.megaupload.com/?d=RG0DGYGQ VTC.Java.2.Certified.Programmer.part2.rar VTC.Java.2.Certified.Programmer.part2.rar 39.95 MB 0
http://www.megaupload.com/?d=F491P6EP VTC.intro.to.PHP.part2.rar VTC.intro.to.PHP.part2.rar 70.5 MB 0
http://www.megaupload.com/?d=PE9N8RI5 VTC.Javascript.2007.by.CFE.part1.rar VTC.Javascript.2007.by.CFE.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=RF59VLWM VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part4.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part4.rar 95.78 MB 0
http://www.megaupload.com/?d=4E44PXLF VTC.Javascript.2007.by.CFE.part2.rar VTC.Javascript.2007.by.CFE.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=0AKNERBH VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part5.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part5.rar 95.78 MB 0
http://www.megaupload.com/?d=7V8N6XIS VTC.Javascript.2007.by.CFE.part3.rar VTC.Javascript.2007.by.CFE.part3.rar 95.78 MB 0
http://www.megaupload.com/?d=0U6W6LH9 VTC.Maya.Fundamentals.part2.rar VTC.Maya.Fundamentals.part2.rar 35.17 MB 0
http://www.megaupload.com/?d=2C3PICJ8 VTC.CompTIA.A.Plus.Certification.2003.part1.rar VTC.CompTIA.A.Plus.Certification.2003.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=2J2GGTJI VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part2.rar VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=12H0UTH0 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part05.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part05.rar 95.78 MB 0
http://www.megaupload.com/?d=AJN3TRO0 VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part2.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=O87X6WOG VTC.intro.to.TCP.IP.rar VTC.intro.to.TCP.IP.rar 27.49 MB 0
http://www.megaupload.com/?d=5KWH7KFB VTC.Maya.Fundamentals.part1.rar VTC.Maya.Fundamentals.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=9RADRAV0 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part07.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part07.rar 95.78 MB 0
http://www.megaupload.com/?d=ATFDIX9F VTC.intro.to.Windows.Vista.part2.rar VTC.intro.to.Windows.Vista.part2.rar 69.69 MB 0
http://www.megaupload.com/?d=9D8X58D6 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part01.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part01.rar 95.78 MB 0
http://www.megaupload.com/?d=PMC7R283 VTC.intro.to.Windows.Vista.part1.rar VTC.intro.to.Windows.Vista.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=ODJD5OZM VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part08.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part08.rar 95.78 MB 0
http://www.megaupload.com/?d=SL6497A5 VTC.intro.to.Ubuntu.part1.rar VTC.intro.to.Ubuntu.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=YOMPLINN VTC.intro.to.Ubuntu.part2.rar VTC.intro.to.Ubuntu.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=DHGVDMI2 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part14.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part14.rar 95.78 MB 0
http://www.megaupload.com/?d=8AAEWI1H VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part06.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part06.rar 95.78 MB 0
http://www.megaupload.com/?d=WM5I0EEY VTC.Photoshop.Artistry.part7.rar VTC.Photoshop.Artistry.part7.rar 13.72 MB 0
http://www.megaupload.com/?d=HUMN89Z1 VTC.Photoshop.Artistry.part2.rar VTC.Photoshop.Artistry.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=FCP4ON72 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part11.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part11.rar 95.78 MB 0
http://www.megaupload.com/?d=RHCCRSWF VTC.PHP.Project.Solutions.part2.rar VTC.PHP.Project.Solutions.part2.rar 11.5 MB 0
http://www.megaupload.com/?d=D5CF217S VTC.Photoshop.Artistry.part4.rar VTC.Photoshop.Artistry.part4.rar 95.78 MB 0
http://www.megaupload.com/?d=DSN0YPRM VTC.Photoshop.Artistry.part6.rar VTC.Photoshop.Artistry.part6.rar 95.78 MB 0
http://www.megaupload.com/?d=7XYRLFHI VTC.intro.to.PHP.part1.rar VTC.intro.to.PHP.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=S3M501L2 VTC.Photoshop.Image.Restoration.part2.rar VTC.Photoshop.Image.Restoration.part2.rar 39.98 MB 0
http://www.megaupload.com/?d=DZSU0C48 VTC.Photoshop.Artistry.part1.rar VTC.Photoshop.Artistry.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=TJ4W1CU3 VTC.Photoshop.Artistry.part3.rar VTC.Photoshop.Artistry.part3.rar 95.78 MB 0
http://www.megaupload.com/?d=F1EH737X VTC.QuickStart.Adobe.Flash.CS3.rar VTC.QuickStart.Adobe.Flash.CS3.rar 56.02 MB 0
http://www.megaupload.com/?d=PE8Q04XG VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part13.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part13.rar 95.78 MB 0
http://www.megaupload.com/?d=44IZD0WI VTC.Photoshop.Artistry.part5.rar VTC.Photoshop.Artistry.part5.rar 95.78 MB 0
http://www.megaupload.com/?d=SL89N6CN VTC.Photoshop.Image.Restoration.part1.rar VTC.Photoshop.Image.Restoration.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=1ZODUS8J VTC.Intro.to.M_.NET.Framework.rar VTC.Intro.to.M_.NET.Framework.rar 74.85 MB 0
http://www.megaupload.com/?d=E86IDC5F VTC.QuickStart.Adobe.Dreamweaver.CS3.rar VTC.QuickStart.Adobe.Dreamweaver.CS3.rar 89.54 MB 0
http://www.megaupload.com/?d=1HT6KWYC VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part10.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part10.rar 95.78 MB 0
http://www.megaupload.com/?d=5JJPX5LL VTC.SQL.Server.2005.Admin.part1.rar VTC.SQL.Server.2005.Admin.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=2G97Q23V VTC_PhotoshopCS3_CFE_ViH.part5.rar VTC_PhotoshopCS3_CFE_ViH.part5.rar 95.78 MB 0
http://www.megaupload.com/?d=SRH862IG VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part06.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part06.rar 3.61 MB 0
http://www.megaupload.com/?d=S6AHWOL5 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part09.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part09.rar 95.78 MB 0
http://www.megaupload.com/?d=NET44QWO VTC.QuickStart.Adobe.Photoshop.CS3.rar VTC.QuickStart.Adobe.Photoshop.CS3.rar 50.74 MB 0
http://www.megaupload.com/?d=Q1D10B39 VTC.Real.World.PHP.Programming.Basics.part2.rar VTC.Real.World.PHP.Programming.Basics.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=Z2PFKXQD VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part01.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part01.rar 95.78 MB 0
http://www.megaupload.com/?d=D0C30TJL VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part02.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part02.rar 95.78 MB 0
http://www.megaupload.com/?d=D9NLDHVF VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part05.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part05.rar 95.78 MB 0
http://www.megaupload.com/?d=JBKI43GB VTC.QuickStart.Adobe.Illustrator.CS3.rar VTC.QuickStart.Adobe.Illustrator.CS3.rar 49.6 MB 0
http://www.megaupload.com/?d=KX0HUAD1 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part03.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part03.rar 95.78 MB 0
http://www.megaupload.com/?d=H8XP77RD VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part15.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part15.rar 88.92 MB 0
http://www.megaupload.com/?d=8AGZG0Q3 VTC.Real.World.PHP.Programming.Basics.part3.rar VTC.Real.World.PHP.Programming.Basics.part3.rar 95.78 MB 0
http://www.megaupload.com/?d=VFYJ5X69 VTC.PHP.Project.Solutions.part1.rar VTC.PHP.Project.Solutions.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=LLOKM7T6 VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part5.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part5.rar 95.78 MB 0
http://www.megaupload.com/?d=O1RDUA61 VTC.VBA.for.Excel.part1.rar VTC.VBA.for.Excel.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=SJHWB0LU VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part1.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=0T2U2WQ9 VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part4.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part4.rar 95.78 MB 0
http://www.megaupload.com/?d=X7YNL98K VTC_PhotoshopCS3_CFE_ViH.part4.rar VTC_PhotoshopCS3_CFE_ViH.part4.rar 95.78 MB 0
http://www.megaupload.com/?d=5YJR1EK7 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part12.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part12.rar 95.78 MB 0
Wednesday, December 1, 2010
VTC Video Training Collection
Sunday, November 28, 2010
How to embed and access resources by using Visual C#
Step-by-Step Demonstration
To add embedded resources to your project, you must first add the files as part of your project. After you have added the files to your project, you can access and display the resources through the System.Reflection namespace.Add Embedded Resources
To add a text file and an image file to your project as embedded resources, follow these steps:- Create a new Windows Application project for this demonstration. This form is used to display the resources that are accessed from the executing assembly during run time.
- Right-click your project name, click Add, and then click Add New Item.
- In the New Item dialog box, select Text File from the menu, and name the file MyTextFile.txt. When the file opens in the integrated development environment (IDE), add some text, and then close the file.
- Repeat steps 1 and 2 to add a bitmap image to your project, but instead of selecting Text File as the new item type, select Bitmap File, and then change the file name to MyImage.bmp. When the new image is opened in the IDE, draw something on the image, and then close the file.
- Right-click either the text file or the bitmap, and then select Properties.
- In the Properties dialog box, locate the Build Action property. By default, this property is set to Content. Click the property and change the Build Action property to Embedded Resource.
- Repeat steps 4 and 5 for the other file.
NOTE: The resource file names are case-sensitive. When you access the resources, you must use the exact spelling and case of the file name. If you do not use the exact spelling and case of the file name, the method call to access the ManifestResourceStream returns Nothing, and the system does not raise an exception.
NOTE: If you want to verify the resource names, you can use the Microsoft Intermediate Language Disassembler (ILDASM) to view the Manifest data, which lists the included resources.
Access Resources
To access the resources that you have embedded in the Manifest of your assembly, import the System.IO and the System.Reflection namespaces, as follows:using System.IO;
using System.Reflection;
When you declare the following in the general declaration area, the resources from the assembly are read when the form is loaded:
Assembly _assembly;
Stream _imageStream;
StreamReader _textStreamReader;
To read the resource from the assembly that is executing the current code, you must obtain an instance of that assembly. To do this, use the GetExecutingAssembly method of the assembly, as follows:
_assembly = Assembly.GetExecutingAssembly();
_imageStream = _assembly.GetManifestResourceStream("MyNameSpace.MyImage.bmp");
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNameSpace.MyTextFile.txt"));
try
{
_assembly = Assembly.GetExecutingAssembly();
_imageStream = _assembly.GetManifestResourceStream("MyNamespace.MyImage.bmp");
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNamespace.MyTextFile.txt"));
}
catch
{
MessageBox.Show("Error accessing resources!");
}
Display Resources
This example uses two buttons to display the embedded resources. When you click the first button, a bitmap image that is based on the resource that is read from the assembly is created and displayed in the PictureBoxTo display the embedded resources, follow these steps: control of the form. The second button reads from a text resource and displays the text in a text box.
- Add a PictureBox control to the form.
- Add a new Button control to the form, and then change its Text property to Show Image.
- Double-click the button to open its Click event in the code viewer, and then paste the following code in this event:This code generates a new instance of a bitmap that is based on the resource stream that was read in the Load event of the form.
try
{
pictureBox1.Image = new Bitmap(_imageStream); }
catch
{
MessageBox.Show("Error creating image!");
}
- Add a TextBox control to the form.
- Add another Button control to the form, and then change its Text property to Get Text.
- Double-click the button in the Design Editor to open the Click_Event for the button, and then paste the following code in the event:This code determines whether characters to be read still exist in the stream. If characters are found, a line is read to the text box.
try
{
if(_textStreamReader.Peek() != -1)
{
textBox1.Text = _textStreamReader.ReadLine();
}
}
catch
{
MessageBox.Show("Error writing text!");
}
- Press F5 to run the application.
Sunday, November 14, 2010
Screen Capture and Save as an Image
/* Author: Perry Lee
* Submission: Capture Screen (Add Screenshot Capability to Programs)
* Date of Submission: 12/29/03
*/
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
// If you have any questions regarding functions (methods) imported from
// GDI32.dll and User32.dll refer to 'msdn.microsoft.com' class GDI32
{
[DllImport("GDI32.dll")]
public static extern bool BitBlt(int hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,int hdcSrc,int nXSrc,int nYSrc,int dwRop);
[DllImport("GDI32.dll")]
public static extern int CreateCompatibleBitmap(int hdc,int nWidth, int nHeight);[DllImport("GDI32.dll")]
public static extern int CreateCompatibleDC(int hdc);
[DllImport("GDI32.dll")]
public static extern bool DeleteDC(int hdc);
[DllImport("GDI32.dll")]
public static extern bool DeleteObject(int hObject);
[DllImport("GDI32.dll")]
public static extern int GetDeviceCaps(int hdc,int nIndex);
[DllImport("GDI32.dll")]
public static extern int SelectObject(int hdc,int hgdiobj);
class User32
{
[DllImport("User32.dll")]
public static extern int GetDesktopWindow();
[DllImport("User32.dll")]
public static extern int GetWindowDC(int hWnd);
[DllImport("User32.dll")]
public static extern int ReleaseDC(int hWnd,int hDC);
}
class Example
{
public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
hdcDest = GDI32.CreateCompatibleDC(hdcSrc),
hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc,
GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10)); GDI32.SelectObject(hdcDest,hBitmap);
GDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8),
GDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
SaveImageAs(hBitmap,fileName,imageFormat);
Cleanup(hBitmap,hdcSrc,hdcDest);
}
private void Cleanup(int hBitmap,int hdcSrc,int hdcDest)
{
User32.ReleaseDC(User32.GetDesktopWindow(),hdcSrc);
GDI32.DeleteDC(hdcDest);
GDI32.DeleteObject(hBitmap);
}
private void SaveImageAs(int hBitmap,string fileName,ImageFormat imageFormat)
{
Bitmap image =
new Bitmap(Image.FromHbitmap(new IntPtr(hBitmap)),
Image.FromHbitmap(new IntPtr(hBitmap)).Width,
Image.FromHbitmap(new IntPtr(hBitmap)).Height);
image.Save(fileName,imageFormat);
}
}
Explanation of methods:
public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()), // Get a handle to the desktop windowhdcDest = GDI32.CreateCompatibleDC(hdcSrc), // Create a memory device contexthBitmap = GDI32.CreateCompatibleBitmap(hdcSrc, // Create a bitmap and place it in the memory DC GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10));
// GDI32.GetDeviceCaps(hdcSrc,8) returns the width of the desktop window// GDI32.GetDeviceCaps(hdcSrc,10) returns the height of the desktop windowGDI32.SelectObject(hdcDest,hBitmap); // Required to create a color bitmapGDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8), // Copy the on-screen image into the memory DCGDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
SaveImageAs(hBitmap,fileName,imageFormat); // Save the screen-capture to the specified file using the designated image formatCleanup(hBitmap,hdcSrc,hdcDest); // Free system resources}
private void Cleanup(int hBitmap,int hdcSrc,int hdcDest)
{
// Release the device context resources back to the systemUser32.ReleaseDC(User32.GetDesktopWindow(),hdcSrc);
GDI32.DeleteDC(hdcDest);
GDI32.DeleteObject(hBitmap);
}
private void SaveImageAs(int hBitmap,string fileName,ImageFormat imageFormat)
{
// Create a bitmap from the Windows handleBitmap image = new Bitmap(Image.FromHbitmap(new IntPtr(hBitmap)),
Image.FromHbitmap(new IntPtr(hBitmap)).Width,
Image.FromHbitmap(new IntPtr(hBitmap)).Height);
image.Save(fileName,imageFormat);
}
* Submission: Capture Screen (Add Screenshot Capability to Programs)
* Date of Submission: 12/29/03
*/
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
// If you have any questions regarding functions (methods) imported from
// GDI32.dll and User32.dll refer to 'msdn.microsoft.com' class GDI32
{
[DllImport("GDI32.dll")]
public static extern bool BitBlt(int hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,int hdcSrc,int nXSrc,int nYSrc,int dwRop);
[DllImport("GDI32.dll")]
public static extern int CreateCompatibleBitmap(int hdc,int nWidth, int nHeight);[DllImport("GDI32.dll")]
public static extern int CreateCompatibleDC(int hdc);
[DllImport("GDI32.dll")]
public static extern bool DeleteDC(int hdc);
[DllImport("GDI32.dll")]
public static extern bool DeleteObject(int hObject);
[DllImport("GDI32.dll")]
public static extern int GetDeviceCaps(int hdc,int nIndex);
[DllImport("GDI32.dll")]
public static extern int SelectObject(int hdc,int hgdiobj);
class User32
{
[DllImport("User32.dll")]
public static extern int GetDesktopWindow();
[DllImport("User32.dll")]
public static extern int GetWindowDC(int hWnd);
[DllImport("User32.dll")]
public static extern int ReleaseDC(int hWnd,int hDC);
}
class Example
{
public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
hdcDest = GDI32.CreateCompatibleDC(hdcSrc),
hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc,
GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10)); GDI32.SelectObject(hdcDest,hBitmap);
GDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8),
GDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
SaveImageAs(hBitmap,fileName,imageFormat);
Cleanup(hBitmap,hdcSrc,hdcDest);
}
private void Cleanup(int hBitmap,int hdcSrc,int hdcDest)
{
User32.ReleaseDC(User32.GetDesktopWindow(),hdcSrc);
GDI32.DeleteDC(hdcDest);
GDI32.DeleteObject(hBitmap);
}
private void SaveImageAs(int hBitmap,string fileName,ImageFormat imageFormat)
{
Bitmap image =
new Bitmap(Image.FromHbitmap(new IntPtr(hBitmap)),
Image.FromHbitmap(new IntPtr(hBitmap)).Width,
Image.FromHbitmap(new IntPtr(hBitmap)).Height);
image.Save(fileName,imageFormat);
}
}
Explanation of methods:
public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()), // Get a handle to the desktop windowhdcDest = GDI32.CreateCompatibleDC(hdcSrc), // Create a memory device contexthBitmap = GDI32.CreateCompatibleBitmap(hdcSrc, // Create a bitmap and place it in the memory DC GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10));
// GDI32.GetDeviceCaps(hdcSrc,8) returns the width of the desktop window// GDI32.GetDeviceCaps(hdcSrc,10) returns the height of the desktop windowGDI32.SelectObject(hdcDest,hBitmap); // Required to create a color bitmapGDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8), // Copy the on-screen image into the memory DCGDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
SaveImageAs(hBitmap,fileName,imageFormat); // Save the screen-capture to the specified file using the designated image formatCleanup(hBitmap,hdcSrc,hdcDest); // Free system resources}
private void Cleanup(int hBitmap,int hdcSrc,int hdcDest)
{
// Release the device context resources back to the systemUser32.ReleaseDC(User32.GetDesktopWindow(),hdcSrc);
GDI32.DeleteDC(hdcDest);
GDI32.DeleteObject(hBitmap);
}
private void SaveImageAs(int hBitmap,string fileName,ImageFormat imageFormat)
{
// Create a bitmap from the Windows handleBitmap image = new Bitmap(Image.FromHbitmap(new IntPtr(hBitmap)),
Image.FromHbitmap(new IntPtr(hBitmap)).Width,
Image.FromHbitmap(new IntPtr(hBitmap)).Height);
image.Save(fileName,imageFormat);
}
Tuesday, November 9, 2010
Serialize - BinaryFormatter
private Stream SerializeObject(object myStringToSend)
{
// Initialize a storage medium to hold the serialized object
Stream stream = new MemoryStream();
// Serialize an object into the storage medium referenced by 'stream' object.
BinaryFormatter formatter = new BinaryFormatter();
// Serialize multiple objects into the stream
formatter.Serialize(stream, myStringToSend);
// Return a stream with multiple objects
return stream;
}
Labels:
BinaryFormatter,
Serialize
Monday, November 8, 2010
What are the advantages and disadvantags of serialization?
The advantages of serialization are:
- It is easy to use and can be customized.
- The serialized stream can be encrypted, authenticated and compressed, supporting the needs of secure Java computing.
- Serialized classes can support coherent versioning and are flexible enough to allow gradual evolution of your application's object schema.
- Serialization can also be used as a mechanism for exchanging objects between Java and C++ libraries, using third party vendor libraries (like RogueWave's Tools.h++ ) within C++.
- There are simply too many critical technologies that rely upon serialization, including RMI, JavaBeans and EJB.
However, serialization has some disadvantages too:
- It should ideally not be used with large-sized objects, as it offers significant overhead. Large objects also significantly increase the memory requirements of your application since the object input/output streams cache live references to all objects written to or read from the stream until the stream is closed or reset. Consequently, the garbage collection of these objects can be inordinately delayed.
- The Serializable interface does not offer fine-grained control over object access - although you can somewhat circumvent this issue by implementing the complex Externalizable interface, instead.
- Since serialization does not offer any transaction control mechanisms per se, it is not suitable for use within applications needing concurrent access without making use of additional APIs.
Serialization
Serialization is the process of converting an object into a stream of bytes in order to persist it to memory, a database, or a file. Its main purpose is to save the state of an object in order to be able to recreate it when needed. The reverse process is called deserialization.
How Serialization Works
This illustration shows the overall process of serialization.
The object is serialized to a stream, which carries not just the data, but information about the object's type, such as its version, culture, and assembly name. From that stream, it can be stored in a database, a file, or memory.
Uses for Serialization
Serialization allows the developer to save the state of an object and recreate it as needed, providing storage of objects as well as data exchange. Through serialization, a developer can perform actions like sending the object to a remote application by means of a Web Service, passing an object from one domain to another, passing an object through a firewall as an XML string, or maintaining security or user-specific information across applications.
Making an Object Serializable
To serialize an object, you need the object to be serialized, a stream to contain the serialized object, and a Formatter. System.Runtime.Serialization contains the classes necessary for serializing and deserializing objects.
Apply the SerializableAttribute attribute to a type to indicate that instances of this type can be serialized. A SerializationException exception is thrown if you attempt to serialize but the type does not have the SerializableAttribute attribute.
If you do not want a field within your class to be serializable, apply the NonSerializedAttribute attribute. If a field of a serializable type contains a pointer, a handle, or some other data structure that is specific to a particular environment, and the field cannot be meaningfully reconstituted in a different environment, then you may want to make it nonserializable.
If a serialized class contains references to objects of other classes that are marked SerializableAttribute, those objects will also be serialized.
Apply the SerializableAttribute attribute to a type to indicate that instances of this type can be serialized. A SerializationException exception is thrown if you attempt to serialize but the type does not have the SerializableAttribute attribute.
If you do not want a field within your class to be serializable, apply the NonSerializedAttribute attribute. If a field of a serializable type contains a pointer, a handle, or some other data structure that is specific to a particular environment, and the field cannot be meaningfully reconstituted in a different environment, then you may want to make it nonserializable.
If a serialized class contains references to objects of other classes that are marked SerializableAttribute, those objects will also be serialized.
Binary and XML Serialization
Either binary or XML serialization can be used. In binary serialization, all members, even those that are read-only, are serialized, and performance is enhanced. XML serialization provides more readable code, as well as greater flexibility of object sharing and usage for interoperability purposes.
Binary Serialization
Binary serialization uses binary encoding to produce compact serialization for uses such as storage or socket-based network streams.
XML Serialization
XML serialization serializes the public fields and properties of an object, or the parameters and return values of methods, into an XML stream that conforms to a specific XML Schema definition language (XSD) document. XML serialization results in strongly typed classes with public properties and fields that are converted to XML. System.Xml.Serialization contains the classes necessary for serializing and deserializing XML.
You can apply attributes to classes and class members in order to control the way the XmlSerializer serializes or deserializes an instance of the class.
You can apply attributes to classes and class members in order to control the way the XmlSerializer serializes or deserializes an instance of the class.
SOAP Serialization
XML serialization can also be used to serialize objects into XML streams that conform to the SOAP specification. SOAP is a protocol based on XML, designed specifically to transport procedure calls using XML. As with regular XML serialization, attributes can be used to control the literal-style SOAP messages generated by an XML Web service.
Labels:
deserialization,
Serialization
Tuesday, November 2, 2010
[C#] TcpListenser
[C#]
using System;using System.IO;using System.Net;using System.Net.Sockets;using System.Text; class MyTcpListener{ public static void Main() { try { // Set the TcpListener on port 13000. Int32 port = 13000; IPAddress localAddr = IPAddress.Parse("127.0.0.1"); // TcpListener server = new TcpListener(port); TcpListener server = new TcpListener(localAddr, port); // Start listening for client requests. server.Start(); // Buffer for reading data Byte[] bytes = new Byte[256]; String data = null; // Enter the listening loop. while(true) { Console.Write("Waiting for a connection... "); // Perform a blocking call to accept requests. // You could also user server.AcceptSocket() here. TcpClient client = server.AcceptTcpClient(); Console.WriteLine("Connected!"); data = null; // Get a stream object for reading and writing NetworkStream stream = client.GetStream(); int i; // Loop to receive all the data sent by the client. while((i = stream.Read(bytes, 0, bytes.Length))!=0) { // Translate data bytes to a ASCII string. data = System.Text.Encoding.ASCII.GetString(bytes, 0, i); Console.WriteLine(String.Format("Received: {0}", data)); // Process the data sent by the client. data = data.ToUpper(); byte[] msg = System.Text.Encoding.ASCII.GetBytes(data); // Send back a response. stream.Write(msg, 0, msg.Length); Console.WriteLine(String.Format("Sent: {0}", data)); } // Shutdown and end connection client.Close(); } } catch(SocketException e) { Console.WriteLine("SocketException: {0}", e); } Console.WriteLine("\nHit enter to continue..."); Console.Read(); } }
Labels:
c#,
TcpListenser
Subscribe to:
Posts (Atom)
