[help]Как скопировать файл на рабочий стол и в главное меню?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

[help]Как скопировать файл на рабочий стол и в главное меню?

Сообщение zaf » 21.05.2006 (Вс) 16:00

Добрый день!

У меня есть 3 вопроса

1) как можно скопировать на робочий стол файл (незная реального адреса)

2) как добавить ярлык в Главное Меню?

3) как сделать Автозапуск (при влючении компьютера)

Подскажите plz

,ZAF

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 16:14

Что значит не зная реального адреса?
Если ты имеешь ввиду то что *:\Documents And Settings\***\

То

Environ("USERPROFILE") + добавляй "Рабочий стол\" или что тебе там надо

__________

Автозагрузка:
Создаём ключ с любым именем в ветке
/Software/Microsoft/Windows/CurrentVersion/Run/

ключ должен быть строковым - его значение - путь к программе, которую нужно запустить при запуске виндозы.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.05.2006 (Вс) 17:08

Хакер писал(а):Environ("USERPROFILE") + добавляй "Рабочий стол" или что тебе там надо

Зачем? Ведь есть реестр и/или SpecialFolders.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 17:10

Любую проблему я сначала пытаюсь решить встроенными средствами языка, и только потом прибегать а API и прочему...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 21.05.2006 (Вс) 17:43

Хакер писал(а):Любую проблему я сначала пытаюсь решить встроенными средствами языка, и только потом прибегать а API и прочему...


А в папку Windows как копировать?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 17:54

environ("windir")
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 21.05.2006 (Вс) 18:04

Хакер писал(а):environ("windir")


FileCopy App.Path & "" & -----, Environ("windir") & "" & Msinet.ocx На запятую жалуется! Почему?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 18:38

Проверь чтоб ампы не были слитны с каким нибудь словом (иначе он его за хекс принимает), а вообще лучше нафиг их не использовать - не вижу смысл преобразовывать стинги в стринги.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 21.05.2006 (Вс) 18:53

FileCopy "C:\Documents and Settings\Karki\Рабочий стол\Проэкт VB\WareZ" & "\" & "Msinet.ocx", Environ("windir") & "\system32\" & "Msinet.ocx"


Почему пишет Premission denied ??

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.05.2006 (Вс) 19:07

Хакер писал(а):Любую проблему я сначала пытаюсь решить встроенными средствами языка, и только потом прибегать а API и прочему...

А знаешь, что даст твой метод на не русскоязычной Windows?
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 19:38

zaf писал(а):Почему пишет Premission denied ??


Потому что файл используется другой прогрой или другим компонентом, короче он занят и его нельзя переписать...

alibek писал(а):А знаешь, что даст твой метод на не русскоязычной Windows?

environ - работает на любой версии, а вот что я буду прибавлять к environ это уже моё дело, и если я буду писать софт, который будут юзать на не-советских :) виндах я естественно предусмотрю такой вариант.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 21.05.2006 (Вс) 19:46

Хакер писал(а):
zaf писал(а):Почему пишет Premission denied ??


Потому что файл используется другой прогрой или другим компонентом, короче он занят и его нельзя переписать...

alibek писал(а):А знаешь, что даст твой метод на не русскоязычной Windows?

environ - работает на любой версии, а вот что я буду прибавлять к environ это уже моё дело, и если я буду писать софт, который будут юзать на не-советских :) виндах я естественно предусмотрю такой вариант.


Как проверить есть файл или нет?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 19:55

Тебе нужно проверить наличие файла?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 21.05.2006 (Вс) 20:00

Хакер, а если софт, который ты пишешь, потребуется поставить не на американскую, а на итальянскую систему с соответствующим названием папки?

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 21.05.2006 (Вс) 20:05

:evil: сучайно 2 раза нажал
Последний раз редактировалось zaf 21.05.2006 (Вс) 20:10, всего редактировалось 1 раз.

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 21.05.2006 (Вс) 20:07

