2011-05-30 73 views
2

我需要使用它,但在pinvoke中我無法獲得該API的聲明。如何聲明QueryFullProcessImageName()API C#(Windows 7 x64)

那麼...有沒有辦法申報呢?

如果你有一個使用的例子將是完美的,因爲是我第一次使用該API。

+0

不要使用它,WMI可以爲你提供這個信息,同時減少很多痛苦,並且不依賴Vista +。使用WMI Code Creator,它可以讓您試驗並生成您需要的C#代碼。 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2cc30a64-ea15-4661-8da4-55bbc145c30e – 2011-05-30 21:58:50

回答

2
using System; 
using System.Runtime.InteropServices; 
using System.Text; 

//... 

[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)] 
static extern bool QueryFullProcessImageName(IntPtr hProcess, uint dwFlags, 
    [Out, MarshalAs(UnmanagedType.LPTStr)] StringBuilder lpExeName, 
    ref uint lpdwSize); 

對於使用,see the documentation

+0

謝謝!我會測試它,但是...但是我想知道一些東西...你是如何做到的?...是否有手動或其他東西? – 2011-05-30 20:26:34

+0

@Krahne:我學到了C. :)我建議你也這樣做,這並不難,但是當你這樣做時,你會發現發生了什麼。 :) – Mehrdad 2011-05-30 20:30:17

+0

你投入多少時間學習C? ..你知道任何特定的書嗎?如果你知道西班牙語的一本書,我會非常感激,因爲我不會說很多英語。感謝您的一切,我仍在測試API。 – 2011-05-30 20:35:13