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

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



Выпуск # 162


http://www.kbyte.ru/

 

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

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

 

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

Новости Kbyte.Ru

    Новый раздел - «RSS-ленты Kbyte.Ru»

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

    Вопрос #000383: Локализация приложения

    Вопрос #000380: Visible and FOR

    Вопрос #000379: Ссылка в ВБ 6.0

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

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

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

    iframe

    Программная смена Пользователя

    Программное Выключение / перезагрузка/ Перевод в спящий режим

    Работа с TreeView

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

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

    Работа с SQL – Запросы

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

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

    Работаем с MIME

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

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

Юмор на Kbyte.Ru

 

Новости Kbyte.Ru

 

20 июля 2007 / Новый раздел - «RSS-ленты Kbyte.Ru»

На сайте появился раздел «RSS-ленты Kbyte.Ru», в котором собраны все RSS-ленты нашего сайта.
Если Вы заметите какие-либо ошибки в работе раздела или RSS-лент, пожалуйста сообщите об этом Администратору сайта, либо на форуме «Сайт».

 

Все новости Kbyte.Ru

Наверх

 

 

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

 

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


Вопрос #000383: Локализация приложения

Автор вопроса: weltkind // 21.07.2007 / 06:23

День добрый! В очередной раз обращаюсь к вам за помощью!!
Решил я перевести свою программку на другой язык (немецкий) решил
реаализовать это таким образом
в свойствах формы пункт Localizable выставить значение True
и всем обектам в пункте Text ввести соответствующие надписи на др языке
задать предварительно в свойствах формы в пункте Language выствить
необходимый мне язык но тут возникла проблема как реализовать
переключение языка непосредственно при выполнении так как в среде
разработке при изменении пункта Language с default на Dutch все надписи на
форме меняються а вот при выполненни незнаю как сделать
добавил сл код непомог:
System.Threading.Thread.CurrentThread.CurrentUICulture = New
System.Globalization.CultureInfo(тут вписывал код языка (1049)(1033) и
т.д.)
Помогите Плиз !!
Если вы знаете как можно по другому реализовать многоязычность сообщите...
Зарание Вам блгадарен!!

Отвечает: EROS // 21.07.2007 / 21:26

Здравствуйте, weltkind!
Ваш код, в принципе, верный. Но вы должны понимать как ЭТО работает.
Дело в том, что локализованные надписи на кнопках, надписях и т.д. загружаются в
процедуре InitializeComponent.. Отсюда можно сделать вывод, что если Вы
установите локаль ДО инициализации компонентов (например в
конструкторе формы Sub New), то у Вас все заработает...
Если же вы хотите менять надписи в режиме Run-Time, то это делается
примерно так...

'// EROS (VB 2005,ChangeUICulture Example)
'//
'// Устанавливаем нужную локаль
My.Application.ChangeUICulture("en-US") '// Англ. локаль
'// Получаем менеджера русурсов для этой локали
Dim resources As ComponentResourceManager = New ComponentResourceManager(Me.GetType)
'// Перебираем все контролы на форме и меняем надписи
For Each item As Control In Controls
resources.ApplyResources(item, item.Name)
Next
'// Это на тот случай если текст заголовка тоже локализованный
resources.ApplyResources(Me, "$this")
'// Наслаждаемся результатом

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

 

Вопрос #000380: Visible and FOR

Автор вопроса: Taras // 21.07.2007 / 06:23

Здраствуйте!
У меня такой вопросик
создал я форму на ней розместил 4 текстовых поля (1 для ввода количиства видимых текстовых полей, видимый)
3 невидимых тексттовых поля (невидимы)
кнопку которой присвоил следущее значение
Dim i As Integer
Dim n As Integer
n = text1.text
For i=0 to n
text(n).visible = true
next

после того как мы задади текстовому полю 1 значение и нажмем на кнопку
в зависимости от заданого числа станут видимыми н-ное количиство текстовых форм
но после нажатия на клавишу проесходить ошибка...
Где моя ошибка?

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

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

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

Специально для вас накатал небольшой, но интересный пример :)

Создайте стандартный EXE-проект и просто вставьте ниже следующий код:
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:
Option Explicit
'Пример динамического создания контролов VB 6.0
'Автор примера: Немиро Алексей, 21 июля 2007 года
'Специально для проекта Kbyte.Ru (http://kbyte.ru)
'Copyright (c) Nemiro AS, 2007
'mailto:admin@kbyte.ru

'регистрируем обработчик событий для кнопки - cmdRefresh
Private WithEvents cmdRefresh As CommandButton

