Запомняне

» Здравейте
[ Вход :: Регистриране ]
 » Начало » Li Форуми » Help & Support » Applications » Разни хакове
  • Страница 1 от 21 Skip to Page:
  • 1
  • 2
  • 3
  • 4
  • 5
  • Next Page
  • Last Page
Тема: Разни хакове
Мнение #1 Skip to the next post in this topic.
Написано на: Август 06 2007, 15:37
Zero_effect

Avatar




Група: Li maniacs
Мнения: 489
Регистриран: Юли 2005

Оценка: 5

Offline
Това съобщение е редактирано за удобство на новите потребители.

Последната стабилна версия на TVHelper може винаги да бъде свалена от OpenFmi.

Ако имате някакви проблеми или идеи е най-добре да ги споделите в тази тема.

==========
Оригинал:
Понеже съм малко объркан къде му е мястото на това, реших, че тук е подходящо.

Neterra предлага онлайн телевизия на живо, но трябва да ходя на сайта им, за да мога да си пусна някоя телевизия, което хич не е удобно. Така, че реших да си направя една проста програмка, която да взима информация за дадената телевизия от сайта и да я пуска директно през mplayer.

Но стига разяснения - ето го резултата

MTH.c:
Код: 

#include <gtk/gtk.h>

#include <curl/curl.h>

#include <string.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>

#define _GNU_SOURCE
#include <stdio.h>

GtkWidget* main_window;

/* Открива url-то, чрез което mplayer ще включи телевизионния канал */
void get_mms_url(char* mms_url, FILE* html_file)
{
    int i;
    fseek(html_file, 0, SEEK_SET);
    size_t spartan_size = 300;
    char* buf = (char*)malloc(301);
    while(getline(&buf, &spartan_size, html_file) != -1)
    {
         i = 0;
         while(buf[i] != '\n')
         {
              if(buf[i] == 'm')
              {
                   ++i;
                   if(buf[i] == 'm')
                   {
                        --i;
                        int j = 0;
                        while(buf[i] != '"')
                        {
                             mms_url[j] = buf[i];
                             ++i;
                             ++j;
                        }
                        mms_url[j]='\0';
                        free(buf);
                        return;
                   }
              }
              ++i;
         }
    }
   
    free(buf);

    GtkWidget* error_dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(main_window),  GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Cannot find the mms address");
    gtk_dialog_run(GTK_DIALOG(error_dialog));
    gtk_widget_destroy(error_dialog);
    exit(EXIT_FAILURE);
}

/* Включва mplayer в нов процес и създава диалог, с който той може да бъде изключен */
static void watch_tv(GtkWidget *widget, gpointer data)
{
   pid_t p = fork();
   if(p < 0)
   {
       GtkWidget* error_dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(main_window),  GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, (gchar*)strerror(p));
       gtk_dialog_run(GTK_DIALOG(error_dialog));
       gtk_widget_destroy(error_dialog);
       return;
   }
   if(p > 0)
   {
       gtk_widget_hide(main_window);
       GtkWidget* waiting_dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(main_window),  GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "You are now watching TV");
       gtk_dialog_run(GTK_DIALOG(waiting_dialog));
       gtk_widget_destroy(waiting_dialog);
       kill(p, SIGTERM);
       waitpid(p, 0, 0);
       gtk_widget_show(main_window);
       return;
   }

/* Изтегляне на страницата от neterra - тази стъпка е много важна, защото чрез нея се взима линкът с информацията за сесията */
    FILE* html_file = fopen("/tmp/neterra-streamer","w+");
    CURL* curl_handle = curl_easy_init();
    curl_easy_setopt(curl_handle, CURLOPT_URL, (const char*)data);
    curl_easy_setopt(curl_handle, CURLOPT_VERBOSE, 1);
    curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, html_file);
    int error = curl_easy_perform(curl_handle);
    if(error)
    {
         GtkWidget* error_dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(main_window),  GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, (const gchar*)curl_easy_strerror(error));
         gtk_dialog_run(GTK_DIALOG(error_dialog));
         gtk_widget_destroy(error_dialog);
         exit(EXIT_FAILURE);
    }
    curl_easy_cleanup(curl_handle);

    char mms_url[128];
    get_mms_url(mms_url, html_file);
   
    fclose(html_file);

    execl("/usr/bin/mplayer", "mplayer", mms_url, NULL);
}

