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

Программирование (VB,C#,ASP,.NET): новости, советы, примеры



Выпуск # 136


http://www.kbyte.ru/

 

Новый выпуск!

Дело было вечером, делать было нечего, и решил я выпустить рассылку с последними обновлениями сайта, строго не судите, но если есть что сказать, пишите, не молчите, буду рад ответить.

 

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

Система ЭКСПЕРТ

    Вопрос #000224: Обращение к конкретной ячейки памяти

    Вопрос #000222: Вопрос по C#

    Вопрос #000219: Новое_сообщение_без_темы

    Вопрос #000217: Поиск_на_сайте

    Вопрос #000215: Программная перезагрузка компьютера (Vb.net)

    Вопрос #000212: Отправка и получение Почты

    Вопрос #000209: Рисуем график

    Вопрос #000206: Design-time support

    Вопрос #000203: Программирование с использованием Win API (Visual Basic 6)

    Вопрос #000198: Переключение_вкладок_в_TabStrip

Последнее на форумах

    Help Please!!!!!

    Что-то давно у нас не было хумора :-)

    Описание ListView

    Вопрос по Visual Studio 6.0

    ИБП + телевизор

    Хранение изображений в базе данных MS SQL

    Копирование наиболее нового файла из списка файлов

    Реестр и win64

    Программирование с использованием Windows API

    Создание TCP - соединение на VB6

Последние статьи

    Выбор языка программирования для научных работ (2-я редакция)

    Работаем с MIME

    Visual Basic 2003/2005 .NET: Взаимодействие с Microsoft Word 2000 и выше

    Visual Basic .NET: Работа с файлами

    ASP .NET 2.0: Эталонные страницы

    Описание ошибок VB

    Горячие клавиши VB 6.0

    ASP .NET 2.0: Файл Global.asax

    Как узнать страну по IP-адресу?

    Visual Basic 6.0 - Экспорт DataReport в Microsoft Word

Интересные коды и решения

Юмор на Kbyte.Ru

 

Система ЭКСПЕРТ

 

Система «Эксперт» - уникальная система, которая поможет решить, если не все, то многие Ваши проблемы с программированием и разработкой! Если у Вас есть какой-либо вопрос по программированию или разработке, то Вы всегда можете задать его нашим Экспертам! При этом каких-либо особых действий от Вас не потребуется! Просто отправьте Ваш вопрос на адрес mailto:expert@kbyte.ru, в теме письма укажите тему вопроса, в тексте – сам вопрос, и все! Эксперты дадут Вам ответ в течение 12-24 часов, на тот адрес, с которого Вы отправите вопрос. Все проще простого! Никакой регистрации и заполнение бесконечных форм, никаких наездов, оскорблений и насмешек со стороны гуру, просто спросите и получите ответ ;-)


Вопрос #000224: Обращение к конкретной ячейки памяти

Автор вопроса: Пастарнак Виталий // 17.05.2007 / 23:04

Извините, не представился, Виталий.
Получил ваш ответ, спасибо.
Мой вопрос был не понят, мне не необходима работа с файлами.
Как я уже писал, я занимаюсь разработкой нестандартного оборудования,
поэтому по ходу работы приходиться писать программное обеспечение.
И вот в очередном проекте я изготовил устройство подключаемое на ISA слот,
при использовании Бейсика под DOS, я использовал OUT(адрес),код для записи,
а INP(адрес), для считывания данных с устройсва.

OUT (&H223), &H88
OUT (b), N 'в порт А |
OUT (b + 1), M 'в порт B |
OUT (b + 5), 15 'выбор номера канала
OUT (b + 4), 255 'старт

datl = INP(b + 4)
dath = INP(b + 5)

А вот как осуществить это на VB не знаю.
Проше говоря мне надо считывать и записывать информацию по конкретному
адресу.

Отвечает: EROS // 17.05.2007 / 23:04

Здравствуйте, Пастарнак Виталий!
Если я верно понимаю Ваш вопрос, то вас интересует работа с LPT-портом
из VB6. Для этого существуют несколько библиотек, а именно: vbio32.dll, inpout32.dll, dlportio.dll и т.д.)
Сразу оговорюсь, что первые две не будет работать в NT-системах, а
только ДО Windows Me.. Начиная с Windows 2000 лучше использовать
dlportio.dll. Скачать можно тут: http://sano2000.narod.ru/LPT.html

Декларации Win32 API
Для inpout32.dll
0002:
0003:
Private Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)


Для dlportio.dll
0002:
0003:
0004:
0006:
0007:
0008:
0010:
0011:
0012:
0014:
0015:
0016:
Public Declare Function DlPortReadPortUchar Lib "dlportio.dll" (ByVal Port As Long) As Byte
Public Declare Function DlPortReadPortUshort Lib "dlportio.dll" (ByVal Port As Long) As Integer
Public Declare Function DlPortReadPortUlong Lib "dlportio.dll" (ByVal Port As Long) As Long
Public Declare Sub DlPortReadPortBufferUchar Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortReadPortBufferUshort Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortReadPortBufferUlong Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortWritePortUchar Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Byte)
Public Declare Sub DlPortWritePortUshort Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Integer)
Public Declare Sub DlPortWritePortUlong Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Long)
Public Declare Sub DlPortWritePortBufferUchar Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortWritePortBufferUshort Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortWritePortBufferUlong Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)


Параллельный порт для связи с принтером (или другим устройством) имеет базовый адрес &H378 (LPT1), &H278 (LPT2), &H3BC (LPT3).
Адресное пространство порта LPT1 занимает диапазон &H378-&H37F

Для сравнения:
если под DOS вы писали: OUT &H378, 69
то теперь надо писать: DlPortWritePortUchar &H378, 69 (при условии что
Вы будете использовать dlportio.dll)

Ну а дальше по аналогии разберетесь, удачи!

--
С уважением,
EROS

 

Вопрос #000222: Вопрос по C#

Автор вопроса: Александр Ястребов // 17.05.2007 / 12:27

Здравствуйте уважаемые эксперты.

Хочу написать программку на c#. Которая через определенный интервал
времени перезапускает определенную службу Windows 2000 Server. Как мне
программно обратиться к определенной службе и как ее перезапустить? Как
сделать, чтобы программка висела в трее?.

Спасибо.

Отвечает: Алексей Немиро // 17.05.2007 / 12:27

Здравствуйте,

http://www.codeproject.com/dotnet/simplewindowsservice.asp

--
С наилучшими пожеланиями,
Немиро Алексей

Отвечает: EROS // 17.05.2007 / 20:47

Здравствуйте, Александр Ястребов!.

