Gå til innhold

Visual Basic Roundup!


Anbefalte innlegg

hmm.. mens tråden er aktiv så spør jeg:

Private Sub Command1_Click()

Dim Tall1 As Integer
Dim Tall2 As Integer
Dim Sum As Integer
   Tall1 = Val(Text1.Text)
   Tall2 = Val(Text2.Text)
   Sum = Tall1 + Tall2
Label1.Caption = Sum

End Sub

Hvis man skriver litt mange tall i boksene så gir det overflow! Hvordan går det ann å fikse det? og hvordan få til at man bare kan skrive tall der?

Integer støtter bare tall opp til en viss størrelse, tror det er 65000 eller noe. Du kan bruke Long for lengre heltall, eller Double for lange desimaltall.

det er fra -32 768 til 32 767

Lenke til kommentar
Videoannonse
Annonse
Kan nevne noen fler jeg har i mappen småprogrammer:

 

Last ned.exe, skriv inn url og den laster ned fila.

Net Send.exe, fint på lan :)

Web Browser.exe, henta litt koder her og der og satt sammen til det

notepad.exe, jaja, noe samma som notepad

ip-prog.exe, åpner du den blir din ip lagra på en ftp. sier ikke adressen :D

 

Edit: trenger dere kildekode så bare spør

Trenger ikke så mye kildekode.

 

Du har en sikkerhetssvikt i en av dine programmer

 

(EDIT: har sendt deg PM angående dette)

Endret av Tassax
Lenke til kommentar

Det lønner seg ikke på NOEN måte å bruke Integer i Visual basic, bruk heller Long

 

Integer er 16 bit, du har mest sannsynlig en 32-bit datamaskin (med mindre du sitter på en 286, eller en kalkulator, eller er en soss med 64-prosessor)

 

Long er 32-bit, raskere og støtter tall fra -2 000 000 til +2 000 000

Lenke til kommentar
Wayshot, du vil vel ikke legge ut kildekoden på den der? :D

Her er'n.

Option Explicit
Dim strPasstegn As String
Dim strPass As String
Dim intTegn As Integer
Dim intPasstall As Integer
Dim i As Integer

Private Sub cmdGenerer_Click()
With txtPassord
   .Text = ""
   .FontSize = 12
   .Font = "Times New Roman"
   .FontBold = True
End With

strPass = ""
strPasstegn = ""
intTegn = 0

   If chkSma = 1 Then
       strPasstegn = strPasstegn + "abcdefghijklmnopqrstuvwxyz"
       intTegn = intTegn + 26
   End If
   If chkStore = 1 Then
       strPasstegn = strPasstegn + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
       intTegn = intTegn + 26
   End If
   If chkTall = 1 Then
       strPasstegn = strPasstegn + "0123456789"
       intTegn = intTegn + 10
   End If
   If chkTegn = 1 Then
        strPasstegn = strPasstegn + "!#¤%&/()=?*'@£$;:_,.-"
        intTegn = intTegn + 21
   End If

If txtAntall.Text = "" Then GoTo Feil

Randomize
For i = 1 To txtAntall.Text
   intPasstall = Int(Rnd * intTegn) + 1
   strPass = strPass + Mid(strPasstegn, intPasstall, 1)
Next

txtPassord.Text = strPass

Feil:
End Sub

Private Sub txtAntall_Change()
   
If IsNumeric(txtAntall) = False Then
       txtAntall.Text = ""
   End If

End Sub

Noen kunne vel ikke forklart meg dette?

Kan ikke så mye :(

Lenke til kommentar

Hva er egentlig du har problemer med? hva du skal sette inn?

 

Når du legger inn koden og starter så får du vel object required? Da ser du på det som blir merka gult oog setter inn et sånt objekt.

 

chk er en sjekkboks

txt er en tekst boks

cmd er en vanlig knapp

frm er en form

str er vel string ?

 

Skjønner? eller var det egentlig noe annet du lurte på? :p

Lenke til kommentar

Ai, folkens! Sjekk ut mitt uber sinsyke kule spill her. Fett eller hva? Noen som vet hvorfor det lagger så inni granskauen? har brukt en timer med 1 i intervall og flytter ting xx anntall punkter bort..

 

Edit: glemte å si at det ikke var ferdig.. Skal lage sånn at man kan slippe bomber og eksplosjon og high score greie.

 

Jaja, kansje litt herming etter en annet sitt spill her, men jeg hadde bare så lyst :p

 

Eidit2: Space Invaders.! Den ble jeg ganske fornøyd med egentlig :) High-scoren min er 3490, deres?

Endret av jonas22282460
Lenke til kommentar
  • 4 uker senere...

