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

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



Выпуск # 161


http://www.kbyte.ru/

 

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

Здравствуйте дамы и господа!
Представляю очередной выпуск рассылки научно-информационного портала Kbyte.Ru. Надеюсь он Вам понравится. Если у Вас есть какие либо вопросы или предложения по рассылке, пишите нам – admin@kbyte.ru!

 

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

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

    Вопрос #000376: Открыть окно браузера с результатами поиска

    Вопрос #000372: Ексель и ВБ 6.0

    Вопрос #000366: Проблема с потреблением памяти на VB 2005

    Вопрос #000365: как декларировать функции

    Вопрос #000364: Фокус с калькулятором Windows

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

    Работа с TreeView

    Создание ярлыка

    Отправка СМС из приложения

    На каком языке программирования Вы программируете?

    Выбор checkbox'а в IE

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

    Использование XML.Serialization

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

    Работаем с MIME

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

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

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

Юмор на Kbyte.Ru

 

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

 

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


Вопрос #000376: Открыть окно браузера с результатами поиска

Автор вопроса: Федоренко Дмитрий Константинович // 19.07.2007 / 06:36

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

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

h = FindWindow(vbNullString, ByVal "ИМЯ_ФОРМЫ")
hText = FindWindowEx(h, 0, vbNullString, ByVal "ИМЯ_ТЕКСТОВОГО_ЭЛЕМЕНТА")
или
hwnd1 = WindowFromPoint(cursorpos1.x, cursorpos1.y)

Ответ на данный вопрос был успешно дан экспертами вашей системы с помощью демонстративной программы UltraSpy с используемыми в ней данными функциями, которую можно скачать с вашего сайта по ссылке http://kbyte.ru/Samples/Show.aspx?id=182.

Но такое решение проблемы не помогает в случае, когда речь идет об окне-форме Internet Explorer.

Например в частном случае. Если пройти по ссылке www.yandex.ru и попробовать описанным выше методом получить дескриптор элемента (поля ввода) строки поиска, то он с помощью таких функции не находится (что и понятно, так как в данном случае это уже не элемент типа текст как в VB, а часть разметки HTML).

Как же поступить в данном случае, при условии, что мы не можем открыть страничку в виде HTML кода и посмотреть имя этой переменной (строки ввода текста)?


Заранее благодарю, Дмитрий.

Отвечает: Алексей Немиро // 19.07.2007 / 09:14

Здравствуйте, Дмитрий!

В случае с Яндекс (и любой другой поисковой системой), если Вы хотите,
чтобы Ваша программа открыла страницу с результатами поиска, то все
довольно просто:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
Option Explicit
Private Declare Function ShellExecute Lib "shell32" _
Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Private Const SW_SHOWNORMAL = 1

Private Sub Form_Load()
 ShellExecute 0, vbNullString, _
 "http://www.yandex.ru/yandsearch?stype=&nl=0&text=Kbyte.Ru", vbNullString, _
 vbNullString, SW_SHOWNORMAL
End Sub


В данном примере программа откроет страницу Яндекс с результатами
поиска слова Kbyte.Ru. Получить такой url можно на самом Яндекс, введя
в строку поиска слово поиска, и нажав на кнопку «Найти». В указанном
выше примере, достаточно просто поменять значение параметра text в url.

Данный способ можно применять только для GET-запросов.

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

 

Вопрос #000372: Ексель и ВБ 6.0

Автор вопроса: Taras // 18.07.2007 / 22:19

как -Создать в памяти невидимый экземпляр Excel
- Выгрузить в ячейки данные из текстовых полей
- Произвести необходимые вычисления средствами объектной модели Excel (записать в ячейки формулы и вывести результаты аосле вычисления)
- Вернуть оттуда готовый результаты в текстовые поля...

--------------------------------------
Категория: --- Visual Basic 5.0/6.0

Отвечает: EROS // 18.07.2007 / 23:35

Здравствуйте, Taras.
Тут все довольно просто ...

1. Через Add Reference добавьте в проект ссылку на Microsoft Excel
6/7/8/9.0 (или любую другую версию) Object Library
2. Создаете объект Excel.Application
3. Используя Workbooks.Add добавляете в него рабочую книгу (Workbook)
4. Получаете ссылку на Worksheet (лист рабочей книги)
5. Используя объект Cells(столбец,строка) или Range("A1") вставляете данные в ячейку(и)
из своих тектовых полей
6. Используя метод Formula объекта Range расставляете нужные вам
формулы
7. Через объекты Cells или Range считываете полученные результаты
8. Возвращаете результаты в свои текстовые поля
9. Уничтожаете ссылки на ненужные более объекты (Application,Workbook,WorkSheet)

