[GTK+] Funkcja wykonujaca się w nieskończoność
Ostatnio zmodyfikowano 2014-04-09 15:39
dominicuss Temat założony przez niniejszego użytkownika |
[GTK+] Funkcja wykonujaca się w nieskończoność » 2014-04-06 19:46:11 chciałbym aby ta funkcja po kliknięciu przycisku toggle wykonywała się do czasu odciśnięcia przycisku... ale w moim wypadku wykonuje się w nieskończoność zawieszając aplikacje... static int send_message( GtkWidget * widget, gpointer data ) { HWND okno = FindWindow( NULL, "tytuł okna" ); if( okno == NULL ) { message_box( window,( gpointer ) "Cannot find <tytuł okna> window" ); return 1; } const gchar * entry_buffer = gtk_entry_get_text( GTK_ENTRY( entry ) ); if( !strcmp( entry_buffer, "" ) ) { message_box( window,( gpointer ) "Entry box is empty" ); return 1; } do { SetForegroundWindow( okno ); input_keys( entry_buffer ); input_button( VK_RETURN ); Sleep( 30000 ); } while( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( button ) ) ); return 0; }
funkcja działa ale zawiesza działanie aplikacji do czasu przerwania pętli... |
|
adsko |
» 2014-04-07 15:02:10 Dodaj jakiś timer który będzie wywoływał tą funkcje(Sleep zawiesi apke), albo daj na innym zadaniu (wielozadaniowość). |
|
MrPoxipol |
» 2014-04-07 18:42:36 |
|
dominicuss Temat założony przez niniejszego użytkownika |
» 2014-04-09 15:39:07 static int send_message( gpointer data ) { SetForegroundWindow( okno ); input_keys( entry_buffer ); input_button( VK_RETURN ); return 1; }
static int button_f( GtkWidget * widget, gpointer data ) { entry_buffer = gtk_entry_get_text( GTK_ENTRY( entry ) ); okno = FindWindow( NULL, "tytuł okna" ); if( okno == NULL ) { message_box( window,( gpointer ) "Cannot find <tytuł okna> window" ); return 1; } if( !strcmp( entry_buffer, "" ) ) { message_box( window,( gpointer ) "Entry box is empty" ); return 1; } gint interval = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( spinbox ) ); gint timer = g_timeout_add(( interval * 1000 ), send_message, NULL ); return 0; }
na wypadek gdyby komuś to było potrzebne |
|
« 1 » |