2024-07-22
2024-06-12
[C#] Edge WebView2 與 WinForms:實現按鈕事件與本地代碼交互的指南
今天來寫一篇關於 Edge WebView2 中會用到的部份,就是我在載入在 Edge WebView 2 中的網頁
我先注入 JQuery ,然後我加入按鈕事件以外,並且將該按鈕點擊事件中,傳入訊號給主體的 winform
這樣就可以做到 call native code.
2024-06-07
[C#] 在 WinForms 中使用 Edge WebView2 處理新視窗點擊事件
這幾天分享一了關於 Edge WebView2 的應用,這時候有同事問我如何處理開新視窗之後的處理
他必須要模擬點擊,但是該連結為 _blank ,他必須要處理點擊後的視窗,在預設中的確會開啟一個新的視窗長這樣..
2024-06-05
[C#] 如何在 Edge WebView2 中注入和使用 JQuery 來改變網頁內容
上一篇文章簡單的介紹了 Edge WebView2 的套件,接下來,就是比較要做的常規操作,就是我們要 inject 一些 js 進去
今天主要目的就是,載入網頁後,在 inject JQuery 之後再呼叫一行 JQuery 的程式去改變網頁上面的內容.
2024-06-03
[C#] 簡單使用 Microsoft Edge WebView2 在 WinForms 中的應用
好久沒寫 WinForms 了,最近因為有一些比較麻煩的需求,所以必須使用 WinForms 來解決問題會比較簡單。
這次的需求是要操控網頁來取得一些資料,經過評估,決定使用 WinForms。然而,想到 WebView 用的是舊版的 IE 核心,本來打算使用第三方的 Chromium 套件,但查了之後發現竟然有 Microsoft 官方推出的 Edge WebView2。
2020-06-03
[C#] 透過 skypetoken 如何取得 RegistrationToken(Bug 修正)
之前有寫一個需要用到的專案,關於 skype 廣播,但是最近發現一個 不知道算不算是 bug ,主要專案是 這個 https://github.com/donma/LazyLizard
之前寫的文章是這一篇 透過 skypetoken 如何取得 RegistrationToken ,遇到的問題在於 其中我提到 "https://client-s.gateway.messenger.live.com/v1/users/ME/endpoints",這個網址,其實他不一定是對的

2017-07-07
2017-06-14
[C#] Winform 同一支App裡面不同的視窗有不同的Process (1)
2017-05-19
[C#] Winform 抓取所有開啟的Internet Explorer 開啟的網頁,並且抓到那網頁的原始碼
根據上篇文章 [C#] 透過 Win32 EnumWindows 和 GetWindowText 取得所有執行程式的hWnd還有標題 我們來抓取到開啟的應用程式,這一篇我們繼續聊聊,抓到開啟的IE 並且抓取開啟網頁的原始碼,其中抓取到IE 的hWnd的部分,可以參考[C#] 透過 Win32 EnumWindows 和 GetWindowText 取得所有執行程式的hWnd還有標題 這篇文章,結果的畫面是長這樣
[C#] 透過 Win32 EnumWindows 和 GetWindowText 取得所有執行程式的hWnd還有標題
筆記一下,基本上這一陣陣子都在弄一些視窗程式,至於程式碼從哪邊來的,我也忘記了,很有可能來自於stackoverflow 大家可以透過關鍵字去找找看,主要是紀錄一下,關鍵的地方也不完全是我寫的,主要的目的就是抓到所有執行中的程式並且把他的視窗title印出來,這樣可以拿來判斷那程式的hWnd 會有助於之後你要對他進行一些win32 的操控,我想這是第一步。
[WinForm] mshtml.dll 引入錯誤(請確定這是一個可存取的檔案,而且是一個有效的組件或COM元件)
2017-05-05
[C#] Winform 偵測使用者按下關閉並且執行某行為
最近因為公司專案要碰一些比較老的技術,遇到一個問題可以筆記一下,就是按下右上方關閉的時候或是呼叫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 其實他還有很多判斷的選項 ,詳細內文在這邊:
文件位置: https://msdn.microsoft.com/zh-tw/library/system.windows.forms.closereason(v=vs.110).aspx
很簡單,筆記一下。
2017-04-12
[Winform] 在Winform 中建置的時候自動複製檔案夾跟檔案
2017-04-11
[C#][Winform] 在Retina 下面winform 會霧霧的解決方案
在Retina 下面的解析度用起來非常爽,但是最近要開發winform 的東西,每次打開都覺得自己是不是瞎了,後來發現,是因為在高解析度的狀況下winform 顯示依據會變得相對低,會讓眼睛看起來很不舒服。
2015-08-31
[Winform] 筆記一下,C#透過UDP 接收資料
上一篇文章 [Winform] 筆記一下,C#透過UDP 傳送資料 傳送了資料,那如何接受透過UDP接受資料呢?
一樣這一篇是屬於C# Winform or Console 透過 System.Net 的做法,新的UWP 是不能用的,不過當你需要測試時候就很好用,範例是,一直不斷Port 1947 的所有訊息,並且Text Encoding 是 UTF8
首先先撰寫接收的程式,因為是一值不斷地在聽牌,所以是要寫while(true) 的作法
/// <summary> /// UDP Client /// </summary> UdpClient udpClient = new UdpClient(1947); /// <summary> /// UDP 一直接收Port 1947 的資料,收到後跳Messagebox /// </summary>private void ThreadRunMethod()
{while (true)
{ var remoteIp = new IPEndPoint(IPAddress.Any, 0); var receivedBytes = udpClient.Receive(ref remoteIp);if (receivedBytes == null || receivedBytes.Length == 0)
return; string strReceiveStr = Encoding.UTF8.GetString(receivedBytes); MessageBox.Show("收到資料囉: " + strReceiveStr);}
}
[Winform] 筆記一下,C#透過UDP 傳送資料
先說好,這是 C# Winform or Console 透過 System.Net 的做法,新的UWP 是不能用的,但是因為最近在測試Windows 10 IoT 的東西,所以我得在電腦端這邊寫測試程式紀錄一下
1.首先,要先using
using System.Net;using System.Net.Sockets;using System.Text;2.這邊範例是 傳給 IP 為 192.168.6.100 , Port : 1947 , 中文字 許當麻 , Encoding : UTF8
var socket = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
var serverAddr = IPAddress.Parse("192.168.6.100");var endPoint = new IPEndPoint(serverAddr, 1947);string text = "許當麻";
byte[] sendByte = Encoding.UTF8.GetBytes(text);socket.SendTo(sendByte, endPoint);
2015-07-24
2013-06-07
[VS][Winform] 小技巧自動複製執行需要的環境文件至bin\debug
需要呼叫跟執行檔同一層級的 template 檔案夾中裡面的文字檔案..
假設這是專案路徑
C:\Users\no2on\Documents\visual studio 2012\Projects\BridgeASMX\BridgeASMX
我在Compiler debug 執行後他會把.exe 放置在
C:\Users\no2on\Documents\visual studio 2012\Projects\BridgeASMX\BridgeASMX\bin\Debug
我要呼叫的地方東西我希望被放置在
C:\Users\no2on\Documents\visual studio 2012\Projects\BridgeASMX\BridgeASMX\bin\Debug\template

