Avatar billede biohazard_666 Nybegynder
16. april 2004 - 23:59 Der er 30 kommentarer og
1 løsning

Kompiler indhold af tekstboks

hejsa..

Jeg har set nogle steder at man kan putte en textbox ind i ens form, og så fx skrive msgbox "hejsa" i den txtbox, så bliver msgbox "hejsa" kompileret og kørt.. Nogen der ved hvordan det kan lade sig gøre?!

/Bio
Avatar billede thesurfer Nybegynder
17. april 2004 - 00:03 #1
Hvor er de "steder" (links)?

Jeg tror ikke at det bliver kompileret.. jeg tror nu mere, at der checkes hvilke "kommandoer" brugers..

f.eks.:
' t = indholdet af tekstboks
' k = kommando

t = text1.text
k = left(text1.text, instr(text1.text, " ") - 1)
select case kom
case "msgbox"
  msgbox mid(text1.text, len(k) + 1)
case "en anden kommando her"
  ' noget andet kode her..
end select

osv.. men en mere avanceret udgave..
Avatar billede thesurfer Nybegynder
17. april 2004 - 00:06 #2
det gik da helt galt det der :-)
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 00:06 #3
meget advanceret så.. pga man kan bruge næsten alle commands som ikke bruger forms..
Avatar billede thesurfer Nybegynder
17. april 2004 - 00:07 #4
Har du nogen links?
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 00:08 #5
har desværre ingen links.. Det er i et program jeg havde... (Har det ikke mere pga det andet i programmet ikk er 100% lovligt..)
Avatar billede thesurfer Nybegynder
17. april 2004 - 00:13 #6
ok..
Det skulle se sådan ud:

Private Sub Command1_Click()
t = Text1.Text
k = Left(t, InStr(t, " ") - 1)

Select Case k
Case "msgbox"
  If Mid(t, Len(k) + 2, 1) = """" Then MsgBox Mid(t, Len(k) + 3, InStrRev(t, """") - 9)
End Select
End Sub
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 00:13 #7
har faktisk fået en ide til hvordan man kan gøre det.. Men det er ikke den bedste måde, tror jeg.. Man kan få ens program til at lave en fil (C:\test.VBS) og så åbne den bag efter... Hva er det nu shell kommandoen er? Kan sQ ikk huske :S
Avatar billede thesurfer Nybegynder
17. april 2004 - 00:14 #8
x = shell("start c:\test.vbs")
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 00:17 #9
hvorfor X = ???
Avatar billede thesurfer Nybegynder
17. april 2004 - 00:19 #10
Der skal bare stå et eller andet før "="..

f.eks: etellerandet = shell("start c:\test.vbs")

Det er vist en funktion, og en funktioner kalder man med: noget = funktionsnavn(parametere)
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 00:20 #11
Private Sub Command1_Click()
Open "c:\test.vbs" For Output As #1 ' Åbner fil til skrivning

    Print #1, Text1.Text 'Skriver til linje 1

Close #1 ' Lukker filen
x = Shell("start c:\test.vbs")
Exit Sub
End Sub


her er min kode... Der kommer en runtime fejl... File cannot be found..
Avatar billede thesurfer Nybegynder
17. april 2004 - 00:46 #12
Det virker fint hos mig..?

Prøv min form (kopier og indsæt linierne i notepad, og bruge "Gem Som" > *.* > "form1.frm"):

VERSION 5.00
Begin VB.Form Form1
  Caption        =  "Form1"
  ClientHeight    =  3195
  ClientLeft      =  60
  ClientTop      =  345
  ClientWidth    =  4680
  LinkTopic      =  "Form1"
  ScaleHeight    =  3195
  ScaleWidth      =  4680
  StartUpPosition =  3  'Windows Default
  Begin VB.CommandButton Command1
      Caption        =  "Command1"
      Height          =  495
      Left            =  1800
      TabIndex        =  1
      Top            =  1320
      Width          =  1215
  End
  Begin VB.TextBox Text1
      Height          =  285
      Left            =  480
      TabIndex        =  0
      Text            =  "msgbox ""hejsa"""
      Top            =  360
      Width          =  3615
  End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Open "c:\test.vbs" For Output As #1 ' Åbner fil til skrivning

    Print #1, Text1.Text 'Skriver til linje 1