Вот, собственно, и все..

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

 

Вопрос #000366: Проблема с потреблением памяти на VB 2005

Автор вопроса: weltkind // 18.07.2007 / 17:52

День Добрый!
Возник у меня вопрос почему мои программы написаные в Visual Studio 2005
на Visual Basic 2005 занимают так много оперативной памяти? Я нашел в
интернете небольшой ответ на этот вопрос там писалось что это не реально
занимаемая память моим приложением а так сказать "прозопас" там же лежало
решение этого вопроса в виде WinAPI:
Объявляем:
Private Declare Function SetProcessWorkingSetSize Lib "kernel32" (ByVal _
hProcess As Long, ByVal dwMinimumWorkingSetSize As Long, ByVal _
dwMaximumWorkingSetSize As Integer) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

А затем по необходимости вызываем:

SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess.Handle.ToInt32,
-1, -1)

Но у меня выдает ошибку:
Ограничение PInvoke варианты возвращаться не могут.

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


-------
20-22/07 в ГСОК 'Логойск' пройдет Второй международный фестиваль байкеров.
Среди групп-участников: 'Крематорий', 'Монгол Шуудан', 'Леприконсы' и т.д.
Подробности на веб-сайте: http://www.nonstoprecords.ru

Отвечает: EROS // 18.07.2007 / 21:17

Здравствуйте, weltkind.
Ваша ошибка заключается в неверной декларации API. А именно в типах
данных.. Дело в том, что тип Long из VB6 в NET необходимо объявлять
как Integer (Int32).
Что касается решения данной проблемы, то в НЕТ есть другой подход,
аналог того, что нашли вы..
001:
System.Diagnostics.Process.GetCurrentProcess.MaxWorkingSet = New IntPtr(5000000)

Но вы должны понимать что это решение всего лишь перенесет часть
процесса из оперативной памяти в файл подкачки.. не более того! Да,
визуально в диспетчере задача это приведет в уменьшению занимаемой
памяти, но это просто визуальный обман. На мой взгляд, единственнное
место где оправдано применение этого кода - это при сворачивании
приложения в трей (чтобы освободить память для других приложений). НО
при восстановлении формы начнется обратный процесс-подрузка данных из
файла подкачки в оперативную память, что неизбежно приведет к
появлению эффекта подтормаживания приложения (особенно на слабых
машинах). Более того, Вы в состоянии расчитать необходимое
максимальное количество оперативной памяти для вашего приложения
(5000000 - это допустимый объем памяти для процеса в байтах)? Я
нет! Я бы не рекомендовал Вам использовать этот код в своих
приложениях. Доверьте этот процесс (выделения памяти ) Windows и NET..
Они лучше справятся с этой задачей...
--
С уважением,
EROS

 

Вопрос #000365: как декларировать функции

Автор вопроса: miraving // 18.07.2007 / 17:18

Здраствуйте. Покажите как правильно декларировать функции... в частности DoCmd... или посоветуйте где можно почитать. Спасибо

--------------------------------------
Категория: --- Visual Basic 5.0/6.0

Отвечает: EROS // 18.07.2007 / 21:31

Здравствуйте, miraving!
Насколько я знаю, DoCmd это не Win32 API, а встроенная функция из
пакета MS Office и соответственно ее декларировать не надо. Ее можно
просто брать и использовать..
Если же Вас интересует порядок декларирования Win32 API в VB, то вы
найдете в инете массу справочников с примерами. Вот один из лучших
справочников - API-Guide


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

 

Вопрос #000364: Фокус с калькулятором Windows

Автор вопроса: Федоренко Дмитрий Константинович // 18.07.2007 / 10:33

Здравствуйте.
Ранее через вашу систему был получен ответ, как можно заносить в форму в текстовое поле одной программы значение из формы текстового поля другой программы.
При этом используются следующие функции для определения дескрипторов окна-формы и нужных элементов на нем:

h = FindWindow(vbNullString, ByVal "ИМЯ_ФОРМЫ")
hText = FindWindowEx(h, 0, vbNullString, ByVal "ИМЯ_ТЕКСТОВОГО_ЭЛЕМЕНТА")
SendMessage hText, WM_SETTEXT, 0, ByVal "Kbyte.Ru"

Таким образом, такой вид доступа к окнам и элементам внешней программы и управления ими нами становятся возможны только в том случае, если мы можем ТОЧНО знать имена этих элементов в другой программе, чтобы использовать данные функции.
Но как правило используя чужую программу у нас чаще отсутствует её исходный код, что лишает нас информации о именах размещенных элементах в окне(предполагать же какое имя может быть у какого-либо элемента, это все равно что искать иголку в стоге сена).
Так вот вопрос. Как же поступить в этом случае?

