Продолжает висеть...

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

Продолжает висеть...

Сообщение Etc » 20.06.2006 (Вт) 10:10

А у меня тут проблема. Есть прога открывания сидюков(одна из миллиона подобных) в которой используются FSO и WM библиотеки.
Так вот при выходе она продолжает висеть в памяти. Я подозреваю WM. Пробовал сбрасывать все в Nothing но не получается ниче.

ps Все таки создал новую тему. Наверно щас получу по шапке. :roll: Но в другом месте мой вопрос похоже никто не видел
Ну не знаю я чего в подписи написать... :-)

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 20.06.2006 (Вт) 10:20

А можно саму прогу в студию? Так просто сложно что-то сказать.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 20.06.2006 (Вт) 10:59

Название темы какое то обреченное, если честно :) Прямо так и веет от него большой человеческой проблемой :)

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 20.06.2006 (Вт) 15:46

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

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 20.06.2006 (Вт) 15:55

У меня она вообще не запустилась. Пишет, что не найден WindowsMediaPlayer. Хотя, библу я подключила, но библа однозначно была не та, которую ты использовал..... Даже по именам файлов, потерянная и та которая у меня есть не совпадают.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 20.06.2006 (Вт) 16:03

Попробуй после unload popup написать вот такой код:
Код: Выделить всё
END

:wink:
Подпись проходит рефакторинг

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 20.06.2006 (Вт) 16:08

Ну не знай. У меня просто написано Windows Media Player/
Вот скрин: Изображение
Ну не знаю я чего в подписи написать... :-)

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 20.06.2006 (Вт) 16:15

У меня Win2000 Server. Это, как мне кажется, компонента от WindowsXP.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 20.06.2006 (Вт) 16:18

Lumen Ничего не изменилось. Все равно висит.

Oxygen У меня XP Home.
Ну не знаю я чего в подписи написать... :-)

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 20.06.2006 (Вт) 16:29

О чем я и говорю. Это, насколько мне помнится WindowsMediaPlayer 8. Я может быть и ошибаюсь, но посмотреть не получится у меня твой пример. Потому как этого компонента у меня нету, а качать из сети и ставить MediaPlayer восьмой/старше, у меня на работе нет никакого желания. Что тебе посоветовать? Попробуй заместо Unload popup написать End.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 20.06.2006 (Вт) 16:29

Странно... Вообще-то выполнение оператора end дает тот же результат, что и нажатие кнопки "Стоп" в IDE.
Подпись проходит рефакторинг

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 20.06.2006 (Вт) 16:31

Oxygen Уже пробовал. см. тпики выше

Ну че же делать?
Ну не знаю я чего в подписи написать... :-)

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 20.06.2006 (Вт) 16:33

Я специально выделила слово ЗАМЕСТО. Выше советовалось после Unload прописывать End. А удалить Unload и просто прописать End ты не пробовал?
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 20.06.2006 (Вт) 16:40

Etc
У меня работает и так и так. Я имею в виду и после и заместо unload popup. У меня вот как получилось:
Код: Выделить всё
Public Sub exitme()
Set FSO = Nothing
Set WM = Nothing
End
End Sub
Подпись проходит рефакторинг

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 20.06.2006 (Вт) 16:48

Все равно не помогает.

Кстати в IDE тоже если просто нажать выход (на форме) то в диспетчере остается еще один прцесс VB6.
Ну не знаю я чего в подписи написать... :-)

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 20.06.2006 (Вт) 16:55

Ну не знаю. Как так может быть, что у меня работают оба варианта, а у тебя ни тот, ни другой? У нас что Basic'и разные?
Подпись проходит рефакторинг

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 20.06.2006 (Вт) 16:57

RayShade
Да-а-а, действительно веет этой проблемой. :lol: :lol:
Подпись проходит рефакторинг

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 20.06.2006 (Вт) 17:25

Ну ладн.
А вообще есть еще какие-нить способы откр-закр лотков дисководов. Массив сидюков есть.
Ну не знаю я чего в подписи написать... :-)

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 20.06.2006 (Вт) 17:47

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

