如何使用C 操作WinAPI

2021-09-22 13:18:02 字數 1301 閱讀 5183

windows api是對windows作業系統的api函式,在c#中呼叫windows api的實質是託管**對非託管**的呼叫。

主要使用的格式就是:

using

system.runtime.interopservices;

namespace

testwinapi1

[dllimport(

"kernel32

", charset

=charset.ansi)]

public

static

extern

bool

beep(

intfrequery,

intduration);}}

其中的beep就是win api的呼叫,使用[dllimport("kernel32")]屬性進行呼叫。

這個函式在msdn中的原本定義是:

c

++bool winapi beep(

__in dword dwfreq,

__in dword dwduration);

我們想要呼叫beepapi,就必須:

1.將dword對應為c#中的int,相應的引數個數和位置設定正確

2.呼叫的函式名和winapi中的函式名一致

這樣,我們在c#中就可以使用win api對windows進行操作。

這裡幾個資源是使用windowsapi不可或缺的:

msdn:

推薦的入門教程:

使用winapi的難點:

1.c++中的各個資料型別如何對應到c#中?

使用c#中的那個資料型別對應那個c++的資料型別沒有唯一的規定,但是應該站在記憶體使用的角度,選擇記憶體占用大小一致。

當c++中存在指標的時候,我們可以使用ref來傳遞指標

2.如果c++中定義了資料結構如何操作?

我們也應該在c#中定義與之儲存結構一致的資料結構

以下是用winapi 模擬滑鼠定位和單機左鍵的操作:

簡要描述:

使用了mouse_event,getcursorpos,setcursorpos三個api

mouse_event((uint)mouseeventflags.leftdown|(uint)mouseeventflags.leftup, 0, 0, 0, 0);

代表了單擊左鍵的動作

int setright = setcursorpos(27, 881); 中的27,881是螢幕上的絕對位置

ps:使用api可以做一些遊戲的小外掛程式,比如模擬滑鼠,鍵盤的操作...嘿嘿

如何使用C 操作WinAPI

windows api是對windows作業系統的api函式,在c 中呼叫windows api的實質是託管 對非託管 的呼叫。主要使用的格式就是 using system.runtime.interopservices namespace testwinapi1 dllimport kernel3...

WinAPI程式如何使用CString

cstring 是乙個很強大的類,功能強大,可以節省很多 可是cstring好像在mfc或atl中才可以使用,winapi程式可以使用這個類嗎?其實也是可以的。只需要引入 atlstr.h 標頭檔案即可。include測試 環境 vs2010 c win32 api程式 include includ...

win API 操作 ini 檔案

1.getprivateprofileint 從私有初始化檔案獲取整型數值 2.getprivateprofilestring 從私有初始化檔案獲取字串型值 3.writeprivateprofilestring寫字串到私有初始化檔案 4.getprofileint從win.ini 獲取整數值 5....