content top

Debugowanie W3WP.exe – Makro do skrótu klawiaturowego Visual Studio

Kolejne moje makro z serii przyspieszaczy programisty – tym razem przydatne przy debugowaniu ASP.NET.
Zamiast mozolnie wyklikiwać podpinanie pod proces możemy użyć makra dostępnego do pobrania tu: W3WP.EXE Debug Macro
Wystarczy załadować to makro przez Macro Explorer w Visual Studio a następnie przypisać dowolny skrót klawiaturowy i gotowe :)

Kod źródłowy tego makro:

Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Imports System.Security.Principal
Public Module DEBUG
  Sub AttachToW3WP()
      Try
         Dim comp As String = WindowsIdentity.GetCurrent().Name
         comp = comp.Substring(0, comp.IndexOf("\"))
         Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
         Dim t As EnvDTE80.Transport = dbg2.Transports.Item("Default")
         Dim dbgeng(3) As EnvDTE80.Engine
         dbgeng(0) = t.Engines.Item("T-SQL")
         dbgeng(1) = t.Engines.Item("T-SQL")
         dbgeng(2) = t.Engines.Item("Managed")
         For Each theProcess As EnvDTE80.Process2 In dbg2.GetProcesses(t, comp)
              If theProcess.Name.Contains("w3wp.exe") Then
                  theProcess.Attach2(dbgeng)
              End If
         Next
      Catch ex As System.Exception
         MsgBox(ex.Message)
      End Try
  End Sub
End Module
Read More

Usuwanie zdublowanych białych znaków

Funkcja zastępująca białe znaki miedzy wyrazami w stringu na jedną spację.
Wiem że można napisać to w jednej linijce ale ten sposób w porównaniu z innymi jest szybszy.

public static string RemoveWhitespaces(string input)
{
StringBuilder sb = new StringBuilder();
string[] parts = input.Split(new char[]{' ','\n','\t','\r','\f','\v'},
                                StringSplitOptions.RemoveEmptyEntries);
foreach (string part in parts)
    sb.AppendFormat("{0} ", part);
return sb.ToString();
}
Read More

Przycinanie tekstu

/// <summary>
/// funkcja przycinająca tekst do określonej ilości znaków
/// z zaokrągleniem do pełnych wyrazów
/// w razie potrzeby zakańcza go wielokropkiem
/// </summary>
/// <param name="input">tekst do skrócenia</param>
/// <param name="length">przybliżona długość oczekiwanego stringa</param>
/// <returns>skrócony string</returns>
static public string TrimLongString(string input, int length)
{
if (input.Length <= length || input.IndexOf(' ', length) < 0)
    return input;
return input.Substring(0, input.IndexOf(' ', length)) + "...";
}
Read More

Tworzenie skrótu ze stringa

/// <summary>
/// funkcja tworząca skrót z nazwy
/// np: "Ala ma kota" = "AMK"
/// </summary>
public static string Abbreviation(string input)
{
return input.Split(new[]{' '}, StringSplitOptions.RemoveEmptyEntries)
                   .Aggregate("", (current, s) => current + s[0]).ToUpper();
}
Read More

Biblioteka GLUT do Visual C++

Pliki biblioteki wystarczy wrzucić do katalogu projektu (oczywiście można wrzucić do katalogów bibliotek kompilatora). Testowana pod Visual Studio 2005/2008/2010.
Pobierz: biblioteka GLUT 32

Read More

Wysyłanie pliku przez FTP w C#

/// <summary>
///   Funkcja wysyłająca plik na serwer FTP.
///   przykładowe użycie:
///   FTP(@"c:\plik.cs", @"ftp://ftp.piotreksul.net/plik.cs",
///                                                  "mojLogin", "mojeHaslo");
/// </summary>
/// <param name = "sciezkaLokalna"> sciezka pliku do wysłania </param>
/// <param name = "sciezkaNaSerwerze"> pełna ścieżka pliku na serwerze </param>
/// <param name = "login"> nazwa użytkownika FTP </param>
/// <param name = "haslo"> hasło do FTP </param>
void FTP(string sciezkaLokalna, string sciezkaNaSerwerze,
                                               string login, string haslo)
 {
  FtpWebRequest ftp = (FtpWebRequest) WebRequest.Create(sciezkaNaSerwerze);
  ftp.Credentials = new NetworkCredential(login, haslo);
  ftp.KeepAlive = true;
  ftp.UseBinary = true;
  ftp.Method = WebRequestMethods.Ftp.UploadFile;
  FileStream fs = File.OpenRead(sciezkaLokalna);
  byte[] buffer = new byte[fs.Length];
  fs.Read(buffer, 0, buffer.Length);
  fs.Close();
  Stream ftpstream = ftp.GetRequestStream();
  ftpstream.Write(buffer, 0, buffer.Length);
  ftpstream.Close();
 }
Read More

Zmiana tapety w C#

[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int SystemParametersInfo(int uAction, int uParam,
                                               string lpvParam, int fuWinIni);

private void SetWallpaper(string WallpaperPath)
   {
    SystemParametersInfo(20, 0, WallpaperPath, 0x01 | 0x02);
   }
Read More

Zrzut ekranu w C# (screenshot)

Rectangle bounds = Screen.GetBounds(Point.Empty);
Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height);
Graphics.FromImage(bitmap).CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
bitmap.Save("plik.jpg", ImageFormat.Jpeg);
Read More

test

test

Read More
content top