Открыть/закрыть CD-ROM   
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Sub Command1_Click()
Call mciSendString("CD-ROM открыт", 0&, 0&, 0&)
End Sub
Private Sub Command2_Click()
Call mciSendString("CD-ROM закрыт", 0&, 0&, 0&)
End Sub


Код рабочий.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 20.06.2006 (Вт) 17:47

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Использование:
mciSendString "set cdaudio door closed wait", "", 0, 0 'это для закрытия
mciSendString "set cdaudio door open wait", "", 0, 0 'это для открытия
Подпись проходит рефакторинг

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 21.06.2006 (Ср) 7:47

Oxygen Lumen Ваш код открывает\закрывает только один дисковод, а мне надо чтобы открывались и другие.
Ну не знаю я чего в подписи написать... :-)

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 21.06.2006 (Ср) 9:10

MSDN писал: писал(а): HOWTO: How to Address Multiple CDAudio Devices in Windows NT
ID: Q137579


--------------------------------------------------------------------------------
The information in this article applies to:

Microsoft Win32 Software Development Kit (SDK), versions 3.5, 5.51, 4.0

--------------------------------------------------------------------------------


SUMMARY
To use more than one CDAudio device in Windows 3.1, you had to change the System.ini file. For more information on this process, please see the following article in the Microsoft Knowledge Base:

Q82469 Using Multiple CD-ROM Drives on One Machine
Now, in Windows NT 3.5 and Windows 95, support for multiple CDAudio devices has been added to the MCI CDAudio driver. However, the problem now becomes one of how to address a particular CDAudio device.



MORE INFORMATION
MCI solves the problem of how to control a particular CDAudio device. All you need to do is open the CDAudio device, specifying the drive letter of the CD-ROM drive to be used as the element to open. The MCI string syntax to do this is as follows:




open d: type cdaudio alias cd

In this case, the CD-ROM drive is drive D:

The following code fragment demonstrates the equivalent MCI command syntax code:



MCI_OPEN_PARMS mciOpen;
TCHAR szElementName[4];
TCHAR szAliasName[32];
DWORD dwFlags;
DWORD dwAliasCount = GetCurrentTime();
DWORD dwRet;
TCHAR chDrive;

chDrive = TEXT('D'); // Use drive D

ZeroMemory( &mciOpen, sizeof(mciOpen) );
mciOpen.lpstrDeviceType = (LPTSTR)MCI_DEVTYPE_CD_AUDIO;
wsprintf( szElementName, TEXT("%c:"), chDrive );
wsprintf( szAliasName, TEXT("CD%lu:"), dwAliasCount );

mciOpen.lpstrElementName = szElementName;
mciOpen.lpstrAlias = szAliasName;

dwFlags = MCI_OPEN_ELEMENT | MCI_OPEN_SHAREABLE | MCI_OPEN_ALIAS |
MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_WAIT;

dwRet = mciSendCommand(0, MCI_OPEN, dwFlags, (DWORD)(LPVOID)&mciOpen);

if ( dwRet == MMSYSERR_NOERROR ) {

// The device was opened successfully

}
else {

// The device was not opened successfully

}

Additional query words: 3.50 4.00 Windows 95


Думаю, что хотя код и на С, но особых проблем с его пониманием у тебя не будет. Неужели так сложно было почитать MSDN? Там все подробно и понятно написано. (единственное, что этот код не будет работать в Win95 и WinNT3.5)
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 21.06.2006 (Ср) 13:34

Oxygen
Спасибо будем разбираться
Ну не знаю я чего в подписи написать... :-)

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 21.06.2006 (Ср) 17:22

Все сделал на основе этого http://www.devx.com/tips/Tip/13324?type=kbArticle
Спасибо всем кто помог.

Кому интересно можете посмотреть
Ну не знаю я чего в подписи написать... :-)

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 27.06.2006 (Вт) 1:12

Oxygen писал(а):
MSDN писал: писал(а): HOWTO: How to Address Multiple CDAudio Devices in Windows NT
ID: Q137579


--------------------------------------------------------------------------------
The information in this article applies to:

