יום ראשון, 25 בדצמבר 2016

יצירת תיקיה זמנית בקבצי המערכת
כאשר נעשה שימוש בקבצים שנשמרים בתור Resources של התוכנה, ויש צורך להעתיק אותם אל הכונן בשביל שימוש - תמונות למשל – קיימת כמובן האפשרות ליצור תיקיית-בת בתוך תיקיית התוכנה, אך ניתן גם לעשות שימוש נוח יותר ולפרוס את הקבצים אל תוך קבצי המערכת.
ראשית יש לשים לב להגדרות הבאות לקבצים:
-          Build Action: Embedded Resources
-          Copy To Output Directory: Do Not Copy
שלבי הביצוע:
1.   יצירת תיקיה עם שם אקראי כדי לשמור בתוכה את הקבצים
// Create a temp dirctory to save the images in:
string tempDirName = Path.Combine( Path.GetTempPath(), 
                      System.Guid.NewGuid().ToString());
Directory.CreateDirectory(tempDirName);


2.  חילוץ הקבצים מתוך האסמבלי
//Extract the images from the assembly resources
System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly();
// You can get the images path in embedded resources by watching:
string file = myAssembly.GetManifestResourceNames()[0];


3. שמירת  כל קובץ (תמונה) בתיקיה הזמנית שיצרנו
using (Stream myStream = myAssembly.GetManifestResourceStream(file))
{
   using (Stream file_stream = File.Create(file)) {
      CopyStream(myStream, file_stream);
   }
}

private static void CopyStream(Stream input, Stream output)
{
   byte[] buffer = new byte[8 * 1024];
   int len;
   while ((len = input.Read(buffer, 0, buffer.Length)) > 0) {
      output.Write(buffer, 0, len);
   }
}

4. לא נשכח למחוק את הקבצים ביציאה מהתוכנה

private static void Form1_Closing(object sender, FormClosingEventArgs e)
{
   try {
      Directory.Delete(tempDirName, true);
   }
   catch(Exception ex) { MessageBox.Show(ex.Message); }
}

יום שלישי, 15 בנובמבר 2016

כיצד להיות מנהל מערכת קבוע

UAC-הגדרת חשבון משתמש.
uac קובע את רמת הבטיחות של הרצת תוכנות במחשב.
נשמע טוב, אך זה בעיקר מטריד עם הודעות "האם רתה בטוח שברצונך להריץ תוכנה זו".

גם אם מכבים את האפשרות הזו דרך ההגדרות הרגילות של ווינדוס (חפשו UAC בלוח הבקרה),
עדיין התוכניות רצות בתור משתמש רגיל ולא בתור מערכת.
על מנת להריץ תוכנה בתור מנהל מערכת יש ללחוץ לחיצת עכבר  ימנית על הקובץ > הרץ בתור מנהל מערכת.
מעייף, נכון?
אז להלן הדרך לגרום למחשב להריץ הכל באופן קבוע כמנהל מערכת:
*. יש להריץ PowerShell בתור מנהל מערכת, להעתיק את הפקודות הבאות ולהריץ אותן שם:

Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLUA" -Value "0"

shutdown -r -t 0

יום שני, 31 באוקטובר 2016

הצג את כל כתובות IP ברשת הפנימית

כיצד להציג את כתובות כל המחשבים המחוברים לרשת הפנימית
1. יש לשמור את הקוד המופיע למטה בקובץ show-ip.bat
2. יש להפעיל את דוס (תפריט התחל > הפעלה > CMD) ולהריץ את הקובץ הזה.


@echo off
echo Snir Show Ip Address
echo ---
echo This file shows a list of all computers that are 
echo connected to the local network, 
echo the same like 'net view' does,
echo but this shows thier IP Address as well
echo .
echo -------------- Press any key to continue... --------------

pause > nul

setlocal EnableDelayedExpansion
set "xNext="
set "xComputer="
for /f %%A in ('net view /all') do (
    set "xComputer=%%~A"
    if "!xComputer:~0,2!"=="\\" for /f "tokens=2,* delims=. " %%X in ('nslookup %%A') do (
        if "!xNext!"=="1" (
            echo.!xComputer! = %%X.%%Y
            set "xNext=0"
        )
        if "!xComputer:~2!"=="%%~X" set "xNext=1"
    )
)
endlocal
pause