Заранее благодарю, Дмитрий.

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

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

1. Скачайте вот этот пример http://kbyte.ru/Samples/Show.aspx?id=182
2. Запустите стандартный Windows-калькулятор.
3. Запустите скаченный пример (п. 1), нажмите правой кнопкой мышки на изображение крестика
и не отпуская его, наведите на калькулятор, в любое пустое место.
4. В программке появится имя класса - SciCalc.
5. Создайте новый проект, на форме разместите один элемент CommandButton и вставьте нижеследующий код:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
Option Explicit
'----------------------------------------------------------
'Простой пример изменения текста в калькуляторе Windows
'Автор: Немиро Алексей, 19 июля 2007 года
'Специально для проекта Kbyte.Ru
'http://kbyte.ru
'http://kbyte.ru/expert
'mailto:admin@kbyte.ru
'Copyright (c) Nemiro AS, 2007
'----------------------------------------------------------
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Const SW_RESTORE = 9
Private Const WM_SETTEXT = &HC
Private Const BM_CLICK = &HF5

Private Sub Command1_Click()
 Dim h As Long, hText As Long
 h = FindWindow("SciCalc", vbNullString)
 ActivateWindow h
 hText = FindWindowEx(h, 0, vbNullString, ByVal "")
 If hText <> 0 Then SendMessage hText, WM_SETTEXT, 0, ByVal "http://kbyte.ru - хороший сайт :)"
End Sub

Private Sub Form_Load()
 Me.Caption = "Простой пример"
End Sub

Private Sub ActivateWindow(h As Long)
 If h Then
  If IsIconic(h) Then
   Call ShowWindow(h, SW_RESTORE)
  End If
  Call SetForegroundWindow(h)
 Else
  Exit Sub
 End If
End Sub


Запустите проект (F5), нажмите на кнопку, если калькулятор Windows
запущен, то после нажатия на кнопку, в калькуляторе значение
текстового поля должно измениться на: "http://kbyte.ru - хороший сайт :)"

Обратите особое внимание на строку 24, в которой указано имя класса
SciCalc, см. в примере UltraSpy (п. 1)

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

 


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

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

Наверх

 

 

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

Работа с TreeView | Автор: Игорь Голов
Добавлено: 18.07.2007 / 18:16 | ответов: 1 | просмотров: 17

Доброго времени суток!

Подскажите, пожайлуста, как работать с TreeView: добавить Root Node и Child Node.

Платформа: Visual Basic .NET 2005

Спасибо!

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


Ответ # 1 | Автор: EROS
Добавлено:18.07.2007 / 22:52
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
Imports System.IO
Imports Microsoft.VisualBasic
''' <summary>
''' VS 2005 (VB)
''' TreeView Example
''' http://kbyte.ru
''' </summary>
''' <remarks>EROS, eros@fromru.com</remarks>
Public Class Form1

  Private Sub Form1_Load(ByVal sender As System.Object, _
              ByVal e As System.EventArgs) Handles MyBase.Load

    TreeView1.Nodes.Clear()

    Dim rootPath As String = FileIO.SpecialDirectories.MyDocuments
    Dim rootNode As TreeNode = TreeView1.Nodes.Add(Path.GetFileNameWithoutExtension(rootPath))
    rootNode.Tag = rootPath
    addFolders(rootNode)

  End Sub

  Private Sub addFolders(ByVal root As TreeNode)
    Dim folders() As String = Directory.GetDirectories(root.Tag)
    For Each folder As String In folders
      Dim node As TreeNode = root.Nodes.Add(String.Format("[{0}]", _
                         Path.GetFileNameWithoutExtension(folder)))
      node.Tag = folder
      addFolders(node)
    Next
    addFiles(root)
  End Sub

  Private Sub addFiles(ByVal root As TreeNode)
    Dim files() As String = Directory.GetFiles(root.Tag)
    For Each file As String In files
      Dim node As TreeNode = root.Nodes.Add(Path.GetFileName(file))
      node.Tag = file
    Next
  End Sub

  Private Sub TreeView1_AfterSelect(ByVal sender As Object, _
                   ByVal e As System.Windows.Forms.TreeViewEventArgs) _
                   Handles TreeView1.AfterSelect
    Me.Text = e.Node.Tag
  End Sub

  Private Sub TreeView1_NodeMouseDoubleClick(ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) _
                        Handles TreeView1.NodeMouseDoubleClick
    Process.Start(e.Node.Tag)
  End Sub

End Class

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Создание ярлыка | Автор: Игорь Голов
Добавлено: 18.07.2007 / 13:14 | ответов: 1 | просмотров: 15

