|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
чтобы было проще, спрошу про конкретный пример. На моём компьютере открываются 2 окна скайпа. у одного окна название "skype - 1", у другого "Skype - 2" Нужно, чтобы "Skype - 2": 1) не открывал своё окно(если открыл - закрыть, но не процесс, а только окно). при этом чтобы "Skype - 1" работал нормально. 2) убрать\удалить\скрыть значок "Skype - 2". 3) скрыть окно "Skype - 2" в приложениях (не обязательно) Известны имена окон скайпа(неполные: "блаблаблаskypeбла - 1", расположение skype. В итоге Skype (второй) должен работать невидимо. Заранее пасяп ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 20:16 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZero, Глухой слышал, как немой рассказывал, что слепой видел, как хромой быстро-быстро бежал ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 20:44 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
нашёл на этом форуме код(рабочииий!:), но остаётся сложность: я не знаю полное имя(вернее не в состоянии написать) скайпа. вот найденный код Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Const WM_CLOSE = &H10 Private Sub Form_Load() Dim lngHwnd As Long Dim lngReturn As Long lngHwnd = FindWindow(vbNullString, "Безымянный - Блокнот") If lngHwnd <> 0 Then lngReturn = PostMessage(lngHwnd, WM_CLOSE, 0&, 0&) End If End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 20:46 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
+ я сомневаюсь, что это лишь закрывает окно, а не убивает весь процесс ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 20:49 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZero, Вся Windows на сообщениях, в принципе построена. ЗРЯ сомневаешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 20:57 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
попробую упростить задачу... 1) как закрыть окно программы по фрагменту его имени 2) скрыть значок в трее ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 21:00 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZeroскрыть значок в трее Каким образом ты отобоажаешь "значок в трее"? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 21:12 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
timtim, я не отображаю. но если у тя есть скайп(99%), то при запуске винды в правом нижнем углу у тя появляется зелёный круглый значок с галочкой. его нуно убрать програмно ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 21:16 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZerotimtim, я не отображаю. но если у тя есть скайп(99%), то при запуске винды в правом нижнем углу у тя появляется зелёный круглый значок с галочкой. его нуно убрать програмно А если нет скайпа и "зелёный круглый значок с галочкой" отсутствует? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 21:22 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
timtim, тогдапредставь скайп в воображении) нуно BelowZero1) закрыть окно программы по фрагменту его имени 2) скрыть значок в трее ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 21:24 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
[quot BelowZero]timtim, Процесс, окно, значок в трее - кого надо то? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 21:31 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
timtim, закрыть процесс (код чуть выше, но закрывает по полному имени, а у меня только кусок имени). убрать значок из треи. процесс не трогать ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 21:37 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZero, С этим знаком Shell_NotifyIcon? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 21:40 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
timtim, неа... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 21:42 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZero, Прошерсти данную функцию тогда и запости результаты шерстения твоего в виде кода. Иначе отстёгивай! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 21:47 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
авторДля удаления иконки вы должны знать ее ID и дескриптор окна-обработчика сообщений. Для удаления иконки с Tray надо вызвать функцию Shell_NotifyIcon() с параметром NIM_DELETE и указателем на экземпляр структуры NOTIFYICONDATA, у которого должны быть заполнены следующие поля: cbSize, hWnd, uID ....................эхъ... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 22:25 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZero....................эхъ... не сс ы! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 22:28 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZero, Погружайся в Win API ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 22:37 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZero1) как закрыть окно программы по фрагменту его имени Разбирайся, давно и не глядя пользуюсь вот этим. Хотя счас глянул и вижу неточности с true/false as long но это ерунда. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74.
А вообще есть штатная утилита виндов,забыл точное имя, которая грохает процесс по имени (м.б. и по неполному). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 22:56 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
раздобыл код, работающий с треем. добавляет, меняет, удаляет себя из трея кому интересно смотрите Option Explicit Private Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Integer Private Const NIM_ADD = 0 Private Const NIM_MODIFY = 1 Private Const NIM_DELETE = 2 Private Const NIF_MESSAGE = 1 Private Const NIF_ICON = 2 Private Const NIF_TIP = 4 Private Const WM_MOUSEMOVE = &H200 Private Const WM_LBUTTONDOWN = &H201 Private Const WM_LBUTTONUP = &H202 Private Const WM_LBUTTONDBLCLK = &H203 Private Const WM_RBUTTONDOWN = &H204 Private Const WM_RBUTTONUP = &H205 Private Const WM_RBUTTONDBLCLK = &H206 Private Const WM_MBUTTONDOWN = &H207 Private Const WM_MBUTTONUP = &H208 Private Const WM_MBUTTONDBLCLK = &H209 Private Type NOTIFYICONDATA cbSize As Long hWnd As Long uID As Long uFlags As Long uCallbackMessage As Long hIcon As Long szTip As String * 64 End Type Public Function SetTrayIcon(Mode As Long, hWnd As Long, Icon As Long, tip As String) As Long Dim nidTemp As NOTIFYICONDATA nidTemp.cbSize = Len(nidTemp) nidTemp.hWnd = hWnd nidTemp.uID = 0& nidTemp.uFlags = NIF_ICON Or NIF_TIP nidTemp.uCallbackMessage = 0& nidTemp.hIcon = Icon nidTemp.szTip = tip & Chr$(0) SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp) End Function Private Sub picNotifier_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Îáðàáîòêà ñîáûòèé Static Rec As Boolean, Msg As Long Msg = X / Screen.TwipsPerPixelX If Rec = False Then ' ×òîá íå ïîâòîðÿòü Çàïóñê Rec = True Select Case Msg 'Åñëè DoubleClick Case WM_LBUTTONDBLCLK: Me.Show 'Åñëè ëåâàÿ Êíîïêà íàæàòà Case WM_LBUTTONDOWN: 'Åñëè ëåâàÿ Êíîïêà Îòæàòà Case WM_LBUTTONUP: 'Ïðàâàÿ êíîïêà Click Case WM_RBUTTONDBLCLK: 'Åñëè Ïðàâàÿ Êíîïêà íàæàòà Case WM_RBUTTONDOWN: 'Åñëè Ïðàâàÿ Êíîïêà Îòæàòà Case WM_RBUTTONUP: ' Çäåñü âû ìîæåòå âûçâàòü PoPup-ìåíþ: ' PopupMenu mnuPopMenu End Select Rec = False End If End Sub ' Äîáàâèòü èêîíêó ôîðìû â traybar ' SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Test" ' Èçìåíèòü èêîíêó è tooltip 'SetTrayIcon NIM_MODIFY, Me.hWnd, Me.Icon, "It works!" ' Óäàëèòü èêîíêó èç traybar'a 'SetTrayIcon NIM_DELETE, Me.hWnd, 0&, "" Private Sub Command1_Click() SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Test" End Sub Private Sub Command2_Click() SetTrayIcon NIM_MODIFY, Me.hWnd, Me.Icon, "It works!" End Sub Private Sub Command3_Click() SetTrayIcon NIM_DELETE, Me.hWnd, 0&, "" End Sub чтобы удалить скайп из трея можно SetTrayIcon NIM_DELETE, Me.hWnd, 0&, "" но теперь как узнать hWnd скайпа и какой-то дескриптор.... ааааа програмирование не для слабонервных... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 22:58 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
[quot BelowZero]автор Для удаления иконки с Tray надо вызвать функцию Shell_NotifyIcon() с параметром NIM_DELETE и указателем на экземпляр структуры NOTIFYICONDATA Иконка из трея не удалится в любом случае пока не обновишь сам трей! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 22:58 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
Дмитрий77, спс за код, пока что не получается (пробую закрыть болкнот). буду завтра ломать голову ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 23:08 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZeroбуду завтра ломать голову сообщения....Only ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 23:22 |
|
окно, панель задач, трей.
|
|||
---|---|---|---|
#18+
BelowZeroДмитрий77, (пробую закрыть болкнот). буду завтра ломать голову killproga "Безымянный" killproga "Блокнот" А вот ни б ол кнот, ни notepad вы так не закроете. Оно смотрит на заголовок окна Instr ("слово", "есть такое слово там") ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2011, 23:30 |
|
|
start [/forum/topic.php?fid=60&msg=37288248&tid=2158652]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 147ms |
0 / 0 |