Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2010, 14:34   #31
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

и так, проспался, переделал всё как было упомянуто выше, ошибки в коде пропали, но теперь не работает не один канал. код выглядит теперь следующим образом
PHP код:
echo "
window.document.onkeypress = function(keyEvent) 
{
    var muteFlag;
    var volume;
    keyEvent = keyEvent ? keyEvent : window.event;
    var keyvalue = keyEvent.which ? keyEvent.which : keyEvent.keyCode;
    var startChan=False;
var arr=new Array();  // он нам нужен для хранения промежуточных числовых значений

// функция добавления в список (массив) нажатой клавиши.
function setChan(keyNumber /*Число которое было нажато*/,mp){
  if (startChan==True){ // проверяем не запущен ли режим ожидания повторного нажатия клавиш
    arr[arr.length]=keyNumber;
   } else {
      setTimeout('StopTime('+mp+')',5000);
      var arr=[];     // Обновляем массив
      arr[arr.length]=keyNumber;
        startChan=True; // включаем режим ожидания
      }
}

// Функция остановки таймера т.е. время вышло пора бы переключиться
function StopTime(mp){
var AllNum='';
for (i=0; i<arr.length; i++){
     AllNum+=arr[i];
    }
 if (AllNum.length!=0){
  mp.leaveChannel(currChNum);  //currChNum должна быть где то обьявлена я не знаю что такое leaveChannel ну там явно должен передаватья не NULL
  currChNum = AllNum;
  mp.joinChannel(currChNum);
 }
startChan=False;
}

window.document.onkeypress = function(keyEvent)
{
    var muteFlag;
    var volume;
    keyEvent = keyEvent ? keyEvent : window.event;
    var keyvalue = keyEvent.which ? keyEvent.which : keyEvent.keyCode;

    if (startChan==False)
    if( keyvalue == 8 )
    {
        mp.stop();
        mp.leaveChannel(currChNum);
    mp.releaseMediaPlayer(NativePlayerInstanceID);
        location.href = 'index.php';
        window.refresh();
    }
    else if( keyvalue == 39 )
    {
        if( speed == 32 )
        {
            return;
        }
        else if( speed < 1 )
        {
            speed = 1;
        }
        else
        {
            speed = 2 * speed;
        }
        mp.fastForward(speed);
    }
    else if( keyvalue == 37 )
    {
        if( speed == 1 )
        {
            speed = -2;
        }
        else if( speed > 1 )
        {
            speed = 1;
        }
        else if( speed == -32 )
        {
            return;
        }
        else
        {
            speed = 2 * speed;
        }
        mp.fastRewind(speed);
    }
    else if( keyvalue == 263 )
    {
        if(pauseind == 0) {mp.pause(); pauseind = 1;}
        else {mp.resume(); pauseind = 0;}
    }
    else if( keyvalue == 261 )
    {
        muteFlag = mp.getMuteFlag();
        muteFlag = (muteFlag+1)%2;
        mp.setMuteFlag(muteFlag);
    }
    else if( keyvalue == 40 )
    {
        mp.gotoStart();
    }
    else if( keyvalue == 38 )
    {
        mp.gotoEnd();
    }
    else if( keyvalue == 259 )
    {
        volume = mp.getVolume();
        if(volume >=98) volume =100;
        else volume = volume + 2;
        mp.setVolume(volume);
    }
    else if( keyvalue == 260 )
    {
        volume = mp.getVolume();
        if(volume <= 2) volume =0;
        else volume = volume - 2;
        mp.setVolume(volume);
    }
    else if( keyvalue == 49 )
    {
      setChan(1,mp); //Обращение к функции добавления в массив
    }
    else if( keyvalue == 50 )
    {
      setChan(2,mp);
    }
    else if( keyvalue == 51 )
    {
     setChan(3,mp);
    }
    else if( keyvalue == 52 )
    {
     setChan(4,mp);
    }
    else if( keyvalue == 53 )
    {
      setChan(5,mp);
    }
    else if( keyvalue == 54 )
    {
      setChan(6,mp);
    }
    else if( keyvalue == 55 )
    {
      setChan(7,mp);
    }
    else if( keyvalue == 56 )
    {
      setChan(8,mp);
    }
    else if( keyvalue == 57 )
    {
      setChan(9,mp); 
    }
    else if( keyvalue == 48 )
    {
      setChan(0,mp);
    }
    else if( keyvalue == 257 )
    {
        mp.leaveChannel(currChNum);
        if(currChNum >= chCount-1) currChNum = 0;
        else currChNum = currChNum + 1;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 258 )
    {
        mp.leaveChannel(currChNum);
        if(currChNum == 0) currChNum = chCount-1;
        else if(currChNum >= chCount) currChNum = chCount-1;
        else currChNum = currChNum - 1;
        mp.joinChannel(currChNum);
    }


Последний раз редактировалось sSsantasSs; 24.06.2010 в 14:37.
sSsantasSs вне форума Ответить с цитированием
Старый 24.06.2010, 18:46   #32
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Вы выводите этот код из PHP с помощью echo?
motorway вне форума Ответить с цитированием
Старый 25.06.2010, 06:27   #33
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Вы выводите этот код из PHP с помощью echo?
да именно так, может я чего то не знаю?
sSsantasSs вне форума Ответить с цитированием
Старый 25.06.2010, 09:56   #34
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Я извиняюсь, удалил повторную строку
PHP код:
window.document.onkeypress = function(keyEvent
{
    var 
muteFlag;
    var 
volume;
    
keyEvent keyEvent keyEvent window.event;
    var 
keyvalue keyEvent.which keyEvent.which keyEvent.keyCode
и каналы заработали, но сейчас кнопки расположенные под этой функцией отказываются работать...
sSsantasSs вне форума Ответить с цитированием
Старый 25.06.2010, 10:08   #35
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

где должна закрываться эта функция?
PHP код:
echo "
window.document.onkeypress = function(keyEvent) 
{
    var muteFlag;
    var volume;
    keyEvent = keyEvent ? keyEvent : window.event;
    var keyvalue = keyEvent.which ? keyEvent.which : keyEvent.keyCode;
    var startChan=False;
    var arr=new Array();

function setChan(keyNumber /*Число которое было нажато*/,mp){
  if (startChan==True){ 
    arr[arr.length]=keyNumber;
   } else {
      setTimeout('StopTime('+mp+')',5000);
      var arr=[];     // Обновляем массив
      arr[arr.length]=keyNumber;
        startChan=True; // включаем режим ожидания
      }
}

// Функция остановки таймера т.е. время вышло пора бы переключиться
function StopTime(mp){
var AllNum='';
for (i=0; i<arr.length; i++){
     AllNum+=arr[i];
    }
 if (AllNum.length!=0){
  mp.leaveChannel(currChNum);  //currChNum должна быть где то обьявлена я не знаю что такое leaveChannel ну там явно должен передаватья не NULL
  currChNum = AllNum;
  mp.joinChannel(currChNum);
 }
startChan=False;
}

    if (startChan==False)
    if( keyvalue == 8 )
    {
        mp.stop();
        mp.leaveChannel(currChNum);
    mp.releaseMediaPlayer(NativePlayerInstanceID);
        location.href = 'index.php';
        window.refresh();
    }
    else if( keyvalue == 39 )
    {
        if( speed == 32 )
        {
            return;
        }
        else if( speed < 1 )
        {
            speed = 1;
        }
        else
        {
            speed = 2 * speed;
        }
        mp.fastForward(speed);
    }
    else if( keyvalue == 37 )
    {
        if( speed == 1 )
        {
            speed = -2;
        }
        else if( speed > 1 )
        {
            speed = 1;
        }
        else if( speed == -32 )
        {
            return;
        }
        else
        {
            speed = 2 * speed;
        }
        mp.fastRewind(speed);
    }
    else if( keyvalue == 263 )
    {
        if(pauseind == 0) {mp.pause(); pauseind = 1;}
        else {mp.resume(); pauseind = 0;}
    }
    else if( keyvalue == 261 )
    {
        muteFlag = mp.getMuteFlag();
        muteFlag = (muteFlag+1)%2;
        mp.setMuteFlag(muteFlag);
    }
    else if( keyvalue == 40 )
    {
        mp.gotoStart();
    }
    else if( keyvalue == 38 )
    {
        mp.gotoEnd();
    }
    else if( keyvalue == 259 )
    {
        volume = mp.getVolume();
        if(volume >=98) volume =100;
        else volume = volume + 2;
        mp.setVolume(volume);
    }
    else if( keyvalue == 260 )
    {
        volume = mp.getVolume();
        if(volume <= 2) volume =0;
        else volume = volume - 2;
        mp.setVolume(volume);
    }
    else if( keyvalue == 49 )
    {
      setChan(1,mp); //Обращение к функции добавления в массив
    }
    else if( keyvalue == 50 )
    {
      setChan(2,mp);
    }
    else if( keyvalue == 51 )
    {
     setChan(3,mp);
    }
    else if( keyvalue == 52 )
    {
     setChan(4,mp);
    }
    else if( keyvalue == 53 )
    {
      setChan(5,mp);
    }
    else if( keyvalue == 54 )
    {
      setChan(6,mp);
    }
    else if( keyvalue == 55 )
    {
      setChan(7,mp);
    }
    else if( keyvalue == 56 )
    {
      setChan(8,mp);
    }
    else if( keyvalue == 57 )
    {
      setChan(9,mp); 
    }
    else if( keyvalue == 48 )
    {
      setChan(0,mp);
    }
    else if( keyvalue == 257 )
    {
        mp.leaveChannel(currChNum);
        if(currChNum >= chCount-1) currChNum = 0;
        else currChNum = currChNum + 1;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 258 )
    {
        mp.leaveChannel(currChNum);
        if(currChNum == 0) currChNum = chCount-1;
        else if(currChNum >= chCount) currChNum = chCount-1;
        else currChNum = currChNum - 1;
        mp.joinChannel(currChNum);
    }
}  
function ConfigChannel() 

    var chars = '';
    chars += chCount.toString();
    
  Authentication.CTCSetConfig ('ChannelCount',chars);  
  //document.write('\''+chCount.tostring()+'\'');
  
  for(i=1;i<=chCount;i++) 
  {
      Authentication.CTCSetConfig('Channel',channelitem[i]); 
      //document.write(channelitem[i]);
  }

}

function init()
{     
        var bindresult = mp.bindNativePlayerInstance(PlayerInstanceID);
        if( bindresult == -1 )
        {
                NativePlayerInstanceID = mp.getNativePlayerInstanceID();
        }
    
        mp.setSingleOrPlaylistMode(0);
        mp.setPlaylistSeqFlag(1);
        mp.setPlaylistCycleFlag(1);
        mp.setVideoDisplayMode(1);
        mp.setAllowTrickmodeFlag( 0 );
        
        ConfigChannel();
        mp.joinChannel(currChNum);
}
    
function destoryMP()
{
    mp.stop();
}

</script>
</head>

<body bgcolor='transparent' onLoad='init();' onUnload='destoryMP();'>
</body>
</html>"

sSsantasSs вне форума Ответить с цитированием
Старый 25.06.2010, 11:43   #36
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Разберись с закрывающими скобками + убери условие
PHP код:
...
    if (
startChan==False) <- вот это условие 
    
if( keyvalue == )
    {
        
mp.stop();
        
mp.leaveChannel(currChNum);
    
mp.releaseMediaPlayer(NativePlayerInstanceID);
        
location.href 'index.php';
        
window.refresh();
    }
... 

Последний раз редактировалось slips; 25.06.2010 в 11:45. Причина: редактирование
slips вне форума Ответить с цитированием
Старый 25.06.2010, 12:17   #37
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

в общем разобрался я со всеми кавычками в итоге получилось следующие
PHP код:
echo '
window.document.onkeypress = function(keyEvent) 
{
    var muteFlag;
    var volume;
    keyEvent = keyEvent ? keyEvent : window.event;
    var keyvalue = keyEvent.which ? keyEvent.which : keyEvent.keyCode;
    var startChan=False;
    var arr=new Array();

function setChan(keyNumber /*Число которое было нажато*/,mp){
  if (startChan==True){ 
    arr[arr.length]=keyNumber;
   } else {
      setTimeout("StopTime('
+mp+')",5000);
      var arr=[];
      arr[arr.length]=keyNumber;
        startChan=True;
      }
}

function StopTime(mp){
var AllNum="";
for (i=0; i<arr.length; i++){
     AllNum+=arr[i];
    }
 if (AllNum.length!=0){
  mp.leaveChannel(currChNum);
  currChNum = AllNum;
  mp.joinChannel(currChNum);
 }
startChan=False;
}

    if( keyvalue == 8 )
    {
        mp.stop();
        mp.leaveChannel(currChNum);
    mp.releaseMediaPlayer(NativePlayerInstanceID);
        location.href = "index.php";
        window.refresh();
    }
    else if( keyvalue == 39 )
    {
        if( speed == 32 )
        {
            return;
        }
        else if( speed < 1 )
        {
            speed = 1;
        }
        else
        {
            speed = 2 * speed;
        }
        mp.fastForward(speed);
    }
    else if( keyvalue == 37 )
    {
        if( speed == 1 )
        {
            speed = -2;
        }
        else if( speed > 1 )
        {
            speed = 1;
        }
        else if( speed == -32 )
        {
            return;
        }
        else
        {
            speed = 2 * speed;
        }
        mp.fastRewind(speed);
    }
    else if( keyvalue == 263 )
    {
        if(pauseind == 0) {mp.pause(); pauseind = 1;}
        else {mp.resume(); pauseind = 0;}
    }
    else if( keyvalue == 261 )
    {
        muteFlag = mp.getMuteFlag();
        muteFlag = (muteFlag+1)%2;
        mp.setMuteFlag(muteFlag);
    }
    else if( keyvalue == 40 )
    {
        mp.gotoStart();
    }
    else if( keyvalue == 38 )
    {
        mp.gotoEnd();
    }
    else if( keyvalue == 259 )
    {
        volume = mp.getVolume();
        if(volume >=98) volume =100;
        else volume = volume + 2;
        mp.setVolume(volume);
    }
    else if( keyvalue == 260 )
    {
        volume = mp.getVolume();
        if(volume <= 2) volume =0;
        else volume = volume - 2;
        mp.setVolume(volume);
    }
    else if( keyvalue == 49 )
    {
      setChan(1,mp);
    }
    else if( keyvalue == 50 )
    {
      setChan(2,mp);
    }
    else if( keyvalue == 51 )
    {
     setChan(3,mp);
    }
    else if( keyvalue == 52 )
    {
     setChan(4,mp);
    }
    else if( keyvalue == 53 )
    {
      setChan(5,mp);
    }
    else if( keyvalue == 54 )
    {
      setChan(6,mp);
    }
    else if( keyvalue == 55 )
    {
      setChan(7,mp);
    }
    else if( keyvalue == 56 )
    {
      setChan(8,mp);
    }
    else if( keyvalue == 57 )
    {
      setChan(9,mp); 
    }
    else if( keyvalue == 48 )
    {
      setChan(0,mp);
    }
    else if( keyvalue == 257 )
    {
        mp.leaveChannel(currChNum);
        if(currChNum >= chCount-1) currChNum = 0;
        else currChNum = currChNum + 1;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 258 )
    {
        mp.leaveChannel(currChNum);
        if(currChNum == 0) currChNum = chCount-1;
        else if(currChNum >= chCount) currChNum = chCount-1;
        else currChNum = currChNum - 1;
        mp.joinChannel(currChNum);
    }
}  
function ConfigChannel() 

    var chars = "";
    chars += chCount.toString();
    
  Authentication.CTCSetConfig ("ChannelCount",chars);  
  //document.write("\'"+chCount.tostring()+"\'");
  
  for(i=1;i<=chCount;i++) 
  {
      Authentication.CTCSetConfig("Channel",channelitem[i]); 
      //document.write(channelitem[i]);
  }

}

function init()
{     
        var bindresult = mp.bindNativePlayerInstance(PlayerInstanceID);
        if( bindresult == -1 )
        {
                NativePlayerInstanceID = mp.getNativePlayerInstanceID();
        }
    
        mp.setSingleOrPlaylistMode(0);
        mp.setPlaylistSeqFlag(1);
        mp.setPlaylistCycleFlag(1);
        mp.setVideoDisplayMode(1);
        mp.setAllowTrickmodeFlag( 0 );
        
        ConfigChannel();
        mp.joinChannel(currChNum);
}
    
function destoryMP()
{
    mp.stop();
}

</script>
</head>

<body bgcolor="transparent" onLoad="init();" onUnload="destoryMP();">
</body>
</html>'

после старта этого скрипта в STB, вышло следующее
PHP код:
PositionX'5'PositionY'5'BeginTime'3'Interval'200'Lastinh'100'Channel'0' 
sSsantasSs вне форума Ответить с цитированием
Старый 25.06.2010, 12:46   #38
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Цитата:
Сообщение от sSsantasSs Посмотреть сообщение
после старта этого скрипта в STB, вышло следующее
PHP код:
PositionX'5'PositionY'5'BeginTime'3'Interval'200'Lastinh'100'Channel'0' 
Вы думаете мне это о чём то говорит ?
И кстати массив и переменную которую я вам сказал прописать вы должны были прописать выше всего а не в самой обработке кнопок
slips вне форума Ответить с цитированием
Старый 25.06.2010, 13:56   #39
sSsantasSs
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 64
По умолчанию

Извините Slips, я Вас не понял куда именно вставлять это, через ещё 1 функцию echo или в этой же но просто выше всего.
sSsantasSs вне форума Ответить с цитированием
Старый 25.06.2010, 14:33   #40
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

что то вроде этого
PHP код:
echo '
    var startChan=False;
    var arr=[];

window.document.onkeypress = function(keyEvent) 
{
    var muteFlag;
    var volume;
    keyEvent = keyEvent ? keyEvent : window.event;
    var keyvalue = keyEvent.which ? keyEvent.which : keyEvent.keyCode;

function setChan(keyNumber /*Число которое было нажато*/,mp){
  if (startChan==True){ 
    arr[arr.length]=keyNumber;
   } else {
      setTimeout("StopTime('
+mp+')",5000);
      arr=[];
      arr[arr.length]=keyNumber;
        startChan=True;
      }
}

function StopTime(mp){
var AllNum="";
for (i=0; i<arr.length; i++){
     AllNum+=arr[i];
    }
 if (AllNum.length!=0){
  mp.leaveChannel(currChNum);
  currChNum = AllNum;
  mp.joinChannel(currChNum);
 }
startChan=False;
}

    if( keyvalue == 8 )
    {
        mp.stop();
        mp.leaveChannel(currChNum);
    mp.releaseMediaPlayer(NativePlayerInstanceID);
        location.href = "index.php";
        window.refresh();
    }
    else if( keyvalue == 39 )
    {
        if( speed == 32 )
        {
            return;
        }
        else if( speed < 1 )
        {
            speed = 1;
        }
        else
        {
            speed = 2 * speed;
        }
        mp.fastForward(speed);
    }
    else if( keyvalue == 37 )
    {
        if( speed == 1 )
        {
            speed = -2;
        }
        else if( speed > 1 )
        {
            speed = 1;
        }
        else if( speed == -32 )
        {
            return;
        }
        else
        {
            speed = 2 * speed;
        }
        mp.fastRewind(speed);
    }
    else if( keyvalue == 263 )
    {
        if(pauseind == 0) {mp.pause(); pauseind = 1;}
        else {mp.resume(); pauseind = 0;}
    }
    else if( keyvalue == 261 )
    {
        muteFlag = mp.getMuteFlag();
        muteFlag = (muteFlag+1)%2;
        mp.setMuteFlag(muteFlag);
    }
    else if( keyvalue == 40 )
    {
        mp.gotoStart();
    }
    else if( keyvalue == 38 )
    {
        mp.gotoEnd();
    }
    else if( keyvalue == 259 )
    {
        volume = mp.getVolume();
        if(volume >=98) volume =100;
        else volume = volume + 2;
        mp.setVolume(volume);
    }
    else if( keyvalue == 260 )
    {
        volume = mp.getVolume();
        if(volume <= 2) volume =0;
        else volume = volume - 2;
        mp.setVolume(volume);
    }
    else if( keyvalue == 49 )
    {
      setChan(1,mp);
    }
    else if( keyvalue == 50 )
    {
      setChan(2,mp);
    }
    else if( keyvalue == 51 )
    {
     setChan(3,mp);
    }
    else if( keyvalue == 52 )
    {
     setChan(4,mp);
    }
    else if( keyvalue == 53 )
    {
      setChan(5,mp);
    }
    else if( keyvalue == 54 )
    {
      setChan(6,mp);
    }
    else if( keyvalue == 55 )
    {
      setChan(7,mp);
    }
    else if( keyvalue == 56 )
    {
      setChan(8,mp);
    }
    else if( keyvalue == 57 )
    {
      setChan(9,mp); 
    }
    else if( keyvalue == 48 )
    {
      setChan(0,mp);
    }
    else if( keyvalue == 257 )
    {
        mp.leaveChannel(currChNum);
        if(currChNum >= chCount-1) currChNum = 0;
        else currChNum = currChNum + 1;
        mp.joinChannel(currChNum);
    }
    else if( keyvalue == 258 )
    {
        mp.leaveChannel(currChNum);
        if(currChNum == 0) currChNum = chCount-1;
        else if(currChNum >= chCount) currChNum = chCount-1;
        else currChNum = currChNum - 1;
        mp.joinChannel(currChNum);
    }
}  
function ConfigChannel() 

    var chars = "";
    chars += chCount.toString();
    
  Authentication.CTCSetConfig ("ChannelCount",chars);  
  //document.write("\'"+chCount.tostring()+"\'");
  
  for(i=1;i<=chCount;i++) 
  {
      Authentication.CTCSetConfig("Channel",channelitem[i]); 
      //document.write(channelitem[i]);
  }

}

function init()
{     
        var bindresult = mp.bindNativePlayerInstance(PlayerInstanceID);
        if( bindresult == -1 )
        {
                NativePlayerInstanceID = mp.getNativePlayerInstanceID();
        }
    
        mp.setSingleOrPlaylistMode(0);
        mp.setPlaylistSeqFlag(1);
        mp.setPlaylistCycleFlag(1);
        mp.setVideoDisplayMode(1);
        mp.setAllowTrickmodeFlag( 0 );
        
        ConfigChannel();
        mp.joinChannel(currChNum);
}
    
function destoryMP()
{
    mp.stop();
}

</script>
</head>

<body bgcolor="transparent" onLoad="init();" onUnload="destoryMP();">
</body>
</html>'

А лучше прямо после
PHP код:
<script language="JavaScript">
    var 
startChan=False;
    var 
arr=[];
    ... 

Последний раз редактировалось slips; 25.06.2010 в 14:44. Причина: редактирование
slips вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi и VLC Player - программное переключение каналов ViNcHeStEr Мультимедиа в Delphi 17 17.01.2010 13:12
Включение\отключение каналов SanekIrk Мультимедиа в Delphi 1 19.10.2009 17:10
Управление компом через пульт тв тюнера. Utkin Свободное общение 3 01.09.2009 18:03
Межпроцессное взаимодействие. Каналы. Zefick Win Api 3 02.03.2009 20:48