עריכת קבצים מתוך DOS בפנקס הרשימות של ווינדוס

שימוש:
כאשר הנך משתמש ב-DOS וברצונך לערוך קובץ,
בעזרת סקריפט זה תוכל להשתמש ב-notepad של ווינדוס, במקום בעורך הישן של DOS.

יש לשמור את הסקריפט הזה בקובץ edit.vbs בכל ספריה שכלולה במשתנה PATH של ווינדוס,
כלומר ספריה שנגישה מכל מקום אחר בספריית הקבצים של המחשב.

' This script must be placed in a PATH folder
' (which has access from everywhere in the computer file system).
' The use of this script: 
'     When you use 'dos' and want to edit a file
'     but with 'notepad' instead of the old dos  editor
' ------

Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "notepad " + Wscript.Arguments.Item(0)
oShell.Run strArgs ', 0, true

יום ראשון, 21 באוגוסט 2016

שינוי גודל דינמי של פנל - תכנות C#

לאחר חיפושים מצאתי פנל שניתן לשלוט על הגודל שלו - תוך כדי ריצה (כמו תיבת טקסט בוורד, עם עיצוב קצת שונה)
public class SizeablePanel : ContainerControl {
    const int WS_SIZEBOX = 0x00040000;
    protected override CreateParams CreateParams {
        get {
            CreateParams cp = base.CreateParams;
            cp.Style |= WS_SIZEBOX;
            return cp;
        }
    }
}

יש ליצור מחלקה (class) שתכיל את הקוד הזה ולמקם אותה בפרויקט.
הפקד (control) יופיע בתיבת הפקדים (Toolbox)

מקור:
http://forums.codeguru.com/showthread.php?480500-RESOLVED-User-resizable-container

יום שלישי, 3 במאי 2016

קונסול בחלון נפרד עבור תוכנת סי-שארפ

כיצד ליצור קונסול בחלון נפרד עבור תוכנת סי-שארפ 
הקוד מצורף להלן מדרג את ביצועי המחשב:

public partial class Form1 : Form
{
    // console - Allows the command line to be seen during normal execuation
    [DllImport("kernel32.dll", SetLastError = true)]
    [returnMarshalAsAttribute(UnmanagedType.Bool)]
    static extern bool AllocConsole();

    Thread trd;
    public Form1()
    {
        InitializeComponent();
        AllocConsole();
        trd = new Thread(new ThreadStart(render));
        trd.Start();
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        trd.Abort();
    }

    private void render()
    {
        int framesRendered = 0;
        long startTime = Environment.TickCount;

        while (true)
        {
            //Benchmarking
            framesRendered++;
            if (Environment.TickCount > startTime + 1000)
            {
                Console.WriteLine("Snir's Computer Benchmarking: " + framesRendered + " fps");
                framesRendered = 0;
                startTime = Environment.TickCount;
            }
        }
    }
}

יום ראשון, 3 בינואר 2016

קביעת מסך פתיחת חלון

כאשר מחוברים למחשב יותר ממסך אחד, ניתן לקבוע באיזה מסך ירוץ חלון c# שפותחים:
Form f = new Form();
f.StartPosition = FormStartPosition.Manual;
f.Location = Screen.AllScreens[0].WorkingArea.Location;
f.Show();

נשים לב שצריך לשנות את מיקום StartPosition ל-Manual (ידני).
לאחר מכן קובעים את מספר המסך ע"פ מספר.

צל CSS באינטרנט אקספלורר 7 - WebBrowser בתוך c#