0002:
0003:
0004:
0005:
0006:
0007:
0008:
0009:
0010:
0012:
0013:
0014:
0015:
0016:
0017:
0018:
0019:
0020:
0021:
0022:
0023:
0024:
0025:
0027:
0028:
0029:
0030:
0031:
0032:
0033:
0034:
0036:
0037:
0038:
0039:
0040:
0042:
0043:
0044:
0045:
0046:
0048:
0050:
0051:
0052:
0053:
0055:
0056:
0057:
0058:
0059:
0061:
0062:
0063:
0064:
0065:
0066:
0068:
0069:
0070:
0071:
0072:
0074:
0075:
0076:
0077:
0078:
0079:
0080:
0081:
0082:
0084:
0085:
0086:
0087:
0088:
0089:
0090:
0091:
0092:
0093:
0094:
0095:
0096:
0097:
0098:
0099:
0100:
0101:
0102:
0103:
0104:
0105:
0106:
0108:
0109:
0110:
0111:
0112:
0113:
0115:
0116:
0117:
0118:
0119:
0120:
0121:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.ServiceProcess;
namespace Service
{
    /// <summary>
    /// VS 2005 (C#)
    /// Restart service example
    /// - Add References System.ServiceProcess.dll
    ///
    /// EROS, mailto:eros@fromru.com
    /// </summary>
    /// <remarks>kbyte.ru/expert</remarks>
    public partial class Form1 : Form
    {
        Timer _timer = new Timer();
        NotifyIcon _notify = new NotifyIcon();
        public Form1()
        {
            InitializeComponent();
          
            // set propertis
            this.ShowInTaskbar = false;
            this.WindowState = FormWindowState.Minimized;
            this.Text = "KBYTE.RU - Restart service example";
            // add event handlers
            this.FormClosing += new FormClosingEventHandler(this.Form1_FormClosing);
            _notify.MouseClick += new MouseEventHandler(_notify_MouseClick);
            _notify.BalloonTipClicked += new EventHandler(_notify_BalloonTipClicked);
            _timer.Tick += new EventHandler(_timer_Tick);
            // set notify icon
            _notify.Icon = this.Icon;
            _notify.BalloonTipIcon = ToolTipIcon.Info;
            _notify.BalloonTipTitle = "KBYTE.RU";
            _notify.Visible = true;
            showOperationResult("Example was started \r\nTime interval - 30 seconds");
            // set timer
            _timer.Interval = 30000; //set interval - 30 sec
            _timer.Start();
        }
        private void _notify_BalloonTipClicked(object sender, EventArgs e)
        {
            // open default browser
            Process.Start("http://kbyte.ru/Forum/Default.aspx?forum=0");
        }
        private void _notify_MouseClick(object sender, MouseEventArgs e)
        {
            // show form
            if (this.WindowState == FormWindowState.Minimized)
                this.WindowState = FormWindowState.Normal;
        }
        private void _timer_Tick(object sender, EventArgs e)
        {
            // get Windows Time service controller
            ServiceController _wintime = new ServiceController("Windows Time");
            TimeSpan _timeout = new TimeSpan(0, 0, 15);
            if (_wintime != null)
            {
                try
                {
                    if (_wintime.Status == ServiceControllerStatus.Running && _wintime.CanStop)
                    {
                        // restart service
                        _wintime.Stop();
                        _wintime.WaitForStatus(ServiceControllerStatus.Stopped, _timeout);
                        _wintime.Start();
                        _wintime.WaitForStatus(ServiceControllerStatus.Running, _timeout);
                        showOperationResult(_wintime.DisplayName + " service was restarted!");
                    }
                    else
                    {
                        _wintime.Start();
                        _wintime.WaitForStatus(ServiceControllerStatus.Running, _timeout);
                        showOperationResult(_wintime.DisplayName + " service was started!");
                    }
                }
                catch (Exception ex)
                {
                    showOperationResult("Error:" +  ex.Message);
                }
                finally
                {
                    // destroy controller
                    if (_wintime != null)
                        _wintime.Dispose();
                }
            }
        }
        private void showOperationResult(String message)
        {
            // set and show ballon tip text
            _notify.BalloonTipText = string.Format("[{0}] {1}", DateTime.Now.ToLongTimeString(), message);
            _notify.ShowBalloonTip(5000); // show 5 sec
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // delete notify icon
            _notify.Dispose();
        }
    }
}

--
С уважением,
EROS mailto:eros@fromru.com

 

Вопрос #000219: Новое_сообщение_без_темы

Автор вопроса: Виталий // 17.05.2007 / 07:20

Привет, помогите. Поймал головняк. При написании под DOS применял для чтения
и записиданных по определенному адресу OUT,INP , на VB6 не могу понять как
это осуществить.

Отвечает: Алексей Немиро // 17.05.2007 / 07:20

Здравствуйте,

Насколько я понял, речь идет о работе с бинарными файлами, если так,
то для чтения/записи данных используются операторы Put и Get:

Put Номер_Файла, Позиция, Данные
Get Номер_файла, Позиция, Куда_засунуть

0001:
0002:
0003:
0004:
Open Путь_к_Файлу For Binary As #1
Dim B As Byte
Get #1, 10, B 'читаем 10 байт в переменную B
Close


Вот пример записи:

0001:
0002:
0003:
0004:
0005:
0006:
0007:
0008:
0009:
0010:
0011:
Dim i As Long
'октрываем файл
Open ("C:\TestFile.dat") For Binary As #1
'записываем в файл
For i = 0 To 9
  Put #1, , 0
Next i
'получаем позицию записи в файл
Debug.Print Seek(1)
'закрываем файл
Close #1



--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000217: Поиск_на_сайте

Автор вопроса: "=?KOI8-R?Q?=E1=CC=C5=CB=D3=C1=CE=C4=D2?=" // 17.05.2007 / 07:04

Здравствуйте, уважаемые эксперты!

Вопрос простой: как организовать поиск на сайте ASP.NET?
Не могли бы вы хотя бы кратко описать принципы (идеи)
построения поисковой системы, например, вашего сайта.

С уважением, Александр

Отвечает: Алексей Немиро // 17.05.2007 / 07:04

Здравствуйте,

Поиск можно производить по базам данных сайта, найденные результаты
(главным образом идентификаторы данных в БД) запоминать и уже потом по
ним выводить пользователю. Также следует в результатах указывать имя
таблицы (или присвоить ей id), в которой были найдены данные.
Результаты можно также записывать в БД, т.е. получится, что результаты
поиска будет представлять собой ссылки на найденные данные.

Еще можно в БД в результатах записывать "куски" найденных данных, и
HTTP-ссылки на источник, этот вариант в плане производительности
должен быть лучше, но и места требует больше под БД, хотя результаты
можно периодически удалять, чтобы место не занимали.

Тут многое зависит от типа используемых баз данных и количества
данных. Если данных очень много, то в ASP .NET скрипт просто может не
успеть завершить поиск, и произойдет ошибка. В таком случае, поиск
следует производить встроенными средствами источника данных. Например в
SQL Server использовать индексацию и т.п.


--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000215: Программная перезагрузка компьютера (Vb.net)

Автор вопроса: Александр // 16.05.2007 / 01:29

Уважаемые эксперты, каким способом можно перезагрузить компьютер в VB.Net
2.0? Нашел такой:
Declare Function ExitWindowsEx Lib "user32" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Const EWX_LOGOFF = &H0& ' завершение сеанса пользователя
Public Const EWX_SHUTDOWN = &H1& ' шатдаун компьютера
Public Const EWX_REBOOT = &H2& ' перезагрузка компьютера
Public Const EWX_POWEROFF = &H8& ' выключение компьютера (ATX)
Public Const EWX_FORCE = &H4& ' флаг принудительного выполнения
операции
Public Const EWX_FORCEIFHUNG = &H10& ' флаг принудительного выполнения
при зависании
Call ExitWindowsEx(EWX_REBOOT Or EWX_FORCE, &HFFFFFFFF&)

Но он по каким-то причинам не работает... Помогите плиз!

Отвечает: EROS // 16.05.2007 / 01:29

Здравствуйте, Александр!
Ваш код предназначен для VB6 и он будет работать в Windows 9.x, а в
NT-системах, для перезагрузки компьютера необходимо получить
соответствующие привелегии для процесса. Сделать это можно следующим
образом:

Код формы:

