🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #15659

Re: Visual Basic

#15659
From: The Contact
Date: Thu, 07 Sep 2000 17:44
110 lines
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-mail
References: <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