השמשתי בקונטרול WebBrowser בתוך תוכנת c# והיה צורך להציג צל (Shadow) ע"י CSS.
הבעיה היא שקונטרול כזה של סישארפ הוא גרסה 7 - ולא תומך CSS-3
אז:
איך להציג צל באינטרנט אקספלורר 7 (דפדפן של קונטרול webbrowser בתוך c#):
לצורך העניין, השתמשתי בטבלה <table> אותה מיקמתי בתוך span.

ראה הפניה:

קוד:

<html>
<head>
<style>
.shadow_class{
  border: 1px solid red;
   box-shadow: 0 0 55px #cccccc;
   -webkit-box-shadow: 0 0 55px #cccccc;
   -moz-box-shadow: 0 0 55px #cccccc;
}

body.ie6 .shadow_classbody.ie7 .shadow_classbody.ie8 .shadow_class {
   zoom: 1;
   filter: /*progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=15, Direction=0),*//*top*/
           progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=15, Direction=90),/*right*/
           progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=25, Direction=180),/*bottom*/
           progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=15, Direction=270);/*left*/
}

table{
  background-color: white;
}
</style>
</head>
<body class="ie7">
<span class="shadow_class">
  <table border="1">
    <tr><th>Header 1</th><th>Header 2</th></tr>
    <tr><td>row 1 col 1</td><td>row 1 col 2</td></tr>
  </table>
</span>
</body>
</html>

יום חמישי, 15 באוקטובר 2015

הצגת כל שמות המחשבים ברשת+כתובת IP

1. צרו קובץ בספריה הראשית של כונן C בשם snir.bat
ניתן לעשות זאת ע"י לחיצה על התחל>הפעלה (או רק לחיצה על המקשים ctrl+r)
ושם לכתוב
notepad c:\snir.bat

ניתן להכנס לספריה הראשית של כונן C ע"י פתיחה של התחל>הפעלה, כתיבת והפעלת
C:

2. בחלון של פנקס הרשימות שנפתח הדביקו את הטקסט הבא:

@echo off
echo Snir Show Ip Address
echo ---
echo This file shows a list of all computers that are 
echo connected to the local network, 
echo the same like 'net view' does,
echo but this shows thier IP Address as well
echo .
echo -------------- Press any key to continue... --------------
pause > nul
setlocal EnableDelayedExpansion
set "xNext="
set "xComputer="
for /f %%A in ('net view /all') do (
    set "xComputer=%%~A"
    if "!xComputer:~0,2!"=="\\" for /f "tokens=2,* delims=. " %%X in ('nslookup %%A') do (
        if "!xNext!"=="1" (
            echo.!xComputer! = %%X.%%Y
            set "xNext=0"
        )
        if "!xComputer:~2!"=="%%~X" set "xNext=1"
    )
)
endlocal
pause

בשביל להציג את הרשימה הפעילו את הפקודה
cmd /c c:\snir.bat

יום שלישי, 4 באוגוסט 2015

תמונה שהיא בעצם קובץ ZIP

ומכילה בתוכה קבצים נוספים

בשביל ליצור קובץ תמונה תקני שיתפקד כקובץ zip בשינוי סיומת הקובץ, יש לנקוט צעדים הבאים:
1. מקם את שני הקבצים , למשל - pic.jpg , elgabsi.zip - באותה תיקיה.

2. הכנס לתיקייה באמצעות cmd והקלד את הפקודה:
            copy /b pic.jpg + elgabsi.zip snir.jpg
    כאשר
snir.jpg יהיה הקובץ הסופי שיכיל את שני הקבצים - המכווץ והתמונה - יחד .
    b/    הוא קיצור ל "בינארי" .
   סדר רישום הקבצים חשוב.

