公告版位

目前分類:Windows API for C# (14)

瀏覽方式: 標題列表 簡短摘要

 

一、 程式說明:

              使用Directshow提供的Filter來製作簡單的TV Tuner播放軟體,主要的功能是播放及錄製由TV Tuner

        所傳送的影像資料,而該軟體錄製的影像格式只支援Windows影片格式且除了影片播放外還提供圖片擷

        取儲存的功能。 (DirectShow SDK下載)

 

二、相關的Filter使用說明:  

      1. Filter Graph Manager (CLSID_FilterGraph) - 

                 Direct Show的中央單元,主要是用來管理Filter之間的控制同步化、事件通知…等各種的

          Filter Graph控制,操作方式主要是使用下列的介面來完成:

yunjuihuang 發表在 痞客邦 留言(1) 人氣()

一、 程式說明:

             使用Directshow提供的Filter來製作簡單的影像擷取軟體,主要的功能是顯示及錄製由擷取設備

       所傳送的影像資料,而該軟體錄製的影像格式只支援Windows影片格式且除了影片播放外還提供圖片

       擷取儲存的功能。

       (DirectShow SDK下載)

 

二、相關的Filter使用說明:

      1. Filter Graph Manager (CLSID_FilterGraph) - 

               Direct Show的中央單元,主要是用來管理Filter之間的控制同步化、事件通知…等各種的

          Filter Graph控制,操作方式主要是使用下列的介面來完成:

yunjuihuang 發表在 痞客邦 留言(3) 人氣()

一、 程式說明:

使用Directshow提供的Filter來製作簡單的影片播放軟體而該軟體只支援Windows影片格式,除了影片播放外

還提供圖片擷取儲存的功能。(DirectShow SDK下載)

 

二、相關的Filter使用說明:

1. Filter Graph Manager (CLSID_FilterGraph) - 

 Direct Show的中央單元,主要是用來管理Filter之間的控制同步化、事件通知…等各種的

Filter Graph控制,操作方式主要是使用下列的介面來完成:

1-1、IMediaControl  (IID_IMediaControl) -  

控制通過Filter Graph中資料流處理的方式,例如:running、pausing, and stopping...等。

yunjuihuang 發表在 痞客邦 留言(0) 人氣()

一、 程式說明:

            如何藉由動態的載入xaml或baml的檔案來變更程式的面板(skin),但是WPF並沒有面板(skin)

      的概念,也沒有正規的面板表示方式,而是透過WPF的動態資源機制結合樣式及範本的功能來完成類

      似換面板(skinning)的功能。

 

二、建立以DynamicResource為根元素的xaml檔案:

    2-1、在允許變更外觀的物件中設定Style屬性為DynamicResource並指定其載入資源的名稱,以便於

           未來指定載入相關的資源的分配。

           EX:

         <Image Name="titleimagel" Style="{DynamicResource TitleImage}"  ToolTip =

yunjuihuang 發表在 痞客邦 留言(1) 人氣()

1、C#使用Windows API時必須先使用DllImport來Include Library,主要使用下列九個Windows API:

    1 - 1、CreateFile  (CloseHandle) 一 建立/開啟(關閉)一個檔案或I/O設備

    1 - 2、CreateEvent  一 建立/開啟有名稱或沒有名稱的一個事件物件

    1 - 3、ClearCommBreak (SetCommBreak) 一

             恢愎(暫停)通訊設備的傳輸並設定傳輸線在非(是)中斷的狀態

    1 - 4、GetCommState (SetCommState) 一 檢索(設定)目前通訊設備的控制設定

    1 - 5、GetCommMask (SetCommMask) 一 檢索(設定)目前通訊設備的事件遮罩

    1 - 6、GetDefaultCommConfig (SetDefaultCommConfig) 一

              檢索(設定)預設目前通訊設備的組態設定

    1 - 7、GetCommConfig (SetCommConfig) 一 檢索(設定)目前通訊設備的組態設定

