سایت ساز وبزیخرید بک لینک

خطايي که نبايد مشاهده شود .

شروع موضوع توسط hamid1345 ‏4 ژوئن 2004 در انجمن بایگانی

  1. hamid1345

    hamid1345 کاربر تازه وارد

    تاریخ عضویت:
    ‏14 ژانویه 2004
    نوشته ها:
    121
    تشکر شده:
    0
    من يک برنامه دارم که Setup آنرا با Wise Installer ساخته‌ام . حال چون چند فايل DLL را جايگزين مي‌کنم ويندوز اين پيام را مي‌دهد.البته اگر کاربر به آن توجه نکند چيزي نمي‌شود . چکار کنم که ويندوز اين پيام را ندهد يا کاربر آنرا قبل از Restart نبيند؟

    [​IMG]
     
  2. بازدیدیار - افزایش بازدید سایت و سیگنال های برندخرید بک لینک
  3. night wolf

    night wolf Registered User

    تاریخ عضویت:
    ‏24 اکتبر 2003
    نوشته ها:
    647
    تشکر شده:
    3
    محل سکونت:
    Iran-Ahvaz
  4. hamid1345

    hamid1345 کاربر تازه وارد

    تاریخ عضویت:
    ‏14 ژانویه 2004
    نوشته ها:
    121
    تشکر شده:
    0
    اگر مهم است :

    kbdfa.dll

    ولي البته نبايد فرقي بكند . :D
     
  5. karagah

    karagah کاربر تازه وارد

    تاریخ عضویت:
    ‏22 می 2004
    نوشته ها:
    63
    تشکر شده:
    0
    دوست عزیز
    تنها راه براي خلاص شدن از شر اين پیغام ،غیر فعال کردن Windows File Protection هست که این کار باعث آسیب پذیری و ناپایداری سیستم میشه . برای اینکار باید sfc.dll رو دستکاری کنید و بعد هم رجیستری رو دستکاری کنید.
    شما این برنامه رو برای چه ویندوزی نوشتید؟ فکر نمی کنم در Windows XP احتیاجی به تغییر فایل kbdfa.dll داشته باشید!
    اگه می خواهید برنامه روی ویندوز های مختلف نصب بشه باید کاری کنید که برنامه ورژن ویندوز رو تشخیص بده و فقط روی ویندوز های قبل از 2000 این فایل رو نصب کنه.
     
  6. hamid1345

    hamid1345 کاربر تازه وارد

    تاریخ عضویت:
    ‏14 ژانویه 2004
    نوشته ها:
    121
    تشکر شده:
    0
    kbdfa.dll به دلايل متعدد بايد براي فارسي نويسي در ويندوز XP و 2000 عوض بشود .البته به صورت دستي آنرا در safe Mode عوض مي‌کنند .حالا من آنرا توانسته‌ام عوض کنم بدون آنکه کاربر لازم باشد کار خاصي انجام دهد. منتها براي تکميلي کار مي‌خواهم اين پيغام خطا که تنها يکبار قبل از Restart نشان داده مي‌شود ، نشان داده نشود .

    نه مي‌خواهم وينوز مقصد را خراب کنم و نه قصد سويي دارم .فقط همين ! :blush:
     
  7. karagah

    karagah کاربر تازه وارد

    تاریخ عضویت:
    ‏22 می 2004
    نوشته ها:
    63
    تشکر شده:
    0
    من یه راه ساده برای بستن فوری این پنجره پیدا کردم.امیدوارم که مشکلتون رو حل کنه.

    برای اینکار باید از API ها کمک بگیرید ، معرفی API:
    کد:
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long 
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    روش کار برنامه:
    1- handel پنجره رو به به کمک تابع FindWindow بدست میاریم.
    2- یک پیغام close به پنجرو می فرستیم.
    حالا یک پنجره دیگه باز میشه که نمیشه close اش کرد و باید دکمه yes انتخاب بشه .
    3-handle پنجره جدید رو بدست میاریم و با sendkeys کلیدهای alt+y رو براش میفرستیم.
    کد:
    Private Sub KillWFPmessage()
        'Coded by: Karagah (pt_karagah at yahoo dot com)
        'You may use this code in your projects freely
        'as long as this notice remains intact.
       
        Const WM_CLOSE = &H10
        Dim handle1 As Long
        Dim handle2 As Long
        handle1 = 0
        handle2 = 0
        
        Do While handle1 = 0
            handle1 = FindWindow(vbNullString, "Windows File Protection")
        Loop
        Call SendMessage(handle1, WM_CLOSE, 0, 0)
        
        DoEvents
        
        handle2 = handle1
        Do While handle2 = handle1
            handle2 = FindWindow(vbNullString, "Windows File Protection")
        Loop
        Call SetForegroundWindow(handle2)
        SendKeys "%Y"
    
    End Sub
     
     
  8. hamid1345

    hamid1345 کاربر تازه وارد

    تاریخ عضویت:
    ‏14 ژانویه 2004
    نوشته ها:
    121
    تشکر شده:
    0
    خوبه ؟ معلومه برنامه‌نويس واردي هستي .

    اما من فکر مي‌کنم خود Wise Installer راهي دارد که اين پنجره را ببندد . چون از طريق آن setup درست کرده‌ام ، بي‌سليقگي است که اگر خودش راهي داشته باشد به برنامه‌نويسي روي بياورم . نه ؟ :cool:
     
  9. karagah

    karagah کاربر تازه وارد

    تاریخ عضویت:
    ‏22 می 2004
    نوشته ها:
    63
    تشکر شده:
    0
    فكر نمي كنم wise installer بتونه این کارو انجام بده. چون تغییر فایل های حساس سیستم عامل فقط موقع نصب Hotfix ها و service pack ها و یا upgrade ویندوز مجازه.
     
خرید و فروش ارزهای الکترونیکیخرید و فروش اتوماتیک ارزهای الکترونیکی عسل طبیعی و گرده گل ایرانی