Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / работа с объектами / 25 сообщений из 41, страница 1 из 2
21.06.2012, 23:18
    #37849386
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
нужно найти на рабочем столе ярлыки, зная путь к программе от ярлыков, и заменить параметры ярлыка.
пробую так:
Код: vbnet
1.
2.
3.
Dim whs As Object
    Dim lnk As Object
    Set whs = CreateObject("WScript.Shell")

дальше нужно написать
Код: vbnet
1.
2.
3.
For each ярлык in ярлыки
блаблабла
next ярлык

подскажете, как правильно это записАть?
...
Рейтинг: 0 / 0
22.06.2012, 00:01
    #37849429
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
...
Рейтинг: 0 / 0
22.06.2012, 00:02
    #37849430
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
...
Рейтинг: 0 / 0
22.06.2012, 13:08
    #37850166
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Akina,

это я знаю, не то. мне нужно найти, для начала, среди всех ярлыков на рабочем столе тот, которые на ссылается на программу, путь и имя которой я знаю
...
Рейтинг: 0 / 0
22.06.2012, 14:12
    #37850297
декстоп
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
десктоп это обычный фолдер на диске
который находится в специальном месте
имеет специальное имя

значит перечислить ярлыки на рабочем столе
означает перечислить файлы с расширением *.lnk
в фолдере C:\Users\{user}\Desktop

файлы можно перечислить с помощью команды Dir
...
Рейтинг: 0 / 0
22.06.2012, 15:45
    #37850529
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
декстопдесктоп это обычный фолдер на диске
который находится в специальном месте
имеет специальное имя

значит перечислить ярлыки на рабочем столе
означает перечислить файлы с расширением *.lnk
в фолдере C:\Users\{user}\Desktop да, я в курсах. пробовал
Код: vbnet
1.
2.
3.
For Each lnk In whs.SpecialFolders("Desktop")
MsgBox lnk.TargetPath
Next

не фурычит
...
Рейтинг: 0 / 0
22.06.2012, 16:05
    #37850595
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Что тебе возвращает whs.SpecialFolders("Desktop")?
А что тебе нужно перебрать?
...
Рейтинг: 0 / 0
22.06.2012, 16:20
    #37850634
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Shocker.ProЧто тебе возвращает whs.SpecialFolders("Desktop")? папку с объектами рабочего стола Shocker.ProА что тебе нужно перебрать? нужно было перебрать все ярлыки декстопфайлы можно перечислить с помощью команды Dir перечитал обучалку по vb6 про функцию Dir - сделал так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Command1_Click()
Dim whs As Object
Dim lnk  As Object
Dim FileName As String
Set whs = CreateObject("WScript.Shell")
FileName = Dir(whs.SpecialFolders("Desktop") & "\*.*")
If FileName <> "" Then
Do While FileName <> ""
FileName = Dir() ' &#232;&#235;&#232; FileName = Dir
    If Right(FileName, 4) = ".lnk" Then
    Set lnk = whs.CreateShortcut(whs.SpecialFolders("Desktop") & "\" & FileName)
    MsgBox lnk.TargetPath
    End If
Loop
End If
Set whs = Nothing
Set lnk = Nothing
End Sub


из 6 ярлыков на рабочем столе находит только 2, причём один с пустым путём. почему-то
...
Рейтинг: 0 / 0
22.06.2012, 16:25
    #37850640
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
почему в конце возвращает пустой путь, в принципе понятно. по коду. так и должно быть. осталось разобраться, почему не находит 4 ярлыка
...
Рейтинг: 0 / 0
22.06.2012, 16:32
    #37850652
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
QlewerShocker.ProЧто тебе возвращает whs.SpecialFolders("Desktop")? папку с объектами рабочего столаВот именно. ПАПКУ. Объект "Папка". Единичный.
QlewerQlewerShocker.ProА что тебе нужно перебрать? нужно было перебрать все ярлыкиПеребрать тебе нужно было КОЛЛЕКЦИЮ ФАЙЛОВ. Нельзя перебрать единичный объект. Блин, учил-учил ЦЭ, теперь ты туда же.

Qlewerне фурычитосваивай "ересь" и "не взлетает"
...
Рейтинг: 0 / 0
22.06.2012, 16:44
    #37850682
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Shocker.Pro,

до кода в сообщении не дочитал?) 12761495 поч возвращает ток 2 ярлыка и 4? и как выглядит путь к C:\Documents and Settings\All Users \Рабочий стол через спец папки? некоторые ярлыки прячутся там
...
Рейтинг: 0 / 0
22.06.2012, 16:48
    #37850691
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
*2 из 4. Shocker.Proосваивай "ересь" и "не взлетает" у каждого уважающего себя человека должны быть свои коронные выражения, которые он сам(обязательно сам!) украл и запатентовал
...
Рейтинг: 0 / 0
22.06.2012, 16:52
    #37850703
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Qlewer, надо видимо знать путь этой папки и название, и как это зависит от Винды, локали
...
Рейтинг: 0 / 0
22.06.2012, 17:05
    #37850736
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
разобрался. C:\Documents and Settings\All Users\Рабочий стол это SpecialFolders(0) некоторые ярлыки не отпределяются, ну и фиг с ними. не так важно. как теперь дописать к найденному ярлыку параметры?
...
Рейтинг: 0 / 0
22.06.2012, 18:19
    #37850904
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Qlewer, фор еах это не мой конёк
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim objWSHShell As Object
Set objWSHShell = CreateObject("WScript.Shell")

Dim Рабочий_стол_расположен As String
'Desktop - Рабочий стол
Рабочий_стол_расположен = objWSHShell.SpecialFolders("Desktop")

