[C#] Winform 抓取所有開啟的Internet Explorer 開啟的網頁,並且抓到那網頁的原始碼

2017-05-19

根據上篇文章 [C#] 透過 Win32 EnumWindows 和 GetWindowText 取得所有執行程式的hWnd還有標題 我們來抓取到開啟的應用程式,這一篇我們繼續聊聊,抓到開啟的IE 並且抓取開啟網頁的原始碼,其中抓取到IE  的hWnd的部分,可以參考[C#] 透過 Win32 EnumWindows 和 GetWindowText 取得所有執行程式的hWnd還有標題 這篇文章,結果的畫面是長這樣
Image 002


[C#] 透過 Win32 EnumWindows 和 GetWindowText 取得所有執行程式的hWnd還有標題

筆記一下,基本上這一陣陣子都在弄一些視窗程式,至於程式碼從哪邊來的,我也忘記了,很有可能來自於stackoverflow 大家可以透過關鍵字去找找看,主要是紀錄一下,關鍵的地方也不完全是我寫的,主要的目的就是抓到所有執行中的程式並且把他的視窗title印出來,這樣可以拿來判斷那程式的hWnd 會有助於之後你要對他進行一些win32 的操控,我想這是第一步。

畫面:
image


[WinForm] mshtml.dll 引入錯誤(請確定這是一個可存取的檔案,而且是一個有效的組件或COM元件)

最近又開始在寫關於winform 的東西,主要是操控webbrowser control ,其中你看許多文件應該需要他叫你你去引入 Windows –> System 32 中的 mshtml.dll ,但是我每次引入都會出現

image所以這邊提供一下 DLL ,可以正常引入


[C#] Winform 偵測使用者按下關閉並且執行某行為

2017-05-05

最近因為公司專案要碰一些比較老的技術,遇到一個問題可以筆記一下,就是按下右上方關閉的時候或是呼叫FORM 的  this.Close(); 的時候如何跳出視窗確定是否關閉,或是執行其他function

很簡單就是對form 本身的 FormClosing 事件加入下列程式碼:

            if (e.CloseReason == CloseReason.UserClosing)
            {
                var res = MessageBox.Show("是否關閉?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (res != DialogResult.Yes)
                {
                    e.Cancel = true;
                }
            }

其中重點就是 CloseReasion 其實他還有很多判斷的選項 ,詳細內文在這邊:

image

文件位置: https://msdn.microsoft.com/zh-tw/library/system.windows.forms.closereason(v=vs.110).aspx

很簡單,筆記一下。


[Winform] 在Winform 中建置的時候自動複製檔案夾跟檔案

2017-04-12

這問題其實困擾很久了,只是都手動,最近檔案多了就很麻煩,就是在Winform 開發中,假設你再專案下面開一個檔案夾叫做sample_folder 裡面有數以千計的檔案,而且可能隨著你開發中會編修,但是你寫完編譯後的exe檔案會再bin/Debug/ 中,這時候你總不可能去讀取專案的絕對路徑吧,你一定是希望檔案夾是跟隨者.exe 左右像是這樣
image


[C#][Winform] 在Retina 下面winform 會霧霧的解決方案

2017-04-11

在Retina 下面的解析度用起來非常爽,但是最近要開發winform 的東西,每次打開都覺得自己是不是瞎了,後來發現,是因為在高解析度的狀況下winform 顯示依據會變得相對低,會讓眼睛看起來很不舒服。

後來我終於在一個地方找到解答,簡單翻譯一下 :

1.將視窗AutoScaleMode 的font 改成  Dpi

image


當麻許的超技八 2014 | Donma Hsu Design.