mboost-dp1

Visual basic


Gå til bund
Gravatar #1 - sm00king
18. feb. 2003 00:50
Jeg har efterhånden programmeret visual basic i et stykke tid, og jeg arbejder på et serviceprogram. Jeg kan saktens kører det sådan det ligger i baggrunden men hvis du har fx xp, så hvis du tager joblisten frem ligger det under programmer istedet for processor. Det skulle meget gerne ind under processor fordi programmerne IKKE må kunne lukkes ned. Mange tager joblisten frem og lukker de programmer ned der kører sådan de er sikker på alt er lukket. Lidt kritisk for programmet må IKKE lukkes ned!
Ved i hvordan man får programmet ind under processor. PLZ HELP ME, da jeg skal bruge det HURTIGT!
Gravatar #2 - Jar
18. feb. 2003 09:10
hvis programmet ikke har nogen synlige vinduer burde det ikke ligge der.
Gravatar #3 - Acro
18. feb. 2003 09:33
#1, #2:
Jeg mener at de ligger i joblisten så længe de har vinduer - uagtet om de er visuelle eller ej, så hvis du laver det som en ren funktion, uden et designlag (hvilket du formenligt har), så skulle det gerne forsvinde af sig selv.

Udover det kan du jo lave alle mulige smarte tricks for at forhindre det kan lukkes ned, eller ikke helt - men man kan omgå det på mange måder, så programmet med det samme starter en ny instans af sig selv!
Gravatar #4 - Raenil
18. feb. 2003 09:42
@<STRONG>sm00king</STRONG>
Den bedste måde at gøre det på er at lave den som en service, som du selv nævner det. Hvilken version af VB bruger du?
Gravatar #5 - Acro
18. feb. 2003 09:53
#1:
Mit forslag lyder også på først og fremmest at skifte til Visual Basic.NET!
Gravatar #6 - sm00king
18. feb. 2003 12:12
Tak for svarene..
Har selv fundet en fix ide med commanden: Shell, og så sætte den til at starte op i baggrunden. Det virker fortræffeligt, men som du nævner det Acro skulle jeg jo nok lave nogle former for advarsler.
Acro kan du give nogle eksembler? Står og skal bruge det om 6 timer så det er pritty kritisk!

Til Raenil, jeg bruger visual basic 6.0..
Gravatar #7 - sm00king
18. feb. 2003 12:20
Glemte at skrive:
Hvordan finder jeg adressen til Internet Explorer på en vilkensomhelst computer? Somregl ligger windows jo på forskellige drevs, og det er måske installeret forskellige stedet.
Er der evt. nogle steder i Registry hvor jeg kan hente adressen fra?

Under normale omstændigheder ville jeg nok kigge på nettet efter disse ting men dette er lidt MEGET kritisk!
Gravatar #8 - Raenil
18. feb. 2003 12:26
Windows kataloget på enhver maskine vil altid svare til "%systemroot%"

Hvis du taster det ind i en startfil/genvej/hvadsomhelst, så vil den finde frem til C:winnt eller C:windows eller hvor du nu har installeret windows.
Gravatar #9 - sm00king
18. feb. 2003 12:44
I know.. Men du kan jo godt installere windows på C drevet og installere ixplorere på fx D. det er derfor det er så svært. Har prøvet det med systemroot men har set flere computere hvor de installere programmer på et drev for sig selv.. fx windows på C.. programmer på D.. og sikkerhedscopi på E
Gravatar #10 - Raenil
18. feb. 2003 13:00
Skulle jeg komme med et bud på en nøgle, der kunne fortælle dig det, så er det den her:
[HKEY_LOCAL_MACHINESOFTWAREClassesApplicationsiexplore.exeshellopencommand]
Gravatar #11 - sm00king
18. feb. 2003 13:32
Tusind tak.. tror det kan bruges :D
Gravatar #12 - Acro
18. feb. 2003 14:08
#11:
Du kan med fordel bruge funktion til at hente DOS-variabler i Visual Basic.

Mener det er Env("ProgramFiles") du så skal bruge, det er noget hurtigere..

Kan også godt være at det hedder Environ(strVarName), er ikke sikker!
Gravatar #13 - Jar
19. feb. 2003 10:58
acro: nej, prøv at enumerere alle toplevel vinduer, så vil du skal du se løjer.
Gravatar #14 - sm00king
19. feb. 2003 11:36
Tak for hjælpen ;)
Environ is a good thing !!
Jeg har fået tiden udskudt lidt så nu er jeg ikke så presset.
Jeg har brugt hele natten til at lede på nettet efter et sted hvor der står hvordan man kan få sit program ind under processor, men jeg kunne ikke finde det.
Min idê med at lave en Shell("filplacering",vbHide) virkede ikke (underligt for den gjorde på internet explorer)

Hvis i har en løsning på dette så SKRIV endelig. Jeg står vist allerede jer gutter dybt i gæld fra igår :D
Gravatar #15 - sm00king
19. feb. 2003 11:42
En lille ting til. Er der forresten muligt at skrive dit program i uden en brugerface? Altså som bare ren commandoer, uden en brugerface hvor der er knapper osv? Tror måske det er det jeg gør galt. Tror ihvertfald ikke du kan fjerne den når du bare laver en standard EXE.

Jeg kender sq ikke så meget til vb inu men man må jo spørge hvis man vil vide.
Gravatar #16 - sm00king
19. feb. 2003 15:12
Jeg er vist ved at være tæt på at have fundet løsningen, men jeg har et problem. Her er koden

Module:

Public Declare Function RegisterServiceProcess Lib "kernel32.dll" (ByVal dwProcessId As Long, ByVal dwType As Long) As LongPublic Declare Function GetCurrentProcessId Lib "kernel32.dll" () As LongPublic Const RSP_SHOW = &H0Public Const RSP_HIDE = &H1

Form:
Public Sub AppHide(Optional ByVal sh As Boolean = True)
RegisterServiceProcess GetCurrentProcessId, IIf(sh = True, RSP_HIDE, RSP_SHOW)
End Sub
Private Sub Form_Load() AppHide (True)
End Sub

Fejlmelding:
Run-time error '453':
Can't find DLL entry point RegisterServiceProcess in kernel32.dll

Jeg har læst scriptet skulle virke på ALLE operativsystemer incl. XP som jeg har, men hvorfor laver den så den fejl? Der stod at det skulle ind i et BAS module, er det ikke det samme som et normalt modul?
Gravatar #17 - sm00king
19. feb. 2003 17:17
Ahh.. mit 4 inlæg itræk.. Ville bare lige sige at hvis nogle skulle nu var igang med at hjælpe mig så har jeg fundet løsningen. denne enkelte linje:

<STRONG>App.TaskVisible = False</STRONG>

det er nok :)
Gravatar #18 - Cyrack
20. feb. 2003 08:12
@s00king:
Hvis du ikke bruger noget interface i dit progrm, så kunne du jo lave det som en .exe uden nogen forms (kan ikke huske hvad skabelonen hedder)... ellers kunne du også bare lave en dll som du loader med rundll32.exe (ved ikke om det virker, har blot læst om det...)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login