purebasic.info

PureBasic forum
Текущее время: Пн июл 13, 2020 5:28 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср май 22, 2013 10:05 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 780
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.
Пункты репутации: 0
kvitaliy
Цитата:
А код у тебя абсолютно одинаковый, что в меню, что в LeftDoubleClick, ты его просто скопипастил, какая разница?
а я и говорю одинаковый, но через меню работает же как мне показать что работает.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 22, 2013 10:07 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 71 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
mestnyi, я же написал, в чем причина

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт май 23, 2013 7:03 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 780
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.
Пункты репутации: 0
Никита Однороб ПОЧЕМУ ЖЕ ЧЕРЕЗ МЕНЮ НЕ НУЖЕН


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 28, 2013 12:55 pm 
Не в сети
ассистент

Зарегистрирован: Чт апр 14, 2011 6:00 pm
Сообщений: 19
Откуда: Eesti
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Windows Locale Codes,
Одним словом кому очень надо :D


Вложения:
Language_Codes_-_Sorted_by.jpg [874.03 KiB]
Скачиваний: 27
Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 28, 2013 12:58 pm 
Не в сети
ассистент

Зарегистрирован: Чт апр 14, 2011 6:00 pm
Сообщений: 19
Откуда: Eesti
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Да и вообще программку можно доработать, сделать Более автономную, чтобы сама считывала установленные в системе раскладки клавиатуры , Да что-то в этом роде :D Удачи!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 28, 2013 1:13 pm 
Не в сети
ассистент

Зарегистрирован: Чт апр 14, 2011 6:00 pm
Сообщений: 19
Откуда: Eesti
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Так можно узнать про раскладки если что!

Код:
1
2
3
4
5
6
7
8
9
10
11
12
Macro HiWord(long)
  (long >> 16) & $FFFF
EndMacro
 
 
Dim List.i(10)
 
GetKeyboardLayoutList_(11, @list())
 
For i = 0 To 10
  Debug HiWord(List(i))
Next



Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн ноя 04, 2013 10:18 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 780
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.
Пункты репутации: 0
объясните мне по простому почему при двойном клике на иконке в трее раскладка клавиатуры системы не меняется :x а через правый клик на иконке через меню меняется? :cry:
вот код
Код:
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
; Автор - Пётр
; http://purebasic.info/phpBB2/viewtopic.php?t=388
 
Global LayoutTemp, Count=0, hWindow, hWnd, hWin.l,Rus,En
Global hIcoEng.l=LoadIcon_(GetModuleHandle_(0), 400)  ; Загрузка иконки из ресура файла
Global hIcoRus.l=LoadIcon_(GetModuleHandle_(0), 500)  ; Загрузка иконки из ресура файла
 
Procedure ScrollLock(State)
If GetKeyState_(#VK_SCROLL)=State
 keybd_event_(#VK_SCROLL,$45,1,0)
 keybd_event_(#VK_SCROLL,$45,3,0)
EndIf
EndProcedure
 
Procedure GetLayoutWindowActive()
 WindowsHandle=GetForegroundWindow_()
 ProcessId=GetWindowThreadProcessId_(WindowsHandle,0)
 Layout=GetKeyboardLayout_(ProcessId)
 If Count=0
  If  LayoutTemp<> Layout
   LayoutTemp=Layout
   Count=1
  EndIf
 ElseIf Count=1
  Count=0
  If LayoutTemp=Layout
   If Layout=68748313
    SetMenuItemState(0,1,0)
    SetMenuItemState(0,2,1)
    ChangeSysTrayIcon(1,hIcoRus)
    SysTrayIconToolTip(1, "Русский")
    ScrollLock(0)
    SetSystemCursor_(LoadCursor_(GetModuleHandle_(0), 200), #OCR_IBEAM) ; Загружаем курсор из ресура и устанавливаем как системный
   ElseIf Layout=67699721
    SetMenuItemState(0,2,0)
    SetMenuItemState(0,1,1)
    ChangeSysTrayIcon(1,hIcoEng)
    SysTrayIconToolTip(1, "Английский")
    ScrollLock(1)
    SetSystemCursor_(LoadCursor_(GetModuleHandle_(0), 100), #OCR_IBEAM)
   EndIf
  EndIf
 EndIf
EndProcedure
 
Import "cursor.res" : EndImport
 
hWin=OpenWindow(0,2,2,20,20,"",#PB_Window_Invisible|#PB_Window_BorderLess)
 AddSysTrayIcon(1,WindowID(0),hIcoRus)
 SysTrayIconToolTip(1, "Русский")
 
 If CreatePopupMenu(0)
   MenuItem(1,"Английский")
   MenuItem(2,"Русский")
   MenuBar()
   MenuItem(3,"Закрыть")
 EndIf
 
 SetTimer_(WindowID(0),1,100,@GetLayoutWindowActive() )
 
 Repeat
 Event=WaitWindowEvent()
 Menu=EventMenu()
 Type=EventType()
  If Event=#PB_Event_SysTray
   If Type=#PB_EventType_RightClick
     DisplayPopupMenu(0,WindowID(0) )
   ElseIf Type=#PB_EventType_LeftDoubleClick
     WindowsHandle=GetForegroundWindow_()
     ProcessId=GetWindowThreadProcessId_(WindowsHandle,0)
     Layout=GetKeyboardLayout_(ProcessId)
           
     If Layout=68748313     ; Rus
             
             LoadKeyboardLayout_("00000409", #KLF_ACTIVATE)
             En=1
      ElseIf Layout=67699721  ; En
             
             LoadKeyboardLayout_("00000419", #KLF_ACTIVATE)
             Rus=1
             EndIf
     
   EndIf
 EndIf
 
 If Event=#PB_Event_Menu And Menu=3
     Break
   ElseIf (Event=#PB_Event_Menu And Menu=1) Or En=1;en
     Debug "En"
     
     SetMenuItemState(0,2,0)
     SetMenuItemState(0,1,1)
     Layout = LoadKeyboardLayout_("00000409", #KLF_ACTIVATE)
     SendMessage_(hWnd, #WM_INPUTLANGCHANGEREQUEST, 1, Layout)
     ChangeSysTrayIcon(1,hIcoEng)
     SysTrayIconToolTip(1, "Английский")
     ScrollLock(1)
     SetSystemCursor_(LoadCursor_(GetModuleHandle_(0), 100), #OCR_IBEAM)
     En=0
  ElseIf (Event=#PB_Event_Menu And Menu=2) Or Rus=1;rus
    Debug "Rus"
   
    SetMenuItemState(0,1,0)
     SetMenuItemState(0,2,1)
     Layout = LoadKeyboardLayout_("00000419", #KLF_ACTIVATE)  
     SendMessage_(hWnd, #WM_INPUTLANGCHANGEREQUEST, 1, Layout)
     ChangeSysTrayIcon(1,hIcoRus)
     SysTrayIconToolTip(1, "Русский")
     ScrollLock(0)
     SetSystemCursor_(LoadCursor_(GetModuleHandle_(0), 200), #OCR_IBEAM)
     Rus=0
   EndIf
   
         hWindow = GetForegroundWindow_()
         If hWindow<>hWin                    ; запоминаем последнее активное окно
           hWnd = hWindow
         EndIf
 ForEver
 KillTimer_(WindowID(0),1)
 SetSystemCursor_(LoadCursor_(GetModuleHandle_(0), 300), #OCR_IBEAM)
 End



Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср ноя 06, 2013 3:17 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 780
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.
Пункты репутации: 0
ну скажите :roll: почему не происходить при двойном клике замена языка?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср ноя 06, 2013 7:45 pm 
Не в сети
лентяй ужасный
Аватар пользователя

Зарегистрирован: Вс фев 27, 2011 4:23 pm
Сообщений: 646
Благодарил (а): 4 раз.
Поблагодарили: 5 раз.
Никто не отвечает потому, что этот код рабочий. Скорее всего у тебя не те языки выбранны. Скинь скиншот вот этого окна у себя
P.S Хотя у меня и так и так работало...

Изображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 07, 2013 10:37 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 780
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.
Пункты репутации: 0
неужели так трудно понять что я говорю, через правый клик на иконке (этой программы) в трее появляется меню и при выбору русково языка выбирается руский при выборе английсково языка переключается на английский . Вопрос в том почему вот это не срабатывает
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ElseIf Type=#PB_EventType_LeftDoubleClick
         WindowsHandle=GetForegroundWindow_()
         ProcessId=GetWindowThreadProcessId_(WindowsHandle,0)
         Layout=GetKeyboardLayout_(ProcessId)
               
         If Layout=68748313     ; Rus
                 
                 LoadKeyboardLayout_("00000409", #KLF_ACTIVATE)
                 En=1
          ElseIf Layout=67699721  ; En
                 
                 LoadKeyboardLayout_("00000419", #KLF_ACTIVATE)
                 Rus=1
                 EndIf
         
       EndIf


двойной клик на иконке. Само событие происходит, а язык не переключается почему?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 07, 2013 10:43 am 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 71 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
Цитата:
язык не переключается почему?
У меня всё переключается. Windows 8 x64

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт дек 05, 2013 11:40 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 780
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 14 раз.
Пункты репутации: 0
Цитата:
У меня всё переключается. Windows 8 x64
с моим примером при двойном клике на иконку в трее?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2, 3, 4

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB