نمایش نتایج 1 تا 6 از 6

نام تاپیک: سوال در مورد ساخت Service Application

  1. #1

    سوال در مورد ساخت Service Application

    من با دلفی یک برنامه سرویسس ServiceApp ساخته ام در این برنامه از تابع GetUserName برای بدست آوردن نام یوزر لوگ این شده استفاده کرده ام.همچنین از توابع Tregistry برای گرفتن اطلاعات از ریجیستری شاخه KEY_USER_CURERNT استفاده کرده ام.
    زمانی که این Service را به صورت دستی اجرا میکنم تحت نام یوزر Login شده اجرا میشود برنامه به خوبی کار میکند. ولی زمانی که Service نصب میشود و ویندوز آن را تحت نام System اجرا میکند نام یوزر را )System) برمیگرداند و اطلاعات رجیستری را هم نمیتواند بگیرد.
    چگونه میتوان مشکل این Service را حل کرد بدون اینکه نحوه اجرای Service عوض شود(یعنی تحت همان نام System اجرا شود).

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    به کجای رجیستری میخواهید دسترسی پیدا کنید و برای کسب چه اطلاعاتی؟

    اگر میخواهید به اطلاعات رجیستری کاربر کنونی دسترسی پیدا کنید که باید بگم آسان نیست، چون Service Application ها قبل از لوگین کردن کاربر اجرا میشوند و بنابراین عجیب نیست که وقتی هنوز هیچ کاربری لوگین نکرده نتوان به اطلاعات او دسترسی پیدا کرد. مفهومه؟

    البته اگر بیشتر توضیح بدی شاید به نتیجه برسیم :wise1:

  3. #3
    <span dir=ltr>
    • just another shit from M$ . Well that API is just working for Current thread and current Session . i didnt find any one-cycle solution anywhere but seems you can Select one active process and look for caller user name . there are APIs for enum processes and Structs for process infoz like image size and PID and owner and so . hope this help you
    </span>
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  4. #4

    soal

    (در رابطه با سوال قبلی)
    مشکل من در نام یوزری است که برنامه تحت آن اجرا میشود.یعنی همان نامی که در task manager در قسمت Process در جلوی برنامه نمایش داده میشود.
    اگر برنامه را خودمان به صورت دستی اجرا کنیم این نام نام یوزر است و این به این معنی است که اجرا کننده این برنامه یوزر Login شده است و در این حالت برنامه به خوبی کار میکند.ولی زمانی که سرویس را توسط سیستم اجرا میکنیم
    (در Service Manager در آدرس:
    Control Panel => Administrative Tools => Services
    نام سرویس را انتخاب و بر روی Start کلیک میکنیم) این نام System است یعنی برنامه تحت این یوزر اجرا شده است.
    تا جایی که من خبر دارم برنامه توسط هر یوزری که اجرا شود فقط میتواند از اطلاعات آن یوزر استفاده کند.مثلا در این مورد فقط میتواند از رجیستری مربوط به آن یوزر آستفاده کند. (چون هر یوزر رجیستری مخصوص به خود دارد).
    من در این برنامه از تابع GetUserName استفاده کرده ام.وقتی برنامه را به صورت سرویس اجرا شود برنامه نام System را به عنوان نام یوزر برمیگرداند.همینطور اگر توسط هر یوزر دیگری اجرا شود تام آن یوزر را برمیگرداند. من سعی کرم تا از یک برنامه واسطه استفاده کنم یعنی Service آن را اجرا کند و آن برنامه این اطلاعات را برگرداند.
    ولی برنامه و اسطه هم چون توسط سرویس اجرا شده نام System به خود میگیرد.
    من باید برنامه واسطه را با نام یوزر Login شده اجرا کنم.برای این کار باید از تابع CreateProcessAsUser استفاده کنم ولی این تابع خیلی دردسر داشت و من نتوانستم این کار را انجام دهم.
    اگر شما نحوه استفاده از این تابع را میدانید ممنون میشوم اگر آن را در اختیار من بگذارید

  5. #5
    اگه می شه جواب منو زودتر بدین از لطف شما ممنون می شم

    با تشکر از زحمات شما دوستان

  6. #6
    اگه می شه جواب منو زودتر بدین از لطف شما ممنون می شم

    با تشکر از زحمات شما دوستان
    به توضیحات آقای Inprise نگاه کن.
    ایشون پیشنهاد دادند که شما مشخصات یک process در حال اجرا که توسط کاربر مورد نظرتون اجرا میشه را با استفاده از توابع API بدست بیارید (شامل نام کاربر اجرا کننده process و...).


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

تاپیک های مشابه

  1. چگونگی کار با service application در دلفی
    نوشته شده توسط omid_hasanpur در بخش مقالات مرتبط با Delphi/Win32
    پاسخ: 32
    آخرین پست: چهارشنبه 25 خرداد 1390, 09:36 صبح
  2. یک مثال برای برنامه Service Application
    نوشته شده توسط RK977877 در بخش توسعه نرم افزارهای تحت شبکه
    پاسخ: 0
    آخرین پست: یک شنبه 28 مرداد 1386, 11:01 صبح
  3. دسترسی به مسیرهای شبکه در service application
    نوشته شده توسط DataMaster در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: سه شنبه 05 اردیبهشت 1385, 14:53 عصر
  4. run application in service segment
    نوشته شده توسط alimrb در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: سه شنبه 09 دی 1382, 11:08 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •