PDA

Показать полную графическую версию : C и PHP


Igor_I
24-02-2009, 20:35
Поскольку в в с-программировании я ничего не понимаю, а на данный момент очень надо, не мог бы кто-нибудь подсказать.
Есть код.
#define WM_RELOADSIGNAL WM_USER+112

HWND hWnd=FindWindow(NULL,"FlyRemoteControl");
PostMessage(hWnd,WM_RELOADSIGNAL,NULL,NULL);
Надо этот код как-то связать с PHP.
Подскажите, что и где искать. И вообще, что этот код делает. Нет, конечно цель этого кода я знаю, но вот что он делает.

Admiral
24-02-2009, 20:53
Igor_I первая строчка задаёт WM_RELOADSIGNAL как WM_USER+112. Далее везде по коду где встретится WM_RELOADSIGNAL оно будет воспринято как WM_USER+112.
Вторая определяет переменную hWnd типа HWND (хендл) как хендл найденного окна любого типа с заголовком FlyRemoteControl
Третья отправляет в это окно сообщение WM_USER+112

Связь с PHP не очевидна.

Igor_I
24-02-2009, 21:39
Это мне надо связать код с PHP.
Есть тв-тюнер. При помощи php-скрипта изменяю файл планировщика. После изменения файла его надо перечитать при помощи приведённого кода.
Я думаю что мне придёться делать так: пишу программу с некоторыми ключами командной строки, один из которых выполняет этот код, другой показывает запущенные процессы.
Куда сунуться чтобы написать программку, при моих-то знаниях.

Admiral
24-02-2009, 22:06
Igor_I, теперь ясно. PHP стоит на удалённом компе с ТВ тюнером. Через Веб интерфейс последним управляется.

Ключи командной строки которые переданные своему приложению узнать можно посредством переменных argc и argv[] главной функции программы.
Следующий код выдаст все переданные приложению ключи

#include <stdio.h>

int main (int argc, char* argv[])
{
int i=0;
for (i=1;i<argc;i++)
printf("%s",argv[i]);
return 0;
}

Насчёт запушенных процессов копать нужно в направлении process.h (http://en.wikipedia.org/wiki/Process.h)

Есть так же чисто Win решения Process listing APIs on Windows (http://blogs.msdn.com/greggm/archive/2005/11/10/491647.aspx)

Igor_I
24-02-2009, 22:22
Что поставить для написания и отладки программки?

Admiral
24-02-2009, 22:52
Igor_I, любую современную среду разработки поддерживающую Win32.
Из продуктов MS например Visual C++ 2005 a.k.a 8.0 (http://www.microsoft.com/express/2005/) или Visual C++ 2008 a.k.a 9.0 (http://www.microsoft.com/express/download/).
Существует так же отдельно (тоже бесплатный) компилятор Visual C++ Toolkit 2003 (VCToolkitSetup.exe, размером 31,4 МБ (32 948 392 байт)), доступный когда-то по адресу http://msdn.microsoft.com/visualc/vctoolkit2003. Ныне его заместил Visual C++ 2005.
Резон использовать - малый размер дистрибутива и отсутствие зависимости от всяких Redistribute Files далее в последствии использовании скомпиленых им приложений.
По приведённым данным его можно найти и скачать с сторонних сайтов.




© OSzone.net 2001-2012