Опитвам се да напиша системна услуга, която може да открие дали потребителят е активен и след това да стартира процес, ако не е. Използвам услуга, защото искам това да работи, независимо дали потребителят е влязъл или не. Опитвам се да се свържа с API user32.dll и да извлека времето от последното въвеждане от потребителя. Връщаното цяло число обаче винаги е 0, така че не мисля, че работи правилно. Това не е ли възможно, когато работи като системна услуга?
Мога ли да извлека user32.dll getlastinputtime от системна услуга
Отговори (1)
Може да искате да използвате getlastinputinfo
на user32.dll
<DllImport("user32.dll")> _
Shared Function GetLastInputInfo(ByRef plii As LASTINPUTINFO) As Boolean
End Function
<StructLayout(LayoutKind.Sequential)> _
Structure LASTINPUTINFO
<MarshalAs(UnmanagedType.U4)> _
Public cbSize As Integer
<MarshalAs(UnmanagedType.U4)> _
Public dwTime As Integer
End Structure
LASTINPUTINFO на MSDN
person
Rajeev
schedule
09.06.2011
Благодаря regexhacks. Точно това се опитвах да направя, но изглежда не работи. Моят код е малко по-различен, но ето какво имам:
Private Structure PLASTINPUTINFO Dim cbSize As Integer Dim dwTime As Integer End Structure Private Declare Function GetLastInputInfo Lib "user32.dll" _ (ByRef plii As PLASTINPUTINFO) As Boolean
- person Jarred Masterson; 09.06.2011
Съжалявам за лошото форматиране. Не знам как да поставя кода с нови редове в този мини-маркдаун формат. Надяваме се, че можете да кажете къде отиват?
- person Jarred Masterson; 09.06.2011