yunjuihuang 發表在 痞客邦 留言(1) 人氣()

一、使用VFW(vido for windows) architecture來處理和顯示影音資訊有兩項缺點:

      (1) 音訊/視訊的同步化問題(audio/video synchronization) 。    

      (2) 不支援可變動長度的視框(no support variable-length frames)。

           因此目前多數已經用DirectShow來處理相關的視訊資料;但是相對於使用DirectShow而言使用

           VFW比較適合用於開發簡單和單純功能的視訊相關軟體。

 

二、在C#中使用VFW library(Avicap32.dll)必須先使用Dlllmport來Include Library,但是由於AVICap 

      Windows Class是以message-based為介面,因此多數的函式其實是巨集指令透過特定的命令來控

      制和操作AVICap Window,本文使用的相關的函式只下列兩項其他的皆為巨集指令:

2-1、capCreateCaptureWindow (

yunjuihuang 發表在 痞客邦 留言(11) 人氣()

1 、TCP connect Scan是所有Scan Port中最簡單的方式,它是使用一個完整的TCP Connect

      (SYN,SYN/ACK,ACK)的方式來確認目標機器是否存在且開啟特定的埠,因此將會在目標機器

      上留下連線記錄。但由於在Windows XP SP2 之後的版本已經不能直接使用Socket自訂TCP

      Header 來傳送TCP 封包因此無法直接使用Socket實作其他如:TCP Syn Scan、TCP Fin

      Scan…等不完全connect的方式,但是可以使用其他的方式來完成上述特殊的連線方式,相關

      的方式如下:

      1-1、Winpcap (Windows version of Libpcap): (按此連接相關範例)

      使用Winpcap library傳送或接收raw packet來操作Connect的流程及訊息。

      1-2、NDIS Protocol Driver (連接NIC和應用程式):(按此連接相關範例)

      使用NDIS Protocol Driver來傳送或接收raw packet來操作Connect的流程及訊息。

yunjuihuang 發表在 痞客邦 留言(0) 人氣()

1 、Sniff軟體即是網路竊聽器, 由於乙太網路是以廣播的方式來傳輸同一網路區段的資料,因此當網路

     連接方式是使用HUB而非Switch或Route,則只須將網路卡設定為混雜模式(promisscuous)來接

     收所有輸送至網路卡的資料並進行資料封包的分析即可。

2、C#使用Windows API時必須先使用DllImport來Include Library,主要使用下列14個網路相關的API:

      2-01、int WSAStartup(ushort wVersionrequested,ref WSDATA lpWSAData)

         一  使用Windows Socket必須成功的調用此函式,才可以完成其他一系列的初始化。

      2-02、int sock(int af,int type,int protocol) 一 建立一個具體傳輸服務的Socket。

      2-03、int WSAGetLastError() 一 擷取使用Windows Socket函式失敗時的錯誤訊息。

      2-04、uint GetIpAddrTable(IntPtr pIpAddrTable,ref int pdwSize,bool bOrder)

          一 取得目前主機有多少介面有IPv4 Address。

yunjuihuang 發表在 痞客邦 留言(0) 人氣()

1、C#使用Windows API時必須先使用DllImport來Include Library,主要使用下列15個網路相關的API:

      1-01、int WSAStartup(ushort wVersionrequested,ref WSDATA lpWSAData)

            一  使用Windows Socket必須成功的調用此函式,才可以完成其他一系列的初始化。

      1-02、int sock(int af,int type,int protocol) 一  建立一個具體傳輸服務的Socket。

      1-03、int WSAGetLastError() 一 擷取使用Windows Socket函式失敗時的錯誤訊息。

      1-04、IntPtr gethostbyname(IntPtr name)

          一 傳入DNS名稱透過DNS Server取得Host端的網路位址和其他資訊。

          一 一個DNS名稱可能不只對應一個網路位址,但一個網路位址只可以對應一個DNS名稱。

      1-05、IntPtr gethostbyaddr(ref uint addr, int type,int len) 一 同上,但是使用網路位址來取得資訊。

      1-06、int gethostname(IntPtr name,int namelen) 一 取得本機的網路名稱。

yunjuihuang 發表在 痞客邦 留言(0) 人氣()

1、C#使用Windows API時必須先使用DllImport來Include Library,主要使用下列九個Windows API:

      1-1、waveOutGetNumDevs(waveInGetNumDevs) 一 查詢系統上有多少輸出(輸入)設備

      1-2、waveOutGetDevGaps (waveInGetGaps) 一 查詢特定輸出(輸入)波形設備的能力               

      1-3、waveOutOpen(waveInOpen) 一 開啟特定的波輸出(輸入)設備

      1-4、waveOutPrepareHeader(waveInPrepareHeader) 一 設定波形輸出(輸入)的緩衝區

      1-5、waveOutWrite(waveInWrite) 一 傳送(接收)資料區塊

      1-6、waveOutRest(waveInRest) 一 停止重播及重設播放位置為零              

      1-7、waveOutClose(waveInClose) 一 關閉特定的波形輸出(輸入)設備

      1-8、waveOutUnprepareHeader(waveInUnprepareHeader) 一 移除波形輸出(輸入)的緩衝區

      1-9、waveInStart 一 開始接收輸入音訊資料

yunjuihuang 發表在 痞客邦 留言(0) 人氣()

1、使用C#與Mysql server進行連線則必須先至Mysql 網站下載Mysql library for C#。   

2、Download : no-install version of Mysql library

3、Add Mysql library to our project :

    Mysql1.jpg 

     並在在專案的一開始加入using MySql.Data.MySqlClient;

 

 4.首先使用MySqlConnection 物件來與Mysql進行連線:

    Ex:

           MySqlConnection conn = new MysqlConnection(

                                                                          "server=192.168.10.110;prot=5306;

yunjuihuang 發表在 痞客邦 留言(4) 人氣()

1、當顯示卡支援雙螢幕則如何延伸桌面視窗至第二個螢幕和旋轉螢幕的顯示角度:

 1-1: 主要使用下列三個Windows API:

              一、 EnumDisplayDevices :取得目前顯示設備基本資訊

               二、EnumDisplaySettings:取得特定顯示設備的參數值

               三、ChangeDisplaySettingsEx :設定特定顯示設備的參數值

1-2: 在C#中必須透過DllImport才能使用Widnows API的相關函數:

Ex: using System.Runtime.InteropServer;

              [DllImport("user32.dll",SetLastError = true)]  
              static extern int ChangeDisplaySettingsEx(
                                                                       string lpszDeviceName,

yunjuihuang 發表在 痞客邦 留言(8) 人氣()

1、如果使用visual c++ 或是MFC 程式語言來與HID Device溝通則必須先安裝WDK,因為必須包含(Include)HID 相關的標頭檔 

     (header file)。

2、安裝WDK後在工具->選項->專案和方案->Visual C++目錄中設定下列資料:

Setting Include File:(1) \inc\ddk (2) \inc\api

include.jpg

Setting Library File:(1) lib\wlh\i386

library.jpg

3、使用Visual C#則不需要先安裝WDK,因為相關的Structure和vairable 必須使用者自行宣告。

EX:      

 Structure Setting:

yunjuihuang 發表在 痞客邦 留言(16) 人氣()

1.在C#中使用Windows API時必須先使用DllImport來Include相關的library:

example :

using System.Runtime.InteropServices;
using System.Diagnostics;
    [DllImport("user32.dll")]
     private static extern IntPtr SetWindowsHookEx(
                                              HookType code,
                                              MSHookProc func,

yunjuihuang 發表在 痞客邦 留言(0) 人氣()