Доброго времени суток!

Возник вопрос: как создать ярлык, используя Visual Basic 2005

Спасибо!

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


Ответ # 1 | Автор: Алексей
Добавлено:18.07.2007 / 14:13
Пример #1:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
Public Function CreateShortcut(ByVal sLinkFile As String, _
 ByVal sTargetFile As String, _
 Optional ByVal sArguments As String = "", _
 Optional ByVal sDescription As String = "", _
 Optional ByVal sWorkingDir As String = "") As Boolean

 Try
  Dim oShell As New Shell32.Shell
  Dim oFolder As Shell32.Folder
  Dim oLink As Shell32.ShellLinkObject

  ' Ordner und Dateinamen extrahieren
  Dim sPath As String = sLinkFile.Substring(0, sLinkFile.LastIndexOf("\"))
  Dim sFile As String = sLinkFile.Substring(sLinkFile.LastIndexOf("\") + 1)

  ' Wichtig! Link-Datei erstellen (0 Bytes)
  Dim F As Short = FreeFile()
  FileOpen(F, sLinkFile, OpenMode.Output)
  FileClose(F)

  oFolder = oShell.Namespace(sPath)
  oLink = oFolder.Items.Item(sFile).GetLink

  ' Eigenschaften der Verknьpfung
  With oLink
   If sArguments.Length > 0 Then .Arguments = sArguments
   If sDescription.Length > 0 Then .Description = sDescription
   If sWorkingDir.Length > 0 Then .WorkingDirectory = sWorkingDir
   .Path = sTargetFile

   ' Verknьpfung speichern
   .Save()
  End With

  ' Objekte zerstцren
  oLink = Nothing
  oFolder = Nothing
  oShell = Nothing

  Return True

 Catch ex As Exception
  ' Fehler! ggf. Link-Datei lцschen, falls bereit erstellt
  If System.IO.File.Exists(sLinkFile) Then Kill(sLinkFile)
  Return False
 End Try
End Function

Colorized by: Eros.CodeSyntaxColor Engine


Пример #2:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
Private Sub cmdMakeLNKFile_Click()

 'initialize the object WshShell
 Set objShell = New WshShell

 'initialize the object WshShortcut
 'the complete name of the .lnk file, include full path plus the .LNK file extension
 Set objShortcut = objShell.CreateShortcut (txtLnkName.Text)

 'the file to be called by the .lnk file, ej. "c:\windows\calc.exe"
 objShortcut.TargetPath = txtTarget.Text

 '(optional) := any command line supported by the file indicated in txtTarget.Text
 'objShortcut.Arguments = xxxx

 '(optional) : = a valid icon file : = To use the same icon of the target file, do not use the next line.
 'objShortcut.IconLocation = xxxx

 'Save the .lnk
 objShortcut.Save

End Sub

Colorized by: Eros.CodeSyntaxColor Engine


Пример #3:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
Imports IWshRuntimeLibrary

Public Function CreateShortCutOnDesktop(ByVal userID As String, _
   ByVal passWord As String) As Boolean
   Try
     Dim DesktopDir As String = _
      CType(WshShell.SpecialFolders.Item("Desktop"), String)
     Dim shortCut As IWshRuntimeLibrary.IWshShortcut

     ' short cut files have a .lnk extension
     shortCut = CType(WshShell.CreateShortcut(DesktopDir & _
      "\MyNewShortcut.lnk"), _
       IWshRuntimeLibrary.IWshShortcut)

     ' set the shortcut properties
     With shortCut
      .TargetPath = _
        System.Reflection.Assembly.GetExecutingAssembly.Location()
      .WindowStyle = 1
      .Description = "Run Typist Summary"
      .WorkingDirectory = DesktopDir
      ' the next line gets the first Icon from the executing program
      .IconLocation = _
       System.Reflection.Assembly.GetExecutingAssembly.Location() & _
       ", 0"
      ' the next line sets the userID and passWord into the shortcut
      ' as arguments
      ' which will be read from the command line.
      .Arguments = userID & ", " & passWord
      .Save() ' save the shortcut file
     End With
     Return True
   Catch ex As System.Exception
     ' add your error handling here, if any
     Return False
   End Try
  End Function

Public Sub Main()
   ' application starts here
   ' if the app is started with command line arguments, then
   ' it was started from an icon and we can use the arguments to
   ' get the data to pass directly to the main grid form, otherwise
   ' show the login form
   Dim cmdLine As String = Microsoft.VisualBasic.Command
   If cmdLine.Trim.Length = 0 Then
     ' load the Login form since no login data was passed in
     RunLogin()
   Else
     Dim m As Match
     m = Regex.Match(cmdLine, "^\s*(?<id>\w+)\s*,*\s*(?<pw>\w*)")
     If Not m.Success Then
      Dim f As New frmLogin
      RunLogin()
     Else
      ' retrieve the passed in parameters and get the login data to validate
      ' that the parameters match the user's id and password
      Dim id As String = m.Groups("id").Value
      Dim pw As String = m.Groups("pw").Value
      Dim ws As New localhost.MyWebService
      Dim ds As DataSet = ws.GetAppLogonData(CInt(id))
      Dim dt As DataTable = ds.Tables(0)
      If dt.Rows.Count = 0 OrElse _
        IsDBNull(MNS(dt.Rows(0).Item("password"))) OrElse _
        pw <> MNS(dt.Rows(0).Item("password")) Then
        MsgBox("Invalid UserID or Password Code.", MsgBoxStyle.Exclamation)
        RunLogin()
      End If
      Dim userID As Integer = MNI(dt.Rows(0).Item("userid"))
      Dim secCode As String = MNS(dt.Rows(0).Item("password"))
      Dim userName As String = MNS(dt.Rows(0).Item("lname")) & ", " & _
        MNS(dt.Rows(0).Item("fname"))
      Dim f As New frmMain(userID, passWord, userName)
      Application.Run(f)
     End If
   End If
  End Sub

  Public Function IsShortcutExtant() As Boolean
   Dim deskTopDir As String = _
     CType(WshShell.SpecialFolders.Item _
     ("Desktop"), String)
   If IO.File.Exists(deskTopDir & _
     "\MyNewShortcut.lnk") Then
     Return True
   Else
     Return False
   End If
  End Function

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Отправка СМС из приложения | Автор: Игорь Голов
Добавлено: 16.07.2007 / 15:19 | ответов: 2 | просмотров: 27

Доброго времни суток!

У меня возник вопрос:
можно ли отправить СМС из Приллжения, написанного на Visual Basic .NET 2005?

Спасибо!

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


Ответ # 1 | Автор: Алексей
Добавлено:16.07.2007 / 15:26
Можно, если найти бесплатный веб-сервис, который это делает (только без кривых картинок и прочих антиботов).

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Алексей
Добавлено:16.07.2007 / 15:27
Под веб-сервисом я имел ввиду не обязательно веб-сервис, но и просто страницу в Интернет.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


На каком языке программирования Вы программируете? | Автор: Алексей
Добавлено: 15.07.2007 / 06:38 | ответов: 14 | просмотров: 39

На каком языке программирования Вы программируете чаще всего и почему?

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


Ответ # 1 | Автор: Алексей
Добавлено:15.07.2007 / 06:41
и второй вопрос по веб:

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: EROS
Добавлено:15.07.2007 / 09:53
Попимо вышеозначенных языков ежедневно на работе приходится писать на Java,J# JScript

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Bille Gates
Добавлено:15.07.2007 / 13:11
На каком языке программирования Вы программируете?


Я ржал... Каламбур... :) Главное, Алексей, ты и сам этого не заметил :) (хотя не факт)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Алексей
Добавлено:15.07.2007 / 13:25
Главное, Алексей, ты и сам этого не заметил :)

я все вижу
и даже то, что ты не принял участие в опросе ;-)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Bille Gates
Добавлено:15.07.2007 / 14:12
я принимал участие... даже раньше чем написал про каламбур... видимо обновил страничку или ещё что-то, не засчиталось...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: Алексей
Добавлено:15.07.2007 / 14:24
я принимал участие... даже раньше чем написал про каламбур... видимо обновил страничку или ещё что-то, не засчиталось...