Private Sub Form_Load()
 'подгоняем размер формы
 Form1.Width = 6000
 Form1.Height = 4000

 'добавляем надпись - Label
 Form1.Controls.Add "VB.Label", "Label1"
 With Form1!Label1
  .Top = 120
  .Left = 120
  .AutoSize = True
  .Caption = "Введите число:"
  .Visible = True
 End With

 'Добавляем текстовое поля для ввода чисел
 Form1.Controls.Add "VB.TextBox", "txtNum"
 With Form1!txtNum
  .Top = 120
  .Left = Form1!Label1.Width + Form1!Label1.Left + 120
  .Height = 300
  .Width = 500
  .Text = 0
  .Visible = True
 End With

 'Добавляем кнопку
 Set cmdRefresh = Controls.Add("VB.CommandButton", "cmdRefresh")
 With Form1!cmdRefresh
  .Top = 120
  .Left = Form1!txtNum.Width + Form1!txtNum.Left + 120
  .Height = 320
  .Width = 1200
  .Caption = "Обновить"
  .Visible = True
 End With
 
End Sub

'Обработчик нажатия динамической кнопки
Private Sub cmdRefresh_Click()
 Dim i As Long
 If Not IsNumeric(Form1!txtNum.Text) Then MsgBox "Допускаются только числа!", vbExclamation: Exit Sub

 'удаляем все контролы с именем txtArr
g:
 For i = 0 To Form1.Controls.Count - 1
  If Left(Form1.Controls(i).Name, 6) = "txtArr" Then
  Form1.Controls.Remove Form1.Controls(i).Name
  GoTo g
  End If
 Next i

 'Добавляем указанное количество текстовых полей
 For i = 0 To CLng(Form1!txtNum.Text)
  Dim sName As String
  sName = "txtArr" & i
  Form1.Controls.Add "VB.TextBox", sName
  With Form1.Controls(Form1.Controls.Count - 1)
   .Top = Form1.Controls(Form1.Controls.Count - 2).Height + Form1.Controls(Form1.Controls.Count - 2).Top + 20
   .Left = 120
   .Height = 300
   .Width = 1200
   .Text = "поле " & i
   .Visible = True
  End With
 Next i

End Sub



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

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

Dim i As Integer
Dim n As Integer
n = text1.text
For i=0 to n
text(n).visible = true
next


Если text - это массив текстовых полей, то n должен быть равен UBound(text) - 1
Для работы с массивами элементов управления, также можно использовать операторы Load и Unload:
001:
002:
003:
Load Text(UBound(Text))
Text(UBound(Text) - 1).Text = "заходи на http://kbyte.ru!"
Text(UBound(Text) - 1).Visible = True

или
001:
002:
003:
004:
005:
If UBound(Text) > 1 Then
For i = 1 To UBound(Text)
 Unload Text(i)
Next i
End If

или
001:
002:
003:
004:
005:
006:
007:
Dim i As Long
For i = 0 To 100
 Load Text(UBound(Text))
 Text(UBound(Text) - 1).Text = "текстовое поле #" & i
 Text(UBound(Text) - 1).Left = Text(UBound(Text) - 2).Left + Text(UBound(Text) - 1).Width + 20
 Text(UBound(Text) - 1).Visible = True
Next i

и т.д. и т.п.

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

 

Вопрос #000379: Ссылка в ВБ 6.0

Автор вопроса: Тарас // 21.07.2007 / 06:23

Здраствуйте :)

Вопрос:
Как добавить ссылку на Microsoft Excel
6/7/8/9.0 (или любую другую версию) Object Library
у меня VB 6.0 sp5 русская версия и при выборе в меню проект я там добовать ссылку не вижу :(
Если вас незатруднит пожалуйста скинте мне исходник по работе с екселем пожалуйста...
или более подробно разпишите, пожелуйста...
С уважением Тарас!!! :)

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

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

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

Меню Проект (Project) => Ссылки (Reference), появится окно "Ссылки (Reference)", установите
флажки на библиотеки, которые вы хотите добавить в проект, и нажмите "Ok".

PS: Microsoft Excel скорей всего не будет, поскольку Эксель - это
часть офиса, так что надо искать MS Office ;)

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

 

Вопрос #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

 


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

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

Наверх

 

 

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

iframe | Автор: Kolya007
Добавлено: 21.07.2007 / 04:22 | ответов: 9 | просмотров: 19

На странице есть iframe, использую его, т.к. include несрабатывает с ASP страницами...
Вопрос: Возможно ли сделать так чтобы iframe при необходимости увеличивался, т.е. менял значение height... Запись height="*" и height="100%" неподходит...
Или дайте совет по include, что будет лучше...

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


