Explicação: Você tem esse seu aplicativo que cada vez que for executado terá que ter um novo nome. Você não mexe em nada no código dele para fazer isso. Aí você terá um segundo aplicativo do tipo Console Application denominado Laucher.exe. Os atalhos (Da área de trabalho, menu iniciar e barra de tarefas) para apontar para o Laucher.exe, ao invés do seu aplicativo. A pasta onde seu software for instalado vai ficar assim: A pasta Application é onde vai ficar a sua aplicação em si, e o Laucher.exe é o Laucher. Daí, se tudo estiver conforme essa organização, o código do método Main do Laucher pode ser algo parecido a isso: Código PHP: Imports System.Collections Imports System.Collections.Generic Imports System.Linq Imports System.IO Imports System.Text.RegularExpressions Imports System.Text Namespace HL Public Module Program Public Sub Main() Dim pastaDoAplicativo As String = AppDomain.CurrentDomain.BaseDirectory & "\Application" Dim files As String() = Directory.GetFiles(pastaDoAplicativo, "*.exe") If files.Count = 0 Then Console.WriteLine("Aplicação não encontrada! Pressione uma tecla para sair") Console.ReadKey() Else Dim applicativo As String = files(0) Dim appInfo As New FileInfo(applicativo) Dim novoNome As String = appInfo.Directory.FullName & "\" & Randomizer.RandomWord(15) & ".exe" appInfo.MoveTo(novoNome) System.Diagnostics.Process.Start(novoNome) End If End Sub End Class NotInheritable Class Randomizer Private Sub New() End Sub Shared Sub New() listRandom = New Random() nextRandom = New Random() nextRandomHistory = New ArrayList() End Sub Private Shared listRandom As Random Private Shared nextRandom As Random Private Shared nextRandomHistory As ArrayList ''' <summary> ''' Gera uma lista preencida com números organizados de forma aleatória ''' </summary> ''' <param name="min">O número de partida</param> ''' <param name="count">Quantidade de números</param> ''' <returns></returns> Public Shared Function Random(min As Integer, count As Integer) As IList(Of Integer) Dim list As IList(Of Integer) = Enumerable.Range(min, count).OrderBy(Function(r) listRandom.[Next]()).ToList() Return list End Function ''' <summary> ''' Gerar um número aleatório único ''' </summary> ''' <returns>Retorna um número aleatório único nesta instância do aplicativo</returns> Public Shared Function [Next]() As Integer Dim value As Integer = nextRandom.[Next]() While True If Not nextRandomHistory.Contains(value) Then nextRandomHistory.Add(value) Return value End If value = nextRandom.[Next]() End While End Function ''' <summary> ''' Gerar uma letra aleatória ''' </summary> ''' <returns></returns> Public Shared Function RandomLetter() As Char Return ChrW((New Integer() {nextRandom.[Next](65, 90), nextRandom.[Next](97, 122)})(nextRandom.[Next](0, 2))) End Function ''' <summary> ''' Gerar um número de 0 a 9 aleatóriamente ''' </summary> ''' <returns></returns> Public Shared Function RandomDigit() As Integer Return nextRandom.[Next](0, 10) End Function ''' <summary> ''' Gerar um caractere aleatório ''' </summary> ''' <returns></returns> Public Shared Function RandomChar() As Char Return ChrW(nextRandom.[Next](1, 256)) End Function ''' <summary> ''' Gerar uma palavra com letras aleatórias ''' </summary> ''' <param name="charCount">Quantidade de letras</param> ''' <returns></returns> Public Shared Function RandomWord(charCount As Integer) As String Dim str As New StringBuilder() Dim previous As Char = ChrW(0) For i As Integer = 1 To charCount Dim rnd As Char = RandomLetter() While True If rnd <> previous Then Exit While End If rnd = RandomLetter() End While str.Append(rnd) previous = rnd Next Return str.ToString() End Function End Class End Namespace O atalho do executavel vai abrir esse "launcher" em console que vai gerar um novo nome para o processo do executavel (no caso o main.exe), ou seja, toda vez que for aberto o mesmo vai estar com um processo diferente Pode ser util ou não, pode evitar um pouco no uso de hacks, pois muitos hacks listam o processo do game em uma ProcessList, ou em uma TextBox que pede o nome do processo do jogo, e toda vez será um nome diferente para o processo, dificulta um pouco mas né... Pode ser que seja necessário uns ajustes no code, pois foi convertido de C# para .NET, fica ao trabalho de vocês...
Imports System.Collections Imports System.Collections.Generic Imports System.Linq Imports System.IO Imports System.Text.RegularExpressions Imports System.Text Namespace HL Public Module Program Public Sub Main() Dim pastaDoAplicativo As String = AppDomain.CurrentDomain.BaseDirectory & "\Application" Dim files As String() = Directory.GetFiles(pastaDoAplicativo, "*.exe") If files.Count = 0 Then Console.WriteLine("Aplicação não encontrada! Pressione uma tecla para sair") Console.ReadKey() Else Dim applicativo As String = files(0) Dim appInfo As New FileInfo(applicativo) Dim novoNome As String = appInfo.Directory.FullName & "\" & Randomizer.RandomWord(15) & ".exe" appInfo.MoveTo(novoNome) System.Diagnostics.Process.Start(novoNome) End If End Sub End Class NotInheritable Class Randomizer Private Sub New() End Sub Shared Sub New() listRandom = New Random() nextRandom = New Random() nextRandomHistory = New ArrayList() End Sub Private Shared listRandom As Random Private Shared nextRandom As Random Private Shared nextRandomHistory As ArrayList ''' <summary> ''' Gera uma lista preencida com números organizados de forma aleatória ''' </summary> ''' <param name="min">O número de partida</param> ''' <param name="count">Quantidade de números</param> ''' <returns></returns> Public Shared Function Random(min As Integer, count As Integer) As IList(Of Integer) Dim list As IList(Of Integer) = Enumerable.Range(min, count).OrderBy(Function(r) listRandom.[Next]()).ToList() Return list End Function ''' <summary> ''' Gerar um número aleatório único ''' </summary> ''' <returns>Retorna um número aleatório único nesta instância do aplicativo</returns> Public Shared Function [Next]() As Integer Dim value As Integer = nextRandom.[Next]() While True If Not nextRandomHistory.Contains(value) Then nextRandomHistory.Add(value) Return value End If value = nextRandom.[Next]() End While End Function ''' <summary> ''' Gerar uma letra aleatória ''' </summary> ''' <returns></returns> Public Shared Function RandomLetter() As Char Return ChrW((New Integer() {nextRandom.[Next](65, 90), nextRandom.[Next](97, 122)})(nextRandom.[Next](0, 2))) End Function ''' <summary> ''' Gerar um número de 0 a 9 aleatóriamente ''' </summary> ''' <returns></returns> Public Shared Function RandomDigit() As Integer Return nextRandom.[Next](0, 10) End Function ''' <summary> ''' Gerar um caractere aleatório ''' </summary> ''' <returns></returns> Public Shared Function RandomChar() As Char Return ChrW(nextRandom.[Next](1, 256)) End Function ''' <summary> ''' Gerar uma palavra com letras aleatórias ''' </summary> ''' <param name="charCount">Quantidade de letras</param> ''' <returns></returns> Public Shared Function RandomWord(charCount As Integer) As String Dim str As New StringBuilder() Dim previous As Char = ChrW(0) For i As Integer = 1 To charCount Dim rnd As Char = RandomLetter() While True If rnd <> previous Then Exit While End If rnd = RandomLetter() End While str.Append(rnd) previous = rnd Next Return str.ToString() End Function End Class End Namespace
"Pesquisar, desenvolver, solucionar e comercializar serviços de web design de alta qualidade buscando a melhoria continua de web" Hidden Content
mas aí é só a pessoa abrir direto o launcher..
Então era para isto que você pediu , mas isso não vai servir sabe porque? porque eu posso colocar uma textbox no hack e ver o nome do main que o random gerou e colocar na textbox bem simples
Leoclecio, s00x
Ou usar a classe, já que vai ser sempre a mesma.
Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)
Regras do Fórum