Skip to content

Phanix's Blog

Menu
  • About Me / 關於我

Tag: .net

[C#] XMLWriter Encoding Issue / XMLWriter 控制文字編碼

No Comments
| 學習工作, 工作, 程式

一般狀況下,如果不是很在意使用 XMLWriter 後輸出的文字編碼是哪一種的話,可以很簡單地用下面的方式完成 StringBuilder sb = new StringBuilder(); XmlWriter writer = XmlWriter.Create(sb); writer.WriteStartDocument(); //補上 xml 內容, 用 writer.WriteStartElement() 等完成 writer.WriteEndDocument(); writer.Flush(); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(sb.ToString()); 但是可以發現到這樣子所輸出的 XML 文件是變成 UTF-16 encoding。雖然有 XmlWriterSettings 這東西可以去設定 XMLWriter 的編碼,不過看起來好像是有些問題,輸出的 XML 結果依舊是 UTF-16。 解決的方法是用 MemoryStream 與 XMLTextWriter。 MemoryStream stream = new MemoryStream(); XmlWriter writer = new XmlTextWriter(stream, Encoding.UTF8); writer.WriteStartDocument(); […]

Read More »

[C#] Unix Timestamp

No Comments
| 學習工作, 工作, 程式

因為 Facebook 上頭記錄時間是用 Unix Timestamp,所以來看一下怎麼做。

Read More »

C# 處理 facebook JSON Serialized Data

No Comments
| 學習工作, 工作, 程式, 網路應用, 電腦網路

當透過 access token 去 facebook 抓取資料時,回傳的資料將以 JSON 的方式編碼,在 C# 裡頭可以用 JavaScriptSerializer 來處理,下面是個很懶惰的處理方式,不需要另外先去設計與宣告一個符合 facebook JSON 格式的 class object 來儲存資料,反正需要的時候再來針對 Key 另外處理即可。

Read More »

.NET 取得 windows 帳號資訊

No Comments
| 學習工作, 工作, 程式

取得登入帳號 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 […]

Read More »

C# window form drawing over other controls / 在 window form 中繪製圖形並疊在控制項上

No Comments
| 學習工作, 工作, 程式

本文以中英夾雜並陳 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.

Read More »

C# Windows form 透明 panel (transparent panel)

No Comments
| 學習工作, 工作, 程式

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. } } }

Read More »

Drag a virtual file from C# winform to Explorer and other applications

No Comments
| 學習工作, 工作, 程式

從 c# winform 上拖曳一個 virtual file (比方說一個 label)到 explorer 或其他程式(例如 ultraedit, photoshop)開啟

Read More »

Calling Managed .NET C# COM Objects from Unmanaged C++

No Comments
| 學習工作, 工作, 程式

從 VC++ 中呼叫 C# 所寫的 COM 物件,主要的可以分成三項需要注意的事情。 1. 怎麼讓 C# class library 在編譯出 DLL 的同時同時產生 COM 物件 2. 怎麼讓系統認得這個這個 COM 物件 3. 怎麼在 VC++ 中用這個 COM 物件 在這個網頁裡頭寫得非常清楚,同時還有範例下載。

Read More »

[C#] Threading with Parameters / 帶參數的執行緒

No Comments
| 學習工作, 工作, 程式

主要有兩種方式,第一種為使用 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); } } […]

Read More »

C# Wrapping Library of Google AJAX Search API

No Comments
| 學習工作, 工作, 研究, 程式

以前在程式裡頭用到 Google Search 的機會比較少,所以都是直接把 search term 丟給 Google search,然後 parsing 回傳 page 這樣土法硬幹的方式。 不過最近使用量比較大,所以就乾脆來找 Google Search API ,沒想到 Google 說現在一般的 Search API 已經不接受申請了,比較建議使用 AJAX API。 看了一下說明文件,對於要寫網頁程式的話確實蠻方便的,不過對於要寫 Windows / Console 程式來說就不是這麼好用… 「該不會要自己來寫一個 library 把這個 AJAX Search API 包起來吧?」 正當腦子裡才冒出這個念頭的時候,另外一個聲音響起,「不對,這事情一定也有人想過,然後很好心地做出來了」… 果不其然,找了一下就找到了 http://gapidotnet.codeplex.com/ 這個 wrapping api… 真是太棒了… XD

Read More »

Posts pagination

Previous 1 2 3 Next

Recent Posts

  • NextJS connect to backend Go api for buffering response
  • NextJs 的 404 handling
  • 強制 nextjs app router 不使用 Static Site Generation (SSG)
  • 將長時間英文 podcast 轉為中文 SRT 字幕檔
  • Letsencrypt 設定讓 apache2 通過 ssl labs 安全測試 A+

Recent Comments

  • Champagne Tasting - 2023/09 - Phanix's Blog on 龍吟 wine dinner
  • 天灰 on 撲克牌遊戲 — 德州撲克 (Texas Hold’em / Texas Poker)
  • 用FFmpeg取代 AWS Media Converter - Phanix's Blog on AWS S3+Media Converter+CloudFront 做 video file streaming CDN服務
  • Mount GCP storage as filesystem, and access with php - Phanix's Blog on php+apache 執行 sudo 命令出現 sudo: no tty present and no askpass program specified
  • Chateau de la Roche-aux-Moines (Nicolas Joly) Tasting - Phanix's Blog on Nicolas Joly 與他的生物動力法哲學

Archives

Tags

.net (29) 2008 (66) 2009 (91) Bordeaux (46) Bourgogne (37) c# (33) Cabernet Sauvignon (41) California (85) Chardonnay (46) dessert wine (26) food (53) France (58) France 法國 (68) French (28) French wine (25) japanese food (32) murmuring (25) photo-taking (46) photographing (48) php (41) Pinot Noir (52) programming (38) red wine (189) Santa Cruz (33) system administration (72) Taiwan (40) traveling (74) USA (125) white wine (120) wine (176) wine tasting (225) 加州 (64) 勃根地 (40) 台灣 (29) 品酒 (223) 攝影 (93) 旅遊 (60) 法國 (33) 波爾多 (38) 甜酒 (28) 白酒 (116) 系統管理 (51) 紅酒 (186) 美國 (100) 義大利 (36)

Categories

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Phanix's Blog 2025 . Powered by WordPress