опиши порядок действий (и что ты видишь сейчас, активная кнопка "Голосовать"? и что было после нажатия на кнопку "Голосовать"), а то что-то не понятное творится.. причем только у тебя, больше никто не жаловался...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 7 | Автор: Bille Gates
Добавлено:15.07.2007 / 14:32
вот сейчас даже, когда последний раз тут отвечал, жал голосовать, нефига не сработало опять...
проядок:
1-активна кнопка голосовать
2-выбираю вариант
3-жму голосовать, после этого вылазит ваш голос принят...
4-дописываю ответ, и жму добавить сообщение...

Лех, я кажется понял... :) У меня всплывающие окна заблокированны (бразузер Opera 9) щас эксперимент будет... на 1 проголосовал, и открыл всплывашку, а на втором нет... что получится...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 8 | Автор: Bille Gates
Добавлено:15.07.2007 / 14:34
о... сработало... (лех, перенеси все на аякс, чтобы всплыв окон небыло... смысла в них не вижу... пусть буде как кнопка "быстрый переход" нажал, а аякс открыл её... :)
Я просто всплыв окна отрубил чтобы небыло рекламы всякой (в основном warez и порно)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 9 | Автор: Алексей
Добавлено:15.07.2007 / 15:16
перенеси все на аякс, чтобы всплыв окон небыло... смысла в них не вижу...