Ответ # 1 | Автор: Алексей
Добавлено:21.07.2007 / 06:20
На странице есть iframe, использую его, т.к. include несрабатывает с ASP страницами...

моя твоя не понимать :)

Вопрос: Возможно ли сделать так чтобы iframe при необходимости увеличивался, т.е. менял значение height... Запись height="*" и height="100%" неподходит...

хз, юзай JavaScript тогда..

зы: iframe - das nicht gut

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


Ответ # 2 | Автор: Kolya007
Добавлено:21.07.2007 / 12:35
моя твоя не понимать :)

Вместо
001:
<!--webbot bot="Include" U-Include="sections/news_s1.asp" TAG="BODY" -->

испльзую
001:
<iframe name="news" frameborder="no" height="100%" width="100%" align="top" marginheight="0" marginwidth="0" scrolling="no" src="sections/news_s1.asp"></iframe>

т.к.
001:
<!--webbot bot="Include" U-Include="sections/news_s1.asp" TAG="BODY" -->

несрабатывает из-за .asp, будь он .htm или .html, то все бы работало...
хз, юзай JavaScript тогда..

зы: iframe - das nicht gut

Мне надо, чтобы он вместо выдавания скрола(scrolling), менял значение height на необходимый...

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


Ответ # 3 | Автор: Алексей
Добавлено:21.07.2007 / 13:02
Вместо
001:
<!--webbot bot="Include" U-Include="sections/news_s1.asp" TAG="BODY" -->

испльзую
001:
<iframe name="news" frameborder="no" height="100%" width="100%" align="top" marginheight="0" marginwidth="0" scrolling="no" src="sections/news_s1.asp"></iframe>

т.к.
001:
<!--webbot bot="Include" U-Include="sections/news_s1.asp" TAG="BODY" -->


несрабатывает из-за .asp, будь он .htm или .html, то все бы работало...


А что мешает юзать обычный инклуд?
001:
<!--  #include file ="sections/news_s1.asp"   -->


зы: FrontPage - das nicht Gut.

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


Ответ # 4 | Автор: Kolya007
Добавлено:21.07.2007 / 13:30
А что мешает юзать обычный инклуд?

То же, что и
001:
<!--webbot bot="Include" U-Include="sections/news_s1.asp" TAG="BODY" -->

Он несрабатывает...
зы: FrontPage - das nicht Gut.

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

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


Ответ # 5 | Автор: Алексей
Добавлено:21.07.2007 / 13:38
Он несрабатывает...

вероятно проблема в сервере, хотя по умолчанию в IIS все должно работать.

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

Какой-нибудь Macromedia Dreamweaver по-моему гораздо лучше.

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


Ответ # 6 | Автор: Kolya007
Добавлено:21.07.2007 / 13:46
Какой-нибудь Macromedia Dreamweaver по-моему гораздо лучше.

Знаю, но его у меня нет... А искать нет желания...
вероятно проблема в сервере, хотя по умолчанию в IIS все должно работать.

Скорее всего, ведь ОС пиратская...

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


Ответ # 7 | Автор: Алексей
Добавлено:21.07.2007 / 14:00
Скорее всего, ведь ОС пиратская...

Это тут явно не причем :)

В чем именно выражает не работоспособность include?

Инклуды бывают разные:
<!--#include virtual=""--> - виртуальный путь к файлу
<!--#include file=""--> - физический путь к файлу

код тоже можешь показать, может там чего не так...

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


Ответ # 8 | Автор: Kolya007
Добавлено:22.07.2007 / 04:07
Инклуды бывают разные:
<!--#include virtual=""--> - виртуальный путь к файлу
<!--#include file=""--> - физический путь к файлу

Я пробовал оба... Но результат нулевой... Он его словно пропускает...

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


Ответ # 9 | Автор: Алексей
Добавлено:22.07.2007 / 04:11
С file полюбому должен работать...
Во включаемоме asp-файле asp-код должен быть записан в тэгах <%%>.
Еще попробуй изменить расширение файла на .inc.

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


Программная смена Пользователя | Автор: Игорь Голов
Добавлено: 20.07.2007 / 12:45 | ответов: 0 | просмотров: 17

Как сменить Пользователя программно?

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

Спасибо!

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


Программное Выключение / перезагрузка/ Перевод в спящий режим | Автор: Игорь Голов
Добавлено: 20.07.2007 / 12:39 | ответов: 1 | просмотров: 17

Как программно:

1. Выключить компьютер:
2. Перезагрузить компьютер;
3. Перевести компьютер в спящий режим.

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

Спасибо!

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


