|
9541
|
Programación / .NET (C#, VB.NET, ASP) / Re: Compatibilidad de fuentes TrueType personalizadas...
|
en: 19 Marzo 2013, 11:18 am
|
Bueno, ya he encontrado la manera de hacerlo: Public Class Main Dim MyFont As New CustomFont(My.Resources.kakakaka) Private Sub Main_Disposed(sender As Object, e As System.EventArgs) Handles Me.Disposed MyFont.Dispose() End Sub Private Sub Main_Load(sender As System.Object, e As System.EventArgs) Handles Me.Load Me.Label1.Font = New Font(MyFont.Font, 12.0!) End Sub End Class
Saludos!
|
|
|
9542
|
Programación / .NET (C#, VB.NET, ASP) / [TUTORIAL] Instalar controles de terceros en VS2012 desde la consola de Windows.
|
en: 19 Marzo 2013, 10:33 am
|
Hola! Desde que empecé a aprender VisualStudio siempre tuve interés por poder instalar controles de una manera automatizada, ya que suelo hacer mis própios instaladores personalizados, y mis tests con la IDE de VS en máquinas virtuales, y allí tengo que instalar cada control que necesito manuálmente... Actualmente hay varias (pocas) aplicaciones que nos ayudan a instalar controles de forma automática, el gran problema es que todas están desactualizadas para poder instalar un control en la versión 11 de VisualStudio (VS2012), hasta ahora... Un usuario al que le estoy muy agradecido ha renovado el source de un antiguo proyecto (TCI), es una utilidad CommandLine para poder instalar controles en cualquier versión de VS, y la verdad es que es magnifica, se instalan en pocos segundos. Aquí tienen el source: http://www.imagingshop.com/download/toolbox-integration.zipY aquí la utilidad compilada: http://elektrostudios.tk/DTE.zipInstrucciones de uso: DteToolboxInstaller.exe [install|uninstall] [vs2005|vs2008|vs2010|vs2012] [tab name] [assembly path] Por ejemplo, si quieren instalar el control "SampleControl.dll" que va incluido en el zip, en la ToolBar de VS2012, hay que usarlo de esta manera: DteToolboxInstaller.exe install vs2012 "Nombre del TAB" "SampleControl.dll" Artículo completo: http://www.componentowl.com/articles/visual-studio-toolbox-control-integration#integration-dteEspero que a muchos les sirva... Un saludo!
|
|
|
9544
|
Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] Calcular el tiempo restante
|
en: 18 Marzo 2013, 18:34 pm
|
Lo del tiempo transcurrido lo tengo manejado ya, pero para mostrar el tiempo restante me estoy haciendo un lío... Dim time_out as integer = 60000 ' 'Milisegundos Dim StartTime As DateTime ' Tiempo inicio Dim EndTime As DateTime ' Tiempo final Dim ElapsedTime As TimeSpan ' Tiempo transcurrido Dim RemainingTime As TimeSpan ' Tiempo restante
He conseguido mostrar el tiempo restante pero de una manera extraña, el problema es que, aparte de que los valores se muestran negativos, el valor de la hora y el minutero deberían ser "00"... ya que sólo estoy intentando medir el tiempo restante de una operación de "10000" MS (10 segs) Output:  Este es el code que uso, ¿Como lo arreglo? #Region " Elapsed Time Function " Public Function Print_Elapsed_Time() If StartTime.ToString = "01/01/0001 0:00:00" Then StartTime = Now StartTime = StartTime.AddSeconds(-1) End If ElapsedTime = Now().Subtract(StartTime) Return String.Format("{0:00}:{1:00}:{2:00}", CInt(Math.Floor(ElapsedTime.TotalHours)) Mod 60, CInt(Math.Floor(ElapsedTime.TotalMinutes)) Mod 60, CInt(Math.Floor(ElapsedTime.TotalSeconds)) Mod 60) End Function #End Region #Region " Remaining Time Function " Public Function Print_Remaining_Time() If EndTime.ToString = "01/01/0001 0:00:00" Then EndTime = Now EndTime = EndTime.AddMilliseconds(Time_Out - 1000) End If RemainingTime = Now().Subtract(EndTime) Return String.Format("{0:00}:{1:00}:{2:00}", CInt(Math.Floor(RemainingTime.TotalHours)) Mod 60, CInt(Math.Floor(RemainingTime.TotalMinutes)) Mod 60, CInt(Math.Floor(RemainingTime.TotalSeconds)) Mod 60) End Function #End Region
|
|
|
9547
|
Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] Ayuda con esta excepción! (my.settings)
|
en: 18 Marzo 2013, 14:00 pm
|
Tengo un problema con el namespace My.Settings cuando intento modificar un valor y guardar las settings (Me sucede con cualquier propiedad...): Private Sub Button1_Click(Sender As Object, e As MouseEventArgs) Handles Button1.Click My.Settings.Remember_Settings = True My.Settings.Save() End Sub
Me salta este error:  Esta es la excepción: System.Configuration.ConfigurationErrorsException was unhandled BareMessage=Configuration system failed to initialize HResult=-2146232062 Line=0 Message=Configuration system failed to initialize Source=System.Configuration StackTrace: at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(Object sender, InternalConfigEventArgs e) at System.Configuration.Internal.InternalConfigRoot.RemoveConfigImpl(String configPath, BaseConfigurationRecord configRecord) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Configuration.ConfigurationManager.GetSection(String sectionName) at System.Configuration.ClientSettingsStore.ReadSettings(String sectionName, Boolean isUserScoped) at System.Configuration.LocalFileSettingsProvider.GetPropertyValues(SettingsContext context, SettingsPropertyCollection properties) at System.Configuration.SettingsBase.GetPropertiesFromProvider(SettingsProvider provider) at System.Configuration.SettingsBase.SetPropertyValueByName(String propertyName, Object propertyValue) at System.Configuration.SettingsBase.set_Item(String propertyName, Object value) at System.Configuration.ApplicationSettingsBase.set_Item(String propertyName, Object value) at Volium.My.MySettings.set_Remember_Settings(Boolean value) in C:\Projects\Volium\Volium\My Project\Settings.Designer.vb:line 137 at Volium.Form1.CheckBox_Remember_Settings_CheckedChanged(Object sender, EventArgs e) in C:\Projects\Volium\Volium\Form1.vb:line 96 at System.Windows.Forms.CheckBox.set_CheckState(CheckState value) at System.Windows.Forms.CheckBox.OnClick(EventArgs e) at System.Windows.Forms.CheckBox.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) at Volium.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81 at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() InnerException: System.Configuration.ConfigurationErrorsException BareMessage=Unrecognized configuration section userSettings/WindowsApplication1.My.MySettings. Filename=C:\Users\Administrador\AppData\Local\Microsoft\Volium.vshost.exe_Url_irr03xswjdrhsokru05hku4eejmnb511\1.0.0.0\user.config HResult=-2146232062 Line=4 Message=Unrecognized configuration section userSettings/WindowsApplication1.My.MySettings. (C:\Users\Administrador\AppData\Local\Microsoft\Volium.vshost.exe_Url_irr03xswjdrhsokru05hku4eejmnb511\1.0.0.0\user.config line 4) Source=System.Configuration StackTrace: at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal) at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors) at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(Object sender, InternalConfigEventArgs e) InnerException:
|
|
|
9548
|
Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Posteen aquí sus snippets)
|
en: 18 Marzo 2013, 11:26 am
|
· String a hexadecimal: #Region " String To Hex Function " ' [ String To Hex Function ] ' ' Examples : ' Dim Hex_str As String = String_To_Hex("Elektro H@cker") Private Function String_To_Hex(ByVal Source_String As String) As String Dim Hex_StringBuilder As New System.Text.StringBuilder() For Each c As Char In Source_String : Hex_StringBuilder.Append(Asc(c).ToString("x2")) : Next c Return Hex_StringBuilder.ToString() End Function #End Region
· Hexadecimal a string: #Region " Hex To String Function " ' [ Hex To String Function ] ' ' Examples : ' Dim str As String = Hex_To_String("456c656b74726f204840636b6572")) Private Function Hex_To_String(ByVal Source_String As String) As String Dim Hex_StringBuilder As New System.Text.StringBuilder() For x As Integer = 0 To Source_String.Length - 1 Step 2 : Hex_StringBuilder.Append(Chr(Val("&H" & Source_String.Substring(x, 2)))) : Next x Return Hex_StringBuilder.ToString() End Function #End Region
· Effecto Matrix (Aplicación de consola) Module Module1 Sub Main() Console.Title = "Matrix Effect" Console.ForegroundColor = ConsoleColor.DarkGreen Console.WindowLeft = InlineAssignHelper(0, 0) Console.WindowHeight = InlineAssignHelper(Console.BufferHeight, Console.LargestWindowHeight) Console.WindowWidth = InlineAssignHelper(Console.BufferWidth, Console.LargestWindowWidth) Console.CursorVisible = False Dim width As Integer, height As Integer Dim y As Integer() Dim l As Integer() Initialize(width, height, y, l) Dim ms As Integer While True Dim t1 As DateTime = DateTime.Now MatrixStep(width, height, y, l) ms = 10 - CInt(Math.Truncate(CType(DateTime.Now - t1, TimeSpan).TotalMilliseconds)) If ms > 0 Then System.Threading.Thread.Sleep(ms) End If If Console.KeyAvailable Then If Console.ReadKey().Key = ConsoleKey.F5 Then Initialize(width, height, y, l) End If End If End While End Sub Dim thistime As Boolean = False Private Sub MatrixStep(ByVal width As Integer, ByVal height As Integer, ByVal y As Integer(), ByVal l As Integer()) Dim x As Integer thistime = Not thistime For x = 0 To width - 1 If x Mod 11 = 10 Then If Not thistime Then Continue For End If Console.ForegroundColor = ConsoleColor.White Else Console.ForegroundColor = ConsoleColor.DarkGreen Console.SetCursorPosition(x, inBoxY(y(x) - 2 - ((l(x) \ 40) * 2), height)) Console.Write(R) Console.ForegroundColor = ConsoleColor.Green End If Console.SetCursorPosition(x, y(x)) Console.Write(R) y(x) = inBoxY(y(x) + 1, height) Console.SetCursorPosition(x, inBoxY(y(x) - l(x), height)) Console.Write(" "c) Next End Sub Private Sub Initialize(ByRef width As Integer, ByRef height As Integer, ByRef y As Integer(), ByRef l As Integer()) Dim h1 As Integer Dim h2 As Integer = (InlineAssignHelper(h1, (InlineAssignHelper(height, Console.WindowHeight)) \ 2)) \ 2 width = Console.WindowWidth - 1 y = New Integer(width - 1) {} l = New Integer(width - 1) {} Dim x As Integer Console.Clear() For x = 0 To width - 1 y(x) = m_r.[Next](height) l(x) = m_r.[Next](h2 * (If((x Mod 11 <> 10), 2, 1)), h1 * (If((x Mod 11 <> 10), 2, 1))) Next End Sub Dim m_r As New Random() Private ReadOnly Property R() As Char Get Dim t As Integer = m_r.[Next](10) If t <= 2 Then Return ChrW(CInt(AscW("0"c)) + m_r.[Next](10)) ElseIf t <= 4 Then Return ChrW(CInt(AscW("a"c)) + m_r.[Next](27)) ElseIf t <= 6 Then Return ChrW(CInt(AscW("A"c) + m_r.[Next](27))) Else Return ChrW(m_r.[Next](32, 255)) End If End Get End Property Public Function inBoxY(ByVal n As Integer, ByVal height As Integer) As Integer n = n Mod height If n < 0 Then Return n + height Else Return n End If End Function Private Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T target = value Return value End Function End Module
|
|
|
9550
|
Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Posteen aquí sus snippets)
|
en: 18 Marzo 2013, 09:38 am
|
· Periodo Trial Instrucciones: 1. Crear una Setting de "User" con el nombre "UsageDates" y de tipo "System.collection.specialized.stringcollection" 2. Añadir estas dos funcines al form: Private Function CheckDate(ByVal dateToCheck As Date) As Boolean 'In reality, CheckDate would get the date (current date) itself and not have it passed in Dim retValue As Boolean = False 'Fail safe, default to false Dim usageDatesLeft As Int16 = 3 ' set it to 4 just for testing 'Dim usageDatesLeft As Int16 = 30 ' set this to the number of days of application access 'Hash the date Dim hashedDate As String = HashDate(dateToCheck) 'Check to see if the hash value exists in the UsageDates 'Initialize the container if necessary If My.Settings.UsageDates Is Nothing Then My.Settings.UsageDates = New System.Collections.Specialized.StringCollection End If If My.Settings.UsageDates.Contains(hashedDate) Then 'then we are ok... it's already been checked retValue = True usageDatesLeft = CShort(usageDatesLeft - My.Settings.UsageDates.Count) 'sanity check... if the system date is backed up to a previous date in the list, but not the last date If usageDatesLeft <= 0 AndAlso My.Settings.UsageDates.IndexOf(hashedDate) <> My.Settings.UsageDates.Count - 1 Then retValue = False End If Else If My.Settings.UsageDates.Count < usageDatesLeft Then My.Settings.UsageDates.Add(hashedDate) End If usageDatesLeft = CShort(usageDatesLeft - My.Settings.UsageDates.Count) 'If not, and the remining count has "slots" open, add it If usageDatesLeft > 0 Then retValue = True Else 'If not and tree are no more slots, tell user, exit app retValue = False End If End If 'Display to the user how many days are remianing: MessageBox.Show(String.Format("You have {0} day(s) remaining.", usageDatesLeft)) Return retValue End Function Private Function HashDate(ByVal dateToHash As Date) As String 'Get a hash object Dim hasher As System.Security.Cryptography.MD5 = System.Security.Cryptography.MD5.Create() 'Take date, make it a Long date and hash it Dim data As Byte() = hasher.ComputeHash(System.Text.Encoding.Default.GetBytes(dateToHash.ToLongDateString())) ' Create a new Stringbuilder to collect the bytes ' and create a string. Dim sBuilder As New System.Text.StringBuilder() ' Loop through each byte of the hashed data ' and format each one as a hexadecimal string. Dim idx As Integer For idx = 0 To data.Length - 1 sBuilder.Append(data(idx).ToString("x2")) Next idx Return sBuilder.ToString End Function
3. Usar la función por ejemplo en el Form_Load: Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim aCount As Integer = 0 Dim loopIt As Boolean = True 'My.Settings.Reset() 'This is here for design time support... otherwise you won't get your app to run agin Do While loopIt MessageBox.Show(String.Format("Checking Date: {0}.", Date.Now.AddDays(aCount))) loopIt = CheckDate(Date.Now.AddDays(aCount)) If Not loopIt Then MessageBox.Show("Trial Period Ended! Application closing!") Me.Close() Else MessageBox.Show("You can keep using the app") End If aCount += 1 Loop End Sub
· Trial period (Modificado un poco por mí) #Region " Trial Period Function " ' [ Trial Period Function ] ' ' Examples : ' Trial_Get(Trial_value.As_Boolean) ' MsgBox(String.Format("You have {0} day(s) remaining.", Trial_Get(Trial_value.As_LeftDays))) Public Enum Trial_value As_Boolean As_LeftDays As_CountDays End Enum ' Trial Period [Get] Public Function Trial_Get(ByVal Trial_value As Trial_value) 'My.Settings.Reset() 'If you want to reset the trial period Dim TrialCount As Integer = 0 TrialCount += 1 Return Trial_CheckDate(Date.Now.AddDays(TrialCount), Trial_value) End Function ' Trial Period [CheckDate] Public Function Trial_CheckDate(ByVal Trial_DateToCheck As Date, ByVal Trial_value As Trial_value) Dim Trial_retValue As Boolean = False ' Fail safe, default to false Dim Trial_usageDatesLeft As Int16 = 7 ' Set here the number of days of Trial period Dim Trial_hashedDate As String = Trial_HashDate(Trial_DateToCheck) If My.Settings.Trial_Period Is Nothing Then My.Settings.Trial_Period = New System.Collections.Specialized.StringCollection If My.Settings.Trial_Period.Contains(Trial_hashedDate) Then Trial_retValue = True Trial_usageDatesLeft = CShort(Trial_usageDatesLeft - My.Settings.Trial_Period.Count) If Trial_usageDatesLeft <= 0 AndAlso My.Settings.Trial_Period.IndexOf(Trial_hashedDate) <> My.Settings.Trial_Period.Count - 1 Then Trial_retValue = False Else If My.Settings.Trial_Period.Count < Trial_usageDatesLeft Then My.Settings.Trial_Period.Add(Trial_hashedDate) Trial_usageDatesLeft = CShort(Trial_usageDatesLeft - My.Settings.Trial_Period.Count) If Trial_usageDatesLeft > 0 Then Trial_retValue = True Else Trial_retValue = False End If Select Case Trial_value Case Trial_value.As_Boolean : Return Trial_retValue ' If False then Trial Period is expired Case Trial_value.As_LeftDays : Return Trial_usageDatesLeft ' Days left Case Trial_value.As_CountDays : Return My.Settings.Trial_Period.Count ' Count days Case Else : Return Nothing End Select End Function ' Trial Period [HashDate] Public Function Trial_HashDate(ByVal Trial_DateToHash As Date) As String Dim Trial_Hasher As System.Security.Cryptography.MD5 = System.Security.Cryptography.MD5.Create() Dim Trial_Data As Byte() = Trial_Hasher.ComputeHash(System.Text.Encoding.Default.GetBytes(Trial_DateToHash.ToLongDateString())) Dim Trial_StringBuilder As New System.Text.StringBuilder() Dim Trial_IDX As Integer For Trial_IDX = 0 To Trial_Data.Length - 1 : Trial_StringBuilder.Append(Trial_Data(Trial_IDX).ToString("x2")) : Next Trial_IDX Return Trial_StringBuilder.ToString End Function #End Region
|
|
|
|
|
|
|