C# 處理 facebook JSON Serialized Data
當透過 access token 去 facebook 抓取資料時,回傳的資料將以 JSON 的方式編碼,在 C# 裡頭可以用 JavaScriptSerializer 來處理,下面是個很懶惰的處理方式,不需要另外先去設計與宣告一個符合 facebook JSON 格式的 class object 來儲存資料,反正需要的時候再來針對 Key 另外處理即可。
當透過 access token 去 facebook 抓取資料時,回傳的資料將以 JSON 的方式編碼,在 C# 裡頭可以用 JavaScriptSerializer 來處理,下面是個很懶惰的處理方式,不需要另外先去設計與宣告一個符合 facebook JSON 格式的 class object 來儲存資料,反正需要的時候再來針對 Key 另外處理即可。
取得登入帳號 Environment.UserName 取得帳號等有儲存在本機上的資訊 using System.Security.Principal; using System.Threading; //—– AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); WindowsPrincipal myPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal; WindowsIdentity myIdentity = (WindowsIdentity)myPrincipal.Identity; Console.WriteLine(“IdentityType: ” + myIdentity.ToString()); Console.WriteLine(“Name: {0}”, myIdentity.Name); Console.WriteLine(“Member of Users? {0}”, myPrincipal.IsInRole(WindowsBuiltInRole.User)); Console.WriteLine(“Member of Administrators? {0}”, myPrincipal.IsInRole(WindowsBuiltInRole.Administrator)); Console.WriteLine(“Authenticated: {0}”, myIdentity.IsAuthenticated); Console.WriteLine(“Anonymous: {0}”, myIdentity.IsAnonymous); 取得帳號等有儲存在本機上的資訊 – II 使用 Win32 API using System.Runtime.InteropServices; //—– [DllImport(“Advapi32.dll”, EntryPoint=”GetUserName”, ExactSpelling=false, SetLastError=true)] static extern […]
本文以中英夾雜並陳 This article is interleaved with Chinese and English. 本來還想在網路上看能不能找到答案的, 結果只有找到一些可能的提示… 不過最後還是摸索出來了啦 😀 At the beginning, I hope to scrounge the solution from Internet, but after hours of searching, I only find some possible hints. Anyway, here’s the solution.
using System.Windows.Forms; namespace XXX_namespace { /// /// A transparent control. /// public class TransparentPanel : Panel { public TransparentPanel() { } protected override CreateParams CreateParams { get { CreateParams createParams = base.CreateParams; createParams.ExStyle |= 0x00000020; // WS_EX_TRANSPARENT return createParams; } } protected override void OnPaintBackground(PaintEventArgs e) { // Do not paint background. } } }
今天無意中看到正解,沒想到超簡單,不必用以前的蠢方法啦! —– without a window—– @echo off start /B Myapp.exe —- minimized —- @echo off start /MIN Myapp.exe
最近在用 C# 開發 ActiveX 來擺在網頁上面執行,查了一些資料之後終於做出來了,來整理一下放在下面。
從 c# winform 上拖曳一個 virtual file (比方說一個 label)到 explorer 或其他程式(例如 ultraedit, photoshop)開啟
從 VC++ 中呼叫 C# 所寫的 COM 物件,主要的可以分成三項需要注意的事情。 1. 怎麼讓 C# class library 在編譯出 DLL 的同時同時產生 COM 物件 2. 怎麼讓系統認得這個這個 COM 物件 3. 怎麼在 VC++ 中用這個 COM 物件 在這個網頁裡頭寫得非常清楚,同時還有範例下載。
Invoke a .Net WebService on a remote browser. 方法其實很簡單,打開 webservice 的目錄裡頭的 web.config 加入下面這些就可以了 😀 <configuration> <system.web> <webServices> <protocols> <add name=”HttpGet”/> <add name=”HttpPost”/> </protocols> </webServices> </system.web> </configuration>
主要有兩種方式,第一種為使用 ParameterizedThreadStart,但是這不是一個安全的方式。第二種方法是將要交給執行緒執行的方法與參數封裝到類別裡頭去,建立該類別的 Instance 之後就可以交給執行緒去執行,以下為 sample code… (另外要注意的是 Threading.Join() 的使用) using System; using System.Threading; //ThreadWithState 類別裡包含執行任務的方法 public class ThreadWithState { //要用到的屬性,也就是我們要傳遞的參數 private string boilerplate; private int value; //包含參數的 Constructor public ThreadWithState(string text, int number) { boilerplate = text; value = number; } //要丟給執行緒執行的方法,無 return value 就是為了能讓ThreadStart來呼叫 public void ThreadProc() { //這裡就是要執行的任務, 只顯示一下傳入的參數 Console.WriteLine(boilerplate, value); } } […]