Nei nå var det veldig lite aktivitet her :( har lagd en liten avansert versjon av en simpel paint :w00t:Her ligger fila og hvis noen vil se så ligger hele prosjektet her. Hva synes dere?

 

Edit: Noen som vet hvilket format den lagrer bildet i? Det sto ikke noe om det :p

Endret av jonas22282460
Lenke til kommentar

Den lagrer ikke som et bestemt format, det blir bare file. :/

 

EDIT: Men prøver man å åpne den i f.eks. Paint (i Windows) etterpå sier Paint at den ikke finner "filnavn.bmp". Så altså man skriver .bmp da når man lagrer. :) Så funker det.

Endret av zalo
Lenke til kommentar

Hva man skriver etter punktum har ikke noe å si hvilket format den lagrer i ;) Sriv hva du vil og åpne den i internett explorer så ser du at der er ikke formatet støttet. Litt dumt av meg å ikke vite dette :p

 

Edit: verken photoshop eller ImageReady kan åpne bildene

Endret av jonas22282460
Lenke til kommentar
Hva man skriver etter punktum har ikke noe å si hvilket format den lagrer i ;) Sriv hva du vil og åpne den i internett explorer så ser du at der er ikke formatet støttet. Litt dumt av meg å ikke vite dette :p

 

Edit: verken photoshop eller ImageReady kan åpne bildene

Etter jeg lagret filen, gikk jeg til målmappen, la til .bmp som endelse, åpnet så i Paint. (Funket)

 

EDIT::: Hvis jeg lagrer som "HVAFAENJEGVIL.bmp" funker det også. (Fra programmet ditt selvfølgelig.) Ikke noe problem her...

Endret av zalo
Lenke til kommentar
Ja, å åpne det i windows funker fordi windows støtter formatet. Formatet har ikke noe å si på endelsen. Du kan skrive .txt fil en film men det er fortsatt er film ;)

Selvfølgelig.

 

Men tenkte kanskje det var til hjelp.

Men altså du vil fram til hva slags format den lagrer i?

 

Lagrer jeg filen som f.eks. "blabla" og ikke legger til noen endelse, prøver så å åpne i Paint, får jeg meldingen:

"C:\blabla\filnavn.bmp was not found."

 

Altså hvordan kan Windows si at det er .bmp?

Lenke til kommentar
  • 3 uker senere...
Hvordan bruker jeg den .LocalIP? Hva mer må jeg skrive enn winsock1.LocalIP?

 

Det er bedre å bruke Win API kall for å hente ut lokal ip adresse. Da slipper du nemlig problemer med at brukeren ikke har winsock activex komponenten innstallert på sin pc.

 

Her er et eksempel jeg fant på nettet.

Den ene funskjonen, GetIpAddress , returnerer ipadressen, mens den andre funskjonen, GetIpHostName, returnerer pc'ens hostname.

 

 

Option Explicit

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright ©1996-2004 VBnet, Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Distribution: You can freely use this code in your own
'               applications, but you may not reproduce
'               or publish this code on any web site,
'               online service, or distribute as source
'               on any media without express permission.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Const MAX_WSADescription As Long = 256
Public Const MAX_WSASYSStatus As Long = 128
Public Const ERROR_SUCCESS       As Long = 0
Public Const WS_VERSION_REQD     As Long = &H101
Public Const WS_VERSION_MAJOR    As Long = WS_VERSION_REQD \ &H100 And &HFF&
Public Const WS_VERSION_MINOR    As Long = WS_VERSION_REQD And &HFF&
Public Const MIN_SOCKETS_REQD    As Long = 1
Public Const SOCKET_ERROR        As Long = -1

Public Type HOSTENT
  hName      As Long
  hAliases   As Long
  hAddrType  As Integer
  hLen       As Integer
  hAddrList  As Long
End Type

Public Type WSADATA
  wVersion      As Integer
  wHighVersion  As Integer
  szDescription(0 To MAX_WSADescription)   As Byte
  szSystemStatus(0 To MAX_WSASYSStatus)    As Byte
  wMaxSockets   As Integer
  wMaxUDPDG     As Integer
  dwVendorInfo  As Long
End Type

Public Declare Function WSAGetLastError Lib "wsock32" () As Long

Public Declare Function WSAStartup Lib "wsock32" _
 (ByVal wVersionRequired As Long, _
  lpWSADATA As WSADATA) As Long
  
Public Declare Function WSACleanup Lib "wsock32" () As Long

Public Declare Function gethostname Lib "wsock32" _
 (ByVal szHost As String, _
  ByVal dwHostLen As Long) As Long
  
Public Declare Function gethostbyname Lib "wsock32" _
 (ByVal szHost As String) As Long
  
Public Declare Sub CopyMemory Lib "kernel32" _
  Alias "RtlMoveMemory" _
 (hpvDest As Any, _
  ByVal hpvSource As Long, _
  ByVal cbCopy As Long)