0002:
0003:
0004:
0005:
0006:
0007:
0009:
0010:
0011:
0012:
0013:
0015:
''' <summary>
''' VS 2005
''' Reboot Windows Example (NT,XP,2000)
''' </summary>
''' <remarks>kbyte.ru/expert</remarks>
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
        Win32.Reboot()
    End Sub
End Class


Вспомогательные классы:

0002:
0003:
0004:
0005:
0007:
0008:
0009:
0010:
0011:
0012:
0014:
0015:
0016:
0017:
0018:
0020:
0021:
0022:
0023:
0024:
0025:
0026:
0027:
0029:
0030:
0031:
0032:
0033:
0034:
0035:
0036:
0037:
0038:
0039:
0040:
0042:
0043:
0044:
0045:
0046:
0047:
0048:
0049:
0050:
0051:
0052:
0054:
0055:
0056:
0057:
0058:
0059:
0060:
0061:
0062:
0063:
0065:
0066:
0067:
0068:
0069:
0070:
0072:
0073:
0074:
0075:
0076:
0078:
0079:
0080:
0081:
0082:
0083:
0085:
0086:
0087:
0088:
0089:
0090:
0092:
0093:
0094:
0095:
0097:
0099:
0100:
0101:
0102:
0103:
0104:
0105:
0106:
0108:
0109:
0110:
0112:
0114:
0115:
0117:
0119:
0120:
0121:
0122:
0123:
0124:
0125:
0126:
0127:
0128:
0130:
0131:
0132:
0134:
0135:
0136:
0137:
0139:
0140:
0141:
0143:
0144:
0145:
0147:
0148:
0149:
0151:
0152:
0153:
0155:
0157:
0158:
0159:
0160:
0161:
0163:
0164:
0165:
0167:
0168:
0169:
0170:
0171:
0172:
0173:
0174:
0175:
0176:
0177:
0178:
0179:
0180:
0182:
0183:
0184:
0185:
0187:
0190:
0191:
0192:
0193:
0194:
0196:
0198:
0199:
0200:
0201:
0202:
0203:
0204:
0205:
0206:
0207:
0208:
0209:
0210:
0211:
0213:
0215:
0216:
0218:
0219:
0220:
0221:
0223:
Imports System.Text
Imports System.Diagnostics
Imports System.ComponentModel
Imports System.Runtime.InteropServices
''' <summary>
''' VS 2005
''' Exit Windows Helper
''' </summary>
''' <remarks>EROS, eros@fromru.com</remarks>
Public Class Win32
#Region " Constants "
    Private Const SE_SHUTDOWN_NAME As String = "SeShutdownPrivilege"
    Private Const FORMAT_MESSAGE_FROM_SYSTEM As Int32 = &H1000
    Private Const LANG_USER_DEFAULT As Int32 = &H400
#End Region
#Region " Enums "
    <Flags()> _
   Private Enum Privilege As Int32
        ENABLED_BY_DEFAULT = &H1
        ENABLED = &H2
        REMOVED = &H4
        USED_FOR_ACCESS = &H80000000
    End Enum
    <Flags()> _
    Private Enum TokenAccess As Int32
        ASSIGN_PRIMARY = &H1
        DUPLICATE = &H2
        IMPERSONATE = &H4
        QUERY = &H8
        QUERY_SOURCE = &H10
        ADJUST_PRIVILEGES = &H20
        ADJUST_GROUPS = &H40
        ADJUST_DEFAULT = &H80
        ADJUST_SESSIONID = &H100
    End Enum
    <Flags()> _
    Public Enum ExitWindowsExReason As Int32
        APPLICATION = &H40000
        HARDWARE = &H10000
        LEGACY_API = &H70000
        OPERATINGSYSTEM = &H20000
        OTHER = &H0
        POWER = &H60000
        SOFTWARE = &H30000
        SYSTEM = &H50000
    End Enum
    <Flags()> _
   Private Enum ExitWindowsExFlags As Int32
        LOGOFF = 0
        SHUTDOWN = &H1
        REBOOT = &H2
        FORCE = &H4
        POWEROFF = &H8
        FORCEIFHUNG = &H10
    End Enum
#End Region
#Region " Structures "
    <StructLayout(LayoutKind.Sequential)> _
    Private Structure LUID
        Public LowPart As Int32
        Public HighPart As Int32
    End Structure
    <StructLayout(LayoutKind.Sequential)> _
     Private Structure LUID_AND_ATTRIBUTES
        Public Luid As LUID
        Public Attributes As Privilege
    End Structure
    <StructLayout(LayoutKind.Sequential)> _
    Private Structure PRIVILEGES
        Public PrivilegeCount As Int32
        Public Privileges As LUID_AND_ATTRIBUTES
    End Structure
#End Region
#Region " Win32 API"
    <DllImport("ADVAPI32.DLL", SetLastError:=True)> _
    Private Shared Function OpenProcessToken(ByVal hProcess As IntPtr, _
                                             ByVal dwDesiredAccess As TokenAccess, _
                                     <Out()> ByRef hToken As IntPtr) As Boolean
    End Function
    <DllImport("ADVAPI32.DLL", SetLastError:=True)> _
    Private Shared Function LookupPrivilegeValue(ByVal lpSystemName As String, _
                                                ByVal lpName As String, _
                                        <Out()> ByRef lLuid As LUID) As Boolean
    End Function
    <DllImport("ADVAPI32.DLL", SetLastError:=True)> _
    Private Shared Function AdjustTokenPrivileges(ByVal hToken As IntPtr, _
                                                  ByVal DisableAllPrivileges As Boolean, _
                                                  ByRef NewState As PRIVILEGES, _
                                                  ByVal BufferLength As Int32, _
                                          <Out()> ByRef PreviousState As PRIVILEGES, _
                                          <Out()> ByRef ReturnLength As Int32) As Boolean
    End Function
    <DllImport("User32.dll", SetLastError:=True)> _
    Private Shared Function ExitWindowsEx(ByVal uFlags As ExitWindowsExFlags, _
                                         ByVal dwReason As ExitWindowsExReason) As Boolean
    End Function
    <DllImport("Kernel32.dll")> _
    Private Shared Function CloseHandle(ByVal hObject As IntPtr) As Boolean
    End Function
    <DllImport("Kernel32.dll")> _
    Private Shared Function FormatMessage(ByVal dwFlags As Int32, _
                                         ByVal lpSource As IntPtr, _
                                         ByVal dwMessageId As Int32, _
                                         ByVal dwLanguageId As Int32, _
                                         ByVal lpBuffer As StringBuilder, _
                                         ByVal nSize As Int32, _
                                         ByVal Arguments As IntPtr) As Int32
    End Function
#End Region
    Public Shared Sub Logoff()
        Logoff(ExitWindowsExReason.SOFTWARE)
    End Sub
    Public Shared Sub Logoff(ByVal reason As ExitWindowsExReason)
        If Not ExitWindowsEx(ExitWindowsExFlags.LOGOFF, reason) Then _
            Throw New Exception(Marshal.GetLastWin32Error().ToString())
    End Sub
    Public Shared Sub Reboot()
        DoExit(False, ExitWindowsExReason.SOFTWARE)
    End Sub
    Public Shared Sub Reboot(ByVal reason As ExitWindowsExReason)
        DoExit(False, reason)
    End Sub
    Public Shared Sub Shutdown()
        DoExit(True, ExitWindowsExReason.SOFTWARE)
    End Sub
    Public Shared Sub Shutdown(ByVal reason As ExitWindowsExReason)
        DoExit(True, reason)
    End Sub
    Private Shared Sub DoExit(ByVal isShutdown As Boolean, ByVal reason As ExitWindowsExReason)
        Dim hProcess As IntPtr = Process.GetCurrentProcess.Handle
        Dim hToken As IntPtr
        If Not OpenProcessToken(hProcess, _
                                TokenAccess.ADJUST_PRIVILEGES Or TokenAccess.QUERY, _
                                hToken) Then ThrowException()
        Try
            Dim _luid As LUID
            If Not LookupPrivilegeValue(Nothing, SE_SHUTDOWN_NAME, _luid) Then ThrowException()
            Dim luidAndAttributes As New LUID_AND_ATTRIBUTES
            luidAndAttributes.Luid = _luid
            luidAndAttributes.Attributes = Privilege.ENABLED
            Dim tokenPrivileges As New PRIVILEGES
            tokenPrivileges.PrivilegeCount = 1
            tokenPrivileges.Privileges = luidAndAttributes
            Dim tokenPrivelegesPreviouse As New PRIVILEGES
            Dim returnLength As Int32
            If Not AdjustTokenPrivileges(hToken, _
                                         False, _
                                         tokenPrivileges, _
                                         Marshal.SizeOf(GetType(PRIVILEGES)), _
                                         tokenPrivelegesPreviouse, _
                                         returnLength) Then ThrowException()
            Dim exitFlags As ExitWindowsExFlags = IIf(isShutdown, _
                                                      ExitWindowsExFlags.POWEROFF Or _
                                                      ExitWindowsExFlags.SHUTDOWN, _
                                                      ExitWindowsExFlags.REBOOT)
            If Not ExitWindowsEx(exitFlags, reason) Then ThrowException()
        Catch ex As Exception
            Throw New Exception(ex.Message, ex)
        Finally
            If hToken <> IntPtr.Zero Then CloseHandle(hToken)
        End Try
    End Sub
    Private Shared Sub ThrowException()
        Const ERROR_BUFFER_CAPACITY As Int32 = 1024
        Dim StringBuilder As New StringBuilder(ERROR_BUFFER_CAPACITY)
        Dim errorCode As Int32 = Marshal.GetLastWin32Error
        Dim result As Int32 = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, _
                                            IntPtr.Zero, _
                                            errorCode, _
                                            LANG_USER_DEFAULT, _
                                            StringBuilder, _
                                            ERROR_BUFFER_CAPACITY, _
                                            IntPtr.Zero)
        Dim errorDesc As String = IIf(result > 0, StringBuilder.ToString, "Description not fount")
        Throw New ExitSystemException(errorDesc, errorCode)
    End Sub
