Entwickler-Ecke
Windows API - createfile
Snoop007 - Fr 15.11.02 15:38
Titel: createfile
hi,
ich möchte das handle auf die batterie haben.
ich muss dazu das handle mit createfile erhalten
was gebe ich als filename ein ?
wenn ich eine pipe erstellen möchte gebe ich \\.\pipe an
kann mir einer helfen ?
Snoop007 - Fr 15.11.02 17:55
ich will die funktion
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| DeviceIoControl( (HANDLE) hDevice, // handle to battery IOCTL_BATTERY_QUERY_INFORMATION, // dwIoControlCode (LPVOID) lpInBuffer, // input buffer (DWORD) nInBufferSize, // size of input buffer (LPVOID) lpOutBuffer, // output buffer (DWORD) nOutBufferSize, // size of output buffer (LPDWORD) lpBytesReturned, // number of bytes returned (LPOVERLAPPED) lpOverlapped // OVERLAPPED structure ); |
verwenden.
Damit ich das handle auf die batterie bekomme, muss ich mit createfile arbeiten
was muss ich nun in createfile als filename angeben ?
müsste ich eine pipe schreiben, wüsste ich es ( wie oben erwäht )
Snoop007 - Fr 15.11.02 18:09
ich habe bei msdn auch schon gesucht, leider habe ich auch nichts gefunden, deswegen frage ich ja hier an :D
ich habe auch erst die funktion bei msdn gefunden, meine delphi version hat die gar nicht auf lager :(
Delete - Fr 15.11.02 18:19
Hol dir mal von den Jedis die WinAPi-Übersetzungen, die sind recht vollständig. Da müßten die drin sein, dann mußt du sie nicht selber übersetzen. Bei so etwas exotischen API's ist Borland immer recht faul mit Übersetzungen.
Delete - Fr 15.11.02 18:52
Luckie hat folgendes geschrieben: |
Bei so etwas exotischen API's ist Borland immer recht faul mit Übersetzungen. |
Manche Sachen würde ich nicht als exotisch bezeichnen. Borland ist schlichtweg großartig im Herausbringen der jährlich neuen Delphi-Version. Aber dann gibt´s meist ein Service-Pack, ein paar Fixes (die man u.U. noch selbst vornehmen muss), und das war´s dann.
Es kann doch nicht sein, dass Besitzer älterer Versionen z.B. die LUNA-Probleme mit WinXP u.ä. selbst fixen müssen (Listview). Und selbst das geht nur, wenn man keine Standard- oder Personal-Edition hat, bei der die Sourcecodes ja nicht dabei sind.
Snoop007 - Fr 15.11.02 19:51
@lucki kanst du mir einen link zu den jedis geben, ich weiss gar nicht was das ist ? :shock: :oops: danke :)
DaFox - Sa 16.11.02 02:19
Hi.
Du hast nicht geschrieben was Du mit dem Handle anfangen willst, deshalb frage ich mal ganz doof:
Führt die Funktion GetSystemPowerStatus nicht zum Ziel?
Gruß,
Markus
Snoop007 - Sa 16.11.02 16:33
ich will die mAh der Batterie haben deswegen muss ich erst das handle haben und dann die oben beschriebene funktion ausführen ...
falls ich mich irren sollte, verbesser mich bitte ! :)
DaFox - Sa 16.11.02 19:19
Hi!
Okay, dann geht das natürlich nicht.
Du musst wohl die vorhandenen Batterien enumerieren um das Handle dann an CreateFile() übergeben zu können.
Zitat: |
Enumerating Battery Devices
To enumerate the battery devices currently on the computer, use the SetupDiGetClassDevs function. The ClassGuid parameter is a pointer to GUID_DEVICE_BATTERY (defined in batclass.h). To enumerate all of the batteries, set the Enumerator parameter to NULL and set the Flags parameter to DIGCF_PRESENT | DIGCF_INTERFACEDEVICE. To obtain the names of the battery devices, use the SetupDiEnumInterfaceDevice and SetupDiGetInterfaceDeviceDetail functions on the data returned. To open a file handle for each of the battery devices, call the CreateFile function with these names.
(http://msdn.microsoft.com/library/en-us/power/base/battery_information.asp?frame=true)
|
Gruß,
Markus
Snoop007 - Sa 16.11.02 19:29
oh wei :shock: :shock: :shock:
danke :) muss ich wohl überleden haben
das wird ja was werden ! :shock: :shock: :shock: :shock:
DaFox - Sa 16.11.02 20:39
Noch ein kleines PS zum GUID_DEVICE_BATTERY: ['{72631E54-78A4-11D0-BCF7-00AA00b7B32A}']
Delete - So 17.11.02 01:33
Was hilft hier eien CLSID oder GUID aus der Registry? Die sieht bei jedem anderst aus und davon gibt es dutzende in der Registry. :roll:
Delete - So 17.11.02 10:46
OK überzeugt. :oops:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!