Amed писал(а):Хакер, а если софт, который ты пишешь, потребуется поставить не на американскую, а на итальянскую систему с соответствующим названием папки?


ну не будет он для Шотландцев писать софт!:)

Хакер писал(а):Как проверить есть файл или нет?

Тебе нужно проверить наличие файла?


А как каким образом?
Посвяти плиз

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.05.2006 (Вс) 20:11

Хакер писал(а):environ - работает на любой версии, а вот что я буду прибавлять к environ это уже моё дело, и если я буду писать софт, который будут юзать на не-советских :) виндах я естественно предусмотрю такой вариант.

Ну предусмотри, как называется папка рабочего стола на голландской винде? А на иврите? А на любом компе, где админ сменил стандартные расположения специальных папок на (например) C:\Profiles\<user>\Десктоп?
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 20:54

2All, если я буду писать такую интернациональную прогу, я естественно об этом позабочусь... И точка на этом.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.05.2006 (Вс) 21:10

Хакер, а зачем тогда советовать изначально кривые решения?

Если нужно, чтобы эта прога работала только у тебя на компе -- вбей туда полный путь к своим документам.
Если нужно, чтобы она работала ещё у кого-то -- имей в виду, что у большого количества россиян Винда нелокализованная, а значит, Environ + "Рабочий стол" не прокатит.

Не говоря уже о том, что в Win9x переменной USERPROFILE нет совсем.



zaf писал(а):
Хакер писал(а):Как проверить есть файл или нет?

Тебе нужно проверить наличие файла?


А как каким образом?
Посвяти плиз

Кривой способ: If Len(Dir(FileName)) Then 'файл существует

Некривой способ: делать с файлом что тебе нужно, и отлавливать ошибку. (Что, если файл появится либо исчезнет как раз между твоей проверкой, и собственно работой с ним?)
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 21:33

tyomitch, Win9X - скоро будет чем-то вроде легенде о Лохнесском чудовище. А у кого стоит нелок. винда (кстати у нас таких единицы) - то она стоит английская - и там следовательно название папки будет понятное.

Впрочем, я только предложил.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.05.2006 (Вс) 21:43

Хакер писал(а):tyomitch, Win9X - скоро будет чем-то вроде легенде о Лохнесском чудовище.

Расскажи это BV, GSerg-у, и остальным в числе 4% посетителей форума, которые сидят под Win98.
Изображение

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 21.05.2006 (Вс) 22:20

tyomitch писал(а):
Хакер писал(а):tyomitch, Win9X - скоро будет чем-то вроде легенде о Лохнесском чудовище.

Расскажи это BV, GSerg-у, и остальным в числе 4% посетителей форума, которые сидят под Win98.


Че спорите?
Подскажи правильный способ тогда!

И можете показать пример который в реестр на автозапуск добавит файл C:\Doc\ss.exe

че за цифра такая 40000?
типа 40000чел за 7 часов просмотрели мой топик?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 22:27

Код: Выделить всё

Public Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal szData As String, ByVal cbData As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Public Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal szData As String, ByRef lpcbData As Long) As Long


Public Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long


Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = &H80000006

Public Const KEY_QUERY_VALUE = &H1         'Permission to query subkey data.
Public Const KEY_SET_VALUE = &H2           'Permission to set subkey data.
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_READ = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
Public Const KEY_WRITE = KEY_SET_VALUE Or KEY_CREATE_SUB_KEY
Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_SUB_KEY Or KEY_CREATE_LINK Or KEY_SET_VALUE

Public Const REG_OPTION_NON_VOLATILE = 0&
Public Const REG_OPTION_VOLATILE = &H1

Public Type SECURITY_ATTRIBUTES
  nLength As Long
  lpSecurityDescriptor As Long
  bInheritHandle As Long
End Type

Public Enum RegTypes
    RegNonee = 0
    RegSZ = 1
    RegExpandSz = 2
    RegBinary = 3
    RegDword = 4
    RegDwordLittleEndian = 4
    RegDwordBigEndian = 5
    RegLink = 6
    RegMultiSz = 7
    RegResourceList = 8
    RegFulResourceDesc = 9