Public Function GetIPAddress() As String

  Dim sHostName    As String * 256
  Dim lpHost    As Long
  Dim HOST      As HOSTENT
  Dim dwIPAddr  As Long
  Dim tmpIPAddr() As Byte
  Dim i         As Integer
  Dim sIPAddr  As String
  
  If Not SocketsInitialize() Then
     GetIPAddress = ""
     Exit Function
  End If
   
 'gethostname returns the name of the local host into
 'the buffer specified by the name parameter. The host
 'name is returned as a null-terminated string. The
 'form of the host name is dependent on the Windows
 'Sockets provider - it can be a simple host name, or
 'it can be a fully qualified domain name. However, it
 'is guaranteed that the name returned will be successfully
 'parsed by gethostbyname and WSAAsyncGetHostByName.

 'In actual application, if no local host name has been
 'configured, gethostname must succeed and return a token
 'host name that gethostbyname or WSAAsyncGetHostByName
 'can resolve.
  If gethostname(sHostName, 256) = SOCKET_ERROR Then
     GetIPAddress = ""
     MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & _
             " has occurred. Unable to successfully get Host Name."
     SocketsCleanup
     Exit Function
  End If
  
 'gethostbyname returns a pointer to a HOSTENT structure
 '- a structure allocated by Windows Sockets. The HOSTENT
 'structure contains the results of a successful search
 'for the host specified in the name parameter.

 'The application must never attempt to modify this
 'structure or to free any of its components. Furthermore,
 'only one copy of this structure is allocated per thread,
 'so the application should copy any information it needs
 'before issuing any other Windows Sockets function calls.

 'gethostbyname function cannot resolve IP address strings
 'passed to it. Such a request is treated exactly as if an
 'unknown host name were passed. Use inet_addr to convert
 'an IP address string the string to an actual IP address,
 'then use another function, gethostbyaddr, to obtain the
 'contents of the HOSTENT structure.
  sHostName = Trim$(sHostName)
  lpHost = gethostbyname(sHostName)
   
  If lpHost = 0 Then
     GetIPAddress = ""
     MsgBox "Windows Sockets are not responding. " & _
             "Unable to successfully get Host Name."
     SocketsCleanup
     Exit Function
  End If
   
 'to extract the returned IP address, we have to copy
 'the HOST structure and its members
  CopyMemory HOST, lpHost, Len(HOST)
  CopyMemory dwIPAddr, HOST.hAddrList, 4
  
 'create an array to hold the result
  ReDim tmpIPAddr(1 To HOST.hLen)
  CopyMemory tmpIPAddr(1), dwIPAddr, HOST.hLen
  
 'and with the array, build the actual address,
 'appending a period between members
  For i = 1 To HOST.hLen
     sIPAddr = sIPAddr & tmpIPAddr(i) & "."
  Next
 
 'the routine adds a period to the end of the
 'string, so remove it here
  GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)
  
  SocketsCleanup
   
End Function


Public Function GetIPHostName() As String

   Dim sHostName As String * 256
   
   If Not SocketsInitialize() Then
       GetIPHostName = ""
       Exit Function
   End If
   
   If gethostname(sHostName, 256) = SOCKET_ERROR Then
       GetIPHostName = ""
       MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & _
               " has occurred.  Unable to successfully get Host Name."
       SocketsCleanup
       Exit Function
   End If
   
   GetIPHostName = Left$(sHostName, InStr(sHostName, Chr(0)) - 1)
   SocketsCleanup

End Function


Public Function HiByte(ByVal wParam As Integer) As Byte
 
 'note: VB4-32 users should declare this function As Integer
  HiByte = (wParam And &HFF00&) \ (&H100)

End Function


Public Function LoByte(ByVal wParam As Integer) As Byte

 'note: VB4-32 users should declare this function As Integer
  LoByte = wParam And &HFF&

End Function


Public Sub SocketsCleanup()

   If WSACleanup() <> ERROR_SUCCESS Then
       MsgBox "Socket error occurred in Cleanup."
   End If
   
End Sub

Public Function SocketsInitialize() As Boolean

  Dim WSAD As WSADATA
  Dim sLoByte As String
  Dim sHiByte As String
  
  If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then
     MsgBox "The 32-bit Windows Socket is not responding."
     SocketsInitialize = False
     Exit Function
  End If
  
  
  If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
       MsgBox "This application requires a minimum of " & _
               CStr(MIN_SOCKETS_REQD) & " supported sockets."
       
       SocketsInitialize = False
       Exit Function
   End If
  
  
  If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or _
    (LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And _
     HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then
     
     sHiByte = CStr(HiByte(WSAD.wVersion))
     sLoByte = CStr(LoByte(WSAD.wVersion))
     
     MsgBox "Sockets version " & sLoByte & "." & sHiByte & _
            " is not supported by 32-bit Windows Sockets."
     
     SocketsInitialize = False
     Exit Function
     
  End If
   
   
 'must be OK, so lets do it
  SocketsInitialize = True
       
End Function


Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...