▼
2018年1月28日 星期日
signalr ==> Create Hub Proxy 代理伺服器
https://dotblogs.com.tw/supershowwei/2016/05/20/151052
// Create Hub Proxy
var broadcastHub = $.connection.broadcastHub;
https://tw.answers.yahoo.com/question/index?qid=20071225000015KK09712
最佳解答: 代理伺服器的原理其實很簡單啦!就是以類似代理人的角度去取得使用者所需要的資料就是了!但是由於他的功用,使得我們可以透過代理伺服器來額外的達成防火牆的功能!此外,也可以藉由代理伺服器 ( Proxy ) 來達成節省頻寬的目的,以及加快內部網路的 WWW 存取速度!總之, Proxy 對於大型的企業來說,實在是一個很不錯的東西啊!
什麼是代理伺服器
在真實世界中,我們或許會幫忙家人去辦理一些雜務吧!舉個例子來說,例如繳費或者是申辦提款卡等等的,那麼由於你並不是『申請者本人』而是『代理人』的角色,因此有時候會需要秀出一些證件就是了。那麼在網路上面的代理伺服器是怎麼回事呢?他就是 Proxy Server 囉!他最主要的功能就如同我們上面提的真實世界一樣, Proxy 會幫 Client 端的用戶去向目的地取得用戶端所需要的資料。所以,當 Client 端指定代理伺服器之後,您的所有相關要求( 例如 WWW 的要求 )就會通過代理伺服器去捉取囉!整個代理伺服器與用戶端的相關性可以由下圖約略看出一個端倪:
http://linux.vbird.org/linux_server/0420squid/0420squid_proxy1.jpg
在內部的電腦都是透過 Proxy 來向 Internet 求取資料的,這就是所謂的『代理伺服器』啦!當然,上面的架構僅只是一個案例,還有相當多的非 Intranet 的 Proxy 架構,亦即是你的 PC 與 Proxy 均在 Internet 上面,但是您一樣可以透過這個 Proxy 來幫您達到代理人身份的目的呢!
在 Proxy 與 Client 的相關性當中,您必需要瞭解的是:您向外部要求的資料事實上都是 Proxy 幫你取得的!怎麼說呢?舉個例子來說,假如我在我的瀏覽器 ( 假設是 Netscape 好了 )設定了我們學校的代理伺服器主機 proxy.ncku.edu.tw 做為我的 Proxy 好了,再假設我的 IP 是 140.116.44.125 ,那麼當我想要取得奇摩網站的新聞資訊時,事實上,都是 proxy.ncku.edu.tw 幫我去取得的,所以在奇摩的網站上面看到向他要求資料的人是誰呢?呵呵!當然就是 proxy.ncku.edu.tw 而不是我 140.116.44.125 囉!這樣可以瞭解 Proxy 的功能了嗎?
除了這點功能之外, Proxy 還有一個很棒的額外功能喔,那就是防火牆的功能!怎麼說呢?看一下上面的圖示,您可以發現一件事情,那就是 Client 端的個人電腦要連上 Internet 一定要經過 Proxy 伺服器,並且,如果有人想要入侵你的系統時,由於你的 proxy 在最外部啊,所以攻擊者就會攻擊錯方向,如此一來,不就比較安全!此外,由於整個 Intranet 對外都是經過 proxy ,也就是『單點對外』的情況,這種狀態底下要來管理防火牆也是比較簡單的喔!
proxy server可稱為代理伺服器
亦可稱為快取伺服器
用途是當用戶要連線倒某一網站時
通常要是預覽器或程式無設定Proxy Server時
是直接連線這個網站
這種方式人少的化速度就快
人多的連線一多頻寬就下降容易塞車
代理伺服器的用途就為了解決這個問題
要是有設定Proxy Server位置的話
伺服器會比對有無最近跟你一樣要連線者連上這個網站的內容
有的話就直接把內容比對差後的結果給你
若無的話伺福器會先幫你連線取得內容並儲存在給使用者
再容易塞車或連線國外的網站上設定Proxy Server通常會對連線速度有點幫助
而各大ISP業者的設定並不一樣
舉中華電信為例為Proxy hinet.net port80
自己的使用的經驗有無設定對於連線到國外網站確實有一定的幫助
不過也由於這種先取得網站內並容儲存的方式
先前的Proxy Server有著作權的侵權問題
後來的法令才明定這種方式才免除這種疑慮
2018年1月27日 星期六
常見jQuery的三種不同架構 $(function(), (function($), $.fn.myFunctionName
常見jQuery的三種不同架構 $(function(), (function($), $.fn.myFunctionName
第一種
$(function(){
// Document is ready
});
其作用和 $(document).ready()一樣 ,用意在DOM載入後執行ready()方法。
$(function(){
// Document is ready
});
其作用和 $(document).ready()一樣 ,用意在DOM載入後執行ready()方法。
第二種
(function($) {
// Here “$" is a jQuery reference
})(jQuery)
基本上是()(para)匿名方法(anonymous function),傳承jQuery的函式庫,jQuery plugins都是用這樣的架構。
(function($) {
// Here “$" is a jQuery reference
})(jQuery)
基本上是()(para)匿名方法(anonymous function),傳承jQuery的函式庫,jQuery plugins都是用這樣的架構。
第三種
$.fn.myFunctionName = function(){
// script codes
}
自己定義function
$.fn.myFunctionName = function(){
// script codes
}
自己定義function
课时1:SignalR之前的那些实时通讯介绍
课时1:SignalR之前的那些实时通讯介绍
http://v.xue.taobao.com/learn.htm?spm=a211ha.10565794.0.0.23a3b07bhH39r0&courseId=74595&chapterId=2966537§ionId=2966537
打造即時互動網站(Real-time web) 的秘訣 –ASP.NET SignalR 入門(台北場) [00:54:22] 作者: GiGi Huang 2014-07-15
https://msdev.cc/Video/C9Detail?id=451f22c4-c1ee-4e12-98ef-3b96bad2cbd9
http://sweeteason.pixnet.net/blog/post/43607932-%5Bc%23%5D-%E5%88%A9%E7%94%A8-signalr-%E8%AE%93%E9%9B%BB%E8%85%A6%E7%89%88%E8%88%87%E8%A1%8C%E5%8B%95%E8%A3%9D%E7%BD%AE%E7%B6%B2%E9%A0%81%EF%BC%8C%E5%8F%AF
打造即時互動網站(Real-time web) 的秘訣 –ASP.NET SignalR 入門(高雄/台中場)2015
https://channel9.msdn.com/Series/-Responsive-Web-Design/-Real-time-web-ASP-NET-SignalR-Kaohsiung-Taichung
使用 ASP.NET SignalR 建置即時擴展的網站服務
https://channel9.msdn.com/Events/TechDays/Techdays-Taiwan-2013/DEV304
http://v.xue.taobao.com/learn.htm?spm=a211ha.10565794.0.0.23a3b07bhH39r0&courseId=74595&chapterId=2966537§ionId=2966537
打造即時互動網站(Real-time web) 的秘訣 –ASP.NET SignalR 入門(台北場) [00:54:22] 作者: GiGi Huang 2014-07-15
https://msdev.cc/Video/C9Detail?id=451f22c4-c1ee-4e12-98ef-3b96bad2cbd9
[C#] 利用 SignalR 讓電腦版與行動裝置網頁,可以互相連動並傳遞即時訊息
Techdays2014 MVP Geek- 利用SignalR打造即時通訊
https://msdev.cc/Video/C9Detail?id=16464baa-8878-417e-b8ac-45fbb3c77574打造即時互動網站(Real-time web) 的秘訣 –ASP.NET SignalR 入門(高雄/台中場)2015
https://channel9.msdn.com/Series/-Responsive-Web-Design/-Real-time-web-ASP-NET-SignalR-Kaohsiung-Taichung
使用 ASP.NET SignalR 建置即時擴展的網站服務
https://channel9.msdn.com/Events/TechDays/Techdays-Taiwan-2013/DEV304
SignalR 系列
https://ithelp.ithome.com.tw/users/20103426/ironman/1050
在錯誤中學習ASP.NET MVC 系列
https://ithelp.ithome.com.tw/users/20091626/ironman/893
2018年1月24日 星期三
[食譜好菜] 使用 ASP.NET SignalR 實現主動式即時廣播通知
[食譜好菜] 使用 ASP.NET SignalR 實現主動式即時廣播通知
https://dotblogs.com.tw/supershowwei/2016/05/20/151052
2018年1月16日 星期二
[C#](note)跳出迴圈之return、break、continue的用法
[C#](note)跳出迴圈之return、break、continue的用法
https://dotblogs.com.tw/mis0800/2015/05/16/151316
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace pt1
{
static class Program
{
/// <summary>
/// 應用程式的主要進入點。
/// </summary>
[STAThread]
static void Main(string[] args1)
{
string[] args = { "w" };
if (args1.Length != 0)
args = args1;
if (args.Length > 0 && args[0] == "w") //這裡進入主程
{
#region 主程式
//用來判斷程式是否已執行
bool isAppRunning = false;
Mutex mutex = new System.Threading.Mutex(true, Process.GetCurrentProcess().ProcessName, out isAppRunning);
//已執行則不鳥
if (!isAppRunning)
{
//MessageBox.Show("Not work!");
//AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);
////加入關閉後自動執行的function
//Environment.Exit(Environment.ExitCode);
////關閉 觸發CurrentDomain_ProcessExit
//《return》直接跳出結束那個函式,不會繼續執行迴圈外的程式
return;
}
MessageBox.Show("return跳出1");
try
{
MessageBox.Show("return跳出2");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
//加入下列這段不然會跳出try,在Main內跑迴圈
Environment.Exit(Environment.ExitCode);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
try
{
Application.Restart();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
#endregion
}
else //執行程式優先執行AutoUpgrade
{
MessageBox.Show("AutoUpgrade");
}
// MessageBox.Show("return跳出3");
}
}
}
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace pt1
{
static class Program
{
/// <summary>
/// 應用程式的主要進入點。
/// </summary>
[STAThread]
static void Main(string[] args1)
{
string[] args = { "w" };
if (args1.Length != 0)
args = args1;
if (args.Length > 0 && args[0] == "w") //這裡進入主程
{
#region 主程式
//用來判斷程式是否已執行
bool isAppRunning = false;
Mutex mutex = new System.Threading.Mutex(true, Process.GetCurrentProcess().ProcessName, out isAppRunning);
//已執行則不鳥
if (!isAppRunning)
{
//MessageBox.Show("Not work!");
//AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);
////加入關閉後自動執行的function
//Environment.Exit(Environment.ExitCode);
////關閉 觸發CurrentDomain_ProcessExit
//《return》直接跳出結束那個函式,不會繼續執行迴圈外的程式
return;
}
MessageBox.Show("return跳出1");
try
{
MessageBox.Show("return跳出2");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
//加入下列這段不然會跳出try,在Main內跑迴圈
Environment.Exit(Environment.ExitCode);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
try
{
Application.Restart();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
#endregion
}
else //執行程式優先執行AutoUpgrade
{
MessageBox.Show("AutoUpgrade");
}
// MessageBox.Show("return跳出3");
}
}
}
c# Mutex 探究
http://arthurmvc.blogspot.tw/2013/09/netlock.html
Mutex(bool, string, out bool): 第三個輸入參數用來指示是否取得同步鎖,是實務中較常用到的。
//isAppRunning = false表示已執行,沒有拿到權仗,若拿到權杖則為true
//blLock = false表示已執行,沒有拿到權仗,若拿到權杖則為true
Mutex(bool, string, out bool): 第三個輸入參數用來指示是否取得同步鎖,是實務中較常用到的。
//isAppRunning = false表示已執行,沒有拿到權仗,若拿到權杖則為true
//blLock = false表示已執行,沒有拿到權仗,若拿到權杖則為true
bool
blLock;
Mutex mutex =
new
Mutex(
true
,
@"Global\MyAPP"
,
out
blLock);
try
{
if
(blLock)
//工作
else
//等待同步鎖
}
finally
{
mutex.ReleaseMutex();
}
範例
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//label1.Text= System.AppDomain.CurrentDomain.BaseDirectory;
label1.Text = Process.GetCurrentProcess().ProcessName;
}
private void button2_Click(object sender, EventArgs e)
{
bool flag = false;
System.Threading.Mutex mutex = new System.Threading.Mutex(true, Process.GetCurrentProcess().ProcessName, out flag);
//第一個參數:true--給調用執行緒賦予互斥體的初始所屬權
//第一個參數:互斥體的名稱
//第三個參數:返回值,如果調用執行緒已被授予互斥體的初始所屬權,則返回true
//flag為true表示取得第一次啟動權,也就是同步鎖
if (flag)
{
label2.Text = "啟動";
}
else
{
label2.Text = "另一隻已在跑";
System.Threading.Thread.Sleep(5000);//執行緒掛起5秒鐘
//請勿使用this.close(); 會有錯誤發生
Environment.Exit(Environment.ExitCode);//退出程式
}
}
private void button3_Click(object sender, EventArgs e)
{
bool flag = false;
System.Threading.Mutex mutex = new System.Threading.Mutex(true, Process.GetCurrentProcess().ProcessName, out flag);
//第一個參數:true--給調用執行緒賦予互斥體的初始所屬權
//第一個參數:互斥體的名稱
//第三個參數:返回值,如果調用執行緒已被授予互斥體的初始所屬權,則返回true
//flag為true表示取得第一次啟動權,也就是同步鎖
if (flag)
{
label2.Text = "程式啟動執行";
}
else
{
//bnt2先按了.因為在同一隻程式.webform已被鎖定.所以label3.Text不會出現
label3.Text = "另一隻已經在跑了";
//直接執行下列
System.Threading.Thread.Sleep(5000);//執行緒掛起5秒鐘
//請勿使用this.close(); 會有錯誤發生(
因為在同一隻程式.webform已被鎖定)
Environment.Exit(Environment.ExitCode);//退出程式
}
}
}
}
2018年1月14日 星期日
c#執行CMD命令 -f 關機時強制關閉所有進程而不顯示任何警告
https://hk.saowen.com/a/4357a5ef0efa1800580b5ae62e1b4d80dc1e95b277839bf48ba9908b57862fd7
https://dotblogs.com.tw/chou/2012/01/14/65787
http://www.programmer-club.com.tw/showSameTitleN/csharp/5461.html
http://einboch.pixnet.net/blog/post/244599530-%E5%88%A9%E7%94%A8c%23%E7%A8%8B%E5%BC%8F%E4%BE%86%E6%8E%A7%E5%88%B6windows%E4%B8%AD%E7%9A%84%E8%99%95%E7%90%86%E7%A8%8B%E5%BA%8F
[C#][WinForm]Application.Exit關閉應用程式後真的不執行了嗎?
https://dotblogs.com.tw/ricochen/2010/01/18/13066
https://dotblogs.com.tw/chou/2012/01/14/65787
http://www.programmer-club.com.tw/showSameTitleN/csharp/5461.html
利用C#程式來控制Windows中的處理程序
http://einboch.pixnet.net/blog/post/244599530-%E5%88%A9%E7%94%A8c%23%E7%A8%8B%E5%BC%8F%E4%BE%86%E6%8E%A7%E5%88%B6windows%E4%B8%AD%E7%9A%84%E8%99%95%E7%90%86%E7%A8%8B%E5%BA%8F
[C#][WinForm]Application.Exit關閉應用程式後真的不執行了嗎?
https://dotblogs.com.tw/ricochen/2010/01/18/13066
2018年1月13日 星期六
基本IP概念
基本IP概念
遮罩 (Mask)就是用來區分2個IP是不是鄰居(在同一個網段內)...預設閘道(Gateway) 路由器(閘道器;Gateway)就是郵局
http://powerfuleric.pixnet.net/blog/post/41100062-%E5%9F%BA%E6%9C%ACip%E6%A6%82%E5%BF%B5
遮罩 (Mask)就是用來區分2個IP是不是鄰居(在同一個網段內)...預設閘道(Gateway) 路由器(閘道器;Gateway)就是郵局
http://powerfuleric.pixnet.net/blog/post/41100062-%E5%9F%BA%E6%9C%ACip%E6%A6%82%E5%BF%B5
SQLite 數據類型
SQLite 數據類型
http://tw.gitbook.net/sqlite/sqlite_data_types.html
http://jyhshin.pixnet.net/blog/post/31988011-sqlite-query-language%3A-datatypes-in-sqlite
SQLite 編輯欄位
http://huang2387.pixnet.net/blog/post/277550569-%E3%80%90%E7%B6%93%E9%A9%97%E3%80%91sqlite-creat-db-%26-creat-table-%E6%B5%81%E7%A8%8B%E5%9C%96
http://tw.gitbook.net/sqlite/sqlite_data_types.html
http://jyhshin.pixnet.net/blog/post/31988011-sqlite-query-language%3A-datatypes-in-sqlite
SQLite 編輯欄位
http://huang2387.pixnet.net/blog/post/277550569-%E3%80%90%E7%B6%93%E9%A9%97%E3%80%91sqlite-creat-db-%26-creat-table-%E6%B5%81%E7%A8%8B%E5%9C%96
2018年1月12日 星期五
C# Sqlite 資料庫加密
C# Sqlite 資料庫加密
http://fecbob.pixnet.net/blog/post/38124397-c%23-sqlite-%E8%B3%87%E6%96%99%E5%BA%AB%E5%8A%A0%E5%AF%86
用了ADO.NET 2.0 SQLite Data Provider 這樣可以直接利用它來創建一個加密的sqlite資料庫。
有關c#代碼如下:
1、創建空的sqlite資料庫。
//資料庫名的尾碼你可以直接指定,甚至沒有尾碼都可以
//方法一:創建一個空sqlite資料庫,用IO的方式
FileStream fs = File.Create("c:\\test2.db");
//方法二:用SQLiteConnection
SQLiteConnection.CreateFile("c:\\test2.db");
創建的資料庫是個0位元組的檔。
2、創建加密的空sqlite資料庫
//創建一個密碼為password的空的sqlite資料庫
SQLiteConnection.CreateFile("c:\\test2.db");
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test2.db");
cnn.Open();
cnn.ChangePassword("password");
3、給未加密的資料庫加密
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test2.db");
cnn.Open();
cnn.ChangePassword("password");
//方法一
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test2.db");
cnn.SetPassword("password");
cnn.Open();
//方法二
SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder();
builder.DataSource = @"c:\test2.db";
builder.Password = @"password";
SQLiteConnection cnn = new SQLiteConnection(builder.ConnectionString);
cnn .Open();
註記:
A、因為加密的函數是利用windows api,故加密後的資料庫只能適用在windows平臺,加密的方式是整體檔加密。
B、加密的演算法是RC4,如果你想採用別的加密演算法來加密,請參考ADO.NET 2.0 SQLite Data Provider 的源碼來修改。
c、相關sqlite資料庫操作類似ADO.NET 2.0。詳見ADO.NET 2.0 SQLite Data Provider的説明文檔。
c、ADO.NET 2.0 SQLite Data Provider 版本為:1.0.53.0 ,SQLite版本 : 3.6.0。
d、開發環境為vs2008。
創作者介紹
shadow 發表在 痞客邦 PIXNET
http://fecbob.pixnet.net/blog/post/38124397-c%23-sqlite-%E8%B3%87%E6%96%99%E5%BA%AB%E5%8A%A0%E5%AF%86
用了ADO.NET 2.0 SQLite Data Provider 這樣可以直接利用它來創建一個加密的sqlite資料庫。
有關c#代碼如下:
1、創建空的sqlite資料庫。
//資料庫名的尾碼你可以直接指定,甚至沒有尾碼都可以
//方法一:創建一個空sqlite資料庫,用IO的方式
FileStream fs = File.Create("c:\\test2.db");
//方法二:用SQLiteConnection
SQLiteConnection.CreateFile("c:\\test2.db");
創建的資料庫是個0位元組的檔。
2、創建加密的空sqlite資料庫
//創建一個密碼為password的空的sqlite資料庫
SQLiteConnection.CreateFile("c:\\test2.db");
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test2.db");
cnn.Open();
cnn.ChangePassword("password");
3、給未加密的資料庫加密
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test2.db");
cnn.Open();
cnn.ChangePassword("password");
//方法一
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test2.db");
cnn.SetPassword("password");
cnn.Open();
//方法二
SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder();
builder.DataSource = @"c:\test2.db";
builder.Password = @"password";
SQLiteConnection cnn = new SQLiteConnection(builder.ConnectionString);
cnn .Open();
註記:
A、因為加密的函數是利用windows api,故加密後的資料庫只能適用在windows平臺,加密的方式是整體檔加密。
B、加密的演算法是RC4,如果你想採用別的加密演算法來加密,請參考ADO.NET 2.0 SQLite Data Provider 的源碼來修改。
c、相關sqlite資料庫操作類似ADO.NET 2.0。詳見ADO.NET 2.0 SQLite Data Provider的説明文檔。
c、ADO.NET 2.0 SQLite Data Provider 版本為:1.0.53.0 ,SQLite版本 : 3.6.0。
d、開發環境為vs2008。
創作者介紹
shadow 發表在 痞客邦 PIXNET
2018年1月11日 星期四
Process.start指定為UseShellExecute=false的問題
Process.start指定為UseShellExecute=false的問題
http://bbs.csdn.net/topics/330253182
[C#]利用 Process 來執行其它外部程式
http://abgne.tw/code-snippets/dotnet-process.htmlhttp://a7419.pixnet.net/blog/post/89449301-c%23-%E5%9F%B7%E8%A1%8C%E5%A4%96%E9%83%A8exe
https://dotblogs.com.tw/am940625/2016/02/15/140257
https://dotblogs.com.tw/atowngit/archive/2009/12/26/12681.aspx
https://dotblogs.com.tw/kirkchen/2011/08/02/execute-process-standardoutput-after-waitforexit-will-cause-deadlock
cmd /c和cmd /k
http://houliang4285.iteye.com/blog/1687816
http://forum.twbts.com/viewthread.php?tid=10207
http://forum.twbts.com/viewthread.php?tid=10207
[C#]使用Process的StandardInput與StandardOutput寫入讀取控制枱數據
2018年1月10日 星期三
[C#.NET] 判斷被呼叫的應用程式是否被關閉
[C#.NET] 判斷被呼叫的應用程式是否被關閉
https://dotblogs.com.tw/yc421206/archive/2011/03/21/21981.aspx
https://dotblogs.com.tw/yc421206/archive/2011/03/21/21981.aspx
NET(C#):关于进程退出的事件
http://blog.csdn.net/mysce/article/details/71526929
C# 讓程式不顯示在工作管理員中
C# 讓程式不顯示在工作管理員中
https://dotblogs.com.tw/hacker_mission/2017/12/04/090607
Findwindow
http://www.blueshop.com.tw/board/FUM20050124192253INM/BRD20101225233503KLX.html
https://dotblogs.com.tw/hacker_mission/2017/12/04/090607
Findwindow
http://www.blueshop.com.tw/board/FUM20050124192253INM/BRD20101225233503KLX.html
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsFormsApplication1 { public partial class Form1 : Form { [DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)] private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { IntPtr hwd1 ; hwd1 = FindWindow(null, "未命名 - 記事本"); if (hwd1 == IntPtr.Zero) { MessageBox.Show ("找不到"); } else { MessageBox.Show("找到了"); } } } }
其他
https://dotblogs.com.tw/optimist9266/2011/06/06/27194
http://blog.csdn.net/soief/article/details/4094476
https://ask.helplib.com/c-Sharp/post_1139423
http://www.blueshop.com.tw/board/FUM20050124192253INM/BRD201210151025017BV.html
https://social.msdn.microsoft.com/Forums/zh-TW/d70d8991-68be-462d-af6a-566b1504281b/winform?forum=233
http://www.codebye.com/c%E6%80%8E%E6%A0%B7%E5%9C%A8%E4%BB%BB%E5%8A%A1%E7%AE%A1%E7%90%86%E5%99%A8%E4%B8%AD%E9%9A%90%E8%97%8F%E4%B8%BB%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%BF%9B%E7%A8%8B%E5%90%8D.html
2018年1月8日 星期一
vs2010打包winform程序詳解
http://www.cnblogs.com/jqmtony/p/3699352.html
http://www.wenwenti.info/article/822183
http://www.itdadao.com/articles/c15a993738p0.html
https://www.bbsmax.com/A/MAzAWOXy59/
http://autoposter.pixnet.net/blog/post/116865479-c%23-winform%E6%89%93%E5%8C%85%EF%BC%88%E5%B8%B6%E6%95%B8%E6%93%9A%E5%BA%AB%E5%AE%89%E8%A3%9D%EF%BC%89%E8%BD%89
http://www.javashuo.com/content/p-4502819.html
https://coolong124220.nidbox.com/diary/read/8045418
http://www.jb51.net/article/29226.htm
https://read01.com/zh-tw/y6662.html#.WlPvZt-WZPY
https://read01.com/AE0de0.html#.WlPvgN-WZPY
http://blog.csdn.net/xhf55555/article/details/7702212
https://blog.miniasp.com/post/2010/06/07/Visual-Studio-Setup-Project-AssemblyFileVersion-issue.aspx
https://read01.com/a0gznO.html#.WlPod9-WZPY
https://read01.com/D5J3KM.html#.WlPoc9-WZPY
https://read01.com/8PMdAQ.html#.WlPocd-WZPY
https://read01.com/O20Lnz.html#.WlPobt-WZPY
https://read01.com/5QR774.html#.WlPoat-WZPY
https://read01.com/R54DQo.html#.WlPoZt-WZPY
https://read01.com/8PNmPL.html#.WlPoZN-WZPY
https://read01.com/GPNzEn.html#.WlPoYd-WZPY
http://blog.e-happy.com.tw/?p=236
https://dotblogs.com.tw/hung-chin/2011/05/22/25794
http://zhanghaicheng.com/share/csharp/239.html
https://read01.com/zh-tw/AE0de0.html#.WlOXxt-WZPZ
https://read01.com/y6662.html#.WlPoXt-WZPY
http://www.wenwenti.info/article/822183
http://www.itdadao.com/articles/c15a993738p0.html
https://www.bbsmax.com/A/MAzAWOXy59/
http://autoposter.pixnet.net/blog/post/116865479-c%23-winform%E6%89%93%E5%8C%85%EF%BC%88%E5%B8%B6%E6%95%B8%E6%93%9A%E5%BA%AB%E5%AE%89%E8%A3%9D%EF%BC%89%E8%BD%89
http://www.javashuo.com/content/p-4502819.html
https://coolong124220.nidbox.com/diary/read/8045418
http://www.jb51.net/article/29226.htm
https://read01.com/zh-tw/y6662.html#.WlPvZt-WZPY
https://read01.com/AE0de0.html#.WlPvgN-WZPY
http://blog.csdn.net/xhf55555/article/details/7702212
https://blog.miniasp.com/post/2010/06/07/Visual-Studio-Setup-Project-AssemblyFileVersion-issue.aspx
https://read01.com/a0gznO.html#.WlPod9-WZPY
https://read01.com/D5J3KM.html#.WlPoc9-WZPY
https://read01.com/8PMdAQ.html#.WlPocd-WZPY
https://read01.com/O20Lnz.html#.WlPobt-WZPY
https://read01.com/5QR774.html#.WlPoat-WZPY
https://read01.com/R54DQo.html#.WlPoZt-WZPY
https://read01.com/8PNmPL.html#.WlPoZN-WZPY
https://read01.com/GPNzEn.html#.WlPoYd-WZPY
http://blog.e-happy.com.tw/?p=236
https://dotblogs.com.tw/hung-chin/2011/05/22/25794
http://zhanghaicheng.com/share/csharp/239.html
https://read01.com/zh-tw/AE0de0.html#.WlOXxt-WZPZ
https://read01.com/y6662.html#.WlPoXt-WZPY
2018年1月7日 星期日
keylogger參考
keylogger參考
https://www.observeit.com/product/highlights/
http://tw.imonitorsoft.com/eam-pro-feature-sceenshots.html
http://www.imonitorsoft.com/help/eam/tw/
https://www.ithome.com.tw/review/96721
http://milo0922.pixnet.net/blog/post/27311927-%E3%80%90%E4%B8%8B%E8%BC%89%E3%80%91%E7%B4%80%E9%8C%84%E4%BD%BF%E7%94%A8%E9%9B%BB%E8%85%A6%E9%81%8E%E7%A8%8B---xp-%E9%8D%B5%E7%9B%A4%E5%81%B4%E9%8C%84%E5%99%A8%E7%B6%A0
http://milo0922.pixnet.net/blog/post/37352806
http://milo0922.pixnet.net/blog/post/37012805
http://milo0922.pixnet.net/blog/post/37012805-%E3%80%90%E4%B8%8B%E8%BC%89%E3%80%91%E7%B4%80%E9%8C%84%E9%9B%BB%E8%85%A6%E9%8D%B5%E7%9B%A4%E3%80%81%E7%9B%A3%E8%A6%96%E8%9E%A2%E5%B9%95%E3%80%81%E4%BD%BF%E7%94%A8%E9%81%8E%E7%9A%84
http://milo0922.pixnet.net/blog/post/36546713
http://milo0922.pixnet.net/blog/post/39596169
http://www.macuknow.com/node/54349
http://devin6413.pixnet.net/blog/post/25056101-%E5%BD%A9%E8%99%B9%E6%A9%8B%E6%9C%A8%E9%A6%AC%E6%B8%AC%E8%A9%A6%EF%BC%8C%E5%85%A5%E4%BE%B5%E7%9B%A3%E6%8E%A7%E9%9B%BB%E8%85%A6%E5%BE%88%E8%BC%95%E9%AC%86%EF%BC%9F%EF%BC%81
https://www.observeit.com/product/highlights/
http://tw.imonitorsoft.com/eam-pro-feature-sceenshots.html
http://www.imonitorsoft.com/help/eam/tw/
https://www.ithome.com.tw/review/96721
http://milo0922.pixnet.net/blog/post/27311927-%E3%80%90%E4%B8%8B%E8%BC%89%E3%80%91%E7%B4%80%E9%8C%84%E4%BD%BF%E7%94%A8%E9%9B%BB%E8%85%A6%E9%81%8E%E7%A8%8B---xp-%E9%8D%B5%E7%9B%A4%E5%81%B4%E9%8C%84%E5%99%A8%E7%B6%A0
http://milo0922.pixnet.net/blog/post/37352806
http://milo0922.pixnet.net/blog/post/37012805
http://milo0922.pixnet.net/blog/post/37012805-%E3%80%90%E4%B8%8B%E8%BC%89%E3%80%91%E7%B4%80%E9%8C%84%E9%9B%BB%E8%85%A6%E9%8D%B5%E7%9B%A4%E3%80%81%E7%9B%A3%E8%A6%96%E8%9E%A2%E5%B9%95%E3%80%81%E4%BD%BF%E7%94%A8%E9%81%8E%E7%9A%84
http://milo0922.pixnet.net/blog/post/36546713
http://milo0922.pixnet.net/blog/post/39596169
http://www.macuknow.com/node/54349
http://devin6413.pixnet.net/blog/post/25056101-%E5%BD%A9%E8%99%B9%E6%A9%8B%E6%9C%A8%E9%A6%AC%E6%B8%AC%E8%A9%A6%EF%BC%8C%E5%85%A5%E4%BE%B5%E7%9B%A3%E6%8E%A7%E9%9B%BB%E8%85%A6%E5%BE%88%E8%BC%95%E9%AC%86%EF%BC%9F%EF%BC%81
取得目前瀏覽的頁面Url
http://ahijup.blogspot.tw/2012/03/url.html
在C#中取得前景視窗(ForegroundWindow)的應用程式名稱
在C#中取得前景視窗(ForegroundWindow)的應用程式名稱
http://codingjames.blogspot.tw/2010/09/cforegroundwindow.html
[C#] 透過 Win32 EnumWindows 和 GetWindowText 取得所有執行程式的hWnd還有標題
http://no2don.blogspot.com/2017/05/c-win32-enumwindows-getwindowtext-hwnd.html
[C#]取得本機端上,執行中有 GUI 介面的應用程式
http://codingjames.blogspot.tw/2010/09/cforegroundwindow.html
[C#] 透過 Win32 EnumWindows 和 GetWindowText 取得所有執行程式的hWnd還有標題
http://no2don.blogspot.com/2017/05/c-win32-enumwindows-getwindowtext-hwnd.html
[C#]取得本機端上,執行中有 GUI 介面的應用程式
https://dotblogs.com.tw/chou/2009/09/30/10848
取得程式本身執行期的路徑與檔名
http://slashlook.com/articles_20150608.html
System.IO.Path常用及Request URL常用
http://pramaire.pixnet.net/blog/post/24610352
C#取得執行程式所在的路徑方法
http://pramaire.pixnet.net/blog/post/38668426
C# WINFORM 取得執行程式所在的路徑方法
http://blog.xuite.net/hsiung03/blog/63883235-C%23+WINFORM+%E5%8F%96%E5%BE%97%E5%9F%B7%E8%A1%8C%E7%A8%8B%E5%BC%8F%E6%89%80%E5%9C%A8%E7%9A%84%E8%B7%AF%E5%BE%91%E6%96%B9%E6%B3%95
[C#][WinForm]Application.Exit關閉應用程式後真的不執行了嗎?
https://dotblogs.com.tw/ricochen/2010/01/18/13066
[VB.NET][C#.NET] Windows Form /控制項 事件 的 先後順序 / 事件方法覆寫
https://dotblogs.com.tw/yc421206/archive/2009/07/24/9668.aspx
2018年1月3日 星期三
COMPUTERWORLD 10 大免費網路軟體工具介紹
COMPUTERWORLD 10 大免費網路軟體工具介紹
https://www.dgbas.gov.tw/public/Data/91615571371.pdf
https://drive.google.com/file/d/19a5ntqDHpyQN92Il_ba_oJ3eQtdy-WxH/view?usp=sharing
https://www.dgbas.gov.tw/public/Data/91615571371.pdf
https://drive.google.com/file/d/19a5ntqDHpyQN92Il_ba_oJ3eQtdy-WxH/view?usp=sharing
2018年1月2日 星期二
C#全局键盘监听(Hook)的使用
C#全局键盘监听(Hook)的使用
***
http://blog.csdn.net/u014434080/article/details/51513197
***
https://github.com/yswenli/Wenli.IEM
http://www.itread01.com/articles/1489334225.html
http://www.cnblogs.com/clso/archive/2009/04/14/1435299.html
http://www.cnblogs.com/grenet/archive/2010/12/07/1898840.html
http://fecbob.pixnet.net/blog/post/38088281-c%23-%E9%8E%96%E5%AE%9A%E9%8D%B5%E7%9B%A4%EF%BC%8C%E6%BB%91%E9%BC%A0-
https://social.msdn.microsoft.com/Forums/vstudio/en-US/edd98156-a292-431c-94c0-b6d611fa0aef/casesensitive-keyboard-hook?forum=vcgeneral
https://zhidao.zhenbo.org/bwZdjWYchZc
http://www.cnblogs.com/lhyqzx/p/5955440.html
http://blog.csdn.net/beyondqd/article/details/8512354
http://blog.csdn.net/chenlaoyang/article/details/8268492
http://www.zendei.com/article/17314.html
http://www.huanlintalk.com/2015/08/convert-enum-to-key-value-array.html
http://tutplusplus.blogspot.tw/2010/10/ultimate-keylogger-lesson-1-global.html
https://stackoverflow.com/questions/604410/global-keyboard-capture-in-c-sharp-application
https://pastebin.com/pf5t4mgK
http://blog.xuite.net/vexed/tech/66042514-%E7%B7%9A%E4%B8%8A%E6%B3%A8%E9%9F%B3%E5%BF%98%E8%A8%98%E5%88%87%E6%8F%9B%E8%BC%B8%E5%85%A5%E6%B3%95%E8%A7%A3%E7%A2%BC
https://www.jianshu.com/p/8f839f558319
https://msdn.microsoft.com/zh-tw/library/system.windows.forms.keypresseventargs.keychar(v=vs.110).aspx
http://www.aspphp.online/bianchen/dnet/gydnet/201701/170503.html