End Class
Public Class ExitSystemException
    Inherits Win32Exception
    Public Sub New(ByVal message As String, _
                   ByVal errorCode As Integer)
        MyBase.New(errorCode, message)
    End Sub
End Class

--
С уважением,
EROS eros@fromru.com

 

Вопрос #000212: Отправка и получение Почты

Автор вопроса: Игорь Голов // 14.05.2007 / 19:24

Здравствуйте, expert!

Как отправить и получить Почту, используя VB .NET 2005
Серверы требуют авторизации.

Спасибо!

--
С уважением,
Игорь Голов mailto:itshark@mail.ru

Отвечает: EROS // 14.05.2007 / 19:24

Встроенные средства МЫ позволяют только отправлять почту.. Для
получения придется писать что то свое.
Все необходимое для работы с почтой находится в System.Net.Mail
Для авторизации на сервере используйте свойство Credentials
Пример авторизации на сервере: (С#)
0002:
0003:
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.newmail.ru");
smtp.Credentials = new System.Net.NetworkCredential("myaccount@nm.ru", "mypassword");

--
С уважением,
EROS mailto:eros@fromru.com

Отвечает: Алексей Немиро // 15.05.2007 / 05:11

Здравствуйте,

Вот код отправки почты средствами Framework .NET:

0001:
0002:
0005:
0006:
0007:
0008:
0009:
0011:
0012:
0013:
0014:
0016:
Imports System.Net
Imports System.Net.Mail
Dim myMsg As Net.Mail.MailMessage
myMsg = New Net.Mail.MailMessage("admin@kbyte.ru", "komu@kbyte.ru", "Мое письмо", "Привет! Это текст моего письма!")
myMsg.IsBodyHtml = False ' письмо текстовое
myMsg.BodyEncoding = Encoding.GetEncoding(1251) 'кодировка windows-1251
myMsg.SubjectEncoding = Encoding.GetEncoding(1251) 'кодировка windows-1251
Dim mySMTPServer As New Net.Mail.SmtpClient("smtp.myhost.ru", 25)
Dim myCredential As New System.Net.NetworkCredential("login", "password")
mySMTPServer.UseDefaultCredentials = False
mySMTPServer.Credentials = myCredential
mySMTPServer.Send(myMsg) 'отправляем письмо


Что касается получения почты, тут надо писать свой класс, используя
соккеты (Socket), придется также почитать информацию о протоколе POP3, главным
образом вам понадобятся команды:

USER - логин
PASS - пароль
STAT - запрос статистики ящика
TOP - получить заголовки указанного письма
RETR - получить указанное письмо
DELE - удалить указанное письмо
QUIT - завершить сессию

А также понадобится MIME-парсер, о том как его сделать, можно почитать
в моей статье: http://kbyte.ru/Articles/ShowArticle.aspx?id=44


--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000209: Рисуем график

Автор вопроса: "Anton" // 14.05.2007 / 12:54

Посоветуйте пожалуйста как мне нарисовать график на ASP.NETе, в коротом
данные берутся из датагрида или таблицы.
На чем это вообще реально реализовать.
Если не трудно скинте ссылку на примеры или статьи этой тематьки.

Отвечает: Алексей Немиро // 14.05.2007 / 12:54

Здравствуйте,

Нарисовать можно руками, для этого лучше использовать Handler - *.ashx

Готовые компоненты для построения графиков можно найти на сайте
http://asp.net , правда бесплатных не так много..


--
С наилучшими пожеланиями,
Немиро Алексей

Отвечает: Анатолий Присяжнюк // 14.05.2007 / 16:12

Обратитесь к нам на сайт, где размещена статья по этому поводу:
http://kbyte.ru/Articles/ShowArticle.aspx?id=31
Возможно она Вам поможет.
С уважением - АВП

 

Вопрос #000206: Design-time support

Автор вопроса: 5acred Phoenix // 13.05.2007 / 23:50

Доброе время суток, уважаемые Эксперты!

Мой вопрос касается .NET Framework 2.0 / VB2005. Я пытаюсь реализовать
у контрола свойство Items (наподобие тех, которые имеются у ListView и
пр.). В design-mode редактор коллекции появляется, добавлять элементы
в коллекцию можно. Только они не сохраняются (после билда проекта
исчезают). Как же всё-таки сделать так, чтобы дизайнер генерировал код
для свойства Items?

Прошу прощения за большой кусок кода, просто я хотел, чтобы вы, в
случае чего, сразу могли указать на мои ошибки.

Заранее благодарен за помощь.

-----
Faithfully yours,
5acred Phoenix <sacredphoenix[at]inbox[dot]ru>.

Sunday, May 13, 2007




Public Class ColorButton
Inherits Button

Private m_Items As New TaggedStringCollection
Public ReadOnly Property Items() As TaggedStringCollection
Get
Return m_Items
End Get
End Property
End Class

<TypeConverter(GetType(TaggedStringTypeConverter))> _
Public Class TaggedString
Implements System.Runtime.Serialization.ISerializable

Private m_Value As String = String.Empty
Public Property Value() As String
Get
Return m_Value
End Get
Set(ByVal value As String)
m_Value = value
End Set
End Property

Private m_Tag As Integer = 0
Public Property Tag() As Integer
Get
Return m_Tag
End Get
Set(ByVal value As Integer)
m_Tag = value
End Set
End Property

Public Overrides Function ToString() As String
Return String.Format("""{0}"" with {1}", m_Value, m_Tag)
End Function

Public Sub New()

End Sub

Public Sub New(ByVal Value As String, ByVal Tag As Integer)
m_Value = Value
m_Tag = Tag
End Sub

Public Sub GetObjectData(ByVal info As System.Runtime.Serialization.SerializationInfo, _
ByVal context As System.Runtime.Serialization.StreamingContext) _
Implements System.Runtime.Serialization.ISerializable.GetObjectData
info.AddValue("Value", m_Value)
info.AddValue("Tag", m_Tag)
End Sub
End Class

Public Class TaggedStringCollection
Inherits System.Collections.CollectionBase

Public Function Add(ByVal item As TaggedString) As Integer
Return Me.List.Add(item)
End Function

Public Function Add(ByVal value As String, ByVal tag As Integer) As Integer
Dim item As New TaggedString(value, tag)
Return Me.Add(item)
End Function

Default Public Property Item(ByVal index As Integer) As TaggedString
Get
Return CType(Me.List.Item(index), TaggedString)
End Get
Set(ByVal value As TaggedString)
Me.List.Item(index) = value
End Set
End Property

' ...
End Class

Public Class TaggedStringTypeConverter
Inherits TypeConverter

Public Overrides Function CanConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, _
ByVal destinationType As System.Type) As Boolean
If (destinationType Is GetType(InstanceDescriptor)) Then Return True
Return MyBase.CanConvertTo(context, destinationType)
End Function

Public Overrides Function ConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, _
ByVal culture As System.Globalization.CultureInfo, _
ByVal value As Object, ByVal destinationType As System.Type) As Object
If ((destinationType Is GetType(InstanceDescriptor)) AndAlso _
(TypeOf value Is TaggedString)) Then
Dim tgstr As TaggedString = CType(value, TaggedString)
Dim ctor As ConstructorInfo = tgstr.GetType().GetConstructor(New System.Type() {GetType(String), GetType(Integer)})
If (ctor IsNot Nothing) Then
Return New InstanceDescriptor(ctor, New Object() {tgstr.Value, tgstr.Tag}, False)
End If
'Dim method As MethodInfo = GetType(TaggedStringCollection).GetMethod("Add", New System.Type() {GetType(TaggedString)})
'If (method IsNot Nothing) Then
' Return New InstanceDescriptor(method, New Object() {tgstr})
'End If
End If
Return MyBase.ConvertTo(context, culture, value, destinationType)
End Function
End Class

Отвечает: EROS // 13.05.2007 / 23:50

Вам необходимо для свойства Items использовать аттрибут DesignerSerializationVisibility
0002:
0003:
0005:
0006:
0007:
0008:
0009:
0010:
0011:
0013:
Public Class ColorButton
    Inherits Button
    Private m_Items As New TaggedStringCollection
    <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public ReadOnly Property Items() As TaggedStringCollection
        Get
            Return m_Items
        End Get
    End Property
End Class

P.S. Отключите Ваш TaggedStringTypeConverter это наверняка будет
вызывать ошибки. VS для редактирования свойства Items по умолчанию вызовет
CollectionEditor. В большинстве случаев этого достаточно..
--
С уважением,
EROS mailto:eros@fromru.com

 

Вопрос #000203: Программирование с использованием Win API (Visual Basic 6)

Автор вопроса: Игорь Голов // 13.05.2007 / 15:48

Здравствуйте, expert!

Задача:

Формируется группа переключателей для выбора стилей простого редактора текста
(ES_AUTOHSCROLL, ES_AUTOVSCROLL, ES_LEFT, ES_RIGHT, ES_CENTER, ES_LOWERCASE,
ES_UPPERCASE, ES_PASSWORD, ES_NUMBER, ES_OEMCONVERT), две кнопки и статическое окно.
Нажатие на первую кнопку приводит к созданию многострочного текстового редактора с
заданными стилями. Нажатие на вторую кнопку отображает выделенный пользователем текст
в статическом окне

Спасибо!

--
С уважением,
Игорь Голов mailto:itshark@mail.ru

Отвечает: Алексей Немиро // 13.05.2007 / 15:48

Здравствуйте,

Мало понятно, что требуется..

0001:
0002:
0003:
0004:
0005:
0007:
0008:
0009:
0010:
0012:
0013:
0014:
0015:
0016:
0017:
0018:
0019:
    private void button1_Click(object sender, EventArgs e)
    {
      richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;
      richTextBox1.Font = new System.Drawing.Font("Arial", 14, FontStyle.Italic | FontStyle.Bold);
    }
    private void button2_Click(object sender, EventArgs e)
    {
      richTextBox1.ScrollBars = RichTextBoxScrollBars.None;
    }
    private void button3_Click(object sender, EventArgs e)
    {
      Form myForm = new Form();
      Label myLabel = new Label();
      myLabel.Text = richTextBox1.SelectedText;
      myForm.Controls.Add(myLabel);
      myForm.Show();
    }


И в следующий раз, пожалуйста, не забывайте указывать язык, на котором
требуется это сделать.


--
С наилучшими пожеланиями,
Немиро Алексей

Отвечает: Алексей Немиро // 13.05.2007 / 15:59

Здравствуйте,

Эх.. Опять язык в теме указали, на тему мы практически не смотрим,
только если на сайт (http://kbyte.ru/Expert/ ) заходим :))
В теле письма тоже надо указывать язык ;-)
А в теме надо отражать краткое содержание вопроса, это необходимо,
чтобы было удобней искать вопрос, тем у кого он возникает, точнее тем,
у кого возникает подобный вопрос ;)

В принципе все что я ранее написал, легко делается на 6 бэйсике.

0001:
0002:
0003:
0005:
0006:
0007:
0008:
0009:
0010:
0012:
0013:
0014:
Private Sub Command1_Click()
  RichTextBox1.Font.Bold = True
End Sub
Private Sub Command2_Click()
  RichTextBox1.SelStart = 7
  RichTextBox1.SelLength = 9
  RichTextBox1.SelColor = RGB(255, 0, 0)
  MsgBox RichTextBox1.SelText
End Sub
Private Sub Form_Load()
  RichTextBox1.Text = "http://kbyte.ru"
End Sub


Если Вы не получили ответ, попробуйте обратиться в наш форум, там мы
сможем более детально рассмотреть этот вопрос http://kbyte.ru/form
Либо задайте вопрос повторно, но более подробно распишите что
требуется, хотя, в полне вожможно, что другие Экспреты еще могут
написать ответ сюда.

--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000198: Переключение_вкладок_в_TabStrip

Автор вопроса: Сергей // 13.05.2007 / 12:38

Добрый день,

Но не могли бы вы описать как, в режиме разработки
проекта, можно переключать вкладки в TabStrip на Visual Basic 6.0,
просто кликнуть на ней не получается, а как же тогда добавлять
элементы на вкладку.

Спасибо.

Отвечает: Алексей Немиро // 13.05.2007 / 12:38

Здравствуйте,

Разместите на форме элемент TabStrip и вставьте следующий код:

0001:
0002:
0003:
0004:
0005:
0006:
0007:
0008:
0009:
0010:
0011:
0013:
Private Sub Form_Load()
  'on error resume next
  'добавляем 10 вкладок
  Dim i As Long
  TabStrip1.Tabs.Clear
  For i = 0 To 9
    TabStrip1.Tabs.Add , , "Вкладка " & CStr(i + 1)
  Next i
  
  MsgBox "Добавлено 10 новых вкладок, нажмите Ok, и мы виберем 3 вкладку", vbInformation
  TabStrip1.Tabs(3).Selected = True
End Sub




--
С наилучшими пожеланиями,
Немиро Алексей

Отвечает: Алексей Немиро // 13.05.2007 / 12:42

Здравствуйте,

В режиме разработки в Visual Basic 6.0 это не возможно, да и смысла не
имеет.


--
С наилучшими пожеланиями,
Немиро Алексей

Отвечает: Алексей Немиро // 13.05.2007 / 12:49

Здравствуйте,

Наконец-таки дочитал конец вопроса :)))

Размещать элементы непосредственно на вкладках TabStrip также
не возможно, для этого нужно создать какой-нибудь контейнер, например
Frame. Для простоты работы с контейнерами, нужно установить им
(контейнерам) свойство Index равное индексу вкладки. Т.е.
сколько вкладок, столько и контейнеров.
Также, в Visual Basic 6.0 существует более "продвинутый"
TabStrip - SSTab, который позволят делать все визуально, о чем Вы
спрашивали. Найти его можно в меню Проект => Компоненты
(Project => Components) и в появившемся окне найдите Microsoft Tabbed Dialog Control 6.0.



--
С наилучшими пожеланиями,
Немиро Алексей

 


Чтобы задать Ваш вопрос, отправьте его на адрес expert@kbyte.ru

Раздел Эксперт на сайте Kbyte.Ru

Наверх

 

 

Голосование на Kbyte.Ru

Голосование на Kbyte.Ru через E-Mail!
Чтобы проголосовать через E-Mail, выберите ответ, если у Вас настроен почтовый клиент, должно появиться окно с новым сообщением, ничего не изменяйте, а просто отправьте пустое письмо и в течение некоторого времени Ваш голос будет зачтен.
Для голосования через сайт, перейдите по этой ссылке: http://kbyte.ru/Voting/.
Пользуетесь ли Вы системой «Эксперт» на нашем сайте?
На нашем сайте работает система «Эксперт», через которую любой желающий может задать вопрос Экспертам в области программирования и информационных технологий.
Да, только ей и пользуюсь! (1)
Да, периодически использую (3)
Вашей – нет, но иногда использую другие подобные системы (0)
Нет, предпочитаю использовать форумы (4)
Нет, мне это вообще не надо (0)
А как ей пользоваться? (0)
Нет, а что это? (2)

Всего голосов: 10

Голосование на Kbyte.Ru

Наверх

 

Последнее на форумах

Help Please!!!!! | Автор: pasha
Добавлено: 19.05.2007 / 12:57 | ответов: 1 | просмотров: 14

Алексей, вы мне давали класс DataAceessManager (топик Aceess DB). Но дело в том, что оператор IsNot, который использовался при проверке ошибок в VB 2003 не поддерживается, и мне пришлось перевернуть IF-ы:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
'Типа вот этого
  If DT Is Nothing Then
        myResult = Nothing
        RecordCount = 0
      Else
        If DT.Rows.Count > 0 Then
          myResult = DT.Rows(0)
          RecordCount = 1
        End If
      End If
Powered by EROS: CSC ver. 1.x
Modify by Aleksey S Nemiro special for Kbyte.Ru


В итоге получилось, что класс не работает!

Можно ли как-нибудь ещё записать данные в БД?

Да и весь код формы, с которой должны записываться данные

код удален администратором из-за большого, ну просто огромного, объема

Ответить на это сообщение | Открыть эту тему | Форум Kbyte.Ru


Что-то давно у нас не было хумора :-) | Автор: Алексей
Добавлено: 19.05.2007 / 06:52 | ответов: 0 | просмотров: 7

Китайское радио:
Поздравляем вас товарищи. Сегодня с космодрома Ли Хен Чаон стартовал первый управляемый космичекий аппарат созданный в Китае. Как нам сообщили в Центре управления полетом, сомочуствие трех космонавтов и двухсот кочегаров - хорошее


Судья:
- Итак, подсудимый назвал вас идиотом. Это правда?
- Да.
- Так на что вы жалуетесь?


В автобус входит контролер:
- Так, зайцы есть?
- Ну, я!
- На морковку!


- Владимир Владимирович! Вы будете выдвигаться на третий срок?
- Нет!
- А на четвертый?


Один приятель говорит другому:
- Ах, черт, кошелек забыл, а мне десятки не хватает. Одолжишь?
- Ну, держи.
На следующий день.
- Я тебе десятку должен?
- Да.
- Опять я кошелек забыл. Одолжи еще 40, буду тебе ровно полста должен.
- Ну, хорошо.
На следующий день.
- Я тебе 50 рублей должен?
- Да.
- Опять я сегодня без кошелька. Давай, ты мне еще 150 займешь, а я уж тебе 200 тогда отдам.
- Ну, ладно.
На следующий день.
- Я тебе 200 должен?
- Ну, конечно.
- Давай я уж у тебя для ровного счета еще 300 займу и потом сразу полтыщи отдам.
- Ну что ж делать, давай.
На следующий день.
- Я тебе 500 должен?
- Нет!


Корреспондент спашивает директора дурдома, какой тест является критерием для выписки.
- Мы наливаем полную ванну воды, кладём рядом чайную ложечку и большую кружку, и предлагаем освободить ванну от воды.
Корреспондент улыбается и говорит:
- Ну любой нормальный человек возьмёт кружку.
- Нет, - говорит директор, - нормальный человек вынет пробку.


Стоит милиционер, мимо проезжает Фольксваген-Гольф. Вдруг милиционер резко машет водителю жезлом, оглушительно свистит и выхватывает пистолет. Водитель сразу по тормозам, чуть не вылетает через лобовое стекло, выходит весь бледный, на ватных ногах:
- Что такое?
- Да ничего. (Задумчиво глядя на машину) Я вот хочу тоже Гольф купить, да чего-то говорят, у него тормоза слабые...


- Ешь рулет с черникой, зрение будет 100%!
- Лучше ешь с грибами, будет 150%!
- Это как?
- Будешь видеть то, чего нет.


Разговаривают два друга:
- Вчера для тещи две карзины грибов собрал!
- А вдруг они ядовитые?
- Что значит вдруг...


Медали:
Медаль "За скромность на пожаре".
Медаль "20 лет коту под хвост" (юбилейная).
Медаль "Семь футов" (носится под килем).
Медаль "За взятие с поличным".
Медаль "За взятие себя в руки".
Медали "За взятие" и "За возвращение в целости и сохранности"
(носятся парой).
Медаль "За здорово живешь".
Значок "Бойцу с кровопийцами" (за убийство более 10000 комаров).
Значок "Ветеран Броуновского движения".
Значок "Многократный победитель простуды".


Возвращается с армии паренёк (П). И первым дело, думает, к Машке надо зайти. Писала ведь, в верности клялась... Цветы идет покупать. Цветочница (Ц) - бабушка знакомая.
Ц: Петенька! Ты? С армии вернулся?
П: Да вот, вернулся... А дайте-ка мне самую большую и красивую розу, которая только у Вас есть!
Ц: К Машке, из 3 двора, небось?
П: Да к Машке!
Ц: Не ходи к Машке, она замуж вышла, не дождалась...
П: Тогда давайте две!


-Слышь, пацан, а смысл жизни есть?
-Нееет.
-А если найду?!


Миллиционер-патрульный обычно работающий ночью однажды пришел домой на несколько часов раньше. Не захотев будить свою жену, он тихонько пробрался в спальню, разделся и лег спать. Правда через пару минут она потрогала его за плечо и сказала,
- Дорогой, у меня очень сильно болит голова... ты не мог бы пожалуйста сходить в круглосуточную аптеку купить мне немного анальгина?
Мент оделся, и потопал в аптеку. Купив анальгина, аптекарь на него как то странно посмотрел, и спросил:
- А я вас случайно не знаю? Лейтенант Иванов, так?
- Угу.
- А какого хрена вы одеты как пожарник?


Музыкальная хроника. Пугачева вместе с семьей переехала жить в деревню. Алла Борисовна теперь сама доит корову. Филя разводит кроликов, и только Кристина Орбакайте, вспомнив детство, одиноко стоит посреди огорода.

Ответить на это сообщение | Открыть эту тему | Форум Kbyte.Ru


Описание ListView | Автор: A_XIII
Добавлено: 18.05.2007 / 13:28 | ответов: 5 | просмотров: 16

Помогите разобраться с ListView (платформа VB 6.0) - Какой алгоритм добавления инфы в колонки, строки, заранее Спасибо!!!

Ответить на это сообщение | Открыть эту тему | Форум Kbyte.Ru


Вопрос по Visual Studio 6.0 | Автор: nslookup
Добавлено: 18.05.2007 / 07:37 | ответов: 3 | просмотров: 18

Подскажите пожалуйста как поменять кодировку в MS VS 6.0 а то код на латинице нормально отображается, а коментарии которые на русском языке должны быть какой-то арабской вязью...

Ответить на это сообщение | Открыть эту тему | Форум Kbyte.Ru


ИБП + телевизор | Автор: Алексей
Добавлено: 18.05.2007 / 05:24 | ответов: 2 | просмотров: 12

Вчера рубанули свет, посидел минуты три за компом, понял что это на долго, вырубил комп, врубил телик, естественно в ИБП воткнул :) При этом, комп сожирал 50 % энергии (по данным ИБП), телик я смотрел около часа :)
ИБП APC Back-UPS ES 525VA (300 Ватт), телик вроде бы 40 съедает. Вопрос, какой купить ИБП, чтобы от него максимально долго работал телик?

Ответить на это сообщение | Открыть эту тему | Форум Kbyte.Ru


Хранение изображений в базе данных MS SQL | Автор: SocrAT
Добавлено: 17.05.2007 / 12:12 | ответов: 3 | просмотров: 12

Уважаемые знатоки!
Подскажите, как в DOT NET 2.0 (VS2005 C#) - какие компоненты надо
использовать и код - сохранить и извлечь(отобразить) изображение в базе данных MS SQL?


---
Это сообщение добавлено через Forum Mail Conference (FMC)

Ответить на это сообщение | Открыть эту тему | Форум Kbyte.Ru


Копирование наиболее нового файла из списка файлов | Автор: Igor
Добавлено: 15.05.2007 / 00:18 | ответов: 24 | просмотров: 70

* имеется папка: d:\Bad
* в папке несколько файлов, причем имена этих файлов является дата их создания:
c20070510.html
c20070511.html
c20070512.html
дата появлени нового файла не известна.
нужен код,который будет помещен в планировщик заданий и при запуске 2 раза в день
(или каждые 30мин) искал в папке d:\Bad новый файл,
копировал его в C:\series\ под именем index.html

Ответить на это сообщение | Открыть эту тему | Форум Kbyte.Ru


Реестр и win64 | Автор: MArtmath
Добавлено: 14.05.2007 / 15:42 | ответов: 0 | просмотров: 17

Лююди помогите кто чем может-почему в 32 все работает а в 64 нифига....(lResult-no parasan)???
Public Function GetString(Hkey As Long, strPath As String, strValue As String)
Dim keyhand As Long
Dim datatype As Long
Dim lResult As Long
Dim strBuf As String
Dim lDataBufSize As Long
Dim intZeroPos As Integer
r = RegOpenKey(Hkey, strPath, keyhand)
lResult = RegQueryValueEx(keyhand, strValue, 0&, lValueType, ByVal 0&, lDataBufSize)
If lResult = 0 Then
If lValueType = REG_SZ Then
strBuf = String(lDataBufSize, " ")
lResult = RegQueryValueEx(keyhand, strValue, 0&, 0&, ByVal strBuf, lDataBufSize)

If lResult = ERROR_SUCCESS Then
intZeroPos = InStr(strBuf, Chr$(0))
If intZeroPos > 0 Then
GetString = Left$(strBuf, intZeroPos - 1)
Else
GetString = strBuf
End If
End If
End If
Else
GetString = "NO"
End If
RegCloseKey keyhand
End Function
Заранее спс...

Ответить на это сообщение | Открыть эту тему | Форум Kbyte.Ru


Программирование с использованием Windows API | Автор: Игорь Голов
Добавлено: 14.05.2007 / 14:01 | ответов: 1 | просмотров: 33

Составить программу, используя Windows API:

"Формируется группа переключателей для выбора стилей простого редактора текста (ES_AUTOHSCROLL, ES_AUTOVSCROLL, ES_LEFT, ES_RIGHT, ES_CENTER, ES_LOWERCASE, ES_UPPERCASE, ES_PASSWORD, ES_NUMBER, ES_OEMCONVERT), две кнопки и статическое окно. Нажатие на первую кнопку приводит к созданию многострочного текстового редактора с заданными стилями. Нажатие на вторую кнопку отображает выделенный пользователем текст в статическом окне"

Предпочитаемый язык: Visual Basic 6.0

Ответить на это сообщение | Открыть эту тему | Форум Kbyte.Ru


Создание TCP - соединение на VB6 | Автор: A_XIII
Добавлено: 14.05.2007 / 03:30 | ответов: 1 | просмотров: 20

Как программно создать TCP - соединение на VB6?

Ответить на это сообщение | Открыть эту тему | Форум Kbyte.Ru


Наверх

 

Последние статьи

Выбор языка программирования для научных работ (2-я редакция)
Автор: Юдин С. Ю. | добавлено: 15.03.2007 / 02:49 | просмотров: 1309

Идея написания этой статьи возникла после того, как на одном из сайтов по физике http://physics.nad.ru/aniboard/messages/291.html я обнаружил интересный алгоритм моделирования движения тела в поле постоянной напряженности по различным направляющим. Вернее, меня заинтересовал не весь алгоритм, т.к. основа их всех одна (принцип Даламбера, если не считать квазиалгоритма с применением уравнений Лагранжа 2-го рода) и различаются они только способом определения реакций в месте соприкосновения тел. Вот именно не известный мне способ определения реакций меня и заинтересовал, но код программы...

Работаем с MIME
Автор: Немиро Алексей | добавлено: 29.11.2006 / 14:46 | просмотров: 1407

Не так давно мне пришлось немного поработать MIME (Multipurpose Internet Mail Extension) - это стандарт почтовых сообщений, в РуНете (Russian Internet) я не нашел нормального описания спецификации MIME, и посему решил написать небольшую статейку на эту тему. В данной статье вы узнаете об основных особенностях и стандартах MIME, а также научитесь «читать» MIME с использованием синтаксиса языка Visual Basic .NET 2005.

Visual Basic 2003/2005 .NET: Взаимодействие с Microsoft Word 2000 и выше
Автор: Хабибулин А. (aka Bille Gates) | добавлено: 05.10.2006 / 12:15 | просмотров: 2704

Эта статья будет полезна только тем людям, у которых установлен Microsoft Word 2000 или выше! Мы научимся делать всё возможное с документами MS WORD при помощи VB 2003/2005 .NET.

Visual Basic .NET: Работа с файлами
Автор: Хабибулин А. (aka Bille Gates) | добавлено: 04.10.2006 / 10:35 | просмотров: 3298

В этой статье мы поговорим о работе с файлами. Научимся добавлять и удалять файлы/каталоги, записывать и читать данные из файла и.т.д.

ASP .NET 2.0: Эталонные страницы
Автор: Немиро Алексей | добавлено: 27.08.2006 / 04:08 | просмотров: 2468

Как известно, большинство сайтов имеют однотипную, общепринятую разметку страниц, неотъемлемой частью которой является верхний и нижний колонтитулы и, пожалуй, самая главная часть - тело страницы, хотя конечно, бывают и исключения. ASP .NET 2.x предлагает уникальный метод создания одинаковой разметки для страниц сайта – это использование, так называемых, эталонных страниц. Если вы работали с ранними версиями ASP(ASP, ASP .NET 1.x), то, наверное, помните, что постоянно приходилось копировать HTML-код страницы с элементами ASP. Конечно, использование включаемых файлов (include) в классическом ASP, и пользовательских элементов управления (*.ascx) в ASP .NET 1.x, значительно упрощало разработку Web-сайтов, но это не сравнится с тем, что предлагает ASP .NET 2.x.

Описание ошибок VB
Автор: [root] | добавлено: 29.07.2006 / 06:58 | просмотров: 3513

В данном обзоре содержится русскоязычное описание ошибок Visual Basic 5.0/6.0.

Горячие клавиши VB 6.0
Автор: [root] | добавлено: 20.07.2006 / 13:21 | просмотров: 1838

В данном обзоре рассмотрены горячие клавиши Visual Basic 5.0/6.0, которые значительно ускоряют процесс разработки и тестирования программ.

ASP .NET 2.0: Файл Global.asax
Автор: Немиро Алексей | добавлено: 17.07.2006 / 18:04 | просмотров: 2234

Файл Global.asax является необязательным файлом приложений ASP .NET и содержит дополнительный код, отвечающий за обработку событий, происходящих на уровне приложения. Этот файл должен находиться в корневом каталоге Web-приложения. В ASP .NET 1.1 сей файл автоматически создавался Visual Studio при создании нового Web-проекта, в ASP .NET 2.0 Visual Studio Global.asax автоматически не создает, но его можно добавить в проект вручную. Все изменения, внесенные в файл Global.asax отслеживаются средой ASP .NET, и приложение перезагружается...

Как узнать страну по IP-адресу?
Автор: Amit Gupta | добавлено: 17.07.2006 / 08:09 | просмотров: 35394

Интернет широко распространен в большинстве стран и континентов. Узнать страну посетителей вашего веб-сайта может быть не легкой задачей, особенно если вы не знаете как это сделать...

Visual Basic 6.0 - Экспорт DataReport в Microsoft Word
Автор: John D. Conway | добавлено: 17.07.2006 / 06:16 | просмотров: 3228

В этой статье мы создадим пример базы данных Microsoft Access и пользовательский интерфейс в среде Visual Basic 6.0. Сделать это будет относительно несложно, поскольку для работы с нашей базой данных мы будем использовать компонент ADODC Componenet (Microsoft ADO Data Control 6.0 (OLEDB)). Мы добавим DataEnvironment и DataReport и буквально, в течении минуты, мы уже сможем экспортировать наш DataReport в Microsoft Word Document. (.doc)...

 

Статьи на Kbyte.Ru

Наверх

 

Интересные коды и решения

Как нарисовать что-либо на Form/PictureBox?
Дата добавления: 24.03.2007 / 10:15 | просмотров: 69 | платформа: VB .NET

Как запретить запуск двух копий программы?
Дата добавления: 04.08.2006 / 08:53 | просмотров: 424 | платформа: VB

Как расчитать возраст из даты рождения?
Дата добавления: 24.03.2007 / 12:06 | просмотров: 58 | платформа: VB .NET

Как заблокировать кнопку "Закрыть" ([X])
Дата добавления: 31.07.2006 / 12:12 | просмотров: 439 | платформа: VB

Анализ чисел
Дата добавления: 24.03.2007 / 11:09 | просмотров: 102 | платформа: RegEx

Как программно установить/получить значение текстового поля (HtmlInputTextBox)?
Дата добавления: 31.07.2006 / 16:15 | просмотров: 615 | платформа: ASP .NET (VB)

Удаление файла
Дата добавления: 31.07.2006 / 17:28 | просмотров: 391 | платформа: ASP .NET (VB)

Как сделать Label с тенью?
Дата добавления: 16.08.2006 / 23:42 | просмотров: 458 | платформа: VB

Как запустить процесс и дождаться его завершения?
Дата добавления: 24.03.2007 / 12:12 | просмотров: 95 | платформа: VB .NET

Как преобразовать число в двоичное представление?
Дата добавления: 24.03.2007 / 11:51 | просмотров: 84 | платформа: VB .NET

 

Универсальные коды на Kbyte.Ru

Наверх

 

Юмор на Kbyte.Ru

- Вашу фирму интересует изготовление рекламы?
- Нет, спасибо - у нас всё в порядке...

 

Рейтинг: 0
Всего голосов: 0
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Склероз – это Read Only статус человеческой памяти.

 

Рейтинг: 653
Всего голосов: 888
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

В школе финальный урок русского языка. Решается годовая оценка.
Учительница спрашивает детей:
- Объясните, детки, что означает выражение: "Родиться в рубашке"?
Машенька:
- Мой дедушка родился в рубашке. Когда была война, в его танк
попала ракета, башню оторвало, все сгорели - а дедушка выжил.
Петя:
- Мой папа родился в рубашке. Когда он сплавлялся по горной речке
на плоту, плот перевернулся, все утонули - а он выплыл. И т.д.
Дошла очередь до Вовочки:
- Мой кот родился в рубашке.
- Почему, Вовочка? Объясни!
- Я вчера съел пять таблеток виагры - а его дома не было!

 

Рейтинг: 0
Всего голосов: 0
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Чем русский отличается от цыгана? Цыган никогда не хает тех, у кого он коня своровал...

 

Рейтинг: 323
Всего голосов: 436
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

- Когда Microsoft будет выпускать то, что не тормозит?
- Когда начнет выпускать автомобили

 

Рейтинг: 41
Всего голосов: 57
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Подходит пользователь к программисту и говорит:
- Мне нужен генератор случайных чисел.
Тот, не оборачиваясь:
- Четырнадцать...

 

Рейтинг: 42
Всего голосов: 59
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Дочь приходит домой пьяная и говорит отцу:
- Пап, налей водки!
Отец:
- Доченька, тебя же вырвет!
- А ты налей и отойди!

 

Рейтинг: 29
Всего голосов: 38
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Оставили мы ребенка на хозяйстве. На два часа. Сами с супругой гулять пошли. С собакой. А детенышу 11 лет дали задание:
– Илья, перед тем, как оседлать компьютер, сделаешь вот чего: собаке свари макароны, а нам – картошку. Вода для макарон закипит – засыпешь макароны и будешь мешать, пока не всплывут. Затем газ убавишь до минимума и 15 минут можешь "Мадагаскар" смотреть. Картошка же вскипит – просто убавишь газ. На те же 15 минут. Как все сварится, макароны выльешь на дуршлаг, промоешь и обратно в кастрюлю без воды с кусочком масла. А воду от картошки, как сварится, просто сольешь, картошку оставишь в кастрюле, и, соответственно, тоже масла туда. Кастрюлю накроешь полотенцем, чтобы не остыл корнеплод. Как сделаешь, позвонишь, мы с мамой вернемся - будем ужинать. Понял?
– Понял!
Звонит. Все, говорит, в порядке, все сделано.
Мы вертаемся. Макаронная каша из макарон, масла и воды накрыта полотенцем. В раковине стоит дуршлаг с картошкой, под ним лужа масла, дуршлаг тоже аккуратно накрыт полотенцем...

 

Рейтинг: 45
Всего голосов: 80
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Урок русского языка. Учительница спрашивает детей привести пример на окончание -тся. Отвечает Маша: "Мама стирается."
Учитель: "Садись. Пять."
Отвечает Петя:" Файл копируется."
Учитель:"Садись. Пять. Ну а Вовочка твой пример?"
Вовочка:"Корова залезла на дерево."
Учитель:"Ну и что?"
Вовочка:"Сейчас на@бн%тся!"

 

Рейтинг: 0
Всего голосов: 0
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Компьютерный магазин. Заходят мужчина и женщина.
Женщина: Нам надо, что бы телефон к компьютеру подключался.
Я: У вас Блютуз или ИрДа?
Женщина: Вы с кем разговариваете?
Я в замешательстве, не знаю что ответить.
Женщина: Нам провод нужен, что бы данные на компьютер можно было передать.
Я: Мини USB?
Женщина: Мы не знаем что это такое.
Я: Сейчас вам покажу.
Достаю кабель, показываю. Они достают телефон, смотрим, разъема для мини USB нет.
Я: Вы в мануале посмотрите у телефона Блютуз или ИрДа есть.
Женщина: Вы с кем разговариваете?
Я: Ну, как с кем, с вами.
Женщина: Что такое мануал?
Я: Руководство пользователя.
Женщина: У нас, его нет.
Я: Зайдите в магазин, где радиотелефоны продаются, спросите, есть ли у этой модели Блютуз или ИрДа.
Покупатели в недоумении уходят.

 

Рейтинг: 534
Всего голосов: 785
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Весь юмор на Kbyte.Ru

Наверх


Выпуск подготовил: R-KDR-19826

Редактор: Немиро Алексей

Copyright (c) Nemiro AS, 2005-2007


В избранное