Gå til innhold

API, ligge ned program/spill ved hjelp api


Anbefalte innlegg

Hei...

 

Jeg vil alltid være tilgjengelig på MSN selv om jeg spiller... problemet er at spille isje ligger seg ned... noe som er skrekkelig irriterende...

 

Jeg har tenkt litt og kommet frem til en mulig fremgangs måte...

 

* Liste opp alle åpne vinduer, viss det prosess treet er knytta til msn så ligge ned et vindu av mitt valg..

skjønner?

 

*Også bare det at antall åpne vinduer forandrer seg...

 

*Og sjekke caption til alle åpne vinduer....

 

Så en timer.. som sjekker vært 20 sec.. om noen MSN samtale vinduer er åpnet er det jeg trenger... viss den finner det.. så vil jeg at den skal minimize et annet vindu som jeg bestemmer..

 

Jeg har googla litt og jeg vet såpass at det fins API for å liste opp alle vinduer og deres prosesstre.. men ja.. skjønte meg isje på sånn hwn.. ting.. :dontgetit:

 

Anyone?

 

Tusen Tusen takk til de som hjelper meg her ass.. evig takknemmelig..

Og viss noen vet om det går ann å bruke MSN API til å løse problemet så er jeg med på den... :innocent::innocent:

Lenke til kommentar
Videoannonse
Annonse

En thread kan ikke endre på vinudene til andre threads uten videre, det er der problemet kommer.

Public Const SW_HIDE = 0
Public Const SW_NORMAL = 1
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_MAXIMIZE = 3
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOW = 5
Public Const SW_MINIMIZE = 6
Public Const SW_SHOWMINNOACTIVE = 7

Public Declare Auto Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Integer, ByVal nCmdShow As Integer) As Integer

 

For liste opp alle vinduer (pun) så må du bruke

Public Declare Auto Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Integer, ByVal lParam As Integer) As Integer

Public Declare Function Auto EnumChildWindows Lib "user32" Alias "EnumChildWindows" (ByVal hWndParent As Integer, ByVal lpEnumFunc As Integer, ByVal lParam As Integer) As Integer

 

en lpEnumFunc skal se slik ut:

Public Function EnumWindowsProc(hwnd As Integer, lParam As Integer) As Boolean
 'Din kode her
 EnumChildWindows(AddressOf EnumChildWindowsProc, hWnd)
 Return False
End Function

Public Function EnumChildWindowsProc(hWnd As Integer, lParam As Integer) As Boolean
 ' Din kode her
 EnumChildWindows(AddressOf EnumChildWindowsProc, hWnd)
 Return False
End Function

 

Du må lage en for EnumChildWindows og EnumWindows.

 

deretter kaller du

EnumWindows(AddressOf EnumWindowsProc, 0)

og resten skal gå automatisk.

lParam i EnumChildWindowProc er hWnd til parent hwnd, men du kan gi akkurat hva du vil der.

Lenke til kommentar

Public Const SW_HIDE = 0
Public Const SW_NORMAL = 1
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_MAXIMIZE = 3
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOW = 5
Public Const SW_MINIMIZE = 6
Public Const SW_SHOWMINNOACTIVE = 7

Public Declare Auto Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Integer, ByVal nCmdShow As Integer) As Integer
Public Declare Auto Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Integer, ByVal lpString As String, ByVal cch As Integer) As Integer
Public Declare Auto Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Integer, ByVal lParam As Integer) As Integer

Public Declare Function Auto EnumChildWindows Lib "user32" Alias "EnumChildWindows" (ByVal hWndParent As Integer, ByVal lpEnumFunc As Integer, ByVal lParam As Integer) As Integer

Public Function EnumWindowsProc(hwnd As Integer, lParam As Integer) As Boolean
Dim name As String = Space(256)
GetWindowText(hWnd, name, 256)
Console.WriteLine(name)
ShowWindow(hwnd, SW_MINIMIZE)
EnumChildWindows(AddressOf EnumChildWindowsProc, 1)
Return False
End Function

Public Function EnumChildWindowsProc(hWnd As Integer, lParam As Integer) As Boolean
Dim name As String = Space(256)
GetWindowText(hWnd, name, 256)
Console.WriteLine(Space(lParam) & name)
EnumChildWindows(AddressOf EnumChildWindowsProc, lParam + 1)
Return False
End Function
Private Sub Form_Load(sender As Object,  e As EventArgs) Handles MyBase.Load
EnumWindows(AddressOf EnumWindowsProc, 0)
End Sub

 

Denne burde legge ned alle hovedvinduer, og skrive teksten på alle i et console vindu (utestet)

Lenke til kommentar

Bare lurer men ka returnerer denne linjen her for noe:

 

Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean

 

ka får eg vite når eg kaller den og kordan utnytte det...

Eg e helt grønn.. og vi må ta det sakte.. og den koden.. funka.. ikke :dontgetit:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...