نمایش نتایج 1 تا 6 از 6

نام تاپیک: کاربر مجازی

  1. #1

    Tick کاربر مجازی

    سلام

    میشه یه کمکی کنید و بگید چطور میشه به عنوان وسایل ورودی اطلاعات رو به ویندوز فرستاد.
    مثلا برنامه های remote چطور اطلاعات مربوط به موس رایانه ی از راه دور رو به عنوان اطلاعات موس رایانه جایگزین می کند.
    در واقع میشه این طور گفت که می خواهم یک اربر مجازی داشته باشم و از طرف کاربر واقعی ورودی ارسال کنه.

    ممنون

  2. #2
    کاربر دائمی آواتار najafzade
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    جنگلهای آمازون
    پست
    209

    Wink

    نقل قول نوشته شده توسط BitMap مشاهده تاپیک
    سلام

    میشه یه کمکی کنید و بگید چطور میشه به عنوان وسایل ورودی اطلاعات رو به ویندوز فرستاد.
    مثلا برنامه های remote چطور اطلاعات مربوط به موس رایانه ی از راه دور رو به عنوان اطلاعات موس رایانه جایگزین می کند.
    در واقع میشه این طور گفت که می خواهم یک اربر مجازی داشته باشم و از طرف کاربر واقعی ورودی ارسال کنه.

    ممنون
    میشه یه کم بیشتر توضیح بدین؟

  3. #3
    مثالا فرض کنید می خواهم برنامه ی notepad رو باز کنم و توش بنویسم.یعنی برنامه اطلاعات رو برای ویندوز بفرسته و وانمود کنه این اطلاعات از کیبورد آمده.همین طور برای موس.
    مثلا وقتی کاربر با رایانه کار نمی کنه موس رو برنامه ی من حرکت بده و کرسر روی صفحه جابه جا شه.
    مثلا این برنامه رو ببینید:
    http://www.dimsoft.com/programs/Auto...se/Updates.htm

  4. #4
    خیلی ممنون
    راه حل استفاده از تابع SendInput است.
    این تابع از طرف موس ، کیبورد و سایر سخت افزارها به ویندوز اطلاعاتی رو که می خواهید می فرسته

  5. #5
    کاربر دائمی آواتار ali_mohamadi8928
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    161
    دوست عزیز میشه یکم بیشتر راجع به این تابع توضیح بدی و یک مثال در موردش بزنی ...

    خیلی ممنون میشم ...

  6. #6
    وقتی کاربر موس را حرکت می ده یا دکمه های سمت چپ یا راست رو فشار می ده و یا یک دکمه از کیبورد رو فشار می دهد یک این عمل باعث واکنش ویندوز می شود. مثلا رویداد کلیک اتفاق می افتد و یا اکر focus روی یک textbox باشد فشردن دکمه های کیبورد باعث ورود داده ها در آن می شود.
    حالا این تابع بدون اینکه کاربر واقعا کاری رو انجام داده باشه ین پیغام ها رو به ویندوز می ده.

    این یک مثال . عددهای x , Y رو عوض کن مثلا بزار 100 و 100
    این مثال ابتدا موس رو انتقال میده و سپس عمل کلیک رو انجام می ده:


    #pragma once
    #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
    #define _WIN32_WINNT 0x0500 // so the code would compile
    #include <windows.h>


    int WinMain(HINSTANCE hIns, HINSTANCE hPrevIns,LPSTR lpCmdLine, int nShowCmd)
    {
    long x=500,y=61000;

    INPUT *buffer = new INPUT[3]; //allocate a buffer
    buffer->type = INPUT_MOUSE;
    buffer->mi.dx = x;
    buffer->mi.dy = y;
    buffer->mi.mouseData = 0;
    buffer->mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE);
    buffer->mi.time = 0;
    buffer->mi.dwExtraInfo = 0;

    (buffer+1)->type = INPUT_MOUSE;
    (buffer+1)->mi.dx = x;
    (buffer+1)->mi.dy = y;
    (buffer+1)->mi.mouseData = 0;
    (buffer+1)->mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
    (buffer+1)->mi.time = 0;
    (buffer+1)->mi.dwExtraInfo = 0;

    (buffer+2)->type = INPUT_MOUSE;
    (buffer+2)->mi.dx = x;
    (buffer+2)->mi.dy = y;
    (buffer+2)->mi.mouseData = 0;
    (buffer+2)->mi.dwFlags = MOUSEEVENTF_LEFTUP;
    (buffer+2)->mi.time = 0;
    (buffer+2)->mi.dwExtraInfo = 0;


    SendInput(3,buffer,sizeof(INPUT));
    delete (buffer); //clean up our messes.
    return 0;
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •