Article View: be.comp.programming
Article #15659Re: Visual Basic
From: The Contact
Date: Thu, 07 Sep 2000 17:44
Date: Thu, 07 Sep 2000 17:44
110 lines
4405 bytes
4405 bytes
Tazman wrote:
>
> Hallo allemaal
>
> Ik ben nu een beetje bezig met visual basic, en nu wil ik een menu maken die
> gezipte programma's uitpakt, kan iemand me een klein beetje op weg helpen
> hoe ik dat in elkaar moet zetten.
> Of is er misschien een site die hier tips of een tutorial voor heeft.
> Ik heb al diverse sites afgezocht voor tips of tutorials maar er staat
> vanalles op behalve wat ik zoek.
>
> Groetjes
> Tazman
Als je programma niet hoeft te wachten tijdens het unzippen, zou ik
werken met shell:
<!-- START CODE -->
Dim dID As Double
dID = Shell("winzip -x bestand.zip")
<!-- STOP CODE -->
Zie MSDN voor meer uitleg over Shell (om bv programma's geminimaliseerd
uit te voeren of zo).
Als je programma wel moet wachten, moet je gebruik maken van
API-functies. Dit is wel zeer ingewikkeld.
<!-- START CODE -->
Private Type STARTUPINFO
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type
Private Declare Function WaitForSingleObject Lib "kernel32" (byVal
hHandle As Long, ByVal dwMilliseconds As Long) As Long
Pricate Declare Function CreateProcessA Lib "kernel32" (ByVal
lpApplicationName As Long, ByVal lpCommandLine As String, ByVal
lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal
bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal
lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo
As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As
Long) As Long
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const INFINITE = -1&
Public Sub ExecCmd (cmdLine$)
Dim proc As PROCESS_INFORMATION
Dim start As STARTUPINFO
start.cb = Len(start)
ret& = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS,
0&, 0&, start, proc)
ret& = WaitForSingleObject(proc.hProcess, INFINITE)
ret& = CloseHandle(proc.hProcess)
End Sub
' Hier komt de code die je dan moet aanroepen om bv WinZip op te
starten:
ExecCmd "winzip -x bestand.zip"
<!-- STOP CODE -->
Allereerst, sorry indien er typefouten zijn (geen copy-paste wegens
andere pc).
Ten tweede, ik ben niet zeker dat "winzip -x bestand.zip" het bestand
zal unzippen, probeer dit eerst in een DOS-shell.
Ten derde, indien je de unzip-routines wil gebruiken (dus een eigen
unzipper schrijven) raad ik je aan de sourcecode te zoeken van
OpenSource-unzippers, en daaruit de stappen te leren. Het is niet
aangeraden omdat het eenvoudiger is een programma aan te halen (dus mbv
ExecCmd of Shell) dan een ganse routine in je programma te steken. En
zoals je waarschijnlijk al weet zijn programmeurs lui :-)
--
The Contact
"Ones and zeros represent more than just the binary count.
They represent the mass knowledge we know as Internet."
~~~~~~~~~~~~~~~~~~~~~~~~~~
TheContact@MailAndNews.com
Technical Details
Message-ID:
<39B7D22D.A1F0FA51@mail.com>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!supernews.com!195.162.196.200.MISMATCH!news.grmbl.tm!news.tvd.be!newsfeed.nettuno.it!bignews.mediaways.net!ams-newsfeed.speedport.net!newsfeed.speedport.net!newsfeeds.belnet.be!news.belnet.be!afrodite.telenet-ops.be!not-for-mailReferences:
<39aebb45$0$27093@reader4>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,d4066a8c5bf712aa X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2000-09-07 10:44:22 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!supernews.com!195.162.196.200.MISMATCH!news.grmbl.tm!news.tvd.be!newsfeed.nettuno.it!bignews.mediaways.net!ams-newsfeed.speedport.net!newsfeed.speedport.net!newsfeeds.belnet.be!news.belnet.be!afrodite.telenet-ops.be!not-for-mail Message-ID: <39B7D22D.A1F0FA51@mail.com> From: The Contact <no_email_spammer@mail.com> Organization: NXD X-Mailer: Mozilla 4.75 [en] (X11; U; Linux 2.2.16 i586) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: be.comp.programming Subject: Re: Visual Basic References: <39aebb45$0$27093@reader4> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 110 Date: Thu, 07 Sep 2000 17:44:13 GMT NNTP-Posting-Host: 213.224.109.122 X-Trace: afrodite.telenet-ops.be 968348653 213.224.109.122 (Thu, 07 Sep 2000 19:44:13 MET DST) NNTP-Posting-Date: Thu, 07 Sep 2000 19:44:13 MET DST