static void destroy( GtkWidget *widget, gpointer data )
{
   gtk_main_quit ();
}

int main(int argc, char *argv[])
{
   GtkWidget* stationwg;

   gtk_init(&argc, &argv);
   
   main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_resizable(GTK_WINDOW(main_window), FALSE);
   
   g_signal_connect (G_OBJECT(main_window), "destroy", G_CALLBACK(destroy), NULL);
   
   GtkWidget* btnbox = gtk_vbutton_box_new();
   gtk_container_add (GTK_CONTAINER(main_window), btnbox);

/* Това макро прави живота ви по-лесен - дава възможност да се дефинира нов телевизионен канал като се окаже само името и url-то му.
*/
#define TV(station, url) \
   stationwg = gtk_button_new_with_label(station); \
   g_signal_connect(G_OBJECT(stationwg), "clicked", G_CALLBACK(watch_tv), url); \
   gtk_box_pack_start(GTK_BOX(btnbox), stationwg, TRUE, TRUE, 0);

/* Листата с телевизионните канали */
   TV("bTV", "http://www.neterra.tv/bg/playlivestream.php?epid=9320&q=2&plid=3")
   TV("Nova TV", "http://www.neterra.tv/bg/playlivestream.php?epid=22159&q=2&plid=3")
   TV("TV7", "http://www.neterra.tv/bg/playlivestream.php?epid=9581&q=2&plid=3")
   TV("Планета Чалга", "http://www.neterra.tv/bg/playlivestream.php?epid=8711&q=2&plid=3")
   TV("Планета Фолк", "http://www.neterra.tv/bg/playlivestream.php?epid=25825&q=2&plid=3")
   TV("EK", "http://www.neterra.tv/bg/playlivestream.php?epid=22527&q=2&plid=3")
   TV("Европа TV", "http://www.neterra.tv/bg/playlivestream.php?epid=25285&q=2&plid=3")
   TV("City TV", "http://www.neterra.tv/bg/playlivestream.php?epid=12098&q=2&plid=3")
   TV("MM", "http://www.neterra.tv/bg/playlivestream.php?epid=16451&q=2&plid=3")
   TV("MM2", "http://www.neterra.tv/bg/playlivestream.php?epid=16527&q=2&plid=3")
   TV("Чалга Fen TV", "http://www.neterra.tv/bg/playlivestream.php?epid=24527&q=2&plid=3")
   TV("Балканска чалга", "http://www.neterra.tv/bg/playlivestream.php?epid=24586&q=2&plid=3")
   TV("7 дни", "http://www.neterra.tv/bg/playlivestream.php?epid=24030&q=2&plid=3")
   TV("BG TV", "http://www.neterra.tv/bg/playlivestream.php?epid=16487&q=2&plid=3")
   TV("ВТК", "http://www.neterra.tv/bg/playlivestream.php?epid=12111&q=2&plid=3")
   TV("Канал 88", "http://www.neterra.tv/bg/playlivestream.php?epid=16528&q=2&plid=3")

   gtk_widget_show_all(main_window);
   
   gtk_main();
   
   return 0;
}


За да компилирате тази програма ви трябва GTK+ и libcurl, а ето и как да си я компилирате:

Код: 
gcc -O3 MTH.c -o MTH `pkg-config gtk+-2.0 libcurl --cflags --libs`


П.П. Между другото, това е преправена версия на една друга моя програмка за пускане на онлайн радио станции от меню. Ако има заинтересувани пишете...


