» »

VB6 problem

VB6 problem

alesrosina ::

rad bi naredil nek program, ki bi ob recimo komandi program.exe -funk izvedel neko funkcijo.

Konkreten primer: na desktop naredim shortcut, v katerega zapisem pod target: program.exe -min in s tem bi rad, da se zastarta pomanjsan.

Upam da razumete.

rasta ::

V Delphi-ju maš za to funkcijo ParamStr(), drugač pa lahko tud samemi shortcut nastaviš 'Run:' na minimaze.

alesrosina ::

hja, to vem ... sam jst bi to rad resu tako, kot sem rekel .. pa v VB ne delphiju :\

krho ::

v VB mas pa funkcijo Commands ali Command
k ti vrne string, s parametri podanimi programu.

alesrosina ::

a ma kdo slucajno ksn primer kode?

webblod ::

Ma ja... To pa res ni nch tacga... Command funkcija ti vsebino niza, sestavljenega iz parametrov ukazne vrstice...

Če se recimo odločiš uporapiti - ali / za ločevanje parametrov, npr.:

mojprogram.exe -min

ali

mojprogram.exe /min

pač uporabiš še funkcijo Split() in to je to...

Potrebuješ torej:

CommandLineParameters$ = Command

CommandLineParameter = Split(CommandLineParameters$, "-")

Saj bo šlo...
There must be a reason, why I'm so damn dissapointed on M$ Visual Basic
WEBblod.NET :: Slovenska programerska scena

alesrosina ::

aha, in pol pa recimo z if stavki al pa select nardim, kar hocem ob tej funk, ne?

webblod ::

Ja, tako nekako...

Funkcija Split ti vrne Array (sub)string-ov, ki predstavljajo niz, ki ga vrne Command...

Nato pa spišeš handler za vsak parameter posebej - lahko tudi z if stavki, vso zadevo pa začiniš z eno for zanko od 0 do
UBound(SpremenljivkaKiJoNafilašSSplitFunkcijo)... S tem dosežeš, da so lahko parametri (če jih je več) na katerem koli mestu...

LP.
There must be a reason, why I'm so damn dissapointed on M$ Visual Basic
WEBblod.NET :: Slovenska programerska scena

Zgodovina sprememb…

  • spremenil: webblod ()

vuce ::

Pomanjsan? Mislis minimiran?
Ce to mislis mas form.windowstate=1...

StratOS ::

Evo ti to, no če boš hotel isti thread spreminjati moreš pa še app.previnstance upoštevat, da drugega ugasneš.

Private Sub Form_Load()
MsgBox "Run parameters string:" & Command$
'Pregled za ukaze
If UCase$(Command()) = "-MIN" Then Form1.WindowState = 1: MsgBox "Forma je minimizirana"
If UCase$(Command()) = "-MAX" Then Form1.WindowState = 2: MsgBox "Forma je minimizirana"
End Sub

Slide ::

Kaj bučarite itak lahko v šortaku poveš kako se bo program odpru. Drugač pa v VB6 ma vsak Form v properties možnost WindowState in tam daš kr čš Maximized,Minimized tko da to je to....8-)

StratOS ::

Ti pa raje preberi malo bolje :

rad bi naredil nek program, ki bi ob recimo komandi program.exe -funk izvedel neko funkcijo.

Konkreten primer: na desktop naredim shortcut, v katerega zapisem pod target: program.exe -min in s tem bi rad, da se zastarta pomanjsan.

Upam da razumete.
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Slide ::

AAAAAAAAAAAAAAHHHHH sej maš utilitie da nardiš setup tam maš tud opcije za šortkute, tko da si ne beli glave stem:D

StratOS ::

Veš kaj, ni samo to da bi posredoval samo en parameter ali zagnal kakšen program/del programa, kakor sem jaz razmišljal mislim, da je z tem programom hotel malce več, spomni se starih rar, pkunzip ace DOS konzol, pa boš videl koliko parametrov je možno in kaj delajo.

Če se pa ne spomneš pa ti dam kakšen primer za CD/mp3/wav/avi ... player

primer
player -start -play "c:\my documents\christie.mpg" -from "00:01:10:100|TMSF" -volume 78 -left 25 -add playlist "\c:\my documents\playlist.lst" -end quit -loop 3

