Невидимка...

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

Невидимка...

Сообщение Aleksei » 12.04.2003 (Сб) 16:47

Как сделать что бы моя программа работала невидимо. Одним словом, что бы пользователь не видел её, но она работала бы.

goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Сообщение goro » 12.04.2003 (Сб) 17:51

Можешь сделать так
APP.taskvisible = false
но под 2000/ХР она (программа будет видна в списке процессов).
кстати такой вопрос в форуме проскакивал.
ПРЕВЕД

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 12.04.2003 (Сб) 18:06

2Goro: А в 98/95 Виндах в списке процессов не видно будет?

goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Сообщение goro » 12.04.2003 (Сб) 18:11

Gigahard писал(а):2Goro: А в 98/95 Виндах в списке процессов не видно будет?

При app.taskvisible=false не будет (насколько я помню). У меня стоит одна ХР.
ПРЕВЕД

Firestorm
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 946
Зарегистрирован: 02.05.2002 (Чт) 14:36
Откуда: Russia

Сообщение Firestorm » 13.04.2003 (Вс) 19:48

на vbnet.ru в библ. кодов есть пример, как скрыть из списка (для винды98 и МЭ)... :lol:
...просто гламурный падонак...
_________________
reborn! v.2 :twisted:
_________________

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

Сообщение Amed » 13.04.2003 (Вс) 20:02

Кстати, в Windows XP невозможно скрыть задачу из Диспетчера Задач... Защита, однако :(

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 13.04.2003 (Вс) 20:46

Кстати я попробовал... В 98х App.Taskvisible=False не работает... ИМХО это че то другое....

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 13.04.2003 (Вс) 21:02

Gigahard писал(а):Кстати я попробовал... В 98х App.Taskvisible=False не работает... ИМХО это че то другое....

А что по вашему Taskvisible? разве это связано с процессом?
Это только не показывает вашу прогу в панели задач!
95\98\МЕ показывают только проги. следовательно следующий код скроет программу в этих виндах :
из апи-гайд:
Код: Выделить всё
Const RSP_SIMPLE_SERVICE = 1
Const RSP_UNREGISTER_SERVICE = 0
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
Public Sub MakeMeService()
    Dim pid As Long, reserv As Long
    'Get the current process ID
    pid = GetCurrentProcessId()
    'Register as service
    regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub
Public Sub UnMakeMeService()
    Dim pid As Long, reserv As Long
    'Get the current process ID
    pid = GetCurrentProcessId()
    'Unregister as service
    regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)
End Sub
Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    MakeMeService
    'Right now, you're program is hidden from the CTRL-ALT-DEL-list
End Sub
Private Sub Form_Unload(Cancel As Integer)
    UnMakeMeService
End Sub


А вот сделать это в 2000\ХР нельзя. они все процессы показывают.
можно только программе дать имя системных служб чтобы не бросалось в глаза.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 13.04.2003 (Вс) 21:28

Ох зря я в эту дискуссию залез... Попахивает нюками и троянами :) :roll: 8)

Хой
Не математик
Не математик
 
Сообщения: 541
Зарегистрирован: 26.08.2002 (Пн) 0:21
Откуда: Россия

Сообщение Хой » 13.04.2003 (Вс) 23:22

Gigahard писал(а):Ох зря я в эту дискуссию залез...

Выход справа от логотипа... :-)

Emzari
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 06.09.2002 (Пт) 9:08
Откуда: Georgia

Сообщение Emzari » 14.04.2003 (Пн) 17:19

Можно просто своиство формы Visible поставит в False
Тогда при запуске форма не будет видна но работать будет а диспетчер задач серавно ево увидет.

Firestorm
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 946
Зарегистрирован: 02.05.2002 (Чт) 14:36
Откуда: Russia

Сообщение Firestorm » 14.04.2003 (Пн) 17:38

я сомневаюсь (не видал еще таких), что какая-то программа может скрыться из списка задач (вин2k,xp или др.программа с просмотром запущенных программ)... :roll:
могу посоветовать тогда либо заблокировать c-a-d (см. vbnet.ru библ. кодов), или сделать программу "неубиваемую" (такой трюк не срабатывает с "убийством" программы, т.е. насильным закрыванием... для виндовских гляделок запущенных программ неплохо подходит)...

