Вызов встроенных системных диалогов

Тема в разделе "WASM.WIN32", создана пользователем Jupiter, 26 мар 2005.

  1. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Каким образом можно из проги вызвать диалог "Выполнить", он же "Run" (Win+R)?



    есть множество других диалогов, котрые можно вызвать, но вот как вызвать именно "Run" не знаю ;(



    смотрел:

    http://www.dx21.com/scripting/rundll32/REFGUIDE.ASP?P=A



    rundll32 shell32,ShellAboutA

    RunDLL32.EXE shell32.dll,Control_RunDLL sysdm.cpl

    RunDLL32.EXE user32.dll,LockWorkStation

    уес
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    О том, как вызывать недокументированные функции shell32, можно почитать здесь.
     
  3. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Quantum

    спасибо

    но о том, как же вызывать именно Run (хоть по ординалу, хоть как) в том посте нет

    в итоге нашёл, что у функции вызова Run одинал 61

    параметры, видимо:

    hWnd, hIcon, sDir, szTitle, szPrompt, uFlags



    чтобы вызвать стандартный Run:



    .386

    .model flat, stdcall

    option casemap :none



    include kernel32.inc

    includelib kernel32.lib



    Run_NoBrowse = 1

    Run_NoDefault = 2

    Run_CalcDir = 4

    Run_NoLable = 8



    .const

    szShell32Dll db 'shell32.dll', 0

    Run_Flags equ 0 ;Run_CalcDir or Run_NoDefault



    .code

    even

    _start:

    push offset szShell32Dll

    call LoadLibraryA

    test eax,eax

    jz short @@2



    push eax



    push 61

    push eax

    call GetProcAddress

    test eax,eax

    jz short @@1



    push Run_Flags ; Flags

    push 0 ; Prompt

    push 0 ; Title

    push 0 ; Dir

    push 0 ; Icon

    push 0 ; hWnd

    call eax

    @@1:

    call FreeLibrary

    @@2:

    push 0

    call ExitProcess



    end _start









    [​IMG] _824287585__WRun_2005_03_26.rar
     
  4. svl

    svl New Member

    Публикаций:
    0
    Регистрация:
    23 фев 2005
    Сообщения:
    46
    Адрес:
    Ukraine
    Скажите пожалуйста, а где можно про ординалы почитать ?
     
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    AFAIK - это легко сделать с помощью COM. Объект Shell, метод FileRun(). В SDK этот объект хорошо описан.
     
  6. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
  7. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Ещё один топ нашёл.



    svl

    Т.е. какие ординалы каким функциям соответствуют? В гугле можно поискать или самому в lib/pdp заглянуть. Но не надо забывать, что ординал у одной функции от версии к версии может измениться...