none
提問win32API RRS feed

解答

  • 在 .Net 下 API 沒有分 VB 版本,直接宣告就可以了。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 daybule 2015年8月20日 下午 04:55
    2015年8月20日 下午 03:17

所有回覆

  • 在 .Net 下 API 沒有分 VB 版本,直接宣告就可以了。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 daybule 2015年8月20日 下午 04:55
    2015年8月20日 下午 03:17
  • 在請問一下要如何直接宣告API.可否舉個例子謝謝!!

    2015年9月11日 下午 08:51
  • 請參考以下文件

    使用 Unmanaged DLL 函式
    平台叫用教學課程


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年9月12日 上午 12:35
    版主
  • 逐步解說:呼叫 Windows API (Visual Basic)

    如何:呼叫 Windows API (Visual Basic)

    如何:呼叫使用不帶正負號類型的 Windows 函式 (Visual Basic)


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年9月12日 上午 04:31
  • 大大請教一下vb2015的API是否還有KERNEL32.DLL呢?

    如果沒有應該用哪一個API呢?

    煩請回復感恩!

    2015年9月12日 上午 11:16
  • 大大請教一下vb如何讀取記憶體的資料或是有資料可供參考謝謝!
    2015年9月13日 下午 02:02
  • 既有討論

    https://social.msdn.microsoft.com/Forums/zh-TW/home?forum=232&sort=relevancedesc&brandIgnore=True&searchTerm=CopyMemory


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年9月13日 下午 03:52
  • 大大不好意思再請教一下.利用API讀取記憶體的資料到文字框裡面

    那麼API要如何宣告呢?

    2015年9月14日 下午 01:24
  • 大大不好意思再請教一下.利用API讀取記憶體的資料到文字框裡面

    那麼API要如何宣告呢?


    ReadProcessMemory

    Read/write the memory from another process with vb.net


    歡迎參觀我的Blog【菜鳥自救會】

    2015年9月15日 上午 02:15
    版主
  • 大大在請教一下此讀取記憶體的API宣告

     Public Declare Unicode Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (hProcess As IntPtr, lpBaseAddress As IntPtr, ByRef lpBuffer As Byte(), dwSize As Integer, ByRef lpNumberOfBytesRead As Integer) As Boolean

    以上宣告只會顯示FALSE OR TURE請要如何修改才會顯示字串呢?

    我是從網路抓的在說明一點我使用的是VB2015的VB作業系統是WIN8.1要如何解除系統對記憶體的保護進而讀取記憶體的值呢?

    TextBox2.Text = ReadProcessMemory(hProcess, &H509E68, w, 2, 0).ToString

    以上是我要將讀取到的記憶體的值顯示是在文字框內但是顯示出來的值都不是我在另一個文字框寫入記憶體的字串

    請問讀取記憶體的值是否要再經過編碼才會顯示字串呢?

    2015年9月15日 上午 07:30
  • 大大不好意思小弟只是業餘玩家

    如以上問題如果有打擾到請多多見諒!

    2015年9月15日 下午 12:46
  • ReadProcessMemory 是跨程序讀取記憶體,跟一般讀取記憶體在自己程序內不一樣。

    業餘玩家請不要碰,因為現在作業系統會擋、防毒軟體會擋、有些軟體自己會擋,所以,把你的目的說清楚吧。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年9月15日 下午 03:18
  • 恩大大我在寫rs232的傳輸程式我需要用到

    讀取記憶體跟寫入記憶體這兩種方式來達到

    我想要寫的介面請不要誤會

    還有可以給我說明文件的msdn的網址嗎?

    我先看一下說明文件怎麼用不然我都快不知道

    怎麼跟你們發問題了

    謝謝!

    2015年9月15日 下午 04:29
  • 大大可以請教一下以下的api要如何使用

     Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

     Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hWnd As Long, ByVal lpdwProcessId As Long) As Long

     Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

    煩請大大回復感恩!

    2015年9月16日 上午 07:55
  • 大大請教一下以下是 GetWindowThreadProcessId

     Dim q As Long

    getwin = FindWindow(vbNullString, "Form1")
            GetWindowThreadProcessId(getwin, q)

    為什上面的寫法出現錯誤訊息告訴我:

    嘗試讀取或寫入受保護的記憶體。這通常表示其他記憶體已損毀

    請問這是甚麼情形

    我使用的是vs2015的vb請問要用哪一種型別才部會出現上述的記憶體被保護的問題

    煩請回覆謝謝!


    • 已編輯 daybule 2015年9月16日 下午 05:28
    2015年9月16日 下午 02:25
  • 恩大大我在寫rs232的傳輸程式我需要用到

    讀取記憶體跟寫入記憶體這兩種方式來達到

    我想要寫的介面請不要誤會

    還有可以給我說明文件的msdn的網址嗎?

    我先看一下說明文件怎麼用不然我都快不知道

    怎麼跟你們發問題了

    謝謝!

    寫 RS232 傳輸為什麼會用到直接存取特定記憶體位址 ? 你恐怕應該先想想程式的邏輯, 老實說, 我覺得你已經想岔了.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年9月16日 下午 02:44
    版主
  • 大大我研究很久了有問過認識的會寫

    他跟我說要用api才可以寫出當電腦端按傳送資料時

    在設備端讀取資料時在電腦端會看到資料被讀取的狀態

    所以才開始研究api.第一個想到的是只讀記憶體的資料就是緩衝區

    來實現傳送資料時會看到資料被傳送出去的狀態

    還有大大如果你說我想岔了那麻煩妳寫一個cnc傳輸程式來看一下吧

    謝謝!!


    • 已編輯 daybule 2015年9月16日 下午 05:36
    2015年9月16日 下午 05:26
  • (1)你需要的第一個認知 對 RS232 來講, 電腦這端的緩衝區即使空掉, 也不代表是送出去, 就算送出去了, 也不代表設備端正確接收的這個命令. 這中間有許多的陷阱.

    (2)  我沒寫過 CNC, 不過依照一般 RS232 設備傳輸的情況來看,電腦對於 CNC 設備應該不會是射後不理. 也就是說當電腦發送一個命令給設備. 設備在接收到之後應該有個回應的行為. 所以流程應該是

    1. 先將要發送的資料顯示在電腦畫面

    2. 把資料送出去

    3. 等待設備回應

    4. 假如設備回應了正確接收的訊息, 將顯示在畫面的資料移除

    這根本不需要搞甚麼 Win32 API 讀取特定記憶體位址

    (3) 不要隨便叫我寫個甚麼程式給你看, 你並不是付薪水給我的人.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年9月17日 下午 03:54
    版主
  • 如果只是要看 SerialPort 通訊狀態,直接用既有軟體。

    https://www.google.com.tw/#q=AccessPort

    232/485 通訊最大問題是抗雜,其次是壓降,壓降還可以用電表量,抗雜要兩邊都側掃封包才知道。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年9月17日 下午 03:58