Kaj bi to pomenilo po domače :
-play "c:\my documents\christie.mpg"
Igraj pač ta komad
-start
Če že predvajam, začni z novim vnosom
-from "00:01:10:100|TMSF"
Igraj to datoteko od 1:10 minute od začetka začni pri 100 framu
-volume 78
Glasnost na 78%
-left 25
Levi zvočnik na 25% moči (Left/Right)
-add playlist "\c:\my documents\playlist.lst"
Dodaj v playlist/queue
-end quit
Na koncu predvajanja ugasni
-loop 3
predvajaj isto datoteko 3x
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Slide ::

UUUUUU parametri to je zgodovina in izguba časa. Program mora biti enostaven in uporaben, danes se gleda samo to8-)

StratOS ::

Poglej samo windows explorer shell pa ti bo vse jasno npr. pri winampu, winzipu ....

"C:\Program Files\Winamp\Winamp.exe" /ADD "%1"
"C:\Program Files\Winamp\Winamp.exe" /BOOKMARK "%1"
"C:\Program Files\Winamp\Winamp.exe" "%1"

Ni še vse zgodovina, le programska oblika (beri grafična) se je malce spremenila, no pa tudi stvarce pri posredovanju informacij so se preko command promta spremenile, tako da danes uporabljamo recimo dll-je..., ki vsebujejo procedure,funkcije ...

Kot vem je bilo to vprašanje posta ...
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Zgodovina sprememb…

  • spremenila: StratOS ()

alesrosina ::

hm... jah, hvala za pomoc, uspesno sem resu primer.
To zadevo sem pa hotu zato, da bi ob setupu naredu ikonco v Zagonu (al pa vpisal v register pod Run), da se program zazene v taskbaru (start vrstica, kjer kaze uro, zvocnik pa to).
In kolikor jst vem, se tega ne da drgac resit (recimo prek registra), da se ti program tako zalaufa ...

No, ni recen da prek setupa ... to se nevem kako bom naredil (ali pa nastavitev v samem programu). Skratka, program je dosegljiv na tejle strani in se ni dokoncan (stalno se kaj prenavlja).

Lahko tudi komentirate program! (oz bi bilo zazeljeno, hehe)

Zgodovina sprememb…

alesrosina ::

no, pojavil se je nov problem:

Ce program ze laufa, kako preprecim, da ga uporabnik ne zatzene se enkrat, pac pa da se ob se enkratnem zagonu prikaze ze aktivni program ... a me razumete? :\

ender ::

najprej preveri, če se aplikacija že izvaja z App.PrevInstance (vrne True, če je program že zagnan), nato pa poišči okno prejšnje instance in ga aktiviraj (rabil boš nekaj API klicev)...

BTW: Slide: najdi mi uporaben program, ki ne sprejema parametrov na ukazni vrstici - če zna program odpirati datoteke, mora najmanj prepoznati če mu je bilo podano ime datoteke, da jo lahko odpre; poleg tega je precej stvari mogoče mnogo hitreje naresti z nekaj CLI (command-line interface) programi, kot pa z GUI (Graphical user interface) programi...
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

alesrosina ::

OK. Done. Hvala ti.

Zdej pa se nekaj:
kako vpisujem v register (ce lahko kdo pokaze z primerom)?

webblod ::

A nisem jaz že enkrat pisal o registrih in VB-ju??? Meni se zdi da sem, če ne me pa opomni... :8)
There must be a reason, why I'm so damn dissapointed on M$ Visual Basic
WEBblod.NET :: Slovenska programerska scena

pro2c ::

...najbolj lepo in veliko pise v VB help, samo kljucno besedo "registry" vpises in imas vse.

btw: vec stvari ti ostane v glavi ce se sam naucis...
--- www.DrinkProg.com ---

StratOS ::

Poglej mal MSDN ali VB setup proggy
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Program za set back time (RUN AS DATE)

Oddelek: Programska oprema
374807 (4431) Yacked2
»

path variable

Oddelek: Programiranje
8718 (618) Blisk
»

[VC++] Uporaba INI fajla v isti mapi kot exe ?

Oddelek: Programiranje
121248 (1102) Person
»

nastavljanje računalnika preko GSM-a (GSM povezan z PC-jem preko kabla)

Oddelek: Pomoč in nasveti
211971 (1494) matrix2
»

spor med ramom in diskom?

Oddelek: Pomoč in nasveti
101397 (1203) tonex23

Več podobnih tem