а я вижу, аджкса не будет в более ли мнее важных частях сайта.

пусть буде как кнопка "быстрый переход" нажал, а аякс открыл её...

это не ajax, это обычный dom :)

(в основном warez и порно)

нормальные сайты не поставят у себя порно-рекламу ;)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 10 | Автор: pasha
Добавлено:15.07.2007 / 15:36
Кстати, Алексей, как Вы вставляете у себя голосование прямо в топик? Я хочу устроить такое: Каким браузером вы пользуетесь (Maxthon фореве)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 11 | Автор: Bille Gates
Добавлено:15.07.2007 / 16:13
нормальные сайты не поставят у себя порно-рекламу ;)

ты сам им это скажи, реклама стиральной машины, шелкаешь, а там ссылка на dosug была :))) и половина ссылок когда чтото на яндексе ищешь, тоже ссылаются на какой-нить мусор... причем открывается сразу 2 странички... та которую искал(но редко) и на мусор всякий(тока траффик жрет)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 12 | Автор: Игорь Голов
Добавлено:15.07.2007 / 17:33
А я на Visual Basic . NET программирую! : ))

Почему на нём?
Просто от Visual Basic 6.0 не отошёл...

В смысле - начинал на нём, а бросать жалко....

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 13 | Автор: Алексей
Добавлено:16.07.2007 / 05:58
Кстати, Алексей, как Вы вставляете у себя голосование прямо в топик? Я хочу устроить такое: Каким браузером вы пользуетесь (Maxthon фореве)

прямо в топик могу только я :) Опрос можно устроить только в определенных форумах, например в оффтопе, и только при создании сообщения, т.е. в ответах опросы ставить нельзя (я исключение :) ..). При создании темы надо выбрать форум оффтоп, установить галку "Создать опрос" и заполнить форму опроса (вопрос и ответы, а также период опроса (при необходимости)). Для браузеров лучше создать новый топик, собственно для этого я и сделал ограничение, которое не позволяет добавлять опросы в ответы других топиков.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 14 | Автор: Алексей
Добавлено:16.07.2007 / 06:05
А я на Visual Basic . NET программирую! : ))


Да действительно, нас куда-то не туда унесло :)) Вернемся в тему.

Я чаще всего работаю с ASP .NET с использованием синтаксиса VB .NET, хотя в последнее время частенько работаю с C#, поскольку он дает больше возможностей для «извращений», нежели VB .NET :) Могу точно сказать, что VB сам по себе простой язык, но это не значит, что он плохой или имеет ограниченные возможности, вовсе нет, он прост для понимания и освоения, а возможности у него такие же, как в шарпе. Конечно, не на все 100% :), но все, что можно сделать на C#, можно сделать и на VB .NET, как ни как, крестный папа у них один - Framework .NET )))
Я редко работаю с php, хотя он тоже довольно не плох, но в крупных проектах php я никогда не буду использовать, поскольку с .NET меньше геморроя :) Если сравнить, например классический ASP и php, то на мой взгляд, php конечно же круче классического ASP, а вот до .NET php еще далековато, да и вряд ли он когда-нибудь дойдет до такого уровня, как .NET. Это всего лишь мое мнение ;) Кто хочет оспорить, попробуйте доказать, что я не прав ;-)
Приложения, Win-сервисы и прочие dll-ки я тоже иногда разрабатываю, в последнее время предпочитаю использовать для этого дела C#, хотя это уже зависит от того, что нужно написать. Иногда выгодней, с точки зрения экономии времени и/или ресурсов, написать что-то на VB .NET, или даже на VB 6.0, а может и на C++, последний использовал всего пару раз :)
Ну а Delphi я уже очень давно не использую, не вижу в этом смысла, хотя, как и у любого другого языка программирования, у Delphi тоже есть свои плюсы и минусы.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Выбор checkbox'а в IE | Автор: MrLink
Добавлено: 14.07.2007 / 00:29 | ответов: 6 | просмотров: 34

Есть программа на VB которая открывает страницу в IE на которой находятся checkbox'ы и поле где можно выбрать формат получаемых данных:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
<tbody>
              <tr valign="top">
                <td align="center" width="5%"><input value="7856486" name="BillNumber" type="checkbox"></td>

                <td width="45%">5863259</td>
                <td width="50%">09.02.2005 - 30.03.2006<input value="09.02.2005 - 30.03.2006" name="BillNumberDates" type="hidden"></td></tr>
              <tr valign="top">
                <td align="center" width="5%"><input value="78536542" name="BillNumber" type="checkbox"></td>
                <td width="45%">98756256</td>
                <td width="50%">09.02.2005 - 30.03.2006<input value="09.02.2005 - 30.03.2006" name="BillNumberDates" type="hidden"></td></tr>