Код: Выделить всё
Private Declare Function ShellExecute Lib "shell32.dll" 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 Sub Form_Load() 'собсно загружаем данные из файла
On Error Resume Next
fn = FreeFile
On Error Resume Next
Open "c:\prikol.sys" For Input As fn
    Line Input #fn, str
Close fn
t = Left(str, InStr(str, "|") - 1)
l = Mid(str, InStrRev(str, "|") + 1, Len(str) - InStrRev(str, "|"))
Form1.Top = t
Form1.Left = l
End Sub
'------------------
Private Sub Form_Unload(Cancel As Integer) 'сохраняем позицию формы в файл
On Error Resume Next
fn = FreeFile
On Error Resume Next
Open "c:\prikol.sys" For Output As fn
    Print #fn, Form1.Top & "|" & Form1.Left
Close fn
On Error Resume Next
Call ShellExecute(hwnd, "Open", App.Path & "\" & App.EXEName & ".exe", "", App.Path, 1)
End Sub
...просто гламурный падонак...
_________________
reborn! v.2 :twisted:
_________________

Dr.Daemn
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.04.2003 (Вс) 13:27

Сообщение Dr.Daemn » 14.04.2003 (Пн) 20:53

Спрятать прогу под WinNT/2000/XP можно! Нужно сделать свой перехватчик на NtQuerySystemInformation и подменять выдаваемые ей результаты. Правда на VB этого IMHO не сделать - слишком высокоуровневый язык. Я пробовал писать на Delphi такое - MessageBox'ы он перехватывал отлично, но с NtQuerySystemInformation я что-то намудрил и где-то ошибся (т.к. инфы мало) и вся система падала. Кому интересно - поищите статейку, она уже давно по инету ходит (правда под WinXP уже не пашет, там какие-то небольшие изменения и TaskMan слетает через пару минут работы, и скрывает вместе с нужным еще добрую часть процессов, ну да неважно), а также нафдите книгу Рихтера (Richter) "Programming Applications for Windows" (издательства Microsoft Press) - эта книга - MUST HAVE каждому программеру под Win32, особенно сишникам. Я на основе этих двух вещей под Дельфой и писал. А на VB... имхо никак, или слишком уж запаристо...

Firestorm
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 946
Зарегистрирован: 02.05.2002 (Чт) 14:36
Откуда: Russia

Сообщение Firestorm » 15.04.2003 (Вт) 11:37

такого на практике не встречал, но думаю вполне реально... :lol:
...просто гламурный падонак...
_________________
reborn! v.2 :twisted:
_________________

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 28.04.2003 (Пн) 18:43

Проблемы с SP будут....

Клеить......

ЗЫ Кстати на REXX в OS/2 видел скрипт-бинарный файл:
Сналала скрипт аля ВБ и следом машинные коды и работал(если не вру то это была какаято инсталяция)
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Desta
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 30.04.2003 (Ср) 7:43

Сообщение Desta » 30.04.2003 (Ср) 7:56

А почему бы не перехватывать сообщения, посылаемые непосредственно в диспетчер задач? тогда в списке процессов ДИСПЕТЧЕРА видно не будет :)

Санёк
Бывалый
Бывалый
 
Сообщения: 233
Зарегистрирован: 08.12.2001 (Сб) 19:42
Откуда: Russia

Сообщение Санёк » 03.05.2003 (Сб) 0:13

Спрятать прогу нигде не возможно. Всё равно она будет в списке процессов. Если в 9x не видно список процессов, это не значит, что другие проги не могут его отобразить. Правда можно сделать как драйвер, но это уже не на VB.

xfolder
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 133
Зарегистрирован: 22.07.2002 (Пн) 18:57
Откуда: United Kingdom

Сообщение xfolder » 03.05.2003 (Сб) 4:33

zachem tebe skrivat progu zamaskiruy ee pod sistemnii process i delov to
nazovi ee svchost.exe i pomesti v direcotriy windows

nikto ee cheres task manager zakrit nesmojet i podi dogodaysya kakya is svchostov tvoya.
ih tam vsegda ne menshe treh

.taskvisible udalyaet ee iz spiska program , toje prigoditsya

nadeys hot delo delaesh


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

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

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

    TopList