Редактирано от Zero_effect на Септември 12 2007, 12:00
Контакти:  Zero_effect

  • AOL  AOL:
  • ICQ  ICQ: 94584818
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #2 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 07 2007, 10:20
mcwolf

No avatar chosen




Група: Li gurus
Мнения: 1489
Регистриран: Април 2005

Оценка: 5

Offline
направи му Makefile де :)
Контакти:  mcwolf

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #3 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 07 2007, 12:30
Zero_effect

Avatar




Група: Li maniacs
Мнения: 489
Регистриран: Юли 2005

Оценка: 5

Offline
Makefile:
Код: 

CC=gcc
LIBS=`pkg-config libcurl gtk+-2.0 --libs`
CFLAGS=-O3 -c `pkg-config libcurl gtk+-2.0 --cflags`

all: MTH

MTH: MTH.o
       $(CC) $(LIBS) MTH.o -o MTH

MTH.o: MTH.c
       $(CC) $(CFLAGS) MTH.c

clean:
       rm -rf *o MTH


Хайде, заповядайте.

Направих и лека корекция на сорсовете, за да не се оплаква gcc, ако компилирате с -Wall опция.


Редактирано от Zero_effect на Август 07 2007, 14:23
Контакти:  Zero_effect

  • AOL  AOL:
  • ICQ  ICQ: 94584818
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #4 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 07 2007, 20:33
Zero_effect

Avatar




Група: Li maniacs
Мнения: 489
Регистриран: Юли 2005

Оценка: 5

Offline
MRH.c
Код: 

#include <gtk/gtk.h>

#include <curl/curl.h>

#include <string.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>

#define _GNU_SOURCE
#include <stdio.h>

pid_t mplayer_pid = 0;
GtkWidget* main_window;

/* Улеснява писането на код и намалява обема му */
inline void show_error_dialog(const char* error_message)
{
    GtkWidget* error_dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(main_window),  GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, error_message);
    gtk_dialog_run(GTK_DIALOG(error_dialog));
    gtk_widget_destroy(error_dialog);
}

/* Изтегляне на страницата - тази стъпка е много важна, защото чрез нея се взима линкът с информацията за сесията */
inline void get_web(FILE* html_file, const char* url)
{
    CURL* curl_handle = curl_easy_init();
    curl_easy_setopt(curl_handle, CURLOPT_URL, (const char*)url);
    curl_easy_setopt(curl_handle, CURLOPT_VERBOSE, 1);
    curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, html_file);
    int error = curl_easy_perform(curl_handle);
    if(error)
    {
         show_error_dialog((const gchar*)curl_easy_strerror(error));
         exit(EXIT_FAILURE);
    }
    curl_easy_cleanup(curl_handle);
}

/* Открива url-то, чрез което mplayer ще включи телевизионния канал от нетера
  ВНИМАНИЕ!!!: Този алгоритъм е опасен - не го използвайте за сайтове, в които има думи от сорта на communication или някоя друга дума с двойно mm */
void get_mms_url(char* mms_url, FILE* html_file)
{
    int i;
    fseek(html_file, 0, SEEK_SET);
    size_t spartan_size = 300;
    char* buf = (char*)malloc(301);
    while(getline(&buf, &spartan_size, html_file) != -1)
    {
         i = 0;
         while(buf[i] != '\n')
         {
              if(buf[i] == 'm')
              {
                   ++i;
                   if(buf[i] == 'm')
                   {
                        --i;
                        int j = 0;
                        while(buf[i] != '"')
                        {
                             mms_url[j] = buf[i];
                             ++i;
                             ++j;
                        }
                        mms_url[j]='\0';
                        free(buf);
                        return;
                   }
              }
              ++i;
         }
    }
   
    free(buf);

    show_error_dialog("Cannot find the mms address");
    exit(EXIT_FAILURE);
}