3. כעת נוצר הקובץ הסופי - snir.jpg
    שנה את סיומת הקובץ ל-zip ע"מ להשתמש בו במתכונת האחרת.
    אפשר גם ליצור קובץ סופי בפורמט zip,
    וניתן להשתמש באותה שיטה גם לסוגי קבצים אחרים (png, וכו')

יום שלישי, 5 במאי 2015

תאריך עברי בשפת C#

תאריך עברי בשפת c#
הקוד לקוח מכאן:

קוד:
public static string GetHebrewJewishDateString(DateTime anyDate, bool addDayOfWeek)
{
//http://csharpprogramming.blogspot.co.il/2005/03/c-hebrew-date.html
System.Text.StringBuilder hebrewFormatedString = new System.Text.StringBuilder();

// Create the hebrew culture to use hebrew (Jewish) calendar 
CultureInfo jewishCulture = CultureInfo.CreateSpecificCulture("he-IL");
jewishCulture.DateTimeFormat.Calendar = new HebrewCalendar();

#region Format the date into a Jewish format

if (addDayOfWeek)
{
// Day of the week in the format " " 
hebrewFormatedString.Append(anyDate.ToString("dddd", jewishCulture) + " ");
}

// Day of the month in the format "'" 
hebrewFormatedString.Append(anyDate.ToString("dd", jewishCulture) + " ");

// Month and year in the format " " 
hebrewFormatedString.Append("" + anyDate.ToString("y", jewishCulture));

#endregion

return hebrewFormatedString.ToString();
}


יום רביעי, 29 באוקטובר 2014

javascript: לחיצה על DIV בשביל להריץ פקודה בצד שרת - C#

כדי להריץ פקודה מצד השרת (server-side) באמצעות לחיצה על DIV
נציג דוגמה של יציאה מהאתר ומחיקת Cookies כך שלא נהיה עוד רשומים אליו כמחוברים:
aspx code:
<body>
   <form id="form1" runat="server">
      <div>
         ...
         <divonclick="logout_js()">
               Click Logout & Run ServerSide Code
         </div>

         <%-- btn in a hidden DIV: --%>
         <div style="display: none;">
               <asp:Button Text="LogOut" ID="bLogOut" runat="server"
                        OnClick="bLogOut_Click" />
          </div>
          ..........

Javascript Code:
<script>
      function logout_js() {
            var button = document.getElementById('bLogOut');
            button.click();
      }
</script>


C# Code:
protected void bLogOut_Click(object sender, EventArgs e)
{
Response.Cookies["LoggedUserName"].Expires = DateTime.Now.AddDays(-1);
Response.Redirect("Login.aspx");
}

יום חמישי, 23 באוקטובר 2014

C# אינטרנט - קישור מתוך iframe לעמוד אחר

ASP-C#
כאשר יש iframe ורוצים שלחיצה עליו תפנה את הקישור לכל העמוד ולא רק ל-iframe
יש להשתמש ב:
Page.ClientScript.RegisterClientScriptBlock(GetType(), "Redirect", "window.parent.location='Login.aspx';", true);


מקור:
http://codeverge.com/asp.net.web-forms/redirect-parent-page-from-within-iframe/426044

יום שלישי, 29 ביולי 2014

יצירת סניפט [קטע קוד לכתיבה מהירה] של תנאי if עם תיבת MessageBox

כמו שהסברתי יש אפשרות לשימוש בקטעי קוד מהירים בויזואל סטודיו -
אפשר לקרוא הסבר שלי כאן
---
כאן אציג דרך לכתיבה מהירה של תנאי if עם תיבת שאלה (MessageBox)
כתיבה של imbox ולחיצה כפולה על Tab תוסיף את:
if (MessageBox.Show("Do Tou Want To Exit?"
                                   "Very Very Important Question"
                                   MessageBoxButtons.YesNo) == DialogResult.Yes)
{
     this.Close();
 }
ניתן לקפוץ בין הקטעים המודגשים בצהוב ע"י Tab.
הנה קטע הקוד שכתבתי - יש לשמור אותו בסיומת snippet:

יצירת סניפט-קטע קוד ליצירה מהירה של פונקציה

ישנה אפשרות שימוש בקטעי קוד מוכנים - סניפטס (snippets) בויזואל סטודיו,
אפשרות נוחה מאוד לקיצור תהליכי כתיבה.
כאן אציג סניפט שכתבתי ליצירה מהירה של מתודה (פונקציה).
אבל קודם כל אסביר כיצד מוסיפים סניפט - יש להכנס לתפריט:
 TOOLS > Code Snippets Manager... >
ושם לבחור ב- Import. 
לאחר בחירת בקטע הקוד יש לבחור באיזו תיקיה נרצה למקם אותו.

הנה קטע הקוד שכתבתי - יש לשמור אותו בקובץ עם סיומת snippet.

יום שני, 7 ביולי 2014

השוואת קבצים בויזואל סטודיו בעזרת WinMerge


בעבודה עם ויזואל סטודיו ניתן לעשות השוואה בין גרסאות שונות של קבצים עליהם אנחנו עובדים.
ההשוואה נעשית ע"י כלי שמושלב אוטומטית עם ויזואל סטודיו 2008, 2010, 2012, 2013.
במהלך העבודה שלי נתקלתי בבאג שמנע את האפשרות להשוואה בעזרת כלי זה, ועל ידי כך פגשתי באפשרות השוואה בעזרת כלי מוכר אחר - WinMerge.
כדי לשלב את ההשוואה בתוך ויזואל סטודיו באופן אוטומטי יש לבצע את הצעדים הבאים:

יום שני, 2 ביוני 2014

Streams-and-IO-in-winrt

Streams and I/O
כאן אסביר שיטות עבודה עם קבצים ועם Stream (זרם של נתונים) בתכנות win-RT (תכנות Win8)

המרת משתנים ב-c#-win8

Index:
-   String to byte[]
-   Byte[] to string

-   Covert File to Byte Array
-   Save A File
-   bytes[] to filestream
    
-   Get thumbnail from video / image
-   ImageSource To BitmapImage
-   Byte[] to bitmap
-   Byte[] to Stream
-   stream to byte[]

-    stream to IrandomAccessStream
-    IRandomAccessStream to stream
-   Buffer to stream
-   stream to buffer
-   Byte[] to InMemoryRandomAccessStream or IRandomAccessStream
-   Conversion between IRandomAccessStream and FileInputStream/FileOutputStream
-   Byte[] to InMemoryRandomAccessStream or IRandomAccessStream
-   Write a file using StreamWriter
    
-   Path to StorageFile
-   Get file to storageFile
-   Get a file from media folder to a StorageFile var
-   Storagefile to string
-   byte[] to storagefile
-   StorageFile to Byte[]
-   Storagefile to IRandomAccessStream , to ImageSource (bitmap)
    
-   IRandomAccessStream to byte[]

-   Binary To String To Binary

יום שישי, 9 באוגוסט 2013

צפיה ביוטיוב במסך מלא

Youtube Fullscreen

כיצד לצפות בסרטון יוטיוב על מסך מלא -
נניח וזאת היא כתובת יוטיוב:

1. החליפו את הקטע watch?v= באות V

2. או החליפו את הקטע המדובר במילה embed
http://www.youtube.com/embed/kIQui6cKVjk

3. או הוסיפו את המילה popup
http://www.youtube.com/watch_popup?v=kIQui6cKVjk

שתי האפשרויות האחרונות גם מתירות צפיה בוידאו שמוגדרים בתור adult only
(למבוגרים בלבד)

יום שישי, 17 בפברואר 2012

רקע תוכנה בצבעים משולבים - Gradient


כדי לצבוע את רקע החלונית (או הפקד-Control) בשני צבעים משולבים
יש ליצור אירוע Paint של הטופס או הפקד, ולהוסיף לתוכו את הקוד הבא.
אפשר לשחק עם המספרים של הצבעים:

עיקול הפינות של הטופס או של פקד אחר

נעשה ע"י:


// Curve corners:
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern IntPtr CreateRoundRectRgn
(
    int nLeftRect,      // x-coordinate of upper-left corner
    int nTopRect,      // y-coordinate of upper-left corner
    int nRightRect,     // x-coordinate of lower-right corner
    int nBottomRect,  // y-coordinate of lower-right corner
    int nWidthEllipse,  // height of ellipse
    int nHeightEllipse  // width of ellipse
);

ולאחר מכן יש למקם את הקוד הבא בשיטה האתחול של הטופס (Load או בבנאי של הטופס):
public Form1() //constructor
{
  this.Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(10, 10, Width, Height, 30, 30));
  btn.Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(4, 4, btn.Width, btn.Height, c, c));
}

