Bitmap ScreenShot;
int w = (int)aGrid.ActualWidth;
int h = (int)aGrid.ActualHeight;
int x = (int)aGrid.PointToScreen(new System.Windows.Point(0, 0)).X;
int y = (int)aGrid.PointToScreen(new System.Windows.Point(0, 0)).Y;
ScreenShot = new Bitmap(w, h);
Graphics g = Graphics.FromImage(ScreenShot);
g.CopyFromScreen(x, y, 0, 0, new System.Drawing.Size(w, h));
g.Dispose();
System.Windows.Forms.Clipboard.SetImage(ScreenShot);
Thursday, February 3, 2011
Screen Shot into Clipboard
Thursday, January 20, 2011
Command Utility to merge and Page Number PDF
Download:
(1) pdftk and winpdftextstamp 32 or 64 bit
(2) pdftk 1.pdf 2.pdf 3.pdf output file.pdf
(2) windpdftextstamp -ifile.pdf -ofile_n.pdf
(1) pdftk and winpdftextstamp 32 or 64 bit
(2) pdftk 1.pdf 2.pdf 3.pdf output file.pdf
(2) windpdftextstamp -ifile.pdf -ofile_n.pdf
Install PDFCreator as NT Service using SC command
(1) Add PDFCreator to the exception list DEP
Control Panel => System => Advanced system settings =>Advanced => Data Execution Prevention.
(2) Ge srvany.exe from the Windows Server 2003 Resource Kit (There are no Windows 2008 Server Resource Kit as of today)
(3) create the service with the sc command:
sc create pdfcreator start= auto binPath= "C:\Program Files\oldResourceKitTools\srvany.exe" DisplayName= "PDFCreator" obj= DOMAIN\User password= password
(Note that there is one space after Equal Sign)
(4) sc query pdfcreator
(5) Reg editing as in KB137890 :
1. Regedt32.exe locate
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pdfcreator
2.Add Key.
Key Name: Parameters
Class :<leave blank>
3.Select the Parameters key, Add Value.
Value Name: Application
Data Type : REG_SZsc start
String : <path>\<application.ext>
where <path>\<application.ext> is the drive and full path to the application executable including the extension (i.e., C:\PDFCreator\pdfcreator.exe)
Monday, January 17, 2011
Set up ghostscript PDL to convert xps to PDF
For 32 Bit:
Download binary e.g. ghostpdl-8.71-win32.zip http://www.ghostscript.com/releases/
unzip and find gswin32
command gxps-871.exe -sDEVICE=pdfwrite -sOutputFile=33.pdf -dNOPAUSE tiger.xps
For 64 Bit
download ghostpdl-9.00.tar.gz and get all the source
use VC++ nmake xps_msvc.mak to complike gxps.exe ( from 64 bit sdk prompt)
gxps -sDEVICE=pdfwrite -sOutputFile=77.pdf -sNOPAUSE tigger.xsp
CutePDF is a printer that convert any doc to PDF and can be programed in C#
(PopUp Dialog to save file). It uses ghostscript.
http://www.cutepdf.com/products/cutepdf/writer.asp
Walk WPF visual Tree and Logical Tree
public static List<T> GetChildren<T>(Visual parent) where T : Visual
{
List<T> childrenT = new List<T>();
int numOfChildren = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < numOfChildren;i++ )
{
Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
if ((v as T) == null)
{
childrenT.AddRange(GetChildren<T>(v));
}
else childrenT.Add(v as T);
}
return childrenT;
}
public MainWindow() { InitializeComponent(); WalkVisualTree(g); WalkLogicalTree(g); } List<DependencyObject> listV = new List<DependencyObject>(); void WalkVisualTree(DependencyObject dobj) { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(dobj); i++) { DependencyObject dobj2=VisualTreeHelper.GetChild(dobj, i); listV.Add(dobj2); WalkVisualTree(dobj2); } } List<FrameworkElement> listL = new List<FrameworkElement>(); void WalkLogicalTree(FrameworkElement dobj) { if (dobj == null) return; foreach ( var c in LogicalTreeHelper.GetChildren(dobj)) { listL.Add(c as FrameworkElement); WalkLogicalTree(c as FrameworkElement); } } }
Thursday, December 23, 2010
Config Max Buffer Size of App Fabric Caching
Server Side:
Export-CacheClusterConfig
Stop-CacheCluster
Import-CacheClusterConfig
Start-CacheCluster
XML changes:
<advanctedProperties>
<transportProperties maxBufferPoolSize="7" maxBufferSize="2000000000"/>
</advanctedProperties>
Client Side:
<dataCacheClient>
<transportProperties maxBufferPoolSize="7" maxBufferSize="2000000000"/>
Thursday, December 16, 2010
SpliterContainer Grid
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestRSUIFramework
{
public partial class SpliterContainerGrid : UserControl
{
public SpliterContainerGrid()
{
InitializeComponent();
}
#region Properties
public int Rows { get; set; }
public int Columns { get; set; }
BorderStyle _SplitContainerBorderStyle=BorderStyle.None;
public BorderStyle SplitContainerBorderStyle {
set
{
_SplitContainerBorderStyle = value;
}
}
public SortedList<int, SplitContainer> _SpliterContainerColumns;
public SortedList<int, SortedList<int, SplitContainer>> _SpliterContainerGrid;
#endregion
#region basic algorithm
private SortedList<int, SplitContainer> BuildSplitContainerChain(int NumOfSC, Orientation SCOrient)
{
SortedList<int, SplitContainer> list = new SortedList<int, SplitContainer>();
if (NumOfSC == 0)
{
SplitContainer sc = new SplitContainer();
sc.Orientation = SCOrient;
sc.BorderStyle = _SplitContainerBorderStyle;
sc.Dock = DockStyle.Fill;
sc.Panel1MinSize = 0;
sc.Panel2MinSize = 0;
sc.Panel2Collapsed = true;
list.Add(0, sc);
return list;
}
for (int i = 0; i < NumOfSC; i++)
{
SplitContainer sc = new SplitContainer();
sc.Orientation = SCOrient;
sc.BorderStyle = _SplitContainerBorderStyle;
sc.Dock = DockStyle.Fill;
sc.Panel1MinSize = 0;
sc.Panel2MinSize = 0;
list.Add(i, sc);
}
for (int i = 0; i < NumOfSC - 1; i++)
{
list[i].Panel2.Controls.Add(list[i + 1]);
}
return list;
}
SplitContainer WalkSplitContainerChain(SplitContainer sc, int step)
{
while (step >= 1)
{
SplitContainer sc2 = sc.Panel2.Controls[0] as SplitContainer;
return WalkSplitContainerChain(sc2, step - 1);
}
return sc;
}
#endregion
#region Build Columns
public void BuildSpliterContainerColumns()
{
_SpliterContainerColumns = BuildSplitContainerChain(Columns - 1, Orientation.Vertical);
this.Controls.Add(_SpliterContainerColumns[0]);
for (int i = 0; i < _SpliterContainerColumns.Count; i++)
{
_SpliterContainerColumns[i].SplitterDistance = Width / Columns;
}
}
#endregion
#region Build Grid
public void BuildSpliterContainerGrid()
{
_SpliterContainerGrid = new SortedList<int, SortedList<int, SplitContainer>>();
for (int k = 0; k < _SpliterContainerColumns.Count; k++)
{
_SpliterContainerGrid.Add(k,BuildSplitContainerChain(Rows - 1, Orientation.Horizontal));
_SpliterContainerColumns[k].Panel1.Controls.Add(_SpliterContainerGrid[k][0]);
for (int i = 0; i < Rows - 1; i++)
{
SplitContainer sc1 = WalkSplitContainerChain(_SpliterContainerGrid[k][0], i);
sc1.SplitterDistance = (Height - _SpliterContainerGrid[k][0].SplitterWidth * (Rows - 1)) / (Rows);
}
}
if (Columns >= 2)
{
_SpliterContainerGrid.Add(Columns - 1, BuildSplitContainerChain(Rows - 1, Orientation.Horizontal));
_SpliterContainerColumns[Columns - 2].Panel2.Controls.Add(_SpliterContainerGrid[Columns - 1][0]);
for (int i = 0; i < Rows - 1; i++)
{
SplitContainer sc1 = WalkSplitContainerChain(_SpliterContainerGrid[Columns - 1][0], i);
sc1.SplitterDistance = (Height - _SpliterContainerGrid[Columns - 1][0].SplitterWidth * (Rows - 1)) / (Rows);
}
}
}
#endregion
#region Layout Content
public void PerformLayout( SortedList<int, SortedList<int,UserControl>> contents)
{
SortedList<int, SortedList<int, UserControl>> ucs = contents;
for (int i = 0; i < Rows-1; i++)
{
for (int j = 0; j < Columns-1; j++)
{
_SpliterContainerGrid[j][i].Panel1.Controls.Add(ucs[i][j]);
}
}
for (int j = 0; j < Columns - 1; j++)
{
if (Rows == 1) _SpliterContainerGrid[j][0].Panel1.Controls.Add(ucs[0][j]);
else _SpliterContainerGrid[j][Rows - 2].Panel2.Controls.Add(ucs[Rows-1][j]);
}
for (int i = 0; i < Rows - 1; i++)
{
if (Columns == 1) _SpliterContainerGrid[0][i].Panel1.Controls.Add(ucs[i][0]);
else _SpliterContainerGrid[Columns - 1][i].Panel1.Controls.Add(ucs[i][Columns - 1]);
}
if (Rows == 1) _SpliterContainerGrid[Columns - 1][0].Panel1.Controls.Add(ucs[0][Columns - 1]);
else _SpliterContainerGrid[Columns - 1][Rows - 2].Panel2.Controls.Add(ucs[Rows - 1][Columns - 1]);
}
#endregion
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestRSUIFramework
{
public partial class SpliterContainerGrid : UserControl
{
public SpliterContainerGrid()
{
InitializeComponent();
}
#region Properties
public int Rows { get; set; }
public int Columns { get; set; }
BorderStyle _SplitContainerBorderStyle=BorderStyle.None;
public BorderStyle SplitContainerBorderStyle {
set
{
_SplitContainerBorderStyle = value;
}
}
public SortedList<int, SplitContainer> _SpliterContainerColumns;
public SortedList<int, SortedList<int, SplitContainer>> _SpliterContainerGrid;
#endregion
#region basic algorithm
private SortedList<int, SplitContainer> BuildSplitContainerChain(int NumOfSC, Orientation SCOrient)
{
SortedList<int, SplitContainer> list = new SortedList<int, SplitContainer>();
if (NumOfSC == 0)
{
SplitContainer sc = new SplitContainer();
sc.Orientation = SCOrient;
sc.BorderStyle = _SplitContainerBorderStyle;
sc.Dock = DockStyle.Fill;
sc.Panel1MinSize = 0;
sc.Panel2MinSize = 0;
sc.Panel2Collapsed = true;
list.Add(0, sc);
return list;
}
for (int i = 0; i < NumOfSC; i++)
{
SplitContainer sc = new SplitContainer();
sc.Orientation = SCOrient;
sc.BorderStyle = _SplitContainerBorderStyle;
sc.Dock = DockStyle.Fill;
sc.Panel1MinSize = 0;
sc.Panel2MinSize = 0;
list.Add(i, sc);
}
for (int i = 0; i < NumOfSC - 1; i++)
{
list[i].Panel2.Controls.Add(list[i + 1]);
}
return list;
}
SplitContainer WalkSplitContainerChain(SplitContainer sc, int step)
{
while (step >= 1)
{
SplitContainer sc2 = sc.Panel2.Controls[0] as SplitContainer;
return WalkSplitContainerChain(sc2, step - 1);
}
return sc;
}
#endregion
#region Build Columns
public void BuildSpliterContainerColumns()
{
_SpliterContainerColumns = BuildSplitContainerChain(Columns - 1, Orientation.Vertical);
this.Controls.Add(_SpliterContainerColumns[0]);
for (int i = 0; i < _SpliterContainerColumns.Count; i++)
{
_SpliterContainerColumns[i].SplitterDistance = Width / Columns;
}
}
#endregion
#region Build Grid
public void BuildSpliterContainerGrid()
{
_SpliterContainerGrid = new SortedList<int, SortedList<int, SplitContainer>>();
for (int k = 0; k < _SpliterContainerColumns.Count; k++)
{
_SpliterContainerGrid.Add(k,BuildSplitContainerChain(Rows - 1, Orientation.Horizontal));
_SpliterContainerColumns[k].Panel1.Controls.Add(_SpliterContainerGrid[k][0]);
for (int i = 0; i < Rows - 1; i++)
{
SplitContainer sc1 = WalkSplitContainerChain(_SpliterContainerGrid[k][0], i);
sc1.SplitterDistance = (Height - _SpliterContainerGrid[k][0].SplitterWidth * (Rows - 1)) / (Rows);
}
}
if (Columns >= 2)
{
_SpliterContainerGrid.Add(Columns - 1, BuildSplitContainerChain(Rows - 1, Orientation.Horizontal));
_SpliterContainerColumns[Columns - 2].Panel2.Controls.Add(_SpliterContainerGrid[Columns - 1][0]);
for (int i = 0; i < Rows - 1; i++)
{
SplitContainer sc1 = WalkSplitContainerChain(_SpliterContainerGrid[Columns - 1][0], i);
sc1.SplitterDistance = (Height - _SpliterContainerGrid[Columns - 1][0].SplitterWidth * (Rows - 1)) / (Rows);
}
}
}
#endregion
#region Layout Content
public void PerformLayout( SortedList<int, SortedList<int,UserControl>> contents)
{
SortedList<int, SortedList<int, UserControl>> ucs = contents;
for (int i = 0; i < Rows-1; i++)
{
for (int j = 0; j < Columns-1; j++)
{
_SpliterContainerGrid[j][i].Panel1.Controls.Add(ucs[i][j]);
}
}
for (int j = 0; j < Columns - 1; j++)
{
if (Rows == 1) _SpliterContainerGrid[j][0].Panel1.Controls.Add(ucs[0][j]);
else _SpliterContainerGrid[j][Rows - 2].Panel2.Controls.Add(ucs[Rows-1][j]);
}
for (int i = 0; i < Rows - 1; i++)
{
if (Columns == 1) _SpliterContainerGrid[0][i].Panel1.Controls.Add(ucs[i][0]);
else _SpliterContainerGrid[Columns - 1][i].Panel1.Controls.Add(ucs[i][Columns - 1]);
}
if (Rows == 1) _SpliterContainerGrid[Columns - 1][0].Panel1.Controls.Add(ucs[0][Columns - 1]);
else _SpliterContainerGrid[Columns - 1][Rows - 2].Panel2.Controls.Add(ucs[Rows - 1][Columns - 1]);
}
#endregion
}
}
Subscribe to:
Posts (Atom)