</tbody>
<td>Формат:</td>
<td><select name="Format"> <option value="PDF" selected="selected">PDF</option><option value="HTML">HTML</option></select></td></tr>
<td colspan="3" align="center"><input value="Зарегистрировать" type="submit"></td>


Нужно выбрать только первый checkbox, выбрать формат HTML и нажать на кнопку "Зарегистрировать". Помогите плизз. Заранее благодарен

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


Ответ # 1 | Автор: Алексей
Добавлено:14.07.2007 / 03:57
Попробуйте передать все эти параметры в строке адреса, http://url/страница?Format=HTML, может поможет, если нет, то придется "захватывать" IE и программно искать элементы на странице и нажимать на кнопки :), но тут же возникает вопрос, что вы подразумеваете под IE, сам браузер или контрол WebBrowser? Если браузер, то что вы будете делать с остальными (FF, Opera и т.п.)? Если браузер не нужен, то можно и программно по работать, через HttpWebRequest и HttpWebResponse. Но прежде чем что-то делать, рекомендую проанализировать трафик на странице выбора формата и на следующей странице, которая открывается после нажатия на кнопку.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: MrLink
Добавлено:15.07.2007 / 20:36
Под IE я подразумеваю сам браузер(программа открывает сам браузер IE и в нем выполняет некие действия(переход, авторизация))
Остальные браузеры не нужны, нужен только IE.
Это сервет который работает по протоколу https, адрес станицы это cgi скрипт, который получает и передает данные.
Как можно проанализировать трафик?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Алексей
Добавлено:16.07.2007 / 05:51
Как можно проанализировать трафик?

любым локальным проксиком, например этим. Но это необходимо только при использовании HttpWebRequest и HttpWebResponse, т.е. без участия IE.

Раз нужен только IE, то надо копать в сторону управления другими приложениями..
Как это делается через API и какие апишки использовать, можно посмотреть здесь (конкретно FindWindow, SendMessage), правда, там примеры только для VB 6.0, но их легко можно перенести на .NET.
Конкретно для .NET, можно посмотреть здесь и здесь, возможно поможет..

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: MrLink
Добавлено:17.07.2007 / 20:13
Зачем искать окно, если я создаю обьект IE и потом в нем работаю(авторизуюсь, перехожу по ссылкам)?
С SendKey не получилось разобраться.
Можно как-нибудь обратится к этим checkbox'сам и отметить их, как например к полю, где я вводил логин и пас?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: EROS
Добавлено:18.07.2007 / 00:02
MrLink, по всей видимости вы немного недопонимаете сути.. Вариант, предложенный Алексеем, в десятки раз проще того, который пытаетесь реализовать Вы! При Вашем подходе вам необходимо четко представлять ВСЮ иерархию объектов на странице, и чтобы добраться до нужных вам контролов придется перебрать всю иерархию!!! При другом походе Вам надо лишь проанализировать траффик, выяснить каким методом отправляются данные и сгенерировать ТОЧНО такой же запрос к серверу НО уже с нужными Вам данным! Это буквально 10-15 строк кода и ВСЕ!!!! Плюс напрочь исключается звено браузера!! И ваш код будет работать абсолютно ВСЕГДА и ВНЕ зависимости от браузера! Вам не придется создавать объекта IE вообще! Более того, вы так же сможете "вводить" (читать отправлять) данные для авторизации, переходить по ссылкам и вообще делать все, что угодно со страницей.. Настоятельно рекомендую вопользоваться вариантом Алексея и изучить предложенные им примеры..

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: Алексей
Добавлено:18.07.2007 / 05:32
2MrLink
Зачем искать окно, если я создаю обьект IE и потом в нем работаю(авторизуюсь, перехожу по ссылкам)?

как раз для этого я и спрашивал #1
что вы подразумеваете под IE, сам браузер или контрол WebBrowser?

а вы мне даже ответели #2:
Под IE я подразумеваю сам браузер(программа открывает сам браузер IE и в нем выполняет некие действия(переход, авторизация))
Остальные браузеры не нужны, нужен только IE.

и что я и все, кто читает этот топик могут вам ответить после #4:
Зачем искать окно, если я создаю обьект IE и потом в нем работаю

если вы сами не понимаете, что и как вам нужно :))