End Enum

'Чтение значения
Public Function RegGetValue(Root As Long, SubKey As String, Key As String) As String
    Dim Buffer As String, hKey As Long, nType As Long, nSize As Long
    RegGetValue = ""
    If Not RegOpenKeyEx(Root, SubKey, 0, KEY_READ, hKey) Then
        nSize = 0
        RegQueryValueEx hKey, Key, 0, nType, Buffer, nSize
        If hKey And nSize > 0 And nType = RegSZ Then
            Buffer = Space(nSize + 1)
            RegQueryValueEx hKey, Key, 0, nType, Buffer, nSize
            RegGetValue = Left(Buffer, nSize - 1)
            RegCloseKey hKey
        End If
    End If
End Function

'Запись в реестр
Public Sub RegSetValue(Root As Long, SubKey As String, Key As String, value As String)
    Dim hKey As Long, sa As SECURITY_ATTRIBUTES, nDisp As Long
    If Not RegCreateKeyEx(Root, SubKey, 0, vbNull, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, sa, hKey, nDisp) Then
        RegSetValueEx hKey, Key, 0, RegSZ, value, Len(value) + 1
        RegCloseKey hKey
    End If
End Sub

RegSetValue XYZ, "Software/Microsoft/CurrentVersion/Run", "MyAutoRunProga777", """c:\doc\ss.exe"""


Где XYZ - либо currentuser либо localmachine, в зависимости от того как тебе какой автозапуск, только для того усера, на котором он ставится, или глобально для компа.

__________
Про число:
Код: Выделить всё

UPDATE " . TOPICS_TABLE . "
        SET topic_views = topic_views + 1
        WHERE topic_id = $topic_id

выполняется при каждом viewtopic'е так что либо да, либо шутка админов...
Последний раз редактировалось Хакер 21.05.2006 (Вс) 22:32, всего редактировалось 1 раз.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.05.2006 (Вс) 22:32

zaf писал(а):
tyomitch писал(а):
Хакер писал(а):tyomitch, Win9X - скоро будет чем-то вроде легенде о Лохнесском чудовище.

Расскажи это BV, GSerg-у, и остальным в числе 4% посетителей форума, которые сидят под Win98.


Че спорите?
Подскажи правильный способ тогда!

http://bbs.vbstreets.ru/viewtopic.php?t=19706
Изображение

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 21.05.2006 (Вс) 23:07

Хакер писал(а):RegSetValue XYZ, "Software/Microsoft/CurrentVersion/Run", "MyAutoRunProga777", """c:\doc\ss.exe"""


Software/Microsoft/CurrentVersion/Run
путь правильный?
У мя в реестре тут "Software/Microsoft/" такго "CurrentVersion" нет

Может так нада?
Software/Microsoft/windows/CurrentVersion/Run

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 23:15

Да! Чёт я вообще уже стал... наверно на пенсию пора...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 21.05.2006 (Вс) 23:16

Хакер писал(а):Да! Чёт я вообще уже стал... наверно на пенсию пора...


Да лана тебе Еще проживеш лет 100 :D

__________________

Пол кода красным выделяет :(

Вот я приклеил посмотри
Вложения
autorun.rar
AUTORUN
(2.04 Кб) Скачиваний: 191

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.05.2006 (Вс) 23:22

:lol:

Поправил...
Вложения
autorun.rar
Поправка
(3.66 Кб) Скачиваний: 181
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 22.05.2006 (Пн) 4:04

оффтоп:
Просмотров: 50459
Посмотрел на цифру и зашел в топик... что-то не то...
Бороться и искать, найти и перепрятать!

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 22.05.2006 (Пн) 10:37

Хакер писал(а)::lol:

Поправил...


Спасибо!
Ща посмотрю

MeMBus писал(а):оффтоп:
Просмотров: 50459
Посмотрел на цифру и зашел в топик... что-то не то...


Что занчит ОФФТОП
Тут мне помогают разбираться!

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList