Autor
|
Tema: Librería de Snippets para VB.NET !! (Compartan aquí sus snippets) (Leído 529,058 veces)
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.874
|
HardwareStress( click en la imagen para descargar la librería o el código fuente ) HardwareStress es una biblioteca .NET que proporciona un mecanismo para estresar los recursos de hardware, como la CPU, disco o memoria RAM. Como cualquier otro software enfocado para estresar los recursos de hardware, usted debe usarlo bajo su propio riesgo. No me responsabilizo de un error de hardware. DonacionesCualquier código dentro del espacio de nombres "DevCase" se distribuye libremente como parte del código fuente comercial de "DevCase for .NET Framework". Tal vez te gustaría considerar comprar este conjunto de bibliotecas para apoyarme. Puede hacer un montón de cosas con mis bibliotecas para una gran cantidad de temáticas diversas, no solo relacionadas con hardware, etc. Aquí hay un enlace a la página de compra: Muchas gracias. UsoEl uso es muy simple, hay 3 clases: CpuStress, DiskStress y MemoryStress que proporciona un método Allocate() para comenzar a estresar los recursos, y un método Deallocate() para detenerlo. Ejemplos de usoCPU Stress Using cpuStress As New CpuStress() Dim percentage As Single = 20.5F 20.50% Console.WriteLine("Allocating CPU usage percentage...") cpuStress.Allocate(percentage) Thread.Sleep(TimeSpan.FromSeconds(5)) Console.WriteLine("Instance CPU average usage percentage: {0:F2}%", cpuStress.InstanceCpuPercentage) Console.WriteLine("Process CPU average usage percentage: {0:F2}%", cpuStress.ProcessCpuPercentage) Console.WriteLine() Console.WriteLine("Deallocating CPU usage percentage...") cpuStress.Deallocate() Thread.Sleep(TimeSpan.FromSeconds(5)) Console.WriteLine("Instance CPU average usage percentage: {0:F2}%", cpuStress.InstanceCpuPercentage) Console.WriteLine("Process CPU average usage percentage: {0:F2}%", cpuStress.ProcessCpuPercentage) End Using
Disk Stress Using diskStress As New DiskStress() Console.WriteLine("Allocating disk I/O read and write operations...") diskStress.Allocate(fileSize:=1048576) 1 MB Thread.Sleep(TimeSpan.FromSeconds(10)) Console.WriteLine("Stopping disk I/O read and write operations...") diskStress.Deallocate() Console.WriteLine() Console.WriteLine("Instance disk I/O read operations count: {0} (total of files read)", diskStress.InstanceReadCount) Console.WriteLine("Process disk I/O read operations count: {0}", diskStress.ProcessReadCount) Console.WriteLine() Console.WriteLine("Instance disk I/O read data (in bytes): {0} ({1:F2} GB)", diskStress.InstanceReadBytes, (diskStress.InstanceReadBytes / 1024.0F ^ 3)) Console.WriteLine("Process disk I/O read data (in bytes): {0} ({1:F2} GB)", diskStress.ProcessReadBytes, (diskStress.ProcessReadBytes / 1024.0F ^ 3)) Console.WriteLine() Console.WriteLine("Instance disk I/O write operations count: {0} (total of files written)", diskStress.InstanceWriteCount) Console.WriteLine("Process disk I/O write operations count: {0}", diskStress.ProcessWriteCount) Console.WriteLine() Console.WriteLine("Instance disk I/O written data (in bytes): {0} ({1:F2} GB)", diskStress.InstanceWriteBytes, (diskStress.InstanceWriteBytes / 1024.0F ^ 3)) Console.WriteLine("Process disk I/O written data (in bytes): {0} ({1:F2} GB)", diskStress.ProcessWriteBytes, (diskStress.ProcessWriteBytes / 1024.0F ^ 3)) End Using
Memory Stress Using memStress As New MemoryStress() Dim memorySize As Long = 1073741824 1 GB Console.WriteLine("Allocating physical memory size...") memStress.Allocate(memorySize) Console.WriteLine("Instance Physical Memory Size (in bytes): {0} ({1:F2} GB)", memStress.InstancePhysicalMemorySize, (memStress.InstancePhysicalMemorySize / 1024.0F ^ 3)) Console.WriteLine("Process Physical Memory Size (in bytes): {0} ({1:F2} GB)", memStress.ProcessPhysicalMemorySize, (memStress.ProcessPhysicalMemorySize / 1024.0F ^ 3)) Console.WriteLine() Console.WriteLine("Deallocating physical memory size...") memStress.Deallocate() Console.WriteLine("Instance Physical Memory Size (in bytes): {0}", memStress.InstancePhysicalMemorySize) Console.WriteLine("Process Physical Memory Size (in bytes): {0} ({1:F2} MB)", memStress.ProcessPhysicalMemorySize, (memStress.ProcessPhysicalMemorySize / 1024.0F ^ 2)) End Using
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.874
|
Generador aleatorio de párrafosPrivate Shared rng As New Random(Seed:=Environment.TickCount)
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Generates a random paragraph using the specified set of words. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="words"> ''' The words that will be used to build paragraphs. ''' </param> ''' ''' <param name="numberOfParagraphs"> ''' The number of paragraphs to generate. ''' </param> ''' ''' <param name="htmlFormatting"> ''' Specifies whether or not to format paragraphs for HTML. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' The resulting paragraph(s). ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Shared Function RandomParagraphGenerator(ByVal words As String(), ByVal numberOfParagraphs As Integer, ByVal htmlFormatting As Boolean) As String Dim sb As New StringBuilder() Dim nextWord As String Dim nextWordIndex As Integer Dim lastWordIndex As Integer For paragraphIndex As Integer = 0 To (numberOfParagraphs - 1) Dim phraseLen As Integer = rng.Next(2, 10) For phraseIndex As Integer = 0 To (phraseLen - 1) If (phraseIndex = 0) AndAlso (htmlFormatting) Then sb.Append("<p>") End If Dim wordLen As Integer = rng.Next(3, 15) Dim addComma As Boolean = (rng.NextDouble() < 50 / 100.0) ' 50% probability to add a comma in a phrase. Dim commaAmount As Integer = rng.Next(1, (wordLen - 1) \ 2) Dim commaIndices As New HashSet(Of Integer) For i As Integer = 0 To (commaAmount - 1) commaIndices.Add(rng.Next(1, (wordLen - 1))) Next i For wordIndex As Integer = 0 To (wordLen - 1) Do Until (nextWordIndex <> lastWordIndex) nextWordIndex = rng.Next(0, words.Length) Loop lastWordIndex = nextWordIndex nextWord = words(nextWordIndex) If (wordIndex = 0) Then sb.Append(Char.ToUpper(nextWord(0)) & nextWord.Substring(1)) Continue For End If sb.Append(" " & words(rng.Next(0, words.Length))) If (commaIndices.Contains(wordIndex)) AndAlso (addComma) Then sb.Append(","c) End If If (wordIndex = (wordLen - 1)) Then If (phraseIndex <> (phraseLen - 1)) Then sb.Append(". ") Else sb.Append(".") End If End If Next wordIndex Next phraseIndex If (htmlFormatting) Then sb.Append("</p>") End If sb.AppendLine(Environment.NewLine) Next paragraphIndex Return sb.ToString() End Function
Modo de empleo: Dim words As String() = { "a", "ability", "able", "about", "above", "accept", "according", "account", "across", "act", "action", "activity", "actually", "add", "address", "administration", "admit", "adult", "affect", "after", "again", "against", "age", "agency", "agent", "ago", "agree", "agreement", "ahead", "air", "all", "allow", "almost", "alone", "along", "already", "also", "although", "always", "American", "among", "amount", "analysis", "and", "animal", "another", "answer", "any", "anyone", "anything", "appear", "apply", "approach", "area", "argue", "arm", "around", "arrive", "art", "article", "artist", "as", "ask", "assume", "at", "attack", "attention", "attorney", "audience", "author", "authority", "available", "avoid", "away", "baby", "back", "bed", "before", "begin", "behavior", "behind", "believe", "benefit", "best", "better", "between", "both", "box", "boy", "break", "bring", "brother", "budget", "build", "building", "business", "but", "buy", "by", "call", "camera", "campaign", "can", "cancer", "candidate", "capital", "car", "card", "care", "career", "carry", "case", "catch", "cause", "cell", "center", "central", "century", "certain", "choice", "choose", "church", "citizen", "city", "civil", "claim", "class", "clear", "clearly", "close", "coach", "cold", "collection", "college", "color", "come", "commercial", "common", "community", "consumer", "contain", "continue", "control", "cost", "could", "country", "couple", "course", "court", "cover", "create", "crime", "cultural", "culture", "cup", "current", "customer", "cut", "dark", "data", "daughter", "day", "dead", "deal", "death", "debate", "decade", "decide", "decision", "deep", "defense", "degree", "Democrat", "democratic", "describe", "design", "despite", "detail", "direction", "director", "discover", "discuss", "discussion", "disease", "do", "doctor", "dog", "door", "down", "draw", "dream", "drive", "drop", "drug", "during", "each", "early", "east", "easy", "eat", "economic", "economy", "edge", "education", "effect", "effort", "eight", "either", "election", "environmental", "especially", "establish", "even", "evening", "event", "ever", "every", "everybody", "everyone", "everything", "evidence", "exactly", "example", "executive", "exist", "expect", "experience", "expert", "explain", "eye", "face", "fact", "factor", "fail", "fall", "family", "fill", "film", "final", "finally", "financial", "find", "fine", "finger", "finish", "fire", "firm", "first", "fish", "five", "floor", "fly", "focus", "follow", "food", "foot", "for", "force", "foreign", "forget", "form", "former", "forward", "four", "free", "friend", "from", "front", "full", "fund", "future", "game", "garden", "gas", "general", "generation", "get", "girl", "give", "glass", "go", "goal", "good", "government", "great", "green", "ground", "group", "grow", "growth", "guess", "gun", "guy", "hair", "half", "hand", "hang", "happen", "happy", "hard", "have", "he", "head", "health", "hear", "heart", "heat", "heavy", "help", "her", "here", "herself", "high", "him", "himself", "his", "history", "hit", "hold", "home", "hope", "hospital", "hot", "hotel", "hour", "house", "how", "however", "huge", "human", "hundred", "husband", "I", "idea", "identify", "if", "image", "imagine", "impact", "important", "improve", "in", "include", "including", "increase", "indeed", "indicate", "individual", "industry", "information", "inside", "instead", "institution", "interest", "interesting", "international", "interview", "into", "investment", "involve", "issue", "it", "item", "its", "itself", "job", "join", "just", "keep", "key", "kid", "kill", "kind", "kitchen", "know", "knowledge", "land", "language", "large", "last", "late", "later", "laugh", "law", "lawyer", "lay", "lead", "leader", "learn", "least", "leave", "left", "leg", "legal", "less", "let", "letter", "level", "lie", "life", "light", "like", "likely", "line", "list", "listen", "little", "live", "local", "long", "look", "lose", "loss", "lot", "love", "low", "machine", "magazine", "main", "maintain", "major", "majority", "make", "man", "manage", "management", "manager", "many", "market", "marriage", "material", "matter", "may", "maybe", "me", "mean", "measure", "media", "medical", "meet", "meeting", "member", "memory", "mention", "message", "method", "middle", "might", "military", "million", "mind", "minute", "miss", "mission", "model", "modern", "moment", "money", "month", "more", "morning", "most", "mother", "mouth", "move", "movement", "movie", "Mr", "Mrs", "much", "music", "must", "my", "myself", "name", "nation", "national", "natural", "nature", "near", "nearly", "necessary", "need", "network", "never", "new", "news", "newspaper", "next", "nice", "night", "no", "none", "nor", "north", "not", "note", "nothing", "notice", "now", "number", "occur", "of", "off", "offer", "office", "officer", "official", "often", "oh", "oil", "ok", "old", "on", "once", "one", "only", "onto", "open", "operation", "opportunity", "option", "or", "order", "organization", "other", "others", "our", "out", "outside", "over", "own", "owner", "page", "pain", "painting", "paper", "parent", "part", "participant", "particular", "particularly", "partner", "party", "pass", "past", "patient", "pattern", "pay", "peace", "people", "per", "perform", "performance", "perhaps", "period", "person", "personal", "phone", "physical", "pick", "picture", "piece", "place", "plan", "plant", "play", "player", "PM", "point", "police", "policy", "political", "politics", "poor", "popular", "population", "position", "positive", "possible", "power", "practice", "prepare", "present", "president", "pressure", "pretty", "prevent", "price", "private", "probably", "problem", "process", "produce", "product", "production", "professional", "professor", "program", "project", "property", "protect", "prove", "provide", "public", "pull", "purpose", "push", "put", "quality", "question", "quickly", "quite", "race", "radio", "raise", "range", "rate", "rather", "reach", "read", "ready", "real", "reality", "realize", "really", "reason", "receive", "recent", "recently", "recognize", "record", "red", "reduce", "reflect", "region", "relate", "relationship", "religious", "remain", "remember", "remove", "report", "represent", "Republican", "require", "research", "resource", "respond", "response", "responsibility", "rest", "result", "return", "reveal", "rich", "right", "rise", "risk", "road", "rock", "role", "room", "rule", "run", "safe", "same", "save", "say", "scene", "school", "science", "scientist", "score", "sea", "season", "seat", "second", "section", "security", "see", "seek", "seem", "sell", "send", "senior", "sense", "series", "serious", "serve", "service", "set", "seven", "show", "side", "sign", "significant", "similar", "simple", "simply", "since", "sing", "single", "sister", "sit", "site", "situation", "six", "size", "skill", "skin", "small", "smile", "so", "social", "society", "soldier", "some", "somebody", "someone", "something", "sometimes", "son", "specific", "speech", "spend", "sport", "spring", "staff", "stage", "stand", "standard", "star", "start", "state", "statement", "station", "stay", "step", "still", "stock", "stop", "store", "story", "strategy", "street", "strong", "structure", "student", "study", "stuff", "style", "subject", "success", "successful", "such", "suddenly", "suffer", "suggest", "summer", "support", "sure", "surface", "system", "table", "take", "talk", "task", "tax", "teach", "teacher", "team", "technology", "television", "tell", "ten", "tend", "term", "test", "than", "thank", "that", "the", "their", "them", "themselves", "then", "theory", "there", "these", "they", "thing", "think", "third", "this", "those", "though", "thought", "thousand", "threat", "three", "through", "throughout", "throw", "thus", "time", "to", "today", "together", "tonight", "too", "top", "total", "tough", "toward", "town", "trade", "traditional", "training", "travel", "treat", "treatment", "tree", "trial", "trip", "trouble", "true", "truth", "try", "turn", "TV", "two", "type", "under", "understand", "unit", "until", "up", "upon", "us", "use", "usually", "value", "various", "very", "victim", "view", "violence", "visit", "voice", "vote", "wait", "walk", "wall", "want", "war", "watch", "water", "way", "we", "weapon", "wear", "week", "weight", "well", "west", "western", "what", "whatever", "when", "where", "whether", "which", "while", "white", "who", "whole", "whom", "whose", "why", "wide", "wife", "will", "win", "wind", "window", "wish", "with", "within", "without", "woman", "wonder", "word", "work", "worker", "world", "worry", "would", "write", "writer", "wrong", "yard", "yeah", "year", "yes", "yet", "you", "young", "your", "yourself"} Dim paragraphs As String = RandomParagraphGenerator(words, numberOfParagraphs:=4, htmlFormatting:=False) Console.WriteLine(paragraphs)
Finish at, raise, movie exist page, including there, yard ground why, information everyone. Life full those finger instead simple central those scientist. Force road of pick your student social. Prevent plan heart site. Anyone door, explain control.
Process interest we high human occur agree page put. Left education according thus, structure fine second professor rather relationship guess instead maybe radio. Second process reason on, create west. Forget victim wrong may themselves out where occur sometimes. Wide candidate, newspaper, if purpose at assume draw month, American physical create. Sea sign describe white though want minute type to medical. Explain girl their most upon.
Suddenly drug writer follow must. Right choose, option one capital risk. Administration forget practice anything. Notice people take movie, dark, yes only. Inside either recent movement during particular wear husband particularly those legal. Suffer drug establish work. Guess two have garden value property realize dog people friend, hospital that.
Person movie north wrong thing group. Write exist church daughter up, why appear ahead growth, wife news protect. Save smile, impact improve direction trouble tax, scene, north nation, maybe hang face history. Cause lawyer true worker season, more. Generador aleatorio de texto 'Lorem Ipsum'( ESTA FUNCIÓN SIMPLEMENTA HACE UNA LLAMADA AL GENERADOR DE PÁRRAFOS QUE HE PUBLICADO ARRIBA. ) ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Generates a random 'Lorem Ipsum' paragraph. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <remarks> ''' Wikipedia article: <see href="https://en.wikipedia.org/wiki/Lorem_ipsum"/> ''' </remarks> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="numberOfParagraphs"> ''' The number of paragraphs to generate. ''' </param> ''' ''' <param name="htmlFormatting"> ''' Specifies whether or not to format paragraphs for HTML. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' The resulting 'Lorem Ipsum' paragraph(s). ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Shared Function GenerateLoremIpsumText(ByVal numberOfParagraphs As Integer, ByVal htmlFormatting As Boolean) As String Dim words As String() = { "abhorreant", "accommodare", "accumsan", "accusam", "accusamus", "accusata", "ad", "adhuc", "adipisci", "adipiscing", "admodum", "adolescens", "adversarium", "aeque", "aeterno", "affert", "agam", "albucius", "alia", "alienum", "alii", "aliquam", "aliquando", "aliquid", "aliquip", "alterum", "amet", "an", "ancillae", "animal", "antiopam", "apeirian", "aperiam", "aperiri", "appareat", "appellantur", "appetere", "argumentum", "assentior", "assueverit", "assum", "at", "atomorum", "atqui", "audiam", "audire", "augue", "autem", "blandit", "bonorum", "brute", "case", "causae", "cetero", "ceteros", "choro", "cibo", "civibus", "clita", "commodo", "commune", "complectitur", "comprehensam", "conceptam", "concludaturque", "conclusionemque", "congue", "consectetuer", "consequat", "consequuntur", "consetetur", "constituam", "constituto", "consul", "consulatu", "contentiones", "convenire", "copiosae", "corpora", "corrumpit", "cotidieque", "cu", "cum", "debet", "debitis", "decore", "definiebas", "definitionem", "definitiones", "delectus", "delenit", "deleniti", "delicata", "delicatissimi", "democritum", "denique", "deseruisse", "deserunt", "deterruisset", "detracto", "detraxit", "diam", "dicam", "dicant", "dicat", "diceret", "dicit", "dico", "dicta", "dictas", "dicunt", "dignissim", "discere", "disputando", "disputationi", "dissentias", "dissentiet", "dissentiunt", "docendi", "doctus", "dolor", "dolore", "dolorem", "dolores", "dolorum", "doming", "duis", "duo", "ea", "eam", "efficiantur", "efficiendi", "ei", "eirmod", "eius", "elaboraret", "electram", "eleifend", "eligendi", "elit", "elitr", "eloquentiam", "enim", "eos", "epicurei", "epicuri", "equidem", "erant", "erat", "eripuit", "eros", "errem", "error", "erroribus", "eruditi", "esse", "essent", "est", "et", "etiam", "eu", "euismod", "eum", "euripidis", "everti", "evertitur", "ex", "exerci", "expetenda", "expetendis", "explicari", "fabellas", "fabulas", "facer", "facete", "facilis", "facilisi", "facilisis", "falli", "fastidii", "ferri", "feugait", "feugiat", "fierent", "forensibus", "fugit", "fuisset", "gloriatur", "graece", "graeci", "graecis", "graeco", "gubergren", "habemus", "habeo", "harum", "has", "hendrerit", "hinc", "his", "homero", "honestatis", "id", "idque", "ignota", "iisque", "illud", "illum", "impedit", "imperdiet", "impetus", "in", "inani", "inciderint", "incorrupte", "indoctum", "inermis", "inimicus", "insolens", "instructior", "integre", "intellegam", "intellegat", "intellegebat", "interesset", "interpretaris", "invenire", "invidunt", "ipsum", "iracundia", "iriure", "iudicabit", "iudico", "ius", "iusto", "iuvaret", "justo", "labitur", "laboramus", "labore", "labores", "laoreet", "latine", "laudem", "legendos", "legere", "legimus", "liber", "liberavisse", "libris", "lobortis", "lorem", "lucilius", "ludus", "luptatum", "magna", "maiestatis", "maiorum", "malis", "malorum", "maluisset", "mandamus", "mazim", "mea", "mediocrem", "mediocritatem", "mei", "meis", "mel", "meliore", "melius", "menandri", "mentitum", "minim", "minimum", "mnesarchum", "moderatius", "modo", "modus", "molestiae", "molestie", "mollis", "movet", "mucius", "mundi", "munere", "mutat", "nam", "natum", "ne", "nec", "necessitatibus", "neglegentur", "nemore", "nibh", "nihil", "nisl", "no", "nobis", "noluisse", "nominati", "nominavi", "nonumes", "nonumy", "noster", "nostro", "nostrud", "nostrum", "novum", "nulla", "nullam", "numquam", "nusquam", "oblique", "ocurreret", "odio", "offendit", "officiis", "omittam", "omittantur", "omnes", "omnesque", "omnis", "omnium", "oporteat", "oportere", "option", "oratio", "ornatus", "partem", "partiendo", "patrioque", "paulo", "per", "percipit", "percipitur", "perfecto", "pericula", "periculis", "perpetua", "persecuti", "persequeris", "persius", "pertinacia", "pertinax", "petentium", "phaedrum", "philosophia", "placerat", "platonem", "ponderum", "populo", "porro", "posidonium", "posse", "possim", "possit", "postea", "postulant", "praesent", "pri", "prima", "primis", "principes", "pro", "probatus", "probo", "prodesset", "prompta", "propriae", "purto", "putant", "putent", "quaeque", "quaerendum", "quaestio", "qualisque", "quando", "quas", "quem", "qui", "quidam", "quis", "quo", "quod", "quodsi", "quot", "rationibus", "rebum", "recteque", "recusabo", "referrentur", "reformidans", "regione", "reprehendunt", "reprimique", "repudiandae", "repudiare", "reque", "ridens", "sadipscing", "saepe", "sale", "salutandi", "salutatus", "sanctus", "saperet", "sapientem", "scaevola", "scribentur", "scripserit", "scripta", "scriptorem", "sea", "sed", "semper", "senserit", "sensibus", "sententiae", "signiferumque", "similique", "simul", "singulis", "sint", "sit", "soleat", "solet", "solum", "soluta", "sonet", "splendide", "stet", "suas", "suavitate", "summo", "sumo", "suscipiantur", "suscipit", "tacimates", "tale", "tamquam", "tantas", "tation", "te", "tempor", "temporibus", "theophrastus", "tibique", "timeam", "tincidunt", "tollit", "torquatos", "tota", "tractatos", "tritani", "ubique", "ullamcorper", "ullum", "unum", "urbanitas", "usu", "ut", "utamur", "utinam", "utroque", "vel", "velit", "veniam", "verear", "veri", "veritus", "vero", "verterem", "vide", "viderer", "vidisse", "vidit", "vim", "viris", "virtute", "vis", "vitae", "vituperata", "vituperatoribus", "vivendo", "vivendum", "vix", "vocent", "vocibus", "volumus", "voluptaria", "voluptatibus", "voluptatum", "voluptua", "volutpat", "vulputate", "wisi", "zril"} Dim str As String = RandomParagraphGenerator(words, numberOfParagraphs, htmlFormatting) If (htmlFormatting) Then Return str.Insert(3, "Lorem ipsum dolor sit amet. ") Else Return str.Insert(0, "Lorem ipsum dolor sit amet. ") End If End Function
Modo de empleo: Dim loremIpsum As String = GenerateLoremIpsumText(numberOfParagraphs:=4, htmlFormatting:=True) Console.WriteLine(loremIpsum)
<p>Lorem ipsum dolor sit amet. Placerat vulputate tollit cum vivendo adipiscing nemore duo salutandi mollis. Fabellas malis, eros solet rationibus. Assum suas inermis, at veri prompta modo scaevola, ad. Percipitur ceteros semper vituperata feugait disputationi cotidieque soluta. Efficiendi facilisi zril percipit putant quando id quas nobis civibus natum. Pertinax maluisset vidisse oratio autem eripuit repudiandae ea suas eros illum oratio aliquid. Fabulas porro, integre oportere.</p>
<p>Virtute mediocritatem, vim erant nisl. Legendos postea saperet postea putent nihil facilisi nominati omnis. Facilisis persequeris scaevola alterum probatus vulputate denique pericula ullamcorper eloquentiam oporteat purto mediocritatem.</p>
<p>Veniam petentium delectus delicatissimi malis voluptua mentitum dissentias interpretaris verear quis utamur albucius verear. Quo reformidans, definitiones facilis. Conclusionemque quaestio voluptaria populo delicata sit viris mediocrem vulputate voluptatum eloquentiam. Quas an, bonorum cibo audiam commune volutpat. Vis ullamcorper scriptorem omnis facilisis sententiae hendrerit. Oporteat atomorum prompta suavitate idque accommodare ius oblique graece graecis interpretaris nemore. Meliore albucius commune qui suscipit definitiones vidit docendi facilisi forensibus quis. Equidem dolore expetendis iudico, delectus viderer timeam. Mediocrem molestie timeam, recteque, maluisset evertitur delicata.</p>
<p>Similique neglegentur temporibus alienum ad legimus scriptorem bonorum et appetere vide molestie. Mentitum feugait voluptatum illum detracto, tamquam vel ponderum mei illud, omnis paulo, ignota. Malorum lorem consul molestie interpretaris aperiri vituperatoribus, soluta enim vituperatoribus.</p>
|
|
« Última modificación: 19 Febrero 2019, 22:14 pm por Eleкtro (aliviado) »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.874
|
ConsoleRectangleEsto es el equivalente a la clase System.Drawing.Rectangle, para representar la posición y tamaño de un rectángulo (dibujable) en el búfer de salida de una consola. Decisiones (o limitaciones) de diseño: Las propiedades son de solo lectura (para quitarme de lios). Es decir, para hacer cambios en el tamaño o posición del rectángulo, hay que crear una nueva instancia. - ya no lo son- No permite la asignación de coordenadas negativas (puesto que tampoco lo permite el método Console.SetCursorPos()), ni un tamaño (anchura ni altura) igual a cero, aunque esto último no se tiene en cuenta si se usa el constructor por defecto.
EDITO: implementación extendida. ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Stores a set of four integers that represent the location and size of a (printable) rectangle on a console output buffer. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- <ComVisible(True)> <Serializable> Public Structure ConsoleRectangle
#Region " Properties "
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets or sets the location of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The location of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(False)> Public Property Location As Point Get Return Me.location_ End Get Set(value As Point) Me.UpdateLocation(value) End Set End Property ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' ( Backing field of <see cref="ConsoleRectangle.Location"/> property. ) ''' <para></para> ''' The location of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- Private location_ As Point
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets the x-coordinate of the upper-left corner of this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The x-coordinate of the upper-left corner of this <see cref="ConsoleRectangle"/>. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(True)> Public ReadOnly Property X As Integer Get Return Me.Location.X End Get End Property
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets the y-coordinate of the upper-left corner of this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The y-coordinate of the upper-left corner of this <see cref="ConsoleRectangle"/>. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(True)> Public ReadOnly Property Y As Integer Get Return Me.Location.Y End Get End Property
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets the y-coordinate of the top edge of this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The y-coordinate of the top edge of this <see cref="ConsoleRectangle"/>. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(False)> Public ReadOnly Property Top As Integer Get Return Me.Y End Get End Property
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets the x-coordinate of the left edge of this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The x-coordinate of the left edge of this <see cref="ConsoleRectangle"/>. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(False)> Public ReadOnly Property Left As Integer Get Return Me.X End Get End Property
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets the y-coordinate that is the sum of the <see cref="ConsoleRectangle.Y"/> ''' and <see cref="ConsoleRectangle.Height"/> property values of this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The y-coordinate that is the sum of the <see cref="ConsoleRectangle.Y"/> ''' and <see cref="ConsoleRectangle.Height"/> property values of this <see cref="ConsoleRectangle"/>. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(False)> Public ReadOnly Property Bottom As Integer Get Return (Me.Y + Me.Height) End Get End Property
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets the x-coordinate that is the sum of <see cref="ConsoleRectangle.X"/> ''' and <see cref="ConsoleRectangle.Width"/> property values of this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The x-coordinate that is the sum of <see cref="ConsoleRectangle.X"/> ''' and <see cref="ConsoleRectangle.Width"/> property values of this <see cref="ConsoleRectangle"/>. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(False)> Public ReadOnly Property Right As Integer Get Return (Me.X + Me.Width) End Get End Property
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets or sets the size of this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The size of this <see cref="ConsoleRectangle"/>. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(False)> Public Property Size As Size Get Return Me.size_ End Get Set(value As Size) Me.UpdateSize(value) End Set End Property ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' ( Backing field of <see cref="ConsoleRectangle.Size"/> property. ) ''' <para></para> ''' The size of this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- Private size_ As Size
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets the width of this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The width of this <see cref="ConsoleRectangle"/>. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(True)> Public ReadOnly Property Width As Integer Get Return Me.Size.Width End Get End Property
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets the height of this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The height of this <see cref="ConsoleRectangle"/>. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(True)> Public ReadOnly Property Height As Integer Get Return Me.Size.Height End Get End Property
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets or sets the character to print the left border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The character to print the left border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(True)> Public Property CharLeft As Char
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets or sets the character to print the top border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The character to print the top border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(True)> Public Property CharTop As Char
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets or sets the character to print the right border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The character to print the right border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(True)> Public Property CharRight As Char
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets or sets the character to print the bottom border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' The character to print the bottom border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(True)> Public Property CharBottom As Char
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Tests whether all numeric properties of this System.Drawing.Rectangle have values of zero. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <value> ''' This property returns <see langword="True"/> if the ''' <see cref="ConsoleRectangle.Width"/>, <see cref="ConsoleRectangle.Height"/>, ''' <see cref="ConsoleRectangle.X"/>, and <see cref="ConsoleRectangle.Y"/> properties ''' of this <see cref="ConsoleRectangle"/> all have values of zero; ''' otherwise, <see langword="False"/> ''' </value> ''' ---------------------------------------------------------------------------------------------------- <Browsable(False)> Public ReadOnly Property IsEmpty As Boolean Get Return (Me.Location = Point.Empty) AndAlso (Me.Size = Size.Empty) End Get End Property
#End Region
#Region " Constructors "
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Initializes a new instance of the <see cref="ConsoleRectangle"/> structure. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="rect"> ''' A <see cref="Rectangle"/> that contains the location and size for this <see cref="ConsoleRectangle"/>. ''' </param> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub New(ByVal rect As Rectangle) Me.New(rect.Location, rect.Size, "▌"c, "▀"c, "▐"c, "▄"c) End Sub
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Initializes a new instance of the <see cref="ConsoleRectangle"/> structure. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="rect"> ''' A <see cref="Rectangle"/> that contains the location and size for this <see cref="ConsoleRectangle"/>. ''' </param> ''' ''' <param name="charLeft"> ''' The character to print the left border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </param> ''' ''' <param name="charTop"> ''' The character to print the top border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </param> ''' ''' <param name="charRight"> ''' The character to print the right border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </param> ''' ''' <param name="charBottom"> ''' The character to print the bottom border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </param> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub New(ByVal rect As Rectangle, ByVal charLeft As Char, ByVal charTop As Char, ByVal charRight As Char, ByVal charBottom As Char)
Me.New(rect.Location, rect.Size, charLeft, charTop, charRight, charBottom)
End Sub
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Initializes a new instance of the <see cref="ConsoleRectangle"/> structure. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="location"> ''' The location for this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </param> ''' ''' <param name="size"> ''' The size for this <see cref="ConsoleRectangle"/>. ''' </param> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub New(ByVal location As Point, ByVal size As Size) Me.New(location, size, "▌"c, "▀"c, "▐"c, "▄"c) End Sub
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Initializes a new instance of the <see cref="ConsoleRectangle"/> structure. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="location"> ''' The location for this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </param> ''' ''' <param name="size"> ''' The size for this <see cref="ConsoleRectangle"/>. ''' </param> ''' ''' <param name="charLeft"> ''' The character to print the left border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </param> ''' ''' <param name="charTop"> ''' The character to print the top border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </param> ''' ''' <param name="charRight"> ''' The character to print the right border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </param> ''' ''' <param name="charBottom"> ''' The character to print the bottom border of this <see cref="ConsoleRectangle"/> on a console output buffer. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <exception cref="ArgumentNullException"> ''' </exception> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub New(ByVal location As Point, ByVal size As Size, ByVal charLeft As Char, ByVal charTop As Char, ByVal charRight As Char, ByVal charBottom As Char)
Me.UpdateLocation(location) Me.UpdateSize(size)
Me.CharLeft = charLeft Me.CharTop = charTop Me.CharRight = charRight Me.CharBottom = charBottom
End Sub
#End Region
#Region " Public Methods "
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Writes the bounds of this <see cref="ConsoleRectangle"/> on the current console output buffer. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub Write() For row As Integer = 0 To (Me.Height - 1) For column As Integer = 0 To (Me.Width - 1) If (row = 0) Then Console.SetCursorPosition((Me.X + column), (Me.Y + row)) Console.Write(Me.CharTop)
ElseIf (row = (Me.Height - 1)) Then Console.SetCursorPosition((Me.X + column), (Me.Y + row)) Console.Write(Me.CharBottom)
End If Next column
Console.SetCursorPosition(Me.X, (Me.Y + row)) Console.Write(Me.CharLeft) Console.SetCursorPosition(Me.X + (Me.Width - 1), (Me.Y + row)) Console.Write(Me.CharRight) Next row End Sub
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Enlarges this <see cref="ConsoleRectangle"/> by the specified amount. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="width"> ''' The amount to inflate this <see cref="ConsoleRectangle"/> horizontally. ''' </param> ''' ''' <param name="height"> ''' The amount to inflate this <see cref="ConsoleRectangle"/> vertically. ''' </param> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub Inflate(ByVal width As Integer, ByVal height As Integer) Dim rc As Rectangle = Me rc.Inflate(width, height) Me.Size = rc.Size End Sub
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Enlarges this <see cref="ConsoleRectangle"/> by the specified amount. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="size"> ''' The amount to inflate this <see cref="ConsoleRectangle"/>. ''' </param> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub Inflate(ByVal size As Size) Me.Inflate(size.Width, size.Height) End Sub
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Adjusts the location of this <see cref="ConsoleRectangle"/> by the specified amount. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="x"> ''' The horizontal offset. ''' </param> ''' ''' <param name="y"> ''' The vertical offset. ''' </param> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub Offset(ByVal x As Integer, ByVal y As Integer) Dim rc As Rectangle = Me rc.Offset(x, y) Me.Location = rc.Location End Sub
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Adjusts the location of this <see cref="ConsoleRectangle"/> by the specified amount. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="location"> ''' The amount to offset the location. ''' </param> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub Offset(ByVal location As Point) Me.Offset(location.X, location.Y) End Sub
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Returns a <see cref="String"/> that represents this <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' A <see cref="String"/> that represents this <see cref="ConsoleRectangle"/>. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Overrides Function ToString() As String
If (Me.Width = 1) AndAlso (Me.Height = 1) Then Return Me.CharLeft
ElseIf (Me.Height = 1) Then Dim sb As New StringBuilder() Dim lastColumnIndex As Integer = (Me.Width - 1) For column As Integer = 0 To lastColumnIndex Select Case column Case 0 sb.Append(Me.CharLeft) Case lastColumnIndex sb.Append(Me.CharRight) Case Else sb.Append(Me.CharTop) End Select Next column Return sb.ToString()
ElseIf (Me.Width = 1) Then Dim sb As New StringBuilder() For row As Integer = 0 To (Me.Height - 1) sb.Append(Me.CharLeft) sb.AppendLine() Next row Return sb.ToString()
Else Dim sb As New StringBuilder() Dim lastRowIndex As Integer = (Me.Height - 1) For row As Integer = 0 To lastRowIndex Select Case row Case 0 sb.Append(Me.CharLeft) sb.Append(New String(Me.CharTop, Math.Max((Me.Width - 2), 1))) sb.Append(Me.CharRight) Case lastRowIndex sb.Append(Me.CharLeft) sb.Append(New String(Me.CharBottom, Math.Max((Me.Width - 2), 1))) sb.Append(Me.CharRight) Case Else sb.Append(Me.CharLeft) sb.Append(New String(" "c, Math.Max((Me.Width - 2), 1))) sb.Append(Me.CharRight) End Select sb.AppendLine() Next row Return sb.ToString()
End If
End Function
#End Region
#Region " Operators "
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Performs an implicit conversion from <see cref="ConsoleRectangle"/> to <see cref="Rectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="rect"> ''' The source <see cref="ConsoleRectangle"/>. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' The resulting <see cref="Rectangle"/>. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Shared Widening Operator CType(ByVal rect As ConsoleRectangle) As Rectangle Return New Rectangle(rect.Location, rect.Size) End Operator
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Performs an implicit conversion from <see cref="Rectangle"/> to <see cref="ConsoleRectangle"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="rect"> ''' The source <see cref="Rectangle"/>. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' The resulting <see cref="ConsoleRectangle"/>. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Shared Widening Operator CType(rect As Rectangle) As ConsoleRectangle Return New ConsoleRectangle(rect) End Operator
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Tests whether two <see cref="Rectangle"/> and <see cref="ConsoleRectangle"/> structures have equal location and size. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="rect"> ''' The <see cref="Rectangle"/> to compare with the <see cref="ConsoleRectangle"/> structure. ''' </param> ''' ''' <param name="consoleRect"> ''' The <see cref="ConsoleRectangle"/> to compare with the <see cref="Rectangle"/> structure. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' <see langword="True"/> if the two <see cref="Rectangle"/> and <see cref="ConsoleRectangle"/> structures have equal location and size; ''' otherwise, <see langword="False"/>. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Shared Operator =(rect As Rectangle, consoleRect As ConsoleRectangle) As Boolean Return (rect.Location = consoleRect.Location) AndAlso (rect.Size = consoleRect.Size) End Operator
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Determine whether two <see cref="Rectangle"/> and <see cref="ConsoleRectangle"/> structures differ in location or size. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="rect"> ''' The <see cref="Rectangle"/> to compare with the <see cref="ConsoleRectangle"/> structure. ''' </param> ''' ''' <param name="consoleRect"> ''' The <see cref="ConsoleRectangle"/> to compare with the <see cref="Rectangle"/> structure. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' <see langword="True"/> if the two <see cref="Rectangle"/> and <see cref="ConsoleRectangle"/> structures differ in location or size; ''' otherwise, <see langword="False"/>. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Shared Operator <>(rect As Rectangle, consoleRect As ConsoleRectangle) As Boolean Return Not (rect = consoleRect) End Operator
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Tests whether two <see cref="ConsoleRectangle"/> structures have equal location, size and characters. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="left"> ''' The <see cref="ConsoleRectangle"/> structure that is to the left of the equality operator. ''' </param> ''' ''' <param name="right"> ''' The <see cref="ConsoleRectangle"/> structure that is to the right of the equality operator. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' <see langword="True"/> if the two <see cref="ConsoleRectangle"/> structures have equal location, size and characters; ''' otherwise, <see langword="False"/>. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Shared Operator =(left As ConsoleRectangle, right As ConsoleRectangle) As Boolean Return (left.Location = right.Location) AndAlso (left.Size = right.Size) AndAlso (left.CharLeft = right.CharLeft) AndAlso (left.CharTop = right.CharTop) AndAlso (left.CharRight = right.CharRight) AndAlso (left.CharBottom = right.CharBottom) End Operator
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Tests whether two <see cref="ConsoleRectangle"/> structures differ in location, size or characters. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="left"> ''' The <see cref="ConsoleRectangle"/> structure that is to the left of the equality operator. ''' </param> ''' ''' <param name="right"> ''' The <see cref="ConsoleRectangle"/> structure that is to the right of the equality operator. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' <see langword="True"/> if if any of the two <see cref="ConsoleRectangle"/> structures differ in location, size or characters; ''' otherwise, <see langword="False"/>. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Shared Operator <>(left As ConsoleRectangle, right As ConsoleRectangle) As Boolean Return Not (left = right) End Operator
#End Region
#Region " Private Methods "
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Updates the location value specified in <see cref="ConsoleRectangle.Location"/> property. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="newLocation"> ''' The new location. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <exception cref="ArgumentException"> ''' Positive value is required for coordinate. ''' </exception> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Private Sub UpdateLocation(ByVal newLocation As Point) If (Me.location_ = newLocation) Then Exit Sub End If
If (newLocation.X < 0) Then Throw New ArgumentException(paramName:=NameOf(newLocation), message:=String.Format("Positive value is required for '{0}' coordinate.", NameOf(newLocation.X)))
ElseIf (newLocation.Y < 0) Then Throw New ArgumentException(paramName:=NameOf(newLocation), message:=String.Format("Positive value is required for '{0}' coordinate.", NameOf(newLocation.Y)))
End If
Me.location_ = newLocation End Sub
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Updates the size value specified in <see cref="ConsoleRectangle.Size"/> property. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="newSize"> ''' The new size. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <exception cref="ArgumentException"> ''' Value greather than zero is required. ''' </exception> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Private Sub UpdateSize(ByVal newSize As Size) If (Me.size_ = newSize) Then Exit Sub End If
If (newSize.Width <= 0) Then Throw New ArgumentException(paramName:=NameOf(Size), message:=String.Format("Value greather than zero is required for '{0}'", NameOf(newSize.Width)))
ElseIf (newSize.Height <= 0) Then Throw New ArgumentException(paramName:=NameOf(Size), message:=String.Format("Value greather than zero is required for '{0}'", NameOf(newSize.Height)))
End If
Me.size_ = newSize End Sub
#End Region
End Structure Ejemplo de uso: Public Module Module1
Public Sub Main() Dim rc1Pos As New Point(2, Console.CursorTop + 2) Dim rc1 As New ConsoleRectangle(rc1Pos, New Size(32, 4), "▌"c, "▀"c, "▐"c, "▄"c) rc1.Write()
Dim rc2Pos As New Point(2, Console.CursorTop + 2) Dim rc2 As New ConsoleRectangle(rc2Pos, New Size(32, 4), "X"c, "X"c, "X"c, "X"c) rc2.Write()
Dim rc3Pos As New Point(2, Console.CursorTop + 2) Dim rc3 As New ConsoleRectangle(rc3Pos, New Size(11, 5), "▌"c, "▀"c, "▐"c, "▄"c) rc3.Write()
Dim rc4Pos As New Point(rc3Pos.X + (rc3.Width \ 2), rc3Pos.Y + +(rc3.Height \ 2)) Dim rc4 As New ConsoleRectangle(rc4Pos, rc3.Size, "X"c, "X"c, "X"c, "X"c) rc4.Write()
Console.SetCursorPosition(rc1.X + 9, rc1.Y) Console.Write(" Hello World ") Console.SetCursorPosition(rc1.X + 6, rc1.Y + 2) Console.Write(" By ElektroStudios ")
Console.CursorVisible = False Console.ReadKey(intercept:=True) End Sub
End Module
|
|
« Última modificación: 3 Marzo 2019, 01:17 am por Eleкtro »
|
En línea
|
|
|
|
**Aincrad**
|
VM Detector classUna Pequeña class que codee para detectar la ejecución en maquinas virtuales. Como usar ? Agregar 1 Timer Public ProtectVM As AntiVM = New AntiVM Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ProtectVM.VM_Start() Anti_VM_Timer.Enabled = True End Sub Private Sub Anti_VM_Timer_Tick(sender As Object, e As EventArgs) Handles Anti_VM_Timer.Tick Dim Detection As Boolean = ProtectVM.IsVirtualMachinePresent Dim Description As String = ProtectVM.DescriptcionVM If Detection = True Then msgbox("VM detectada : " & Description) End If End Sub
|
|
« Última modificación: 11 Agosto 2019, 02:33 am por **Aincrad** »
|
En línea
|
|
|
|
**Aincrad**
|
Listar los Modulos de un Proceso. (Incluyendo su MainModule) Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As UInt32, ByVal bInheritHandle As Int32, ByVal dwProcessId As UInt32) As IntPtr Public Shared Function GetProcessModules(ByVal Process_Name As String) As String Dim DataS As New StringBuilder Dim pc As Process() = Process.GetProcessesByName(Process_Name) Dim hndProc As IntPtr = OpenProcess(&H2 Or &H8 Or &H10 Or &H20 Or &H400, 1, CUInt(pc(0).Id)) If hndProc = IntPtr.Zero Then Return "Error" End If Dim ModulesCount As Integer = pc(0).Modules.Count - 1 For index As Integer = 0 To ModulesCount DataS.Append(pc(0).Modules(index).FileName & vbNewLine) Next Return DataS.ToString End Function
Modo de Empleo : TextBox1.Text = GetProcessModules("ProcessName")
|
|
|
En línea
|
|
|
|
**Aincrad**
|
Mi Vieja Clase para Injectar DLLs .DestroyerInjector.vb'Hack Trainer | Private SDK 'Made by Destroyer | Discord : Destroyer#3527 'Creation date : 4/02/2017 'Last Update : 26/06/2019 - Minimal Update Namespace DestroyerSDK Public Class Injector #Region " Declare's " Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As UInt32, ByVal bInheritHandle As Int32, ByVal dwProcessId As UInt32) As IntPtr Declare Function CloseHandle Lib "kernel32" (ByVal hObject As IntPtr) As Int32 Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByVal buffer As Byte(), ByVal size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Boolean Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As IntPtr, ByVal methodName As String) As IntPtr Declare Function GetModuleHandleA Lib "kernel32" (ByVal moduleName As String) As IntPtr Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As IntPtr, ByVal lpAddress As IntPtr, ByVal dwSize As IntPtr, ByVal flAllocationType As UInteger, ByVal flProtect As UInteger) As IntPtr Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As IntPtr, ByVal lpThreadAttribute As IntPtr, ByVal dwStackSize As IntPtr, ByVal lpStartAddress As IntPtr, ByVal lpParameter As IntPtr, ByVal dwCreationFlags As UInteger, ByVal lpThreadId As IntPtr) As IntPtr Declare Function GetPrivateProfileStringA Lib "kernel32" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As System.Text.StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As Integer Declare Function WritePrivateProfileStringA Lib "kernel32" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer #End Region #Region " Method's " Private Shared Function CreateRemoteThread(ByVal procToBeInjected As Process, ByVal sDllPath As String) As Boolean Dim lpLLAddress As IntPtr = IntPtr.Zero Dim hndProc As IntPtr = OpenProcess(&H2 Or &H8 Or &H10 Or &H20 Or &H400, 1, CUInt(procToBeInjected.Id)) If hndProc = IntPtr.Zero Then Return False End If lpLLAddress = GetProcAddress(GetModuleHandleA("kernel32.dll"), "LoadLibraryA") If lpLLAddress = CType(0, IntPtr) Then Return False End If Dim lpAddress As IntPtr = VirtualAllocEx(hndProc, CType(Nothing, IntPtr), CType(sDllPath.Length, IntPtr), CUInt(&H1000) Or CUInt(&H2000), CUInt(&H40)) If lpAddress = CType(0, IntPtr) Then Return False End If Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(sDllPath) Dim ipTmp As IntPtr = IntPtr.Zero WriteProcessMemory(hndProc, lpAddress, bytes, CUInt(bytes.Length), ipTmp) If ipTmp = IntPtr.Zero Then Return False End If Dim ipThread As IntPtr = CreateRemoteThread(hndProc, CType(Nothing, IntPtr), IntPtr.Zero, lpLLAddress, lpAddress, 0, CType(Nothing, IntPtr)) If ipThread = IntPtr.Zero Then Return False End If Return True End Function Public Shared Function InjectDLL(ByVal ProcessName As String, ByVal sDllPath As String) As Boolean Dim p As Process() = Process.GetProcessesByName(ProcessName) If p.Length <> 0 Then If Not CreateRemoteThread(p(0), sDllPath) Then If p(0).MainWindowHandle <> CType(0, IntPtr) Then CloseHandle(p(0).MainWindowHandle) End If Return False End If Return True End If Return False End Function #End Region End Class End Namespace
Modo de uso : Dim InjectDll As Boolean = InjectDLL("ProcessGame", "DLL_Path")
|
|
« Última modificación: 26 Marzo 2020, 19:25 pm por **Aincrad** »
|
En línea
|
|
|
|
**Aincrad**
|
Un Control Recién salido del Horno , Literalmente lo hice ayer. Adf.ly ClickerTal como dice el titulo, Con ella puedes generas visitas a tu Link Adf.ly .. ---------------------------------------Parchado
Bueno Fue bueno mientras duro. pero ya fue Parchado el code. osea que ia no sirve, y no voy a actualizar.
|
|
« Última modificación: 12 Abril 2020, 18:47 pm por **Aincrad** »
|
En línea
|
|
|
|
**Aincrad**
|
Bueno Comparto algunas funciones útiles por si creas algún Cheat en vb.net . las necesitaras.Características : - GetCursorPosition ' De tipo Point , Devuelve la Posicion del Puntero del mause en el Escritorio
- GetClientPosition ' De tipo Point , Devuelve la Posicion de Alguna venta en el Escritorio [Juego / Applicacion]
- GetClientCursorPosition ' De tipo Point , Devuelve la Posicion del Puntero del mause desde el Cliente [Juego / Applicacion]
- ShowCursor ' De tipo Bool , Muestra o Oculta el Cursor del mause
- GetProcessHandle ' De tipo IntPtr , Obtienes el Handle de algun Proceso, By Elektro
Class WinMauseHelpersCoreImports System.Runtime.InteropServices Public Class WinMauseHelpersCore #Region " Pinvoke " <DllImport("user32.dll")> _ Private Shared Function GetCursorPos(<[In](), Out()> ByRef pt As System.Drawing.Point) As Boolean End Function <DllImport("user32.dll", SetLastError:=True)> _ Private Shared Function ScreenToClient(ByVal hWnd As IntPtr, ByRef lpPoint As System.Drawing.Point) As Boolean End Function <DllImport("user32.dll", CharSet:=CharSet.Auto)> _ Private Shared Function GetClientRect(ByVal hWnd As System.IntPtr, ByRef lpRECT As RECT) As Integer End Function <DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> _ Public Shared Function ShowCursor(ByVal bShow As Boolean) As Integer End Function #Region " Structures " <StructLayout(LayoutKind.Sequential)> _ Public Structure RECT Private _Left As Integer, _Top As Integer, _Right As Integer, _Bottom As Integer Public Sub New(ByVal Rectangle As Rectangle) Me.New(Rectangle.Left, Rectangle.Top, Rectangle.Right, Rectangle.Bottom) End Sub Public Sub New(ByVal Left As Integer, ByVal Top As Integer, ByVal Right As Integer, ByVal Bottom As Integer) _Left = Left _Top = Top _Right = Right _Bottom = Bottom End Sub Public Property X As Integer Get Return _Left End Get Set(ByVal value As Integer) _Right = _Right - _Left + value _Left = value End Set End Property Public Property Y As Integer Get Return _Top End Get Set(ByVal value As Integer) _Bottom = _Bottom - _Top + value _Top = value End Set End Property Public Property Left As Integer Get Return _Left End Get Set(ByVal value As Integer) _Left = value End Set End Property Public Property Top As Integer Get Return _Top End Get Set(ByVal value As Integer) _Top = value End Set End Property Public Property Right As Integer Get Return _Right End Get Set(ByVal value As Integer) _Right = value End Set End Property Public Property Bottom As Integer Get Return _Bottom End Get Set(ByVal value As Integer) _Bottom = value End Set End Property Public Property Height() As Integer Get Return _Bottom - _Top End Get Set(ByVal value As Integer) _Bottom = value + _Top End Set End Property Public Property Width() As Integer Get Return _Right - _Left End Get Set(ByVal value As Integer) _Right = value + _Left End Set End Property Public Property Location() As Point Get Return New Point(Left, Top) End Get Set(ByVal value As Point) _Right = _Right - _Left + value.X _Bottom = _Bottom - _Top + value.Y _Left = value.X _Top = value.Y End Set End Property Public Property Size() As Size Get Return New Size(Width, Height) End Get Set(ByVal value As Size) _Right = value.Width + _Left _Bottom = value.Height + _Top End Set End Property Public Shared Widening Operator CType(ByVal Rectangle As RECT) As Rectangle Return New Rectangle(Rectangle.Left, Rectangle.Top, Rectangle.Width, Rectangle.Height) End Operator Public Shared Widening Operator CType(ByVal Rectangle As Rectangle) As RECT Return New RECT(Rectangle.Left, Rectangle.Top, Rectangle.Right, Rectangle.Bottom) End Operator Public Shared Operator =(ByVal Rectangle1 As RECT, ByVal Rectangle2 As RECT) As Boolean Return Rectangle1.Equals(Rectangle2) End Operator Public Shared Operator <>(ByVal Rectangle1 As RECT, ByVal Rectangle2 As RECT) As Boolean Return Not Rectangle1.Equals(Rectangle2) End Operator Public Overrides Function ToString() As String Return "{Left: " & _Left & "; " & "Top: " & _Top & "; Right: " & _Right & "; Bottom: " & _Bottom & "}" End Function Public Overloads Function Equals(ByVal Rectangle As RECT) As Boolean Return Rectangle.Left = _Left AndAlso Rectangle.Top = _Top AndAlso Rectangle.Right = _Right AndAlso Rectangle.Bottom = _Bottom End Function Public Overloads Overrides Function Equals(ByVal [Object] As Object) As Boolean If TypeOf [Object] Is RECT Then Return Equals(DirectCast([Object], RECT)) ElseIf TypeOf [Object] Is Rectangle Then Return Equals(New RECT(DirectCast([Object], Rectangle))) End If Return False End Function End Structure #End Region Public Function GetCursorPosition() As System.Drawing.Point Dim CursorPos As New System.Drawing.Point GetCursorPos(CursorPos) Return CursorPos End Function Public Function GetClientPosition(ByVal hWnd As IntPtr) As System.Drawing.Point Dim ClientPos As New System.Drawing.Point ScreenToClient(hWnd, ClientPos) Return ClientPos End Function Public Function GetClientCursorPosition(ByVal hWnd As IntPtr) As System.Drawing.Point Dim ClientCursorPos As New System.Drawing.Point Dim CursorPos As System.Drawing.Point = GetCursorPosition() Dim ClientPos As System.Drawing.Point = GetClientPosition(hWnd) ClientCursorPos = New System.Drawing.Point(CursorPos.X + ClientPos.X, CursorPos.Y + ClientPos.Y) Return ClientCursorPos End Function Public Function GetProcessHandle(ByVal ProcessName As String) As IntPtr If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) Dim ProcessArray = Process.GetProcessesByName(ProcessName) If ProcessArray.Length = 0 Then Return Nothing Else Return ProcessArray(0).MainWindowHandle End Function #End Region End Class
|
|
« Última modificación: 10 Julio 2020, 22:36 pm por **Aincrad** »
|
En línea
|
|
|
|
**Aincrad**
|
Defender WatcherMonitoriza la desactivacion em tiempo real del Windows Defender. ( click en la imagen para ir código fuente en Github) Codigo FuenteDefenderWatcher.vb' *********************************************************************** ' Author : Destroyer ' Modified : 8-June-2021 ' Github : https://github.com/DestroyerDarkNess ' Twitter : https://twitter.com/Destroy06933000 ' *********************************************************************** ' <copyright file="DefenderWatcher.vb" company="S4Lsalsoft"> ' Copyright (c) S4Lsalsoft. All rights reserved. ' </copyright> ' *********************************************************************** #Region " Usage Examples " ' ''' <summary> ' ''' The DefenderWatcher instance to monitor Windows Defender Realtime Status Changed. ' ''' </summary> 'Friend WithEvents DefenderMon As New DefenderWatcher ' ''' ---------------------------------------------------------------------------------------------------- ' ''' <summary> ' ''' Handles the <see cref="DefenderWatcher.DefenderStatusChanged"/> event of the <see cref="DefenderMon"/> instance. ' ''' </summary> ' ''' ---------------------------------------------------------------------------------------------------- ' ''' <param name="sender"> ' ''' The source of the event. ' ''' </param> ' ''' ' ''' <param name="e"> ' ''' The <see cref="DefenderWatcher.DefenderStatusChangedEventArgs"/> instance containing the event data. ' ''' </param> ' ''' ---------------------------------------------------------------------------------------------------- 'Private Sub DefenderMon_DefenderStatusChanged(ByVal sender As Object, ByVal e As DefenderWatcher.DefenderStatusChangedEventArgs) Handles DefenderMon.DefenderStatusChanged ' Dim sb As New System.Text.StringBuilder ' sb.AppendLine(" Defender Configuration change - Windows Defender RealtimeMonitoring") ' sb.AppendLine(String.Format("DisableRealtimeMonitoring......: {0}", e.TargetInstance.ToString)) ' sb.AppendLine(String.Format("Old Value......................: {0}", e.PreviousInstance.ToString)) ' Me.BeginInvoke(Sub() ' TextBox1.Text += (sb.ToString) & Environment.NewLine & Environment.NewLine ' End Sub) 'End Sub #End Region #Region " Imports " Imports System.ComponentModel Imports System.Management Imports System.Windows.Forms #End Region Namespace Core.Engine.Watcher Public Class DefenderWatcher : Inherits NativeWindow : Implements IDisposable #Region " Constructor " ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Initializes a new instance of <see cref="DefenderWatcher"/> class. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub New() Me.events = New EventHandlerList End Sub #End Region #Region " Properties " ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Gets a value that determines whether the monitor is running. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- Public ReadOnly Property IsRunning As Boolean <DebuggerStepThrough> Get Return Me.isRunningB End Get End Property Private isRunningB As Boolean #End Region Private Scope As New ManagementScope("root\Microsoft\Windows\Defender") Private WithEvents DefenderState As ManagementEventWatcher = New ManagementEventWatcher(Scope, New WqlEventQuery("SELECT * FROM __InstanceModificationEvent WITHIN 5 WHERE TargetInstance ISA 'MSFT_MpPreference' AND TargetInstance.DisableRealtimeMonitoring=True")) #Region " Events " ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' A list of event delegates. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- Private ReadOnly events As EventHandlerList Public Custom Event DefenderStatusChanged As EventHandler(Of DefenderStatusChangedEventArgs) <DebuggerNonUserCode> <DebuggerStepThrough> AddHandler(ByVal value As EventHandler(Of DefenderStatusChangedEventArgs)) Me.events.AddHandler("DefenderStatusChangedEvent", value) End AddHandler <DebuggerNonUserCode> <DebuggerStepThrough> RemoveHandler(ByVal value As EventHandler(Of DefenderStatusChangedEventArgs)) Me.events.RemoveHandler("DefenderStatusChangedEvent", value) End RemoveHandler <DebuggerNonUserCode> <DebuggerStepThrough> RaiseEvent(ByVal sender As Object, ByVal e As DefenderStatusChangedEventArgs) Dim handler As EventHandler(Of DefenderStatusChangedEventArgs) = DirectCast(Me.events("DefenderStatusChangedEvent"), EventHandler(Of DefenderStatusChangedEventArgs)) If (handler IsNot Nothing) Then handler.Invoke(sender, e) End If End RaiseEvent End Event #End Region ' Dim oInterfaceType As String = TIBase?.Properties("DisableRealtimeMonitoring")?.Value.ToString() ' Prevent Defender Disable Public Sub DefenderState_EventArrived(ByVal sender As Object, ByVal e As EventArrivedEventArgs) Handles DefenderState.EventArrived Dim DefenderTargetInstance As Boolean = Nothing Dim DefenderPreviousInstance As Boolean = Nothing Using TIBase = CType(e.NewEvent.Properties("TargetInstance").Value, ManagementBaseObject) DefenderTargetInstance = CBool(TIBase.Properties("DisableRealtimeMonitoring").Value) End Using Using PIBase = CType(e.NewEvent.Properties("PreviousInstance").Value, ManagementBaseObject) DefenderPreviousInstance = CBool(PIBase.Properties("DisableRealtimeMonitoring").Value) End Using Me.OnDefenderStatusChanged(New DefenderStatusChangedEventArgs(DefenderTargetInstance, DefenderPreviousInstance)) End Sub #Region " Event Invocators " <DebuggerStepThrough> Protected Overridable Sub OnDefenderStatusChanged(ByVal e As DefenderStatusChangedEventArgs) RaiseEvent DefenderStatusChanged(Me, e) End Sub #End Region #Region " Events Data " Public NotInheritable Class DefenderStatusChangedEventArgs : Inherits EventArgs #Region " Properties " Private ReadOnly TargetInstanceB As Boolean Public ReadOnly Property TargetInstance As Boolean <DebuggerStepThrough> Get Return Me.TargetInstanceB End Get End Property Private ReadOnly PreviousInstanceB As Boolean Public ReadOnly Property PreviousInstance As Boolean <DebuggerStepThrough> Get Return Me.PreviousInstanceB End Get End Property #End Region #Region " Constructors " <DebuggerNonUserCode> Private Sub New() End Sub <DebuggerStepThrough> Public Sub New(ByVal TI As Boolean, ByVal PI As Boolean) Me.TargetInstanceB = TI Me.PreviousInstanceB = PI End Sub #End Region End Class #End Region #Region " Public Methods " ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Starts monitoring. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <exception cref="Exception"> ''' Monitor is already running. ''' </exception> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Overridable Sub Start() If (Me.Handle = IntPtr.Zero) Then MyBase.CreateHandle(New CreateParams) DefenderState.Start() Me.isRunningB = True Else Throw New Exception(message:="Monitor is already running.") End If End Sub ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Stops monitoring. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <exception cref="Exception"> ''' Monitor is already stopped. ''' </exception> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Overridable Sub [Stop]() If (Me.Handle <> IntPtr.Zero) Then DefenderState.Stop() MyBase.DestroyHandle() Me.isRunningB = False Else Throw New Exception(message:="Monitor is already stopped.") End If End Sub #End Region #Region " IDisposable Implementation " ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' To detect redundant calls when disposing. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- Private isDisposed As Boolean ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Releases all the resources used by this instance. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Sub Dispose() Implements IDisposable.Dispose Me.Dispose(isDisposing:=True) GC.SuppressFinalize(obj:=Me) End Sub ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. ''' Releases unmanaged and - optionally - managed resources. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="isDisposing"> ''' <see langword="True"/> to release both managed and unmanaged resources; ''' <see langword="False"/> to release only unmanaged resources. ''' </param> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Protected Overridable Sub Dispose(ByVal isDisposing As Boolean) If (Not Me.isDisposed) AndAlso (isDisposing) Then Me.events.Dispose() Me.Stop() End If Me.isDisposed = True End Sub #End Region End Class End Namespace
|
|
|
En línea
|
|
|
|
**Aincrad**
|
FastArgumentParserParsea Argumentos de manera rapida y sencilla. ( click en la imagen para ir código fuente en Github) Codigo FuenteFastArgumentParser.vb' *********************************************************************** ' Author : Destroyer ' Github : https://github.com/DestroyerDarkNess ' Modified : 26-1-2023 ' *********************************************************************** ' <copyright file="FastArgumentParser.vb" company="S4lsalsoft"> ' Copyright (c) S4lsalsoft. All rights reserved. ' </copyright> ' *********************************************************************** #Region " Usage Examples " ''Commandline Arguments '' This contains the following: '' -file "d3d9.h" -silent 0x146 H&146 'Dim CommandLineArgs As String() = Environment.GetCommandLineArgs 'Dim FastArgumentParser As Core.FastArgumentParser = New Core.FastArgumentParser() '' Optional Config '' FastArgumentParser.ArgumentDelimiter = "-" '' Set your Arguments 'Dim FileA As IArgument = FastArgumentParser.Add("file").SetDescription("file name") 'Dim SilentA As IArgument = FastArgumentParser.Add("silent").SetDescription("start silent") '' Parse Arguments 'FastArgumentParser.Parse(CommandLineArgs) '' Or '' FastArgumentParser.Parse(CommandLineArgs, " ") ' To config Parameters Delimiter '' Get Arguments Values 'Console.WriteLine("Argument " & FileA.Name & " Value is: " & FileA.Value) 'Console.WriteLine("Argument " & SilentA.Name & " Value is: " & SilentA.Value) #End Region #Region " Imports " Imports System.Collections.Specialized #End Region Namespace Core Public Class FastArgumentParser Private Property ArgumentList As List(Of IArgument) Public Property ArgumentDelimiter As String = "-" Private UnknownArgs As New List(Of IArgument) Public ReadOnly Property UnknownArguments As List(Of IArgument) Get Return UnknownArgs End Get End Property Public ReadOnly Property Count As Integer Get Return ArgumentList.Count() End Get End Property Public Sub New() ArgumentList = New List(Of IArgument) End Sub Public Function Add(ByVal name As String) As IArgument If name.StartsWith(ArgumentDelimiter) = False Then name = ArgumentDelimiter & name Dim ArgHandler As IArgument = New IArgument() With {.Name = name} ArgumentList.Add(ArgHandler) Return ArgHandler End Function Public Sub Parse(ByVal args As String(), Optional ByVal ParameterDelimiter As String = " ") Dim argCol As StringCollection = New StringCollection() argCol.AddRange(args) Dim strEnum As StringEnumerator = argCol.GetEnumerator() Dim CountRequiredArg As Integer = 0 Dim LastArg As IArgument = Nothing While strEnum.MoveNext() If strEnum.Current.StartsWith(ArgumentDelimiter) Then Dim GetArg As IArgument = GetArgCommand(strEnum.Current) LastArg = GetArg If GetArg Is Nothing Then Dim UnknownA As IArgument = New IArgument With {.Name = strEnum.Current} UnknownArgs.Add(UnknownA) End If Else If LastArg IsNot Nothing Then If Not LastArg.Value = String.Empty Then LastArg.Value += ParameterDelimiter LastArg.Value += strEnum.Current Continue While End If End If End While End Sub Private Function GetArgCommand(ByVal NameEx As String) As IArgument For Each item In ArgumentList If NameEx.Equals(item.Name) Then Return item Next Return Nothing End Function End Class Public Class IArgument Public Property Name As String = String.Empty Public Property Description As String = String.Empty Public Property Value As String = String.Empty Public Function SetDescription(ByVal _text As String) As IArgument Me.Description = _text Return Me End Function End Class End Namespace
Ejemplo de Uso: 'Commandline Arguments ' This contains the following: ' -file "d3d9.h" -silent 0x146 H&146 Dim CommandLineArgs As String() = Environment.GetCommandLineArgs Dim FastArgumentParser As Core.FastArgumentParser = New Core.FastArgumentParser() ' Optional Config ' FastArgumentParser.ArgumentDelimiter = "-" ' Set your Arguments Dim FileA As IArgument = FastArgumentParser.Add("file").SetDescription("file name") Dim SilentA As IArgument = FastArgumentParser.Add("silent").SetDescription("start silent") ' Parse Arguments FastArgumentParser.Parse(CommandLineArgs) ' Or ' FastArgumentParser.Parse(CommandLineArgs, " ") ' To config Parameters Delimiter ' Get Arguments Values Console.WriteLine("Argument " & FileA.Name & " Value is: " & FileA.Value) Console.WriteLine("Argument " & SilentA.Name & " Value is: " & SilentA.Value)
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Librería de Snippets en C/C++
« 1 2 3 4 »
Programación C/C++
|
z3nth10n
|
31
|
25,872
|
2 Agosto 2013, 17:13 pm
por 0xDani
|
|
|
[APORTE] [VBS] Snippets para manipular reglas de bloqueo del firewall de Windows
Scripting
|
Eleкtro
|
1
|
4,081
|
3 Febrero 2014, 20:19 pm
por Eleкtro
|
|
|
Librería de Snippets para Delphi
« 1 2 »
Programación General
|
crack81
|
15
|
21,150
|
25 Marzo 2016, 18:39 pm
por crack81
|
|
|
Una organización en Github para subir, proyectos, snippets y otros?
Sugerencias y dudas sobre el Foro
|
z3nth10n
|
0
|
3,071
|
21 Febrero 2017, 10:47 am
por z3nth10n
|
|
|
índice de la Librería de Snippets para VB.NET !!
.NET (C#, VB.NET, ASP)
|
Eleкtro
|
7
|
6,540
|
4 Julio 2018, 21:35 pm
por Eleкtro
|
|