2013年4月9日 星期二

有視嗎,眼球追蹤

1. ASUS A43S/ Windows 7 x64
2. Kinect SDK 1.6 + Example SkeletonBasic-WPF
3. Eyeball display and motion WPF class
4. Eyeball rotate angle = headJoint.Position.X * 80

if (skel.TrackingState == SkeletonTrackingState.Tracked)
                        {
                            Joint headJoint = skel.Joints[JointType.Head];
                            SkeletonPoint  headPoint = headJoint.Position;
                            string message = string.Format("Head: X:{0:0.0} Y:{1:0.0} Z:{2:0.0}", headPoint.X,
                            headPoint.Y, headPoint.Z);
                            EyeBall.RoLR.Angle = headJoint.Position.X * 80;
                        }
5. 程式下載

6. Storyboard.Stop may not function when the Storyboard.Begin(this, w/o true).
          if (IsAnimation)
            {
                IsAnimation = false;
                this.ST.Stop(this);
               
            }
            else
            {
                IsAnimation = true;
                ST.Begin(this, true);
            }
7. Revise version
    7.1 Alt+T : Start/Stop to generate a random angle with 500 ms period.
    7.2 Alt+A:  Start/Stop Animation from 35 to 105.



8. 程式下載。

2013年4月7日 星期日

有視嗎,視窗變形

奕璇的論文找到一個實例應用,調整一下
1. 考慮投影機為延伸或鏡射,虛擬視窗位置可調。
2. 虛擬螢幕控制點計14個(7組)
2-1  1~7 數字鍵與Mouse Wheel控制7組控制軸y方向增減。
2-2  2(Q),4(E),6(T)  雙鍵與Mouse Wheel控制3組控制軸x方向增減。
3. s鍵與Mouse Wheel控制虛擬螢幕尺寸。
4. r鍵與Mouse Wheel控制虛擬螢幕旋轉。
5. x鍵與Mouse Wheel控制虛擬螢幕x方向平移。
6. y鍵與Mouse Wheel控制虛擬螢幕y方向平移。
7. z鍵與Mouse Wheel控制虛擬螢幕z方向平移。



8. 程式下載

9. Revise version for improving distortion. (2013-4-18)


11. Revise version for auto-replay and open file dialog for changing video file (2013-4-18)


13. Revise version for Quadrilateral (2013-5-15)


13. Revise version for delay re-start  (2013-5-15)


15. Revise version for 16:9 without margins  (2013-5-16)
      執行後請匯入座標 
      可以用記事本修改PositionData,txt, 前三組數據分別是
      延伸視窗位置:  0,1024 (主螢幕1024,768)
      視窗尺寸:1280,768
      虛擬螢幕尺寸:1280,768







2013年3月29日 星期五

IIS not allows rdp extention

ref : http://serverfault.com/questions/335982/iis-not-allowing-me-to-server-files-with-rdp-extension


It can be solved by add
File name Extension: .rdp
MIME type: application/rdp




The Msvm_VirtualSystemManagementService object was not found

1. Server 2008 R2 SP1, Hyper-V in AD can't connect to VM host
2. Download  KB950050:Windows Server 2008 x64 Edition 的 Hyper-V 更新
   http://www.microsoft.com/zh-tw/download/details.aspx?id=18567
3. OK!

2013年3月26日 星期二

Screen Capture By Thread

1. OS: Windows 7  x64
2. Tools: VS2010, Expression 4.0
3. Prepare a class for capturing scrren and save to outputpath

class BkScnCap
    {
        ScreenCaptureJob job;
        public BkScnCap()
        {
            job = new ScreenCaptureJob();
         
        }
        public void Record()
        {
            System.Drawing.Size monitorSize = SystemInformation.PrimaryMonitorSize;
            System.Drawing.Rectangle capRect = new System.Drawing.Rectangle(0, 0, monitorSize.Width, monitorSize.Height);
            job.CaptureRectangle = capRect;
            job.OutputPath = @"E:\output\ScreenCap";
            job.Start();
        }
        public void StopRecord()
        {
            job.Stop();
        }
    }
4. Make backgroud thread method in constructor, Click to start this thread and click the stop to end it.

public MainWindow()
        {
            InitializeComponent();
            oBkScnCap = new BkScnCap();
            oThread = new System.Threading.Thread(new System.Threading.ThreadStart(oBkScnCap.Record));
        }
        System.Threading.Thread oThread;
        BkScnCap oBkScnCap;
        private void 儲存影片_Click(object sender, RoutedEventArgs e)
        {
            oThread.Start();
        }

        private void 停止影片擷取_Click(object sender, RoutedEventArgs e)
        {
            oBkScnCap.StopRecord();
        }
5. Screen resolution issue

2013年3月19日 星期二

明明就很容易Rotate Animation

1. Windows 7 x64
2. VS 2010
3.  Storyboard.TargetProperty="Angle"  就可以了。

<Window x:Class="Ro2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Ellipse Width="100" Height="50" Fill="Red">
            <Ellipse.RenderTransform>
                <RotateTransform x:Name="Ro"/>
            </Ellipse.RenderTransform>
            <Ellipse.Triggers>
                <EventTrigger RoutedEvent="Loaded">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="Ro"
                                    Storyboard.TargetProperty="Angle"
                                    From="0" To="360" Duration="0:0:1"
                                    RepeatBehavior="Forever" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Ellipse.Triggers>
        </Ellipse>
    </Grid>
</Window>


2013年3月17日 星期日

Broadcasting Screen

1. Hardware A43S
2. OS: Windows 7 x 64
3. Tools: VS 2010, Expression 4 Pro
4. Download Expression SP2  http://www.microsoft.com/zh-tw/download/details.aspx?id=27870
Ref: http://stackoverflow.com/questions/6173914/realtime-stream-from-screencapture-with-microsoft-expression-encoder

5. Notes:
N1. SP1 or SP2 download and upgrade. Restart was required.
N2. Capture screen and then broadcasting into internet.

6. Coding:
LiveJob  job = new LiveJob();    // Create Broadcasting object
Collection<EncoderDevice> devices = EncoderDevices.FindDevices(EncoderDeviceType.Video);
EncoderDevice device=null;
for (int i=0; i< devices.Count; i++)
                if (devices[i].Name == "Screen Capture Source") device  = devices[i]; // Select Screen Capture
                                                                                                                        //Source as the input device
if (device != null)
            {
                LiveDeviceSource source = job.AddDeviceSource(device, null);
                source.ScreenCaptureSourceProperties = new ScreenCaptureSourceProperties
                {
                    CaptureCursor = true,
                    CaptureLargeCursor = false,
                    FrameRate = 6,
                    CaptureLayeredWindow = true,
                    Height = 600,
                    Width = 800,
                    Left = 0,
                    Top = 0,
                };
                job.ActivateSource(source);
                // Finds and applys a smooth streaming preset
                job.ApplyPreset(LivePresets.VC1256kDSL16x9);
                // Sets up variable for fomat data
                var format = new PullBroadcastPublishFormat { BroadcastPort = 8080 };
                job.PublishFormats.Add(format);
                var data = job.BufferWindowSize;
                job.StartEncoding();
                Console.Write("Press Enter then to stop the broadcasting.");
                Console.ReadLine();
                job.StopEncoding();
            }
            else
            {
                Console.WriteLine("Can't find Screen Capture Source.");
            }
        }














7. Download