Not: Linux üzerinde olan başka bir programlama dilinde de ola bilir yapıcağı iş.
Arkadaşlar az çok C++ bilgim var.
5-6 ay oldu Linux`a geçeli.
C++ la console yazılım yazmıştım yaptığı iş birkaç
saniye aralıklarla bekleyerek imleci gerekli kordinatlarda tıklıyordu.
Fakat Linux`ta bunu yaptırmak tamamen bir sorun halinde.
GTK+ kodlamada buraya kadar gele bildim:
#include <stdlib.h>
#include <X11/Xlib.h>
#include <gtk/gtk.h>
#include <X11/extensions/XTest.h>
static void helloWorld (GtkWidget *wid, GtkWidget *win)
{
GtkWidget *dialog = NULL;
dialog = gtk_message_dialog_new (GTK_WINDOW (win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "Hello World!");
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
}
void window1 (GtkWidget *wid, GtkWidget *win)
{
gint x, y, xadd=0, yadd=0;
GdkDisplay *display = NULL;
GdkScreen *screen = NULL;
GtkWidget *widget = NULL;
/* get default display and screen */
display = gdk_display_get_default ();
screen = gdk_display_get_default_screen (display);
x=300; y=400;
usleep(15*(100*1000));
printf("a\n");
gdk_display_warp_pointer (display, screen, x, y);
gdk_display_pointer_ungrab(display, 10);
usleep(15*(100*1000));Bu araya mouse left click yapıcak bir kod girmek istedim ama
çalışan bir kod bulamadım maesef. Belki buldum ama çalıştıramadım.
/* gtk_button_set_focus_on_click(, gpointer);
char *display_name = getenv("DISPLAY");
Display *dpy;
Window root;
long mask;
XEvent event;
dpy = XOpenDisplay(display_name);
*/
}
void window2 (GtkWidget *wid, GtkWidget *win)
{
gint x, y, xadd=0, yadd=0;
GdkDisplay *display = NULL;
GdkScreen *screen = NULL;
/* get default display and screen */
display = gdk_display_get_default ();
screen = gdk_display_get_default_screen (display);
x=500; y=400;
usleep(15*(100*1000));
printf("b\n");
gdk_display_warp_pointer (display, screen, x, y);
gdk_display_pointer_ungrab(display, 10);
}
int main (int argc, char *argv[])
{
GtkWidget *button = NULL;
GtkWidget *win = NULL;
GtkWidget *vbox = NULL;
/* Initialize GTK+ */
g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL);
gtk_init (&argc, &argv);
g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);
/* Create the main window */
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (win), 8);
gtk_window_set_title (GTK_WINDOW (win), "Hello World");
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
gtk_widget_realize (win);
g_signal_connect (win, "destroy", gtk_main_quit, NULL);
/* Create a vertical box with buttons */
vbox = gtk_vbox_new (TRUE, 6);
gtk_container_add (GTK_CONTAINER (win), vbox);
button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO);
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (helloWorld), (gpointer) win);
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
button = gtk_button_new_from_stock ("Tıkla");
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (window1), (gpointer) win);
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (window1), (gpointer) win);
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
g_signal_connect (button, "clicked", gtk_main_quit, NULL);
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
/* Enter the main loop */
gtk_widget_show_all (win);
gtk_main ();
return 0;
}3 gündür uğraşıyorum. Birkaç programlama dili denedim ama hiç birinde ilerleme olmadı. Bunda da en son buraya kadar geldim. Şimdi yaptığı iş imleci haraket ettiriyor ve bekliyor ama tıklatma olayını yapamadım. C++ acemiliyim vardı ama burda oda işe yaramadı

Yardımlarınızı bekliyorum.
Not: Linux üzerinde olan başka bir programlama dilinde de ola bilir yapıcağı iş.