/* Това е за всички телевизии, които не се подкарват с хакове */
static void watch_tv_free(GtkWidget *widget, gpointer data)
{
    if(mplayer_pid)
    {
         kill(mplayer_pid, SIGTERM);
         waitpid(mplayer_pid, 0, 0);
    }
    pid_t p = fork();
    if(p < 0)
    {
         show_error_dialog((gchar*)strerror(p));
         return;
    }
    if(p > 0)
    {
         mplayer_pid = p;
         return;
    }

    execl("/usr/bin/mplayer", "mplayer", (const char*)data, NULL);
}

/* Това е за нетера и може би други сайтове, в които е заровен mms линка в кода им */
static void watch_tv_neterra_hack(GtkWidget *widget, gpointer data)
{
    if(mplayer_pid)
    {
         kill(mplayer_pid, SIGTERM);
         waitpid(mplayer_pid, 0, 0);
    }
    pid_t p = fork();
    if(p < 0)
    {
         show_error_dialog((gchar*)strerror(p));
         return;
    }
    if(p > 0)
    {
         mplayer_pid = p;
         return;
    }

    FILE* html_file = fopen("/tmp/tvhelper","w+");
    get_web(html_file, (const char*)data);
    char mms_url[128];
    get_mms_url(mms_url, html_file);
    fclose(html_file);
   
    execl("/usr/bin/mplayer", "mplayer", mms_url, NULL);
}

/* Това е за сайтове, които са достатъчно досадни, че да ви карат да сваляте цяла страница, за да си вземете линка */
static void watch_tv_bgtelevizor_hack(GtkWidget *widget, gpointer data)
{
    if(mplayer_pid)
    {
         kill(mplayer_pid, SIGTERM);
         waitpid(mplayer_pid, 0, 0);
    }
    pid_t p = fork();
    if(p < 0)
    {
         show_error_dialog((gchar*)strerror(p));
         return;
    }
    if(p > 0)
    {
         mplayer_pid = p;
         return;
    }
   
    FILE* html_file = fopen("/tmp/tvhelper","w+");
    get_web(html_file, (const char*)data);
   
    fseek(html_file, 0, SEEK_SET);
    size_t spartan_size = 0;
    char* buf = NULL;
    getline(&buf, &spartan_size, html_file);
   
    fclose(html_file);
   
    execl("/usr/bin/mplayer", "mplayer", buf, NULL);
}

static void destroy( GtkWidget *widget, gpointer data )
{
/* Ако искаш да остава включена телевизията, дори когато си затворил менюто, коментирай редовете за спиране на mplayer */
    if(mplayer_pid)
    {
         kill(mplayer_pid, SIGTERM);
         waitpid(mplayer_pid, 0, 0);
    }

   gtk_main_quit ();
}

int main(int argc, char *argv[])
{
   GtkWidget* channelwg;

   gtk_init(&argc, &argv);
   
   main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_resizable(GTK_WINDOW(main_window), FALSE);
   
   g_signal_connect (G_OBJECT(main_window), "destroy", G_CALLBACK(destroy), NULL);
   
   GtkWidget* scrolledwnd = gtk_scrolled_window_new(NULL, NULL);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwnd), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
   gtk_container_add(GTK_CONTAINER(main_window), scrolledwnd);
   
   gtk_widget_set_usize(scrolledwnd, -1, 500);
   
   GtkWidget* btnbox = gtk_vbutton_box_new();
   gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW(scrolledwnd), btnbox);

/* Тези макрота правят живота ви по-лесен - дават възможност да се дефинира нов телевизионен канал като се окаже само името и url-то му.
*/
#define TV(watch_tv_func, channel, url) \
   channelwg = gtk_button_new_with_label(channel); \
   g_signal_connect(G_OBJECT(channelwg), "clicked", G_CALLBACK(watch_tv_func), url); \
   gtk_box_pack_start(GTK_BOX(btnbox), channelwg, TRUE, TRUE, 0);

/* Тези макрота са само, за да изглежда по-чисто кода */
#define TV_bgtv(channel, url) TV(watch_tv_bgtelevizor_hack, channel, url)
#define TV_netr(channel, url) TV(watch_tv_neterra_hack, channel, url)
#define TV_free(channel, url) TV(watch_tv_free, channel, url)

/* Листата с телевизионните канали */
   TV_bgtv("Канал 1", "http://bgtelevizor.net/stream.php?cid=3")
   TV_netr("bTV", "http://www.neterra.tv/bg/playlivestream.php?epid=9320&q=2&plid=3")
//    TV_bgtv("bTV", "http://bgtelevizor.net/stream.php?cid=1")
//    TV_free("Nova TV", "mms://194.8.60.242:1234")
//    TV_netr("Nova TV", "http://www.neterra.tv/bg/playlivestream.php?epid=22159&q=2&plid=3")
   TV_bgtv("Nova TV", "http://bgtelevizor.net/stream.php?cid=2")
//    TV_bgtv("TV7", "http://bgtelevizor.net/stream.php?cid=4")
   TV_netr("TV7", "http://www.neterra.tv/bg/playlivestream.php?epid=9581&q=2&plid=3")
   TV_netr("Планета Чалга", "http://www.neterra.tv/bg/playlivestream.php?epid=8711&q=2&plid=3")
   TV_netr("Планета Фолк", "http://www.neterra.tv/bg/playlivestream.php?epid=25825&q=2&plid=3")
   TV_netr("EK", "http://www.neterra.tv/bg/playlivestream.php?epid=22527&q=2&plid=3")
   TV_netr("Европа TV", "http://www.neterra.tv/bg/playlivestream.php?epid=25285&q=2&plid=3")
   TV_netr("City TV", "http://www.neterra.tv/bg/playlivestream.php?epid=12098&q=2&plid=3")
   TV_netr("MM", "http://www.neterra.tv/bg/playlivestream.php?epid=16451&q=2&plid=3")
   TV_netr("MM2", "http://www.neterra.tv/bg/playlivestream.php?epid=16527&q=2&plid=3")
   TV_netr("Чалга Fen TV", "http://www.neterra.tv/bg/playlivestream.php?epid=24527&q=2&plid=3")
   TV_netr("Балканска чалга", "http://www.neterra.tv/bg/playlivestream.php?epid=24586&q=2&plid=3")
   TV_free("7 дни", "mms://84.1.240.206/7dni")
//    TV_netr("7 дни", "http://www.neterra.tv/bg/playlivestream.php?epid=24030&q=2&plid=3")
   TV_netr("BG TV", "http://www.neterra.tv/bg/playlivestream.php?epid=16487&q=2&plid=3")
   TV_free("ВTK", "mms://87.120.130.6/vtk_direct_q1.wmv")
//    TV_netr("ВТК", "http://www.neterra.tv/bg/playlivestream.php?epid=12111&q=2&plid=3")
   TV_netr("Канал 88", "http://www.neterra.tv/bg/playlivestream.php?epid=16528&q=2&plid=3")
   TV_bgtv("Ринг TV", "http://bgtelevizor.net/stream.php?cid=5")
   TV_bgtv("ВВТ", "http://bgtelevizor.net/stream.php?cid=6")
   TV_free("Здраве", "mms://84.1.240.206/zdrave")
   TV_free("Вяра", "mms://84.1.240.206/viara")
   TV_free("Hip Hop TV", "mms://84.1.240.206/hiphop")
   TV_free("Eurofolk", "mms://206.225.90.39:8080")
   TV_free("Родина TV", "mms://tvrodina.com:9999")
   TV_free("BG Web TV", "rtsp://wm.multimedia.bg/bgweb_tv_live1")
   TV_free("TV Estate", "mms://62.176.111.80/Pressclub")
   TV_free("BTA Pressclub", "mms://194.8.60.242:1234/")
   TV_free("T.T.V.I", "http://ttvi.mine.nu:8080/")

   gtk_widget_show_all(main_window);
   
   gtk_main();
   
   return 0;
}


