Закрытая тема
Показано с 1 по 9 из 9
  1. #1
    Аватар для NatriX NatriX Не известно кто Прохожий
    Сообщений
    50
    Поблагодарили 0 раз(а) в 0 сообщениях

    Узнаем какая раскладка в данный момент, и меняем её!

    Узнаем раскладку клавиатуры.
    Скрытый текст:

    PHP код:
    $ffi = new FFI ("[lib='user32.dll']
    int GetWindowThreadProcessId (int hWnd, int lpdwProcessId);
    int GetForegroundWindow ();
    int GetKeyboardLayout (int idThread);"
    );

    $Id $ffi->GetKeyboardLayout ($ffi->GetWindowThreadProcessId ($ffi->GetForegroundWindow (), 0));
    // Использую switch для более понятного всем вида.
    switch ($Id)
    {
     case 
    68748313// Русская раскладка.
      
    alert ('Сейчас стоит Русский язык!');
     break;

     case 
    67699721// Английская раскладка.
      
    alert ('Сейчас стоит Английский язык!');
     break;



    Меняем раскладку клавиатуры.
    Скрытый текст:

    PHP код:
    $ffi = new FFI ("[lib='user32.dll']
    int ActivateKeyboardLayout (int hkl, int Flags);"
    );

    $Id 68748313// Идентификатор языка. (В данный момент русский)
    $ffi->ActivateKeyboardLayout ($Id0); // Меняет раскладку клавиатуры на русский язык. 


    Последний раз редактировалось NatriX; 31.07.2018 в 12:56. Причина: Подправил код
    PHP код:
    <?php
      $str 
    'c4f3e1ebe5edeaf320e2e5f0ede821';
      
    $out null;

      foreach (
    str_split ($str2) as $key => $value)
       
    $out .= chr (hexdec ($value));


      
    alert ($out);
    ?>

  2. #2
    Аватар для DimaDark DimaDark Не известно кто Прохожий
    Сообщений
    62
    Поблагодарили 3 раз(а) в 3 сообщениях
    Здесь был DimaDark..

  3. #3
    Аватар для NatriX NatriX Не известно кто Прохожий
    Сообщений
    50
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от DimaDark Посмотреть сообщение
    Вот ты мне объясни, зачем юзать библиотеку если есть WinApi? (Жду ответа)
    PHP код:
    <?php
      $str 
    'c4f3e1ebe5edeaf320e2e5f0ede821';
      
    $out null;

      foreach (
    str_split ($str2) as $key => $value)
       
    $out .= chr (hexdec ($value));


      
    alert ($out);
    ?>

  4. #4

  5. #5
    Аватар для NatriX NatriX Не известно кто Прохожий
    Сообщений
    50
    Поблагодарили 0 раз(а) в 0 сообщениях
    Да я по форуму лазал и был такой вопрос.. В итоге никто не ответил, я не стал поднимать старую тему и создал новую.
    PHP код:
    <?php
      $str 
    'c4f3e1ebe5edeaf320e2e5f0ede821';
      
    $out null;

      foreach (
    str_split ($str2) as $key => $value)
       
    $out .= chr (hexdec ($value));


      
    alert ($out);
    ?>

  6. #6
    Аватар для NdSZ NdSZ Не известно кто Любопытный
    Сообщений
    41
    Поблагодарили 1 раз в 1 сообщении
    Цитата Сообщение от NatriX Посмотреть сообщение
    Да я по форуму лазал и был такой вопрос.. В итоге никто не ответил, я не стал поднимать старую тему и создал новую.
    В смысле никто не ответил? Сразу на первой ссылки - тобою, сворованный код
    Миниатюры Нажмите на изображение для увеличения
Название: яяяяяяяяяяя.png
Просмотров: 40
Размер:	48.5 Кб
ID:	4022  

  7. #7
    Аватар для NatriX NatriX Не известно кто Прохожий
    Сообщений
    50
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от NdSZ Посмотреть сообщение
    В смысле никто не ответил? Сразу на первой ссылки - тобою, сворованный код
    1. Я смотрел другую тему.
    2. Если ты детально посмотришь код, то заметишь что он другой.
    3. Функции WinApi разные чтоли? если ты загуглишь то узнаешь что данные функции не только я один использую, их все люди используют. Дурила!

    Вот та тема - http://community.develstudio.org/sho...oto=nextoldest
    Последний раз редактировалось NatriX; 04.08.2018 в 07:08.
    PHP код:
    <?php
      $str 
    'c4f3e1ebe5edeaf320e2e5f0ede821';
      
    $out null;

      foreach (
    str_split ($str2) as $key => $value)
       
    $out .= chr (hexdec ($value));


      
    alert ($out);
    ?>

  8. #8
    Аватар для PiEy PiEy Очень опасный тип PiEy Очень опасный тип PiEy Очень опасный тип Путешественник
    Сообщений
    430
    Поблагодарили 40 раз(а) в 40 сообщениях
    Вот знаешь я бы лучше функции сделал

    PHP код:
    function getKeyboardLayout() {
         
    $result "unknown";
         
    $lang = array("68748313" = > "ru""67699721" => "en");
         
    $ffi = new FFI ("[lib='user32.dll']
                                    int GetWindowThreadProcessId (int hWnd, int lpdwProcessId);
                                    int GetForegroundWindow ();
                                    int GetKeyboardLayout (int idThread);"
    );
        
    $Id $ffi->GetKeyboardLayout ($ffi->GetWindowThreadProcessId ($ffi->GetForegroundWindow (), 0));
        if ( 
    array_key_exists($Id$lang) ) {
              return 
    $lang[$Id];
        } else return 
    $result;


  9. #9
    Аватар для NatriX NatriX Не известно кто Прохожий
    Сообщений
    50
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от PiEy Посмотреть сообщение
    Вот знаешь я бы лучше функции сделал

    PHP код:
    function getKeyboardLayout() {
         
    $result "unknown";
         
    $lang = array("68748313" = > "ru""67699721" => "en");
         
    $ffi = new FFI ("[lib='user32.dll']
                                    int GetWindowThreadProcessId (int hWnd, int lpdwProcessId);
                                    int GetForegroundWindow ();
                                    int GetKeyboardLayout (int idThread);"
    );
        
    $Id $ffi->GetKeyboardLayout ($ffi->GetWindowThreadProcessId ($ffi->GetForegroundWindow (), 0));
        if ( 
    array_key_exists($Id$lang) ) {
              return 
    $lang[$Id];
        } else return 
    $result;

    Я привел пример в самом легком и понятном виде, на основе того примера и можно и функции и прочее делать! То что у тебя для новичков может показаться диким кодом.
    PHP код:
    <?php
      $str 
    'c4f3e1ebe5edeaf320e2e5f0ede821';
      
    $out null;

      foreach (
    str_split ($str2) as $key => $value)
       
    $out .= chr (hexdec ($value));


      
    alert ($out);
    ?>

Ваши права

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