[VS2010]搭配Live Writer使用HTML Copy外掛的小技巧

HTML Copy是很方便的外掛,包含在微軟官方的Productivity Power Tools內。但搭配Live Writer的時候有時候會發生格式錯亂的問題,該怎麼解決呢?

用預設的設定複製,先看一下失敗的案例:

image

image

image

這邊發生第一個問題,內容超出文件了,先用預覽功能看看結果如何。

image

格式居然亂掉了目瞪口呆

回到編輯視窗之後格式也跟著改變,顯然是發生了一點問題。
我們看看HTML Copy原始的設定…

image

image

看到問題了嗎?由於預設是以pre標籤作排版,所以是不會加入<br/>的標籤,但這在許多部落格上面會造成問題,因此在這邊開啟這個選項即可解決斷行的問題。

至於問題一,只要修改BeforeCodeSnippet的內容即可解決。

我是修改成這樣:

<pre style="{font-family}{font-size}{font-weight}{font-style}{color}{background};overflow: auto">

加入紅字部分就會自動加入卷軸瞜。預設產出的程式碼會將overflow屬性設定為visible,這樣會強制不顯示卷軸。

[C#]如何取得使用者操作閒置時間?

前陣子在寫電子相簿的時候,想要讓系統有自動輪播的功能,必須要在使用者閒置一定秒數的時候啟動,整理出來方法如下:

先匯入user32.dll中的GetLastInputInfo方法:

[DllImport("user32.dll", SetLastError = true)]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

另外定義一個結構如下:

struct LASTINPUTINFO
{
public uint
cbSize;
public uint dwTime;
}

這裡的dwTime可以取得系統中最後一次操作的時間。

工具準備好就可以開始了,撰寫一個靜態方法供取用:

public static TimeSpan GetLastInput()
{
LASTINPUTINFO plii = new LASTINPUTINFO
();
plii.cbSize = (
uint)Marshal
.SizeOf(plii);
if (GetLastInputInfo(ref plii))
//會把最後一次操作的時間寫入在dwTime內
return TimeSpan.FromMilliseconds(Environment
.TickCount - plii.dwTime);
//得到的數字都是秒數,轉換成TimeSpan型態比較好用
else
throw new Win32Exception(Marshal.GetLastWin32Error());
}

如此便可以取得使用者最後一次操作到目前的時間了。