私はLazarus/FPCを使用していますが、Windowsでポインティングデバイスのリストを取得する方法を探しています - そして、最終的に特定のデバイスを無効にして有効にできるようにします。Windowsでポインティングデバイスのリストを取得する(パスカル)
Google検索では、MSDNのthisとフリーパスカルのwikiのthisが表示されました。
これは良い出発点のようですが、残念ながら私は最初のハードルに落ちています...この例ではmanager
オブジェクトを作成する方法を理解できません。
MSDNの例は(C#)とである:
Iが部分としてパスカルに変換しているprivate void PopulatePointers(TreeView tvDevices)
{
//Add "Pointer Devices" node to TreeView
TreeNode pointerNode = new TreeNode("Pointer Devices");
tvInputDevices.Nodes.Add(pointerNode);
//Populate Attached Mouse/Pointing Devices
foreach(DeviceInstance di in
Manager.GetDevices(DeviceClass.Pointer,EnumDevicesFlags.AttachedOnly))
{
//Get device name
TreeNode nameNode = new TreeNode(di.InstanceName);
nameNode.Tag = di;
TreeNode guidNode = new TreeNode(
"Guid = " + di.InstanceGuid);
//Add nodes
nameNode.Nodes.Add(guidNode);
pointerNode.Nodes.Add(nameNode);
}
}
:
uses windows, DirectInput;
procedure getPointingDevices();
begin
for pointingDevice in Manager.GetDevices(DeviceType.Keyboard,EnumDevicesFlags.AttachedOnly) do
begin
devicesTree.Items.AddChild(devicesTree.Items.TopLvlItems[0],pointingDevice.InstanceName);
end;
devicesTree.Items.TopLvlItems[0].Expand(true);
end;
及びIはDirectInput.pas
、DirectX.inc
、DXTypes.pas
、Jedi.inc
、Xinput.pas
を含んでいた(いくつかのそのうち実際には必要ないかもしれませんが、私は後でそれを作業します)。
明らかに、そのメソッドにアクセスできるようにするためにはManagerオブジェクトを作成する必要がありますが、これまで読んだことのあるドキュメントからどうすればいいのかわかりません。
.netコードは、直接fpxコードに変換されません。 C++のサンプルから始めて、それを翻訳する必要があります。 –
@David Heffernan - 私の例では.netコードはどこですか? MSDNの例はC#コードですが、マウス/ポインティングデバイスに到達するためにDirectXのDirectInput機能を使用する必要があるかもしれないという手がかりを与えてくれました。 DirectXライブラリ/ユニットはLazarus/FPC用に既に翻訳されており、それらは私のプロジェクトに追加したモジュールです。私が抱えている問題は、Managerオブジェクトをどのように作成するのか、どのように作成するのかわからないということです。 –
Er、C#は.net言語です。私はあなたが前進するためには少し良くなったことを理解する必要があると思います。あなたはそれを理解せずにコードを変換することを望んでいるようです。それは実り多いものとは思われません。 –