Разбира се, на някои хора може да им се видят малко каналите, така, че добавих още други и още един елементарен хак за bgtelevizor.net


Редактирано от Zero_effect на Август 07 2007, 21:54
Контакти:  Zero_effect

  • AOL  AOL:
  • ICQ  ICQ: 94584818
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #5 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 08 2007, 15:11
Zero_effect

Avatar




Група: Li maniacs
Мнения: 489
Регистриран: Юли 2005

Оценка: 5

Offline
Почитателите на рок музиката могат да си добавят и тези канали:

Код: 

   TV_free("70's Rock TV - Италия", "mms://89.97.231.166/70")
   TV_free("80's Rock TV - Италия", "mms://89.97.231.166/80")
   TV_free("90's Rock TV - Италия", "mms://89.97.231.166/slow")
   TV_free("Rock TV - Италия", "mms://89.97.231.166/new")
   TV_free("Hard & Heavy TV - Италия", "mms://89.97.231.166/hard")
   TV_free("Progressive Rock TV - Италия", "mms://89.97.231.166/prog")
   TV_free("Soft Rock & Ballads TV - Италия", "mms://89.97.231.166/soft")
Контакти:  Zero_effect

  • AOL  AOL:
  • ICQ  ICQ: 94584818
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #6 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 09 2007, 03:54

Avatar




Група: Li fans
Мнения: 31
Регистриран: Август 2006

Оценка: няма

Offline
Немога да компилирам. Нямам gtk+-2.0 на Debian etch и неможах да намеря.

live free or die
Контакти:  bogo
WEB  
Мнение #7 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 09 2007, 10:39
mcwolf

No avatar chosen




Група: Li gurus
Мнения: 1489
Регистриран: Април 2005

Оценка: 5

Offline
http://www.gtk.org/download/


------
защо не изнесеш каналите във външен файл и да направиш опция той да се сваля от интернет
Контакти:  mcwolf

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #8 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 09 2007, 11:33
Zero_effect

Avatar




Група: Li maniacs
Мнения: 489
Регистриран: Юли 2005

Оценка: 5

Offline
Трябват ти dev файловете.

Код: 
apt-get install libgtk2.0-dev


Редактирано от Zero_effect на Август 09 2007, 11:44
Контакти:  Zero_effect

  • AOL  AOL:
  • ICQ  ICQ: 94584818
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #9 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 09 2007, 15:37

Avatar




Група: Li fans
Мнения: 31
Регистриран: Август 2006

Оценка: няма

Offline
Уау... :) Това е страхотно. Поздравления за рок телевизийте от Италия. С много добро качество са. Кажи сега как да го компилирам и за винбозата на жената, много ще се изкефи?

И фрее хостинг от мен ако имаш нужда:)


Редактирано от bogo на Август 09 2007, 15:39

live free or die
Контакти:  bogo
WEB  
Мнение #10
Skip to the previous post in this topic. Написано на: Август 09 2007, 19:32
Zero_effect

Avatar




Група: Li maniacs
Мнения: 489
Регистриран: Юли 2005

Оценка: 5

Offline
По принцип GTK+ и libcurl са портативни и могат да работят под windows, но не разполагам с тази операционна система, за да мога да тествам и нямам особено опит с програмиране в windows(не съм й почитател).

Така, че не мога да ти помогна.
Контакти:  Zero_effect

  • AOL  AOL:
  • ICQ  ICQ: 94584818
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Общо 209 отговор(а) от Август 06 2007, 15:37 до сега
  • Страница 1 от 21 Skip to Page:
  • 1
  • 2
  • 3
  • 4
  • 5
  • Next Page
  • Last Page
 » Начало » Li Форуми » Help & Support » Applications » Разни хакове

© 2014 Linux Index Project
Powered by iF 1.0.0 © 2006 ikonForums