C# - כדי לעשות החלפת-משתמש בווינדוס
(מה שעושים עם WIN+L):
[DllImport("user32.dll")]
public static extern void LockWorkStation();
void foo() { LockWorkStation(); }
רשומות בנושאי מחשבים ותכנות #C
C# - כדי לעשות החלפת-משתמש בווינדוס
(מה שעושים עם WIN+L):
[DllImport("user32.dll")]
public static extern void LockWorkStation();
void foo() { LockWorkStation(); }
בשביל לחבר קבצי docx צריך להוסיף reference לקבצים הבאים:
חלון Solution Explorer > לחיצה ימנית על References > לחיצה על Add References
להוריד NuGet או מהאינטרנט את הקבצים ולהוסיף:
Telerik.Windows.Documents.Flow.dll
קוד C#:
void MergeDocx(List<string> files, string result_file)
{
RadFlowDocument target = new RadFlowDocument();
RadFlowDocument source = new RadFlowDocument();
DocxFormatProvider provider = new DocxFormatProvider();
for (int i = 0; i < file.Count; i++)
{
using(Stream input = File.OpenRead(files[i]))
{
target.Merge(provider.Import(input));
}
}
byte[] ba = provider.Export(target);
File.WriteAllBytes(result_file, ba);
}
בשביל להמיר docx ל-pdf צריך להוסיף reference לקבצים הבאים:
חלון Solution Explorer > לחיצה ימנית על References > לחיצה על Add References
להוריד NuGet או מהאינטרנט את הקבצים ולהוסיף:
Telerik.Windows.Documents.Core.dll
Telerik.Windows.Documents.Flow.dll
Telerik.Windows.Documents.Flow.FormatProviders.Pdf.dll
קוד C#:
void ConvertDocxToPdf(string docxpath, string pdfpath)
{
var docxProvider =
new DocxFormatProvider();
var pdfProvider = new PdfFormatProvider();
byte[] docxByteArr = File.ReadAllBytes(docxpath);
var doc = docxProvider.Import(docxByteArr);
byte[] resultPdfByteArr = pdfProvider.Export(doc);
File.WriteAllBytes(pdfpath, resultPdfByteArr);
}
בשביל שימוש בפקדים של telerik צריך להוסיף ref לקבצים:
Telerik.Windows.Controls
Telerik.Windows.Controls.GridView
Telerik.Windows.Controls.Input
Telerik.Windows.Data
https://www.telerik.com/blogs/how-to-column-chooser-for-radgridview-for-silverlight-and-wpf
MainWindow.xaml
MainWindowxaml.cs
dummy class
מיפוי כונן רשת - נעשה בעבר כדי למפות database מרוחק
* חשוב לוודא תקשורת בין שני המחשבים (בעזרת ping)
שלבים:
1. למצוא את כתובת ip של המחשב (עם database) - למשל 125.16.54.77
2. לעשות מיפוי כונן רשת - לחיצה ימנית על סמל 'המחשב שלי' > בחירת אות כונן (למשל A:) >
לבחור ספריה בכונן הרשת שאנו רוצים, למשל:
\\125.16.54.77\d$\databases\
צריך לבחור ב-Connect using different Credntials אם רוצים להזין שםמשתמש וסיסמה לכונן.
3. לחיצה על Finish - אם סימנו V בסעיף הקודם, אז יפתח חלון Windows Security - נלחץ על More Choices - Use Different Accout ונזין את פרטי ההתחברות
4. כדי לנתקן מיפוי כונן - יש ללחוץ לחיצה ימנית על הכונן בחלון 'המחשב שלי' > Disconnect network drive
UDP Client:
TCP Server:
TCP Client:
איך לפרוץ את נעילת הגנת הורים של windows
כאשר החשבון נעול מפני מנגנון הגנת משפחה (Family Safety Monitor by Microsoft Corporation), ומאפשר למשל כניסה הבאה רק ב-8 בבוקר, ניתן לפרוץ אותו בדרך הבאה:
להדליק ולכבות את המחשב לפני שהוא נכנס ל-windwos מספר פעמים עד שהמחשב יעלה במצב לתיקון בעיות אתחול.
ניתן לראות הדגמה לכניסה למערכת הקבצים כאן:
https://www.youtube.com/watch?v=n7KEwXbFlIU
צריך להיכנס למערכת הקבצים ולשנות את שם הקובץ
c:\windows\system32\wpcmon.exe
לשם אחר - למשל להוסיף לשם הקובץ 1111
ואז להפעיל את המחשב מחדש.
הקובץ הזה הוא זה שמפעיל את מנגנון הגנת הורים, וכעת הוא לא יפעל בעליית windows
יש להוסיף את הקוד הזה בתחילת הקובץ, ובסופו את הקוד שנרצה להריץ בתור מנהלי מערכת:
כיצד ליצור קובץ bat:
1. יש לפתוח את התיקיה בה נרצה שיהיה הקובץ
2. לחיצה ימנית על שטח ריק > ניצור קובץ txt
3. נכתוב בתוכו את תוכן הקובץ ונשמור
4. נשנה את סיומת הקובץ מ-txt ל-bat - למשל
snir.txt > snir.bat
public class MyClass { public string Name { get; set; } public int[] Age { get; set; } public MyClass2 Mc2 { get; set; } } public class MyClass2 { public int[] Num { get; set; } } class Program { static void Main(string[] args) { MyClass myclass = new MyClass() { Name = "snir", Age = new int[] { 1, 2, }, Mc2 = new MyClass2 { Num = new int[] { 10, 45 } } }; SnirXmlHandler.Save(myclass, "snir.xml"); MyClass mc = SnirXmlHandler.Load ("snir.xml"); } }
<myclass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <age> <name>snir</name> <age> <int>1</int> <int>2</int> </age> <mc2> <num> <int>10</int> <int>45</int> </num> </mc2> </myclass>
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")] [ComVisible(true)]
//[ComVisibleAttribute(true)]
public partial class Form1 : Form
{ ... }
private void Form1_Load(object sender, EventArgs e)
{
// 4. Set the ObjectForScripting property in the
// form's constructor or a Load event handler.
// The following code uses the form class
// itself for the scripting object. // Component Object Model (COM) must be able
// to access the scripting object. // Use [ComVisible(true)] in order to make your
//form visible to COM
// (add the ComVisibleAttribute attribute to your form class). webBrowser1.ObjectForScripting = this;
webBrowser1.DocumentText =@"<html><head> <script>
// the js function to call from the c# side:
function myFoo(arg) { alert(arg); } </script> </head><body>send code to c# side: <br/> <input type='text' id='snir' value='snir send to c#'></input> <button onclick='window.external.Test(document.getElementById('snir').value)'> call client C# code from javscript code</button> </body> </html>";
}
// get message from the webpage's js [ComVisible(true)] public void Test(string arg) { MessageBox.Show(argt, "C# side"); }
private void SendToWebpage() { webBrowser1.Document.InvokeScript( "myFoo", new String[] { textBox1.Text } ); }