Dim Количество_файлов_в_папке As Long
'количество файлов в папке по адресу ..., если ответ получим Empty, значит, такой папки не существует
Количество_файлов_в_папке = CreateObject("Scripting.FileSystemObject").GetFolder(Рабочий_стол_расположен).Files.Count

Set objWSHShell = Nothing
...
Рейтинг: 0 / 0
22.06.2012, 19:32
    #37850988
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
катастрофа, ... а зачем это?)

я пока что пытаюсь сообразить, как прописать параметры в существующий ярлык. пытаюсь так:
Код: vbnet
1.
2.
3.
Set lnk = whs.CreateShortcut(whs.SpecialFolders("Desktop") & "\" & FileName)
lnk.Arguments = "/secondary"
lnk.Save

получается какая-то хрень
...
Рейтинг: 0 / 0
22.06.2012, 19:41
    #37850992
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Qlewer,
может я отстал от жизни, но когда спрашивают
>нужно найти на рабочем столе ярлыки
то это значит, что нужно перебрать файлы из папки Рабочий стол или нет?
...
Рейтинг: 0 / 0
22.06.2012, 19:46
    #37850995
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
катастрофаQlewer,
может я отстал от жизни, но когда спрашивают
>нужно найти на рабочем столе ярлыки
то это значит, что нужно перебрать файлы из папки Рабочий стол или нет? твой код, если он рабочий, находит количество файлов заданной директории. какой-либо пользы от этого - 0. к тому же ярлыки уже найдены, нужны ярлык определён, теперь нужно дописать к этому ярлыку параметры.
...
Рейтинг: 0 / 0
22.06.2012, 19:50
    #37850997
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Qlewer,
>дописать к этому ярлыку параметры
что это?
какие у ярлыка есть параметры?
...
Рейтинг: 0 / 0
22.06.2012, 19:51
    #37850999
работа с объектами
Qlewerразобрался. C:\Documents and Settings\All Users\Рабочий стол это SpecialFolders(0) некоторые ярлыки не отпределяются, ну и фиг с ними. не так важно. как теперь дописать к найденному ярлыку параметры?
А у ярлыка как ты параметры считываешь?
А может к ярлыку нельзя дописывать параметры?
А зачем тебе это нужно?
...
Рейтинг: 0 / 0
22.06.2012, 20:09
    #37851019
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
катастрофачто это?
какие у ярлыка есть параметры? параметры запуска проги, на которую этот ярлык ссылается. Иван ДырявыйА у ярлыка как ты параметры считываешь? никак. и зачем? ставлю так
Код: vbnet
1.
lnk.Arguments = "/secondary"

потом сохраняю
Код: vbnet
1.
lnk.Save

но что-то в этом не так... нужно как-то иначе. либо удалить предыдущий ярлык, либо ещё что-то. придётся пробовать методом проб и ошибок, раз никто не в курсе Иван ДырявыйА зачем тебе это нужно? запускать чужую программу с параметрами
...
Рейтинг: 0 / 0
22.06.2012, 21:26
    #37851080
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Qlewerя пока что пытаюсь сообразить, как прописать параметры в существующий ярлык. пытаюсь так:
Код: vbnet
1.
2.
3.
Set lnk = whs.CreateShortcut(whs.SpecialFolders("Desktop") & "\" & FileName)
lnk.Arguments = "/secondary"
lnk.Save

получается какая-то хрень а нет. всё работает. просто так идеально, что изменения в ярлыке незаметны для глаз. просто добавляются параметры в уже существующий ярлык. а я думал придётся возиться с извлечением свойств, удалением и замещением ярлыка. оказалось всё намного проще
...
Рейтинг: 0 / 0
22.06.2012, 21:42
    #37851094
работа с объектами
QlewerQlewerя пока что пытаюсь сообразить, как прописать параметры в существующий ярлык. пытаюсь так:
Код: vbnet
1.
2.
3.
Set lnk = whs.CreateShortcut(whs.SpecialFolders("Desktop") & "\" & FileName)
lnk.Arguments = "/secondary"
lnk.Save

получается какая-то хрень а нет. всё работает. просто так идеально, что изменения в ярлыке незаметны для глаз. просто добавляются параметры в уже существующий ярлык. а я думал придётся возиться с извлечением свойств, удалением и замещением ярлыка. оказалось всё намного проще
В чём смысл?
Открыл ярлык, заменил параметры....
Или ты вредоносное что то пытаешься?

ноги бреешь?
...
Рейтинг: 0 / 0
22.06.2012, 21:53
    #37851099
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Иван ДырявыйВ чём смысл?
Открыл ярлык, заменил параметры.... провода провёл, перегоревшие лампы заменил и пока педали аккомулятора крутишь можно в косынку сыграть Иван Дырявыйноги бреешь? у меня рецесивные гены: волосы светлые. можно не бриться - и так красиво XD
...
Рейтинг: 0 / 0
23.06.2012, 04:27
    #37851273
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с объектами
Иван ДырявыйОткрыл ярлык, заменил параметры....
Или ты вредоносное что то пытаешься?Это он пытается скайп вторым экземпляром запустить... Наверное, думает, что если будет подменить свойства ярлыка для запуска - то и прога подумает, что это совершенно другой её экземпляр
BZ, хватит страдать-то. Документацию по Skype (знаешь же, где F1) хоть удосужился поизучать? И что там говорится по поводу запуска нескольких экземпляров. А также работы через одно и то же сетевое подключение к ИНету.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / работа с объектами / 25 сообщений из 41, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]