Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Visual Basic: новости сайтов, советы, примеры кодов. Выпуск 266.


Информационный Канал Subscribe.Ru

Visual Basic: новости сайтов, советы, примеры кодов.
Выпуск 266.


VBNet VBMania
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
  • Хрестоматия VB
  • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

       Новый выпуск...
    Читайте!


    Содержание выпуска




    Новости сайта VBNet

    Дата: 19.05.2004 18:01 | Раздел: Примеры кода | Автор: Александр Новиков

    Shifr_ext - Модифицированная версия шифровальщика Егора Суворова.

    Дата: 19.05.2004 16:50 | Раздел: Примеры кода | Автор: Егор Суворов

    USD And Euro Course - Программа сообщяет вам текущий курс доллара и евро. Узнает их через Интернет.

    Дата: 19.05.2004 10:33 | Раздел: Примеры кода | Автор: Philip Polkovnikov

    Gradients - Любопытный метод рисования астроидовидных градиент а-ля вёрд.

    Дата: 18.05.2004 15:48 | Раздел: Примеры кода | Автор: Дорохов Кирилл

    Tornado 1.0 - Универсальный расшифровщик текстов, который расшифровывает их методом подбора комбинаций (Brute-Force). Все, что вам нужно - это знать любое слово, которое точно присутствует в оригинальном виде текста. Знает много алгоритмов.

    Дата: 14.05.2004 16:16 | Раздел: Примеры кода | Автор: Максим

    ISerializable - Управление сериализацией класса с помощью реализации интерфейса ISerializable

    Дата: 14.05.2004 13:30 | Раздел: Примеры кода | Автор: sne

    HotKeys - Горячие клавиши.

    Дата: 14.05.2004 13:29 | Раздел: Примеры кода | Автор: sne

    WindReceiver - Набор функций для работы через RASAPI.

    Дата: 14.05.2004 13:26 | Раздел: Примеры кода | Автор: Kooper

    Реестр - Запись\Чтение из реестра

    Дата: 14.05.2004 13:24 | Раздел: Примеры кода | Автор: Elshan Abdullayev

    KeyLogger - Клавиатурный шпион

    Дата: 14.05.2004 13:19 | Раздел: Примеры кода | Автор: Егор Суворов

    Encipher-Decipher Text - Небольшой шифровальщик текстов. Минус - увеличивает размер текста примерно в 4 раза. Плюс - очень трудно взломать.

    Дата: 14.05.2004 13:19 | Раздел: Примеры кода | Автор: Millenium

    Определение Версии и пр. данных ОС Windows - Очень наглядный пример (был создан по просбе одного друга) для определения критических данных ОС. Определяеются следующие: Имя (От 95-ого до ХР) Версия (Минорная.Мажорна) Релиз (Впуск или т.н. Build) Пакет обновления (Версия и имя последнего установенного Servis Pack) И пр. данне.

    Дата: 14.05.2004 13:17 | Раздел: Примеры кода | Автор: Савинкин Сергей

    Вращение растровых изображений - Демонстрация возможностей GrafRR2.2.dll, написанной на MS VB.6. Скорость вращения изображения выше, чем у других подобных программ виденных мной, но это не предел ! Данная программа имеет и практическое применение.

    Дата: 14.05.2004 13:15 | Раздел: Примеры кода | Автор: Савчук Виталий

    Assembler Compilatior - Пример компилирует Ассемблерный код.

    Дата: 14.05.2004 13:09 | Раздел: Примеры кода | Автор: Morpheus

    Расписание уроков - Эта программа создана для того, чтобы вы могли легко узнать когда начнется или кончится какой-либо урок. Имеет несколко настроек. А в смысле кода - неплохие математические функции и перевод минут\секунд в формат чч:мм

    Дата: 14.05.2004 12:21 | Раздел: Примеры кода | Автор: Максим

    Ser - пример XML-сериализации... Также показано использование атрибутов, управляющих XML-сериализацией.

    Дата: 14.05.2004 11:54 | Раздел: Примеры кода | Автор: Алексей Юмашин

    MyOpenFile - Модифицированный диалог открытия файла. Добавлены следующие новшества: - изменение размера диалога (свойства RatioX и RatioY), - центрирование диалога на экране (свойство CenterOnScreen), - "вписывание" диалога точно в размер экрана за вычетом размера панели задач (свойство FitScreen), - возможность переключения состояния диалога при помощи checkbox'а - между стандартным размером и и размером "во весь экран"; при этом выбранное состояние запоминается в ini-файле, - просмотр выбранного в диалоге файла в специальной области (в элементе RichEdit), - сопоставление графическим файлам "комментариев", которые могут быть созданы/изменены прямо из самого диалога (удобно для ведения простейшего "альбома" или некоей "базы рисунков"), - реакция диалога на изменение выбора в ComboBoxEx32 - комбобоксе, содержащем MRU-список файлов; теперь это изменение синхронизируется с остальными окнами диалога, - добавление "своей" кнопки в панель "Places Bar", для быстрого доступа к определённой папке, - добавление кнопки "Сжать методом ZIP" в горизонтальный тулбар; можно назначить ей, конечно, и любую другую функцию

    Дата: 13.05.2004 10:48 | Раздел: Статьи по VB | Автор: Захаров Андрей

    XML Query архитектура - XQuery – это мощный и удобный язык, предназначенный для обработки XML. Под XML понимаются не только файлы в XML-формате, но и другие данные, похожие на XML, включая базы данных, структура которых представляет собой вложенные, поименованные деревья с атрибутами.



    Последние 20 тем форума на VBNet.Ru:

    11:27 / 20 май.  Новости сайта 2 | Хитов: 1 |  Ответов: 0
    11:27 / 20 май.  "Компиляция на лету" - как отменить | Хитов: 1 |  Ответов: 0
    08:45 / 20 май.  Распалажение формы на десктопе | Хитов: 16 |  Ответов: 2
    07:02 / 20 май.  Хост с поддержкой email | Хитов: 6 |  Ответов: 0
    06:16 / 20 май.  нужен ftp c докачкой | Хитов: 6 |  Ответов: 0
    23:40 / 19 май.  Shortcut запускает Setup вместо приложения | Хитов: 4 |  Ответов: 0
    23:13 / 19 май.  Кто знает как изменить частоту обновления экрана? | Хитов: 7 |  Ответов: 0
    23:03 / 19 май.  Парсинг HTML-страницы? | Хитов: 6 |  Ответов: 0
    19:38 / 19 май.  Сеть | Хитов: 31 |  Ответов: 3
    19:33 / 19 май.  3D | Хитов: 9 |  Ответов: 0
    19:28 / 19 май.  Помогите с Word | Хитов: 1 |  Ответов: 0
    19:22 / 19 май.  Пожалуйста, помогите написать программу. Очнь с... | Хитов: 31 |  Ответов: 1
    19:11 / 19 май.  Помогите с Word | Хитов: 5 |  Ответов: 0
    19:04 / 19 май.  Новое сообщение без темы | Хитов: 1 |  Ответов: 0
    19:04 / 19 май.  Новое сообщение без темы | Хитов: 1 |  Ответов: 0
    16:26 / 19 май.  Помогите с макросом для Exel... | Хитов: 7 |  Ответов: 1
    15:19 / 19 май.  А шо за "хитов"? | Хитов: 19 |  Ответов: 2
    15:06 / 19 май.  Анимационный курсор | Хитов: 47 |  Ответов: 5
    14:46 / 19 май.  Макросы в Access, уровень безопасности | Хитов: 10 |  Ответов: 0
    14:26 / 19 май.  VBA и SQL | Хитов: 8 |  Ответов: 0


    Последние поступления в Библиотеку кодов:



    наверх


    Новости сайта MSDN



    наверх


    Новости сайта GotdotNet



    Новые статьи:



    наверх


    Новости сайта dotSite

    Новые статьи:



    Новые примеры:



    наверх


    Один момент из жизни форума: Обои рабочего стола - расположение

    Адерес темы: http://vbnet.ru/forum/show.asp?id=43196

    Вопрос:
    Автор вопроса: LamerOnLine

       Знаю, как положить bmp на рабочий стол. А вот как задать метод расположения - по центру, растянуть, замостить?


    Ответы:

    Автор: Unguided
       Проверил на WinXP sp1.

    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Const SPI_SETDESKWALLPAPER = 20
    Const SPIF_UPDATEINIFILE = &H1
    Const REG_SZ = 1 ' Unicode nul terminated string
    Const HKEY_CURRENT_USER = &H80000001
    Function SetStyle(St As Long)
    Dim Ret As Long
    Dim Tile As String, Style As String
    Select Case St
    Case 0
    Tile = "0"
    style="0"
    Case 1
    Tile = "1"
    style="0"
    Case 2
    Tile = "0"
    style="2"
    Case Else
    End Select
    RegOpenKey HKEY_CURRENT_USER, "Control Panel\Desktop", Ret
    RegSetValueEx Ret, "TileWallpaper", 0, REG_SZ, ByVal Tile, Len(Tile)
    RegSetValueEx Ret, "WallpaperStyle", 0, REG_SZ, ByVal Style, Len(Style)
    RegCloseKey Ret
    End Function
    Private Sub Form_Click()
    '0 - По центру
    '1 - Замостить
    '2 - Растянуть

    SetStyle (0)
    Sleep (500&)
    SystemParametersInfo SPI_SETDESKWALLPAPER, ByVal 0&, ByVal "C:\1.bmp", True
    End Sub



    наверх


    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:

    Вопросы:


    Автор вопроса: Andrey

    Ответ ожидается по этому адресу

       Подскажите функцию, обратную Hex().


    Автор вопроса: Учебный центр

    Ответ ожидается по этому адресу

       Как считывать данные из ячеек Excel?


    Автор вопроса: lux@kogalym.ru

    Ответ ожидается по этому адресу

       У кого есть пример работы с Winsock, мне нужно открыть порт, набрать ттелефонный номер и передать файл на другой комп.


    Автор вопроса: YoD

    Ответ ожидается по этому адресу

       Если у меня есть элемент упраления с именем ds, как мне в процессе выполнения программы (на VB .NET) сделать ещё таких 50, и чтобы их события тоже можно было обрабатывать?


    Автор вопроса: kolorit

    Ответ ожидается по этому адресу

       Как выдать список таблиц имеющихся в БД Access в ListBox? И подключать их через нее? Если можно, то пришлите пожалуйста код программы, или укажите где это можно найти.


    Автор вопроса: Pavel Grigoriev

    Ответ ожидается по этому адресу

       Как отслеживать запуск приложению в vb6, и проверять состояние окон, свернуто или нет?


    Автор вопроса: Pavel Grigoriev

    Ответ ожидается по этому адресу

       Как послать команду приложению, чтоб например свернуть?


    Автор вопроса: Учебный центр

    Ответ ожидается по этому адресу

       Как считать данные из Excel файла ( не открывая его )?


    Автор вопроса: zek

    Ответ ожидается по этому адресу

       Почему при выяове обычного диологового окна (MsgBox) таймер выключаеться, а когда закрываешь MsgBox, он снова включаеться, как от этого избавиться?




    Ответы:


    Вопрос:

       Подскажите, как написать контрол таймера для VBA.

    Ответ:

    Автор ответа: Markelov Eduard

    Вот кстати правильно сказано автором конфы: "Читайте MSDN, господа!" Если бы вы следовали этому простому совету, то не задавали бы таких вопросов.
    Ну а если серьёзно, то можно использовать API:

    UINT_PTR SetTimer(HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc);
    VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime );

    В переводе на VB это выгледит так:

    public declare function SetTimer lib "user32" (hWnd as long, nIDEvent as integer, uElapse as integer, lpTimerFunc as long) as integer

    public sub TimerProc(hWnd as long, uMsg as integer, idEvent as integer, dwTime as long)
    end sub

    В качестве 4-го параметра SetTimer по идее нужно передать:

    AddressOf TimerProc

    Честно говоря сам не пробовал, но по идее должно получиться. Проще конечно вытащить из VB этот контрол.


    Вопрос:

       Как(ой)ие *.ocx нужны чтобы звонить на другой модем через телефонную линию?

    Ответ:

    Автор ответа: Markelov Eduard

    А в VB6 этот контрол уже есть. Microsoft Comm Controll называется.


    Вопрос:

       Я создал вяломщик ZIP паролей, принцип его действия таков:
    ВБ открывает через командную строку файл (создаю *.bat и запускаю через shell(c:\*.bat))
    Затем программа передает фокус приложению (командой AppActivate) и пускает горячие клавиши разархивации.
    После идет примерно следующее:

    for i=1 to 100
    select case i
    case 1: b="a"
    case 2: b="b"
    ...
    case 100 b="Я"
          for i1=1 to 100
            select case i1
            case 1: c="a"
            case 2: c="b"
            ...
            case 100 b="Я"
                 for i2=1 to 100
                     ...
                    for i3=1 to 100
                      ...
                     Отправка a & b & c & ... & t
    next i25
    next i24
    ...
    next i1
    next i

    Так вот:
    а) как можно открывать файлы (кроме *.txt *.exe и *.bat), не используя командной строки?
    б) как можно, не открывая ZIP - файл, перебирать пароли?
    в) программа AZRP (тоже ломает пароли) взламывает пароль ия 5 символов за 2 мин., моя за 5-6 и более...
    г) вставляя kol=kol+1: Label= "Проверено паролей: " & kol сам label становится пустым, т.е цикл его постоянно обновляет и он не успевает отображать, так как сделать прерывание, чтобы label не пустовал?

    Ответ:

    Автор ответа: C...R...a...S...H

    г) В цикле поставь условие

    if i mod 2 =0 then
    Label= "Проверено паролей: " & kol 'Лучше сделай 1 label с текстом, а другой с кол-вом, будет быстрее работать
    end if

    б) скачай контрол для работы с zipом

    в) Производительность в VB по сравнению с C++ оставляет желать лучшего, попробуй другой алгоритм перебора:

    dim Словарь() as variant 'Этот тип поддерживает функцию Array
    Словарь()=array(А,а,Б,б,в,В....,"")
    for i=0 to ubound(Словарь)
         for i2=0 to ubound(Словарь)
               for i3=0 to ubound(Словарь)

                     отправка Словарь(i),Словарь(i2).....


    Вопрос:

       Как сделать форму полупрозрачной или прозрачной?

    Ответ:

    Автор ответа: Solomentsev Alexey

    Public Const LWA_COLORKEY = &H1
    Public Const LWA_ALPHA = &H3
    Public Const GWL_EXstyle="(-20)"
    Public Const WS_EX_LAYERED = &H80000
      
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
      
      
    'hWnd - манипулятор окна, Layered - степень прозрачности от 0 до 255
    Public Function SetTransparent(hwnd As Long, Layered As Byte) As Boolean
         On Error GoTo 1
         Dim ret As Long
        'Определяем стиль нужного окна
         ret = GetWindowLong(hwnd, GWL_EXSTYLE)
         'Задаём стиль окна как заслоённый
         ret = ret Or WS_EX_LAYERED
        SetWindowLong hwnd, GWL_EXSTYLE, ret
         'Задём степень прозрачности окна
         SetLayeredWindowAttributes hwnd, 1, Layered, LWA_ALPHA
         SetTransparent = True
    1 Exit Function
    End Function



    Ответ:

    Автор ответа: Markelov Eduard

    Опять процетирую автора конфы: "Читайте MSDN, господа!"
    Вот вырезка из вышеупамянутого чтива.
    Но учти, что SetLayeredWindowAttributes присутствует в виндах начиная с w2k.

    'Create a new Standard EXE project in Visual Basic. Form1 is created by default.
    'Add the following code to the General Declarations section of Form1:
    Private Declare Function GetWindowLong Lib "user32" Alias _
       "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias _
       "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
       ByVal dwNewLong As Long) As Long
    Private Declare Function SetLayeredWindowAttributes Lib "user32" _
       (ByVal hwnd As Long, ByVal crey As Byte, ByVal bAlpha As Byte, _
       ByVal dwFlags As Long) As Long

    Private Const GWL_EXstyle="(-20)"
    Private Const WS_EX_LAYERED = &H80000
    Private Const WS_EX_TRANSPARENT = &H20&
    Private Const LWA_ALPHA = &H2&

    Option Explicit

    Private Sub Form_Load()
         Dim lOldStyle As Long
         Dim bTrans As Byte ' The level of transparency (0 - 255)

         bTrans = 128
         lOldstyle="GetWindowLong(Me.hWnd," GWL_EXSTYLE)
         SetWindowLong Me.hWnd, GWL_EXSTYLE, lOldStyle Or WS_EX_LAYERED
         SetLayeredWindowAttributes Me.hWnd, 0, bTrans, LWA_ALPHA
    End Sub
                                             
    'Run the example program by pressing the F5 key.
    'The form should look like a normal Visual Basic window.
    'However, windows that are lower in the Z order should be partially visible through the window.
    'It is also possible to make mouse events go through to the lower windows by changing the preceding code line
    SetWindowLong Me.hwnd, GWL_EXSTYLE, lOldStyle Or WS_EX_LAYERED
    'to:
    SetWindowLong Me.hwnd, GWL_EXSTYLE, lOldStyle Or WS_EX_LAYERED Or WS_EX_TRANSPARENT



    Ответ:

    Автор ответа: Роман

    'На форму положить два picture box'а
    'оба должны содержать картинку
    Const AC_SRC_OVER = &H00
    Private Type BLENDFUNCTION
       BlendOp As Byte
       BlendFlags As Byte
       SourceConstantAlpha As Byte
       AlphaFormat As Byte
    End Type
    Private Declare Function AlphaBlend Lib "msimg32.dll" (ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal BLENDFUNCT As Long) As Long
    Private Declare Sub RtlMoveMemory Lib "kernel32.dll" (Destination As Any, Source As Any, ByVal Length As Long)
    Private Sub Form_Load()
         'KPD-Team 2000
         'URL: http://www.allapi.net/
         'E-Mail: KPDTeam@Allapi.net
         Dim BF As BLENDFUNCTION, lBF As Long
         'Set the graphics mode to persistent
         Picture1.AutoRedraw = True
         Picture2.AutoRedraw = True
         'API uses pixels
         Picture1.ScaleMode = vbPixels
         Picture2.ScaleMode = vbPixels
         'set the parameters
         With BF
             .BlendOp = AC_SRC_OVER
             .BlendFlags = 0
             .SourceConstantAlpha = 128
             .AlphaFormat = 0
         End With
         'copy the BLENDFUNCTION-structure to a Long
         RtlMoveMemory lBF, BF, 4
         'AlphaBlend the picture from Picture1 over the picture of Picture2
         AlphaBlend Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, lBF
    End Sub


    Вопрос:

       Как сделать так, чтобы множество image загружалось по очереди (типа как дом строить из кирпичиков), желательно без использования таймера? Хотя можно и с ним.

    Ответ:

    Автор ответа: C...R...a...S...H

    Private Sub Timer1_Timer()
    Static i As Integer
    If i = Image1.UBound + 1 Then Timer1.Enabled = False: Exit Sub
         Image1(i).Picture = LoadPicture("c:\1.jpg")
         DoEvents
    i = i + 1
    End Sub


    Вопрос:

       Нужно делать WAP-браузер, но никак не могу понять формат WAP-графики. КТо может помочь?

    Ответ:

    Автор ответа: C...R...a...S...H

    Если мне не изменяет память (я надеюсь), то Wap графика представляет собой jpg, gif, или если на то пошло то png. Если с первыми двумя ВБ сам умеет работать, то для работы с третьим придется брать контрол, или писать алгоритм загрузки самому.


    Вопрос:

       А как вывести сумму прописью?

    Ответ:

    Автор ответа: Кулаков Алексей

    Очень просто. Достаточно в любом поисковике (Ramler, Yandex) задать "сумма прописью" и получите столько алгоритмов...

    Комментарий редактора: а лучше на vbnet.ru/subscribe почитать предыдущие выпуски рассылки, этот вопрос поднимался очень много раз :)


    Вопрос:

       Как при написании своего ActiveX сделать у него свойство (Custom), т.е. чтобы при нажатии на кнопочку "..." вылазила какая-нибудь форма.
    Для примера: У PictureBoxa есть свойство Picture при нажатии на него вылазит стандартное окно открытия файла, а мне нужно чтобы вместо него вылазила например form1. Короче, пишу контрол меню. Рассмотрю любые варианты.

    Ответ:

    Автор ответа: Юмагулов Азат

    В Add In есть такая вешь, что-то типа Property Page Wizard. Юзай ее.


    Вопрос:

       Подскажите, как из программы выключить комп.
      
    Вариант:
      
    Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _
    ByVal dwReserved As Long) As Long
      
    retval = ExitWindowsEx(1, 0&)
      
      
    Не проходит в ХР!

    Ответ:

    Автор ответа: Сергей Колосов

    Для VB.Net
      
    mdlShutdown.vb :
      
    Module
    mdlShutdown
    Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    Public Const EWX_LOGOFF = 0
    Public Const EWX_SHUTDOWN = 1
    Public Const EWX_REBOOT = 2
    Public Const EWX_FORCE = 4
    End
    Module
    frmMain.vb:
    Public
    Class frmMain
    Inherits System.Windows.Forms.Form
    Dim s As Long
    .........................
    Private Sub btnlogout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnlogout.Click
    s = ExitWindowsEx(EWX_LOGOFF, 0&) 'выход из системы
    End Sub
    Private Sub btnRestart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRestart.Click
    s = ExitWindowsEx(EWX_REBOOT, 0&) 'перезагрузка
    End Sub
    Private Sub btnShutDown_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShutDown.Click
    s = ExitWindowsEx(EWX_SHUTDOWN, 0&) 'выключение
    End Sub



    Ответ:

    Автор ответа: Белашин М.В.

    Разместите в модуле:

        Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _
        ByVal dwReserved As Long) As Long

        Public Const EWX_LOGOFF = 0
        Public Const EWX_SHUTDOWN = 1
        Public Const EWX_REBOOT = 2
        Public Const EWX_FORCE = 4А это в коде:
        Dim s As Long

        'Так можно сделать Shut down
         s = ExitWindowsEx(EWX_SHUTDOWN, 0&)

        'Так можно сделать Log off
         s = ExitWindowsEx(EWX_LOGOFF, 0&)

        'А так Reboot
        s = ExitWindowsEx(EWX_REBOOT, 0&)

        У меня все работает!
        (power)



    Ответ:

    Автор ответа: Тоша

    Нужно установить привилегии программы. Читай MSDN!


    Вопрос:

       Я знаю что такой вопрос здесь уже был, но все же как изменить разрешение экрана. Допустим на 800x600.

    Ответ:

    Автор ответа: Markelov Eduard

    ' display functions, constants and types

    ' using with ChangeDisplaySettings()
    Public Const CDS_FULLSCREEN = 4
    Public Const DISP_CHANGE_SUCCESSFUL = 0

    ' using with DEVMODE
    Public Const DM_BITSPERPEL = &H40000
    Public Const DM_PELSWIDTH = &H80000
    Public Const DM_PELSHEIGHT = &H100000
    Public Const DM_DISPLAYFREQUENCY = &H400000

    Public Const CCHDEVICENAME = 32
    Public Const CCHFORMNAME = 32

    ' using with EnumDisplaySettings()
    Public Const ENUM_CURRENT_SETTINGS = -2
    Public Const ENUM_REGISTRY_SETTINGS = -3


    Public Type DEVMODE
         dmDeviceName As String * CCHDEVICENAME
         dmSpecVersion As Integer
         dmDriverVersion As Integer
         dmSize As Integer
         dmDriverExtra As Integer
         dmFields As Long
         dmOrientation As Integer
         dmPaperSize As Integer
         dmPaperLength As Integer
         dmPaperWidth As Integer
         dmScale As Integer
         dmCopies As Integer
         dmDefaultSource As Integer
         dmPrintQuality As Integer
         dmColor As Integer
         dmDuplex As Integer
         dmYResolution As Integer
         dmTTOption As Integer
         dmCollate As Integer
         dmFormName As String * CCHFORMNAME
         dmUnusedPadding As Integer
         dmBitsPerPel As Long
         dmPelsWidth As Long
         dmPelsHeight As Long
         dmDisplayFlags As Long
         dmDisplayFrequency As Long
    End Type

    ' user32.dll
    Public Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpDevName As Integer, ByVal iModeNum As Long, ByRef lpDevMode As DEVMODE) As Integer
    Public Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (ByRef lpDevMode As DEVMODE, ByVal dwFlags As Long) As Long

    ' Эта процедура заполняет ComboBox(cmbResolution) нужными мне режимами
    Private Sub FillModeList()
    Dim i As Long
    Dim mode As DEVMODE
    Dim listIndex
         i = 0
         While EnumDisplaySettings(0, i, mode)
             If (mode.dmPelsWidth >= MIN_MODE_WIDTH) And (mode.dmPelsHeight >= MIN_MODE_HEIGHT) And (mode.dmBitsPerPel >= MIN_MODE_BPP) And (mode.dmDisplayFrequency >= MIN_MODE_FREQUENCY) Then
                 cmbResolution.AddItem mode.dmPelsWidth & _
                 "x" & mode.dmPelsHeight & "x" & _
                 mode.dmBitsPerPel & "bpp - " & _
                 mode.dmDisplayFrequency & "MHz", listIndex
                 cmbResolution.ItemData(listIndex) = i
                 
                 ' set default select
                 If (mode.dmPelsWidth = DEF_MODE_WIDTH) And (mode.dmPelsHeight = DEF_MODE_HEIGHT) And (mode.dmBitsPerPel = DEF_MODE_BPP) And (mode.dmDisplayFrequency = DEF_MODE_FREQUENCY) Then
                     cmbResolution.listIndex = listIndex
                 End If
             End If
             i = i + 1
         Wend
    End Sub

    ' Восстанавливает режим
    Public Sub RestoreDefaultDisplaySettings()
    Dim mode As DEVMODE
         EnumDisplaySettings 0, ENUM_CURRENT_SETTINGS, mode
         ChangeDisplaySettings mode, 0
    End Function

    ' Изменяет режим
    Public Function InitFullScreen(mode As DEVMODE) As Boolean
         mode.dmSize = Len(mode)
         mode.dmDriverExtra = 0
         mode.dmFields = DM_BITSPERPEL Or DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_DISPLAYFREQUENCY
         If ChangeDisplaySettings(mode, CDS_FULLSCREEN) = DISP_CHANGE_SUCCESSFUL Then
             InitFullScreen = True
         End If
    End Function

    ' Ну вот дапустим у тебя на форме есть ComboBox названый как у меня
    ' cmbResolution и кнопка, по нажатию на которую меняется режим.

    Sub FormLoad()
         FillModeList
    End Sub

    Sub Button_Click()
         Dim mode As DEVMODE
         EnumDisplaySettings 0, cmbResolution.ItemData(cmbResolution.listIndex), mode
         InitFullScreen mode
    End Sub

    ' Вот и всё, удачи!



    Ответ:

    Автор ответа: Serzh

    Public Const DM_BITSPERPEL = &H40000
    Public Const DM_PELSWIDTH = &H80000
    Public Const DM_PELSHEIGHT = &H100000
    Public Const CCHDEVICENAME = 32
    Public Const CCHFORMNAME = 32
    Type DEVMODE
       dmDeviceName As String * CCHDEVICENAME
       dmSpecVersion As Integer
       dmDriverVersion As Integer
       dmSize As Integer
       dmDriverExtra As Integer
       dmFields As Long
       dmOrientation As Integer
       dmPaperSize As Integer
       dmPaperLength As Integer
       dmPaperWidth As Integer
       dmScale As Integer
       dmCopies As Integer
       dmDefaultSource As Integer
       dmPrintQuality As Integer
       dmColor As Integer
       dmDuplex As Integer
       dmYResolution As Integer
       dmTTOption As Integer
       dmCollate As Integer
       dmFormName As String * CCHFORMNAME
       dmUnusedPadding As Integer
       dmBitsPerPel As Integer
       dmPelsWidth As Long
       dmPelsHeight As Long
       dmDisplayFlags As Long
       dmDisplayFrequency As Long
    End Type

    Declare Function ChangeDisplaySettings Lib "user32.dll" Alias "ChangeDisplaySettingsA" (lpDevMode As DEVMODE, ByVal dwFalgs As Long) As Long

    Public Sub SetVideoMode(Width As Long, height As Long, Depth As Long)
       Dim dm As DEVMODE
       dm.dmPelsWidth = Width
       dm.dmPelsHeight = height
       dm.dmBitsPerPel = Depth
       dm.dmSize = Len(dm)
       dm.dmFields = DM_PELSWIDTH + DM_PELSHEIGHT + DM_BITSPERPEL
       ChangeDisplaySettings dm, 0
    End Sub


    Вопрос:

       Как через DirectDraw поменять разрешение экрана?

    Ответ:

    Автор ответа: ZZh

    Когда ты всё это дело инициализируешь, прописываешь

         Call dd.SetDisplayMode(dispX, dispY, dispColor, Monitor_fr, DDSDM_DEFAULT)
         
         Где dd - объект DirectDraw
             dispX - Разрешение по Х
             dispY - Разрешение по У
             dispColor - кол-во бит на цвет
             Monitor_fr - частота обновления монитора

        Вот и всё!




    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх


    Выпуск подготовили:

    Сурменок Павел


    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу


    В избранное