את הרעיון הזה מצאתי כאן:
http://stackoverflow.com/questions/5092216/c-form-with-custom-border-and-rounded-edges

גרירה של חלונית ע"י לחיצה (אחיזה) בכל מקום

#C
בכל מקום שעל הטופס או על כל פקד (Control) אחר, נעשה ע"י מיקום של השורות האלה בראש הטופס:
// Drag the Form
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();

ולאחר מכן יש ליצור אירוע MouseDown עבור הטופס או עבור ה-Control איתו אנו עובדים, 
ולמקם את הקוד הבא בשיטה של האירוע:
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
     if (e.Button == MouseButtons.Left)
     {
          ReleaseCapture();
          SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
     }
}



---
דרך אחרת לגרירה של טופס - הכוללת אפשרות לגרירה של הטופס עד לחל העליון של המסך כדי להגדיל אותו -

יום שבת, 11 בפברואר 2012

index


כתיבה / קריאה מהרגיסטרי של ווינדוס - כולל עקיפה של אבטחת UAC

הגדרת registery לריצה של תוכנית עם אתחול המערכת

טיפים ל-Windows (בעיקר Win7 אך לא רק)

בדיקה ומניעה של הרצת תוכנה ביותר מעותק אחד.

קריאת קוד של דפי אינטרנט - html

האזנה למקשים במהלך ריצת Windows

(ASP) שינוי מקור נתונים של טבלת GridView

(ASP) בניית דינמית של טבלה

קריאת פרמטרים משורת הפקודה

קריאה מתוך registery של Windows.7

קוד VBs - יצירת נקודת שיחזור לווינדוס בלחיצה

יצירת User Control ושימוש ב-delegate

(ASP) בנייה דינמית של טבלה:

(ASP) מיקום ושימוש ב-connectionString מתוך web.config

מניעת סגירת טופס בלחיצה על X

הסרת ניקוד מטקסט

הורדת קבצים ע"י VB script

ProcessDir - פונקציה רקורסיבית לסריקת תיקיות

Drag -n- Drop - 'זריקת' קבצים אל תיבת רשימה (listbox) או תיבת טקסט

קבע את האייקון של התוכנה

העלמת אייקונים משולחן העבודה - #C

יצירת תוכנית מייל - mail client

טיפים קטנים ושימושיים ב-#C

הגדרת אירוע 'יציאה' מטופס

מזעור תוכנית לשורת המשימות

כתיבה / קריאה מהרגיסטרי של ווינדוס - כולל עקיפה של אבטחת UAC

כתיבה / קריאה מהרגיסטרי של ווינדוס
נעשית ע"י שורות הקוד שיופיעו להלן.

יום רביעי, 7 בספטמבר 2011

יום שלישי, 26 ביולי 2011

שינוי מקור נתונים של טבלת GridView

ASP
לאחרונה נתקלתי בצורך ליצור טבלת gridview שמקבלת בהתחלה מקור נתונים אחד -
למשל טבלה של רשימת שמות עם הפרטים שלהם, ובבחירה של אחת מהשורות ע"י כפתור Select - מחליפה את מקור הנתונים ומציגה טבלה אחרת עם עמודות אחרות.

יום שישי, 1 ביולי 2011

קריאת פרמטרים משורת הפקודה

כאן נסביר כיצד לקרוא פרמטרים משורת הפקודה, כך שלמשל נוכל להתחיל תוכנה -
  c:\> myprogram minimize                  
קבענו שהפרמטר minimize שממוקם אחרי שם התוכנה, יתחיל את התוכנה ממוזערת.

ראשית אנו צריכים שפעולת בדיקה זאת תופעל מיד בעליית התוכנה, כך שנלחץ פעמיים על השורה העליונה של הטופס,כך ייוצר 'אירוע' - event : האירוע יבדוק אילו פרמטרים נשלחו:
private void Form1_Load(object sender, EventArgs e)
{
      string[] args = Environment.GetCommandLineArgs();
}

יש ליצור לולאה שתבדוק מהם הפרמטרים ותייחד לכל פרמטר פעולה משלו.