ЗЫ: Вопрос по HttpWebRequest и HttpWebResponse уже много раз обсуждался на сайте, где-то даже есть готовые примеры (Форум, Эксперт, Поиск). Да и этот "метод через жо" с браузерными контролами мы тоже много раз обсуждали, естественно не в его пользу ;)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Наверх

 

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

Использование XML.Serialization
Автор: Немиро Алексей | добавлено: 19.07.2007 / 15:38 | просмотров: 1

В данном обзоре речь пойдет об использование XML.Serialization в .NET и ее применении на примере сохранения и считывания настроек программы с использованием синтаксиса языка Visual Basic .NET.

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

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

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

Не так давно мне пришлось немного поработать 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 | просмотров: 2922

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

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

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

 

Статьи на Kbyte.Ru

Наверх

 

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

Как перенаправить посетителя на другую страницу, незаметно для него?
Дата добавления: 31.07.2006 / 14:42 | просмотров: 486 | платформа: ASP .NET (VB)

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

Удаление куков (Cookies)
Дата добавления: 31.07.2006 / 15:57 | просмотров: 483 | платформа: ASP .NET (VB)

Анализ даты стандарта MM/DD/YYYY и MM/DD/YY
Дата добавления: 24.03.2007 / 10:59 | просмотров: 176 | платформа: RegEx

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

Как узнать имя текущего соединения с Интернет?
Дата добавления: 31.07.2006 / 12:53 | просмотров: 580 | платформа: VB

Как преобразовать десятичное число в шестнадцатеричное?
Дата добавления: 16.08.2006 / 20:25 | просмотров: 698 | платформа: VB

Проверить корректность E-Mail (с использованием регулярных выражений)
Дата добавления: 21.08.2006 / 20:30 | просмотров: 695 | платформа: ASP .NET (VB)

Поиск и замена символов/слов/строк
Дата добавления: 31.07.2006 / 12:28 | просмотров: 1199 | платформа: VB

Как получить имя пользователя? (с использованием API)
Дата добавления: 24.03.2007 / 12:19 | просмотров: 104 | платформа: VB .NET

 

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

Наверх

 

Юмор на Kbyte.Ru

- Вовочка, какие зубы растут последними?
- Золотые, - ответил Вовочка

 

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

 

История об узком профессиональном мышлении.
Офис-менеджер попросила посидеть за неё в приёмной. Сижу. Заходит тётенька и задаёт вопрос в лоб:
- У вас мыши есть?!
Я, недоумевая, нафига ей наши мыши:
- Только ЮЭСБИшные!
- КАКИЕ-КАКИЕ??!!! - грозно спрашивает она.
Кое-как мы друг друга поняли. Оказалось, что тётка с эпидемстанции пришла мышей на складе травить!

 

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

 

Беседуют два программиста.
- Чем программист отличается от обычного смертного?
- А тем, что в состоянии ответить на вопрос, в котором уже заключен ответ.
- Это как же?
- Ну, например, ответь на вопрос: сколько будет 2х2=4?
- Естественно TRUE!

 

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

 

– Доктор, посоветуйте, что делать. Мой муж постоянно говорит во сне.
– Позволяйте ему говорить днем.

 

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

 

Micosoft выпустила для новых русских версию MS Office 97 под торговой маркой "ВСЕ ДЕЛА 97"

 

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

 

Дочка спрашивает маму:
- А кто этот страшный, волосатый дядя с красными глазами?
- А это твой папа.
- А он что заболел?
- Нет, к интернету подключился...

 

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

 

Вовочка приехал к дедушке в деревню. Однажды днем к деду пришли гости,
тут Вовочка вбегает в дом и орет: "Там в поле бык @*ет корову!"
Дед покраснел, говорит: "Вовочка, не ругайся так, скажи лучше, мол бык
удивляет корову." Вовочка ушел, прибегает через пол-часа, орет: "Там в
поле бык удивляет всех коров!" Дед ему отвечает:
"Вовочка, бык не может удивлять одновременно больше одной коровы."
Вовочка отвечает:
- Нет может, нет может! Потому что он @б%т лошадь!

 

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

 

Разговаривают два активных пользователя Интернета:
- Ну, как дела?
- Да как тебе сказать... Все нормально вроде, вот только пальцы болят...
- А с чего это вдруг?
- Да вчера с друзьями в чате встретился, так всю ночь песни орали...

 

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

 

Объявление в автобусе: "Землю - крестьянам! Фабрики - рабочим! Деньги - кондуктору!"

 

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

 

Я пришел к тебе с дискетой - рассказать, что сеть упала.

 

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

 

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

Наверх


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

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

Copyright (c) Nemiro AS, 2005-2007


В избранное