Ответ # 1 | Автор: Алексей
Добавлено:21.07.2007 / 05:56
http://kbyte.ru/Expert/Show.aspx?id=191

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


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

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

Подскажите, пожайлуста, как работать с 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 | просмотров: 25

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

Возник вопрос: как создать ярлык, используя 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


Наверх

 

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

Работа с SQL – Запросы
Автор: Хабибулин А. (aka Bille Gates) | добавлено: 22.07.2007 / 04:43 | просмотров: 1

В данной статье рассмотрены часто используемые SQL-запросы и приведены примеры их использования.

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

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

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

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

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

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

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

 

Статьи на Kbyte.Ru

Наверх

 

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

Как узнать, в какой папке находится приложение?
Дата добавления: 01.08.2006 / 22:02 | просмотров: 352 | платформа: VB .NET

Использование включаемых файлов
Дата добавления: 01.08.2006 / 11:40 | просмотров: 405 | платформа: ASP

Как определить текущую раскладку клавиатуры?
Дата добавления: 16.08.2006 / 19:38 | просмотров: 442 | платформа: VB

Анализ даты стандарта RFC822
Дата добавления: 24.03.2007 / 10:58 | просмотров: 116 | платформа: RegEx

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

Как программно изменить дату в Calendar?
Дата добавления: 25.03.2007 / 08:33 | просмотров: 252 | платформа: ASP .NET (VB)

Как получить позицию курсора на экране?
Дата добавления: 16.08.2006 / 19:47 | просмотров: 424 | платформа: VB

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

Как запретить изменение размера панелей в SplitContainer?
Дата добавления: 26.08.2006 / 12:35 | просмотров: 435 | платформа: VB .NET

Как получить данные из базы данных?
Дата добавления: 31.07.2006 / 18:31 | просмотров: 422 | платформа: ASP

 

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

Наверх

 

Юмор на Kbyte.Ru

Мадонна пострадала от российского пиратского рынка, так как на Горбушке уже продается на DVD запись ее концерта, который будет в Москве в сентябре.

 

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

 

Земля
2050 год
Генетический программер разбирает очерендной кусок генной последовательности и видит следующий комментарий:
/* A eti geny nado by ubrat nahren. Archangel Gavriil */

 

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

 

Смотрю в выходной новости по Первому в 21.00. Весь выпуск - одни катастрофы: идет опознание жертв родственниками, в Питере горит Троицкий собор, какой-то взрыв, какое-то убийство, теракт... От сюжета к сюжету становится все страшнее.
В конце выпуска диктор объявляет: "Вот и все новости дня, которые мы успели вам сообщить. А сейчас на нашем канале смотрите художественный фильм "Это могло случиться с тобой".

 

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

 

Встречаются два программиста.
- Как дела?
- Да вот, с досом проблемы.
- А что случилось? Компьютер не грузится, Command.com виснет или что-нибудь другое?
- Да дет, у бедя дасморк!

Прислал MAGICIAN

 

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

 

Встречает медведь мужика в лесу:
- Ты кто?
- Я турист.
- Это я турист, а ты - завтрак туриста!

 

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

 

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

 

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

 

Купил мужик мышь для компа оптическую. Круто! В руководстве написано - работает на любой поверхности...
Повозил по столу - работает!
...по бумаге - работает!!
...по линолеуму - работает!!!
Что бы ещё попробовать?
По ЗЕРКАЛУ!!!! - "Обнаружено новое устройство..."

 

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

 

Играет симфонический оркестр. Дирижер делает последний взмах, все замолкают, только мужик на контрабасе - бум, бум, бум, бум:
Через минуту тоже закончил, лоб вытирает:
- Фу-у-х! Еле догнал!

 

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

 

Прикол с Файн Ридером. Это программа такая, которая вроде как распознаёт текст введённый со сканера. Чуство юмора у неё сродни её брату - переводчику Lingvo (видать семейное). Так вот. Недавно приятель попросил отсканировать и естессно распознать для реферата одну медицинскую книжку. Нужно сказать, книжка была здоровая и на месте сгибов Великий распознаватель вместо некоторых букв ставил разные палочки (типа / ] l и пр.), по его мнению более похожие на оригинал. Я значит потом читаю (как раз описание какой-то страшной болезни, мурашки по коже), исправляю недочёты и вот вижу такой перл, цитирую: "...вероятность летального исхода после этой болезни незначительная :]" это он в конце смайлик добавил, вроде как понял шутку :)))

 

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

 

- А вы поменяете пять пачек обычного порошка на один грамм необычного?

 

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

 

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

Наверх


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

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

Copyright (c) Nemiro AS, 2005-2007


В избранное