Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 30 kết quả

Đề tài: Đóng gói (install-setup) ứng dụng sử dụng Sql Server

  1. #1
    Ngày gia nhập
    08 2017
    Bài viết
    1,887

    Mặc định Đóng gói (install-setup) ứng dụng sử dụng Sql Server

    Xem:
    - http://diendan.congdongcviet.com/threads/t60739::cach-dong-goi-phan-mem-csharp-windowsform-sql-server.cpp
    - http://diendan.congdongcviet.com/threads/t404582::chuyen-doi-giua-cac-db.cpp

    Vấn đề đạt ra là sao biết trên máy sẽ cài đặt sử dụng HDH nào, có SQL Server nào ?

  2. #2
    Ngày gia nhập
    08 2017
    Bài viết
    1,887

    Không nhất thiết phải biết tất cả.

    Ai cũng thủ thế thì quá chán.

  3. #3
    Ngày gia nhập
    08 2017
    Bài viết
    1,887

    Thu hẹp tới từng chi tiết nhỏ.
    Ai biết cách nào xác định hệ điều hành (HDH) là 32 / 64 bit ?

  4. #4
    Ngày gia nhập
    08 2017
    Bài viết
    1,887

    Visual C# Code:
    1. [DllImport("kernel32", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
    2. public extern static IntPtr LoadLibrary(string libraryName);
    3.  
    4. [DllImport("kernel32", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
    5. public extern static IntPtr GetProcAddress(IntPtr hwnd, string procedureName);
    6.  
    7. private delegate bool IsWow64ProcessDelegate([In] IntPtr handle, [Out] out bool isWow64Process);
    8.  
    9. public static bool IsOS64Bit(){
    10.     if (IntPtr.Size == 8 || (IntPtr.Size == 4 && Is32BitProcessOn64BitProcessor()))
    11.         return true;
    12.     else
    13.         return false;
    14. }
    15.  
    16. private static IsWow64ProcessDelegate GetIsWow64ProcessDelegate(){
    17.   IntPtr handle = LoadLibrary("kernel32");
    18.  
    19.   if ( handle != IntPtr.Zero){
    20.     IntPtr fnPtr = GetProcAddress(handle, "IsWow64Process");
    21.  
    22.     if (fnPtr != IntPtr.Zero)
    23.       return (IsWow64ProcessDelegate)Marshal.GetDelegateForFunctionPointer((IntPtr)fnPtr, typeof(IsWow64ProcessDelegate));
    24.   }
    25. }
    26.  
    27. private static bool Is32BitProcessOn64BitProcessor(){
    28.   IsWow64ProcessDelegate fnDelegate = GetIsWow64ProcessDelegate();
    29.  
    30.   if (fnDelegate == null)
    31.     return false;
    32.  
    33.   bool isWow64;
    34.   bool retVal = fnDelegate.Invoke(Process.GetCurrentProcess().Handle, out isWow64);
    35.  
    36.   if (retVal == false)
    37.     return false;
    38.  
    39.   return isWow64;
    40. }

    Nguồn:
    https://www.codeproject.com/Questions/641314/check-or-bit-in-net

  5. #5
    Ngày gia nhập
    08 2017
    Bài viết
    1,887

    Code demo trên không đúng, HDH Win7-32bit cài dbl-boot với Win10-64bit (CPU phải là x64)

    Chạy thử
    Visual C# Code:
    1.         static void Main() {
    2.             Console.WriteLine("Test :");
    3.  
    4.             bool is64 = IsOS64Bit(); //false
    5.             if (is64) Console.Write("Cpu 64 bit");
    6.             else Console.Write("Cpu 32 bit");
    7.  
    8.             Console.ReadKey();
    9.         }

    Test :
    Cpu 32 bit

  6. #6
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    867

    Mặc định Đóng gói (install-setup) ứng dụng sử dụng Sql Server

    Cám ơn Monre, nhưng đó chỉ là cách của bạn, có và có nhiều cách hiệu quả hơn, kể cả cú pháp lẫn tốc độ CPU. Bạn có thể thử nghiệm, MHoang có thể chiều bạn.

  7. #7
    Ngày gia nhập
    08 2017
    Bài viết
    1,887

    Tôi chưa cần tới, một phần tôi có đủ cho topic này rồi, phần khác tôi có thể dùng cách tổng quát, chưa cần tới can thiệp chi tiết - chưa cần tới cách hiệu quả hơn, kể cả cú pháp lẫn tốc độ CPU. Ví dụ gọi (trong NNLT hoặc batch)
    Code:
    wmic cpu get DataWidth
    là biết nó là 32 / 64 rồi.

    Người khác cần hơn tôi. Mỗi người góp một phần, gộp lại thành to.

  8. #8
    Ngày gia nhập
    08 2017
    Bài viết
    1,887

    Như trên (#7) ai có cách nào để c# gọi
    wmic cpu get DataWidth

    đọc - lấy được kết quả là 32 / 64 để thực hiện rẽ nhánh cho bước kế tiếp ?

  9. #9
    Ngày gia nhập
    08 2017
    Bài viết
    1,887

    Visual C# Code:
    1. using System;
    2. using System.IO;
    3. using System.Diagnostics;
    4.  
    5. class GetCpu{
    6.   static void Main(){
    7.     ProcessStartInfo inf = new ProcessStartInfo("wmic" );
    8.     inf.Arguments = "cpu get DataWidth";
    9.     inf.UseShellExecute = false;
    10.     inf.RedirectStandardOutput = true;
    11.    
    12.     Process p = new Process();
    13.     p.StartInfo = inf;
    14.     p.Start();
    15.     StreamReader srd = p.StandardOutput;
    16.     srd.ReadLine(); //bỏ qua
    17.     srd.ReadLine(); //bỏ qua
    18.     string str = srd.ReadLine();
    19.     p.Close();
    20.    
    21.     Console.WriteLine("Cpu is {0} bits", str.Trim());
    22.   }
    23. }

  10. #10
    Ngày gia nhập
    08 2017
    Bài viết
    1,887

    Hy vọng hết 5 nay, nó cũng chưa hết như bao topic khác

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn