Skip to main content

Posts

Showing posts with the label Windows Application

Featured Post

How to create customizable products in Shopify for Free (No coding!)

Creating customizable products in your Shopify store not only increase your customer satisfaction, it also increases your conversion rate.  Here is a method to add custom options for your Shopify product and convert it into personalized product - Go to Shopify store page and search for "Advanced Product Customizer" app or you can directly the the Shopify app page by clicking on this link Advanced Product Customizer . Install  Advanced Product Customizer  app for free in your Shopify store  From the application dashboard, enable to app embed block to complete the installation process Click "Product Custom Options"  From the Shopify products list, select the product on which you want to add custom options. Advanced Product Customizer  offers Image Swatch, Color Swatch, Text box, File Upload, Radio, Checkbox, Date Picker and more. Here is the a demo video for adding custom option for a Shopify product -

Image Resizer using C#.NET Windows Application

Code to Resize Image (with Sample Application) In this post I am sharing the code to resize an image using C#.NET. Also sharing the code to preview and save resized image in multiple formats (jpeg, bmp, png, gif, tiff). Code to Resize Image for given width and height public static Bitmap ResizeImage(Image image, int width, int height) { var destRect = new Rectangle(0, 0, width, height); var destImage = new Bitmap(width, height); destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); using ( var graphics = Graphics.FromImage(destImage)) { graphics.CompositingMode = CompositingMode.SourceCopy; graphics.CompositingQuality = CompositingQuality.HighQuality; graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; graphics.SmoothingMode = SmoothingMode.HighQuality; ...

Capture or Detect mouse click on or outside Windows Form using C#.NET

Sometimes in case of Windows form application where we have multiple windows opened and we need to find on which window user has clicked. One method to find this is to capture the mouse click message.  Here is the sample code to close form if mouse click happen outside the form.    public   partial   class   frmTest  :   Form     {           class   Window CaptureChanged   :   NativeWindow         {               public   CaptureChanged   OnCaptureChanged ;               protected   override   void   WndProc ( ref   Message   m )             {             ...

Move form with mouse movement using mouse down event C#.NET

Sometimes due to design requirement we need to create a border less form or a custom border around the form.  In case of default border the movement of form on mouse down is handled internally we do not need to write any code for this. But if we create a custom border or a border-less form then in that case we need to write a custom code to handle form movement using mouse. Here is the C# code to handle form movement on mouse down.  using System.Runtime.InteropServices; const int HT_CAPTION = 0x2; const int WM_NCLBUTTONDOWN = 0xA1; [DllImportAttribute("user32.dll")] public static extern int SendMessage(IntPtr hWnd,int Msg, int wParam, int lParam); [DllImportAttribute("user32.dll")] public static extern bool ReleaseCapture(); private void Form1_MouseDown(object sender, MouseEventArgs e) {   if (e.Button == MouseButtons.Left)   {     ReleaseCapture();     SendMessage(Handle, WM_NCLBUTTONDO...

Reading RAW Images in .NET applications using C#

Sometimes the photos captured from cameras are saved in a raw format. The RAW files are not ready for editing with any bitmap editor. By default GDI+ in windows application do not support RAW file formats. So while reading a RAW image file in .NET we can get exceptions like "Out of memory". Here we will discuss method to read RAW image file in C# application. Using DCRaw dcraw is an open-source computer program which is able to read numerous raw image formats, typically produced by high-end digital cameras. dcraw converts these images into the standard PPM and TIFF image formats. Here is the sample in C# to extarct image from RAW file using DCRaw executable string PathToDcRawExecutable = "C:\\DcRaw\\dcraw-ms.exe"; var _sourceImage = (Bitmap)Image.FromStream(GetImageFromRaw("c:\\testimage.ORF", PathToDcRawExecutable)); public Stream GetImageFromRaw(string inputFile, string dcRawExe) {     var startInfo = new ProcessStartInfo(dcRawExe)     { ...

Any CPU Type configuration in .NET project using C++ DLL

Any CPU Type configuration in .NET project using C++ DLL Sometimes application is memory hungry like application for image processing etc. In this case we need a 64-bit OS where application can use higher amount of memory. Also we want that our application should remain compatible with 32-bit OS. To satisfy both these condition with single exe we can use Any CPU configuration to build our project. Here are the steps to set Any CPU configuration open in Visual Studio - 1. Go to Build -> Configuration Manager 2. From Active solution platform click <New...> 3. From New Solution Platform select Any CPU 4. Click OK Build the project. The exe created will be compatible on both OS (64-bit and 32-bit). In case if we have a C++ dll used by the code and loaded at run-time as interop service. Since C++ project do not have Any CPU configuration, so in this case we build this C++ DLL in both configuration (64-bit and 32-bit) and then load DLL according to the type of system...

Pass byte array from C# to C++ and vice-versa

Pass byte array from C# to C++                           If you want to pass a byte array to native DLL as parameter, you can use the Intptr to do this, please check the demo below. /C++ API code: TestDLL_API void TestArrayPara (BYTE * pArray, int nSize) { for ( int i= 0 ; i<nSize; i++) printf( "%d\n" , pArray[i]); } //C# code: class TestClass { [DllImport(@"TestDll.dll")] public static extern void TestArrayPara (IntPtr pArray, int nSize); public static void Test () { byte [] array = new byte [ 16 ]; for ( int i = 0 ; i < 16 ; i++) { array[i] = ( byte )(i + 97 ); } int size = Marshal.SizeOf(array[ 0 ]) * array.Length; IntPtr pnt = Marshal.AllocHGlobal(size); try { // Copy the array to unmanaged memory. ...

Some image operations in C#.NET

Flip Image Using the Image.RotateFlip method, we can rotate the image by 90/180/270-degrees or flip the image horizontally or vertically. The parameter of RotateFlip is System.Drawing.RotateFlipType, which specifies the type of rotation and flip to apply to the image. Code Snippet: //Specifies a 180-degree rotation without flipping pictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipNone); //Specifies no rotation followed by a horizontal flip pictureBox1.Image.RotateFlip(RotateFlipType.RotateNoneFlipX); //Specifies a 90-degree rotation followed by a horizontal and vertical flip pictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipXY); Join Two Images Bitmap bitmap = new Bitmap(image1.Width + image2.Width, Math.Max(image1.Height, image2.Height));     using (Graphics g = Graphics.FromImage(bitmap))     {         g.DrawImage(image1, 0, 0);         g.DrawImage(image2, ...

Access 64-bit HKLM\Software registry by 32-bit C#.NET application

Access 64-bit HKLM\Software registry by 32-bit C#.NET application While running 32-bit windows application on a 64-bit windows OS their is a registry redirection. Here if 32-bit application try to read a key under HKLM\Software, then due to Registry redirection effective path becomes HKLM\Software\Wow6432Node. For example, we are running 64-bit and 32-bit application to read registry keys as HKLM\Software\xyz and HKLM\Software\Wow6432Node\xyz So by default with an input of HKLM\Software, 64-bit application will read HKLM\Software\xyz while because of registry redirection 32-bit application will read HKLM\Software\Wow6432Node\xyz. In C#, to read 64-bit HKLM\Software registry keys we can use RegistryKey.OpenBaseKey method . This method takes two arguments- RegistryHive and RegistryView. Here sperate registry views are present for 32-bit and 64-bit. Here is the sample C# code to read AppPaths for 32-bit and 64-bit applications installed on the system - try     ...

Extract icons of Installed Windows Application using C#. NET

Icon of Installed Windows Applications First we need to figure out the location of icon for the installed windows application. This information is stored in registry at following locations - 1. Key name - HEKY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall    Value    - DisplayIcon 2. Key name - HKEY_CLASSES_ROOT\Installer\Products\{productID}    Value - ProductIcon first try to get location of icon from HEKY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Here if the value of DisplayIcon is null then try to fetch location of icon from HKEY_CLASSES_ROOT\Installer\Products\{productID} Here is the sample code to read the icon - CodeProject using system.Drawing // read HKEY_LOCAL_MACHINE Icon ProductIcon; private void ReadIcon() { try { string uninstallKey = @" SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" ; using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(...