Close #1 ' Lukker filen
x = Shell("start c:\test.vbs")
End Sub
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 00:53 #13
Private Sub Command1_Click()
Open "c:\test.vbs" For Output As #1 ' Åbner fil til skrivning

    Print #1, Text1.Text 'Skriver til linje 1

Close #1 ' Lukker filen
--> x = Shell("start c:\test.vbs")

End Sub

Stadig file not found..
Avatar billede thesurfer Nybegynder
17. april 2004 - 00:54 #14
Hvilken version af Visual Basic er det der melder fejl?
Avatar billede thesurfer Nybegynder
17. april 2004 - 00:55 #15
..og Windows version..?
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 00:56 #16
FUCK jeg er SUR NU!!!! Er kommet til at overskrive en af mine andre programmer jeg lavet her i aftes :@
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 00:57 #17
jeg kører Windows 2003 Server Enterprise
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 00:57 #18
og VB6
Avatar billede thesurfer Nybegynder
17. april 2004 - 00:58 #19
Du kan fortryde koden, med mindre at du har lukket VB..
Tryk CTRL+Z eller via menuen Rediger/Edit > Fortryd/Undo..

Prøv..
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 01:01 #20
har lukket vb.. laver det igen.. kan ikke tage lang tid.. har det meste af koden her på eksperten... og kan godt huske hvordan det så ud...
Avatar billede thesurfer Nybegynder
17. april 2004 - 01:04 #21
se lige om "c:\test.vbs" findes.. hvis den gør, er det "start" den klager over..
prøv så:
x = Shell("cmd c:\test.vbs")
x = Shell("c:\test.vbs")
Avatar billede thesurfer Nybegynder
17. april 2004 - 01:05 #22
Eller prøv det her:

'''' disse linier skal være i toppen af kode-området:
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 Declare Function GetDesktopWindow Lib "user32" () As Long
Dim Scr_hDC As Long
''''


Private Function Startdoc(DocName As String)
Scr_hDC = GetDesktopWindow()
Startdoc = ShellExecute(Scr_hDC, "Open", DocName, "", "C:\", 1)
End Function

Private Sub Command1_Click()
Dim r As Long
Open "c:\test.vbs" For Output As #1 ' Åbner fil til skrivning

    Print #1, Text1.Text 'Skriver til linje 1

Close #1 ' Lukker filen

r = Startdoc("c:\test.vbs")
End Sub
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 01:07 #23
oki... laver lige mit andet program... 2 sek
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 01:16 #24
Den sidste kode du lavede virker :)
Hvordan er det så man sletter en fil? Vil gerne have den til at slette filen automatisk... Så skal du nok få dine velfortjente point :)
Avatar billede thesurfer Nybegynder
17. april 2004 - 01:17 #25
Mener at det er:

kill "c:\test.vbs"

-- Lægger lige et svar :-)
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 01:21 #26
Du er simpelthen fantastisk :) Du har sQ fortjent de point :)
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 01:22 #27
<*-*-*-*-* SPØRGSMÅL LUKKET *-*-*-*-*>
Avatar billede thesurfer Nybegynder
17. april 2004 - 01:23 #28
Takker for points :-)
Godnat og sov godt :-)
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 01:28 #29
godnat :) smutter i seng nu :)
Avatar billede biohazard_666 Nybegynder
17. april 2004 - 01:28 #30
skulle lige op på 30 svar :P
Avatar billede thesurfer Nybegynder
17. april 2004 - 01:34 #31
hehehe :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester