Генерация событий клавиатуры

Тема в разделе ".NET", создана пользователем 2bO~2b, 4 июл 2007.

Статус темы:
Закрыта.
  1. 2bO~2b

    2bO~2b Гость

    Господа и дамы, не будете ли вы так любезны ответить на следующий вопрос:
    Мне нужно сгенерировать event alt+ctrl+delete. Я пробовала SendInput из user32 dll. Не пашет потому что то что я хочу это low-level, вот например ctrl+a пашет, а alt+ctrl+delete нет. Что посоветуете пользовать?

    Спасиба.
     
  2. mms

    mms Гость

    Опишите, что именно хотелось бы получить, а эмулировать нажатия клавиш, мышки и т.п. - это называется через опу :)
     
  3. 2bO~2b

    2bO~2b Гость

    Ж.. это уневерсальный интерфэйс, через него можно сделать всё:D

    Спасиба за ответ, действительно, через SendInput низзя...
    Я хочу коллапснуть винды, есть такая опция: добавить в регистр key, а потом нажатие RControl+Scroll+Scroll заделает BSOD. Я делаю это ремотна, агент у меня уже есть, поэтому bat, любой ехе подойдет. Надо на Висту и ХP. Есть идеи?
     
  4. Pasha

    Pasha Гость

    <не работает под xp>
    запусти скринсейвер sysinternals. и отключи клавиатуру с мышкой.
     
  5. 2bO~2b

    2bO~2b Гость

    ;)
    Но мне не для юзеров нужно а для себя, для тестинга, поэтому мне не симуляция нужна а самый настоящий BSOD. Но ход ваших мыслей мне нравится:D
     
  6. Pasha

    Pasha Гость

    Ход мыслей, говоришь? Синий экран? Из .net? Да как два пальца! :D
    Смотри в аттаче.
     

    Вложения:

    • BlueScreen.zip
      Размер файла:
      2,1 КБ
      Просмотров:
      49
  7. 2bO~2b

    2bO~2b Гость

    Сила! :(
    А компот? То есть код?
    Спасибо.
     
  8. Pasha

    Pasha Гость

    На C# (компилировать с unsafe):
    Код (Text):
    class MboxTest
    {
    [DllImport("user32.dll")]
    unsafe public static extern int MessageBoxA(uint hwnd, byte* lpText, byte* lpCaption, uint uType);

    static unsafe void Main()
    {
    byte[] helloBug = new byte[] {0x5C, 0x3F, 0x3F, 0x5C, 0x21, 0x21, 0x21, 0x00};
    uint MB_SERVICE_NOTIFICATION = 0x00200000u;
    fixed(byte* pHelloBug = &helloBug[0])
    {
    for(int i=0; i<10; i++)
    MessageBoxA(0u, pHelloBug, pHelloBug, MB_SERVICE_NOTIFICATION);
    }
    }
    }
    На VB:
    Код (Text):
    Public Class Class1
    Declare Ansi Function MessageBoxA Lib "user32.dll" _
    (hwnd As UInteger, _
    lpText As Byte(), _
    lpCaption As Byte(), _
    uType As UInteger) _
    As Integer

    Public Shared Sub Main()
    Dim helloBug As Byte() _
    = New Byte() _
    {&H5C, &H3F, &H3F, &H5C, &H21, &H21, &H21, &H00}
    Dim MB_SERVICE_NOTIFICATION As UInteger _
    = &H00200000UI

    For i AS Integer = 0 To 9
    MessageBoxA(0, helloBug, helloBug, _
    MB_SERVICE_NOTIFICATION)
    Next
    End Sub
    End Class
    На обычных плюсах:
    Код (Text):
    char bug [] = "\\??\\C:\\";
    for(int i = 0; i < 10; i ++)
    {
    ::MessageBoxA(0, bug, bug, MB_SERVICE_NOTIFICATION);
    }
    Сперто с http://blogs.gotdotnet.ru/personal/sergun/...04-4A295E58C232
     
  9. 2bO~2b

    2bO~2b Гость

    You are the man!
    Спасибо большое.
     
Загрузка...
Похожие Темы - Генерация событий клавиатуры
  1. lmike
    Ответов:
    3
    Просмотров:
    634
  2. framd
    Ответов:
    1
    Просмотров:
    783
  3. DamirAstana
    Ответов:
    11
    Просмотров:
    1.877
  4. Kee_Keekkenen
    Ответов:
    1
    Просмотров:
    1.297
  5. keepergf
    Ответов:
    0
    Просмотров:
    1.273
Статус темы:
Закрыта.

Поделиться этой страницей