Страница: 1 |
Страница: 1 |
Вопрос: не могу поставить поверх всех окон
Добавлено: 04.07.11 00:10
Автор вопроса: Globus
Итак....пишу простенькую программу-счётчик, которая просто подсчитывает нажатие определённых клавиш посредством их перехвата в фоновом режиме...вот код
Dim x As Integer
Dim n As Integer
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Function GetPressedKey() As Long
Dim Cnt As Long
For Cnt = 32 To 128
If GetAsyncKeyState(Cnt) <> 0 Then
GetPressedKey = Cnt
Exit For
End If
Next Cnt
End Function
Private Sub Command2_Click()
Form2.Visible = True
End Sub
Private Sub Form_Load()
x = 116
n = 4
End Sub
Sub Timer1_Timer()
If GetPressedKey = x Then Text2.Text = Val(Text2.Text) + 1
End Sub
Private Sub Command1_Click()
Text2.Text = Text1.Text
End Sub
Private Sub Combo1_Click()
Select Case Combo1.ListIndex
Case Is = 0
x = 112
Case Is = 1
x = 113
Case Is = 2
x = 114
Case Is = 3
x = 115
Case Is = 4
x = 116
Case Is = 5
x = 117
Case Is = 6
x = 118
Case Is = 7
x = 119
Case Is = 8
x = 120
Case Is = 9
x = 121
Case Is = 10
x = 122
Case Is = 11
x = 123
End Select
End Sub
И мне надо добавить вот такой код:
Dim iTopMost As Boolean
Public Property Get TopMost() As Boolean
TopMost = iTopMost
End Property
Public Property Let TopMost(ByVal newValue As Boolean)
iTopMost = newValue
If iTopMost Then
Call SetWindowPos(hwnd, -1, 0, 0, 0, 0, 3)
Else
Call SetWindowPos(hwnd, -2, 0, 0, 0, 0, 3)
End If
End Property
который добавит свойство TopMost к форме, который и будет делать её поверх окон..... эту часть я скопировал с этого сайта, там написано
так и делаю, а оно нивкакую((((
помогите пожалуйста, очень надо!!
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Ким Чен Ир
Вопросов: 0
Ответов: 140
Профиль | | #1
Добавлено: 04.07.11 01:12
Вот горе то..
Номер ответа: 2
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #2
Добавлено: 04.07.11 09:28
x = 112
Case Is = 1
x = 113
Case Is = 2
x = 114
Case Is = 3
x = 115
Case Is = 4
x = 116
Case Is = 5
x = 117
Case Is = 6
x = 118
Case Is = 7
x = 119
Case Is = 8
x = 120
Case Is = 9
x = 121
Case Is = 10
x = 122
Case Is = 11
x = 123
Номер ответа: 3
Автор ответа:
andrey
ICQ: 305986093
Вопросов: 3
Ответов: 41
Профиль | | #3
Добавлено: 04.07.11 12:18
Каддафи М он скорее всего на vb 6 программирует, а не на vb.net.
Globus много-обсуждаемая тема в инете, лучше бы погуглил (http://www.cyberforum.ru/visual-basic/thread160872.html), AgentFire критика конечно справедливая, но жесткая.
Номер ответа: 4
Автор ответа:
Ким Чен Ир
Вопросов: 0
Ответов: 140
Профиль | | #4
Добавлено: 04.07.11 12:45
Ну разумеется, на vb6. Я ещё из ума не выжил, могу отличить.
Номер ответа: 5
Автор ответа:
andrey
ICQ: 305986093
Вопросов: 3
Ответов: 41
Профиль | | #5
Добавлено: 04.07.11 13:04
Ну насколько я знаю, что VB.6 не понимает topmost. Или я не прав?
Номер ответа: 6
Автор ответа:
Ким Чен Ир
Вопросов: 0
Ответов: 140
Профиль | | #6
Добавлено: 04.07.11 13:10
Вот поэтому Globus и добавил "Public Property Let" в модуль формы, только вызвать не удосужился.
Номер ответа: 7
Автор ответа:
andrey
ICQ: 305986093
Вопросов: 3
Ответов: 41
Профиль | | #7
Добавлено: 04.07.11 13:19
Ой извиняй за невнимательность, привычка беглого чтения и на TopMost ассоциация с vb.net ))).
Номер ответа: 8
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #8
Добавлено: 04.07.11 15:22
а причем тут vb.net или не vb.net?? То, что автор пишет страничный говнокод, который на обоих упомянутых языках можно конвертировать в одну строчку - эпичный фейл