יום שני, 27 ביוני 2011

קריאה מתוך registery של Windows.7


קריאה מה-registery ב-Windows.7 אפשרית ע"י פתיחה של הקובץ:
Properties > app.manifest
בקובץ הזה יש למחוק או לבטל הפעלה של השורה:
<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
ביטול השורה יכול להיעשות ע"י הקפה של השורה ב <-- --> כמו שאפשר לראות:
<--
<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
-->


כלומר משנים את השורה לסטטוס של 'הערה'.
זהו קובץ XML, וכמו ב-HTML זאת היא הדרך לציין 'הערות' .


אי שימוש בשיטה זו (או שיטות אחרות) יפיל את התוכנית במהלך נסיון קריאה ל-registery.
ניתן לחילופין לשנות את הגדרות האבטחה UAC ע"י כניסה ל:
הפעלה > msconfig > עמודה אחרונה 'כלים'
השורה השניה ברשימה מפנה ל'שינוי הגדרות UAC'
יש לבחור בשורה וללחוץ 'הפעל', ושם להוריד את רמת האבטחה UAC למינימום.
כעת ניתן יהיה לקרוא וגם לכתוב לרגיסטרי



יום שני, 20 ביוני 2011

מניעת הרצת תוכנה ביותר מעותק אחד

ע"י חיפוש בין כל ה-Proccess שרצים במערכת נדע אם התוכנה כבר רצה
וכך נמנע מלהריץ אותה שוב -

הסרת ניקוד מטקסט


להלן קוד לקבלת מחרוזת תווים והסרת הניקוד ממחרוזת זו:

static String RemoveDiacritics(String s)
{
     String normalizedString s.Normalize(NormalizationForm.FormD);
     StringBuilder stringBuilder new StringBuilder();
     for (int i = 0; i < normalizedString.Length; i++)
     {
          Char c = normalizedString[i];
          if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
               stringBuilder.Append(c);
     }
     return stringBuilder.ToString();


שימוש בקוד זה נעשה למטרת עבודה עם טקסטים מנוקדים.
הרבה פעולות לא יכולות להיעשות על טקסט מנוקד, והפונקציה הנ"ל מסירה ניקוד ומאפשרת עבודה עם הטקסט.

יום שני, 13 ביוני 2011

(ASP) בניית דינמית של טבלה

void InsertTableRow(int row, int col)
{
    for(int i=0; i<row; i++)
    {
        TableRow tr = new TableRow();
        TableCell tcel;

        for(int i=0; i<col; i++)
        {
            tcel = new TableCell();
            tcel.Text = "";
            tr.Cells.Add(tcel);
        }
        TableScore.Rows.Add(tr);
    }
}

יום רביעי, 13 באפריל 2011

(ASP) מיקום ושימוש ב-connectionString מתוך web.config

כאשר ניגשים לבסיס נתונים מתוך דף ASP, יש צורך להתקשר אליו עם connectionString.
כדאי שהמחרוזת הזאת תהיה מוגדרת במקום אחד בלבד, כל עמוד ייגש אליה ויקבל אותה משם, ואם נרצה לשנות יהיה עלינו לשנות רק במקום אחד:


קודם כל, בתוך web.config אפשר אולי למצוא תג של: </connectionStrings> ולהחליף אותו בזה, אם לא אז פשוט למקם חדש:
<connectionStrings>
    <add
    name="myServerName"
    connectionString=
        "Data Source=SNIR-LAPTOP\SQLEXPRESS;Initial Catalog=project;Integrated Security=True"
    providerName="System.Data.SqlClient"
    />
  </connectionStrings>

לאחר מכן בתוכנית עצמה (דף #C) אפשר לקבל את הערך שהגדרנו כאן ע"י:


return ConfigurationManager.ConnectionStrings["myServerName"].ConnectionString;

כאן השתמשתי ב-return ' אפשר בכל דרך אחרת שתרצו.

מי שיירצה VB.NET:
Dim conString = ConfigurationManager.ConnectionStrings("MyServerName")
Dim strConnString As String = conString.ConnectionString