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

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

ניתן להוריד דוגמה פועלת מכאן
האזנה למקשים במהלך ריצה של Windows

יום שלישי, 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

יום שלישי, 12 באפריל 2011

יום חמישי, 3 במרץ 2011

תוכן

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

קריאת קוד המקור של עמוד אינטרנט

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

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

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

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

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

תוספים מומלצים ל-WindowsXP


יום חמישי, 17 בפברואר 2011

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

ישנם מקרים בהם רוצים שבלחיצה על X הסגירה של התוכנית
התוכנה לא תיסגר אלא תמזער למשל לשורת המשימות של ווינדוס.

לשם כך יש להוסיף את הקוד הבא לתוכנית:

bool formClose = false;
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
        {
            if (formClose == false)
            {
                //cancels the closing event
                e.Cancel = true;
                //hides the window
                this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
                this.Hide();
            }
        }

אפשר להבין שהקוד 'משכתב' - override את אירוע הסגירה של התוכנה, ובמקום לסגור אותו ממזער אותו.
בשביל מיזעור לשורת המשימות - http://snir.blogspot.com/2010/10/minimize-window-to-tray.html

את כל זה הקוד עושה בעזרת משתנה בוליאני (אמת-שקר) בשם formClose 
איתו אפשר לקבוע לפני הסגירה של התוכנית אם היא אכן תיסגר או לא.
למשל, אם נרצה ונוסיף כפתור שאכן סוגר את התוכנה, אז נצטרך לכתוב לו:
formClose = true;
this.Close();

יום שלישי, 25 בינואר 2011

יצירת נקודת שיחזור בלחיצה - VB-script

קוד VB script עבור יצירת נקודת שחזור לווינדוס בלחיצה.
יש ליצור קובץ RestorePoint.vbs (או כל שם אחר במקום RestorePoint) ולהעתיק לתוכו את הכתוב כאן:

RestorePointName = inputBox("הכנס שם לנקודת השחזור")

If Len(RestorePointName)>0 Then
Set IRP = getobject("winmgmts:\\.\root\default:Systemrestore")
MYRP = IRP.createrestorepoint (RestorePointName, 0, 100)
msgBox ": נוצרה נקודת שחזור בשם" + vbCrLf + RestorePointName
End If