Microsoft Win32 Software Development Kit (SDK), versions 3.5, 5.51, 4.0

--------------------------------------------------------------------------------


SUMMARY
To use more than one CDAudio device in Windows 3.1, you had to change the System.ini file. For more information on this process, please see the following article in the Microsoft Knowledge Base:

Q82469 Using Multiple CD-ROM Drives on One Machine
Now, in Windows NT 3.5 and Windows 95, support for multiple CDAudio devices has been added to the MCI CDAudio driver. However, the problem now becomes one of how to address a particular CDAudio device.



MORE INFORMATION
MCI solves the problem of how to control a particular CDAudio device. All you need to do is open the CDAudio device, specifying the drive letter of the CD-ROM drive to be used as the element to open. The MCI string syntax to do this is as follows:




open d: type cdaudio alias cd

In this case, the CD-ROM drive is drive D:

The following code fragment demonstrates the equivalent MCI command syntax code:



MCI_OPEN_PARMS mciOpen;
TCHAR szElementName[4];
TCHAR szAliasName[32];
DWORD dwFlags;
DWORD dwAliasCount = GetCurrentTime();
DWORD dwRet;
TCHAR chDrive;

chDrive = TEXT('D'); // Use drive D

ZeroMemory( &mciOpen, sizeof(mciOpen) );
mciOpen.lpstrDeviceType = (LPTSTR)MCI_DEVTYPE_CD_AUDIO;
wsprintf( szElementName, TEXT("%c:"), chDrive );
wsprintf( szAliasName, TEXT("CD%lu:"), dwAliasCount );

mciOpen.lpstrElementName = szElementName;
mciOpen.lpstrAlias = szAliasName;

dwFlags = MCI_OPEN_ELEMENT | MCI_OPEN_SHAREABLE | MCI_OPEN_ALIAS |
MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_WAIT;

dwRet = mciSendCommand(0, MCI_OPEN, dwFlags, (DWORD)(LPVOID)&mciOpen);

if ( dwRet == MMSYSERR_NOERROR ) {

// The device was opened successfully

}
else {

// The device was not opened successfully

}

Additional query words: 3.50 4.00 Windows 95


Думаю, что хотя код и на С, но особых проблем с его пониманием у тебя не будет. Неужели так сложно было почитать MSDN? Там все подробно и понятно написано. (единственное, что этот код не будет работать в Win95 и WinNT3.5)


здесь пPrivate Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As String, ByVal uReturnLength As _
Long, ByVal hwndCallback As Long) As Long
Private Declare Function GetVersion Lib "kernel32" () As Long



Private Sub OpenCloseDoor(strDriveLetter As String, Optional blnDoOpen As Boolean = True)
Dim AliasName$, strOpenClose$
strOpenClose = IIf(blnDoOpen, "Open", "Closed")
AliasName = "Laufwerk" & strDriveLetter
mciSendString "Open " & strDriveLetter & ": Alias " & AliasName & " Type CDAudio", 0, 0, 0
mciSendString "Set " & AliasName & " Door " & strOpenClose, 0, 0, 0
End Sub

Private Sub Command1_Click()
OpenCloseDoor "g:" 'Открываем

End Sub

Private Sub Command2_Click()
OpenCloseDoor "g:", False 'Закрываем

End Sub
роще!!!

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 27.06.2006 (Вт) 12:23

NIC
Я думаю что код по ссылке которую я дал тоже не сложен. :lol:
Ну не знаю я чего в подписи написать... :-)

Efiop
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 06.06.2006 (Вт) 12:14
Откуда: РК

Сообщение Efiop » 27.06.2006 (Вт) 13:36

Etc, попробовал, у мня нормально, в процессах не остается.
Выложи свой wmp.ocx может в нем дело.

Etc
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 18.11.2004 (Чт) 19:07
Откуда: Челябинск

Сообщение Etc » 27.06.2006 (Вт) 17:58

Efiop
Проблема уже решена - я пошел другим путем.
Спасибо за внимание, можешь скачать прогу выше.
Ну не знаю я чего в подписи написать... :-)


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

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

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

    TopList