ورود

View Full Version : پر کردن edit های یک نرم افزار دیگر



V60
سه شنبه 01 اسفند 1385, 05:07 صبح
سلام
والا سرچ کردم خیلی ولی چیزی پیدا نکردم
من یک برنامه نوشته ام برای یک نمایندگی ، حالا از طرف شرکت اصلی برای تمام نمایندگی ها یک نرم افزاری تجویز شده که اجباری هم هست، البته کامل نیست و نمایندگی در حال حاضر به علت اینکه نیازهایش را نرم افزار اجباری انجام نمی ده مجبور به دوباره کاری می شود ، ولی اطلاعاتی که در نرم افزار اجباری درج می گردد مقداری از همان اطلاعاتی است که در نرم افزار من درج می شود، ایا راهی وجود دارد که من بتوانم مثله این نرم افزارهایی که می گویند صفحات وب را پر می کند این کار را انجام بدهم؟
بسیار سپاسگزارم

vcldeveloper
سه شنبه 01 اسفند 1385, 08:29 صبح
اگر اون برنامه یک رابط COM ارائه میکنه، می تونید از اون رابط استفاده کنید. اگر مسئله فقط پر کردن edit ها هست، می تونید با استفاده از SendMessage پیغام WM_SETTEXT ارسال کنید که قبلا توضیح داده شده.

Aidin
سه شنبه 01 اسفند 1385, 13:09 عصر
بله همانطور که جناب آقای کشاورز گفتند باید دستوراتتون رو به اون شی ارسال کنید
با استفاده از دستور ّFindWindow هندل فرم روپیدا کنید و با استفاده از دستور FindWindowEx و هندل فرم ، هندل شی مورد نظر رو پیدا کنید.
حالا به راحتی با استفاده از دستور PostMessage هر چیزی رو که میخواین به شی مورد نظرتون ارسال کنید.

مثال:




var
wnd: HWND;
begin
wnd := FindWindow('FormClass', nil);
if wnd <> 0 then
wnd := FindWindowEx(wnd, 0, 'RichEdit20A', nil);
postmessage(wnd, WM_GETTEXT,VK_RETURN,0); // Send Enter Key
end;

V60
چهارشنبه 02 اسفند 1385, 03:27 صبح
سلام
برای من مبتدی خیلی کلی نوشته بودید ، چون من نه اسم پنجره ام را می دونستم نه دقیقا فهمیدم که مقدار حروفی را چطور ارسال کنم
ولی از اقای کشاورز ممنون چون با دادن همون کلمه و سرچ کردن ان یافتم
http://barnamenevis.org/forum/showthread.php?t=8953&highlight=FindWindowEx
پسر خاک خیلی قشنگ اینها را از هم جدا کرده
باز هم متشکر

V60
یک شنبه 06 اسفند 1385, 00:07 صبح
باز سلام
من می خواهم این اطلاعات را به یک برنامه ای که توسط citrix باز شده بفرستم ، برنامه اصلی توسط vb یا vb.net نوشته شده ، من توسط caption فرم می تونم هندل فرم را به دست بگیرم ولی به اجزاء دسترسی ندارم ، اصلا اجزا در وی بی چه کلاسهای دارند مثلا tedit در وی بی چیست؟
یکی از تاپیکها در همین سایت کدی را نوشته بود که با اجرای آن تمام برنامه ها و کامپوننتهای انهارا نشان می داد ، آن را که اجرا می کنم ، فقط اسم فرمی را که توسط citrix باز شده را نشان می دهد ، ایا به اجزای آن دسترسی نداریم؟

Aidin
یک شنبه 06 اسفند 1385, 12:10 عصر
با برنامه WinSight32 دلفی یا Spy ویژوال بیسیک میتونید نام کلاس و بقیه اطلاعات هر شی رو پیدا کنید.

ghabil
یک شنبه 06 اسفند 1385, 23:50 عصر
سلام
... ولی اطلاعاتی که در نرم افزار اجباری درج می گردد مقداری از همان اطلاعاتی است که در نرم افزار من درج می شود، ایا راهی وجود دارد که من بتوانم مثله این نرم افزارهایی که می گویند صفحات وب را پر می کند این کار را انجام بدهم؟
بسیار سپاسگزارم

بنظر من راهتو اشتباه انتخاب کردی، سعی کن بجای این دردسرها به ساختار دیتایبیس اونها دسترسی پیدا کنی بعد یک کانورتر ساده بنویسی تو سطح دیتابیس اطلاعات رو منتقل کنه.

V60
دوشنبه 07 اسفند 1385, 00:05 صبح
جناب ghabil
امکان دسترسی وجود ندارد ، چون همونطوری که در پست های بعدی نوشته ام ، توسط citrix این برنامه باز می شود و این نوع دسترسی را به ما نمی دهد. اگر شما راهی برای دسترسی سراغ دارید بفرمایید

ghabil
دوشنبه 07 اسفند 1385, 01:18 صبح
متاسفانه تاحالا با Presentation Server کار نکردم و نمیتونم کمکی بکنم، ولی شاید اگر بگردی بتونی کلاینتی براش بنویسی که بتونه دیتایی مورد نیازت رو از دیتابیس مرکزی بگیری و لوکالی دخیره کنه.
راستی نگاه کردی ببینی برنامشون، مثلا گزارشهاش خروجی خاصی نمیده ، مثلا Excel یا HTML? که بتونی باهاش دیتای درج شده رو بخونی و وارد سیستمت بکنی؟

V60
دوشنبه 07 اسفند 1385, 02:03 صبح
وا قابیل جان !!
مگه پست اول من را نخواندی ؟؟ من برعکس اون چیزی که شما فکر می کنید را می خواهم . یعنی کاربران می خواهند که در سیستم من اطلاعاتشان را بنویسند و در سیستم شرکت اصلی که توسط citrix باز شده است درج اطلاعات شود ، البته من می خواهم فقط فرم نرم افزار شرکت آنها توسط برنامه من پر شود و کاربر زحمت کلیک کردن بر روی دکمه تایید ان صفحه را خود بکشد و دوباره رکورد بعد را ارسال کند. نمی دونم تونستم کامل توضیج بدهم یا نه. یعنی من می خواهم اطلاعاتم را از روی لوکال بفرستم روی یک فرمی از نرم افزاری که توسط citrix باز شده است.
اگر چیزی می دانید بگویید تا سرچ کنم. متشکر

V60
دوشنبه 07 اسفند 1385, 03:24 صبح
نمی دونم WINSIGHT من چی شد درست کار نمی کنه یعنی منوی focuse که می زنم تا هر وقت رفتم روی پنجره ای کلاس ان را فوکوس کند دیگه تکان نمی خورد!؟ چرا؟
از این بگذریم یک کدی را توی همین سایت پیدا کردم که توسط اون یک کاری را می کرد که winsight می کرد یعنی تمام پنجره های باز را کلاسشان را و کلاس اجزائشان را می داد ولی عجیبه که کلاس اون چیزی که من می گم را این برنامه می ده ولی winsight نمی ده؟ ولی مشکل اینجاست که کلاس و هندل اجزائ درون ان فرم را نمیده ؟!!! و برای خود ان فرم هم اینجوری نوشته
Transparet Windows Client یعنی این کلاسه اون فرم است و در قسمتی که باید عنوان فرم را بنویسه یعنی دقیقا اون چیزی که بالای فرم نوشته در کنار عنوان فرم کلمه Remote را نوشته لطفا یکی توضیح بده اینها چیه و چه جوری دسترسی پیدا کنم :گریه:

Sohrab_Tapar
دوشنبه 07 اسفند 1385, 13:08 عصر
http://barnamenevis.org/forum/showthread.php?t=62136

V60
دوشنبه 07 اسفند 1385, 15:58 عصر
با عرض سلام به جناب Sohrab_Tapar
من دقیقا از همین تاپیک و از همین کدهایی که شما نوشته اید استفاده کرده ام و تنها تغییری که در آن دادم این بود که در فانکشنی savewininfo شما نوشته بودید


Node := Tree.Items.Add(nil,Tools.GetWinInfo(Handle));

که دلفی نمی توانست Tools را بشناسد و من ان را حذف کردم و جواب هم داد ولی همانطور که گفتم در همان treeview برای آن فرم فقط این را نوشته است
Transparet Windows Client
و در قسمت کپشن فرم علاوه بر کپشنی که واقعا بر روی فرم هست نوشته شده Remote و من نمی دونم برای چی ؟؟؟ البته عرض کردم برنامه به صورت یک اپلیکیشن است که با وی بی یا وی بی دات نت نوشته شده است و در یک سروری قرار دارد و توسط نرم افزار citrix قابل رویت است حالا یک کم توضیح بدید که من چی کنم .
متشکرم

Sohrab_Tapar
دوشنبه 07 اسفند 1385, 19:37 عصر
فکر کنم شما یک application دیگه رو پیدا کردین که اسمش Transparet Windows Client
هست و در background داره اجرا میشه .
لیست موجود در treeeview رو دقیقتر بگردین باید application اصلی تون رو اونجا پیدا کنید
در مورد tools هم درست عمل کردید.این کد رو من از کدهای خودم برداشتم و edit کردم .این یکی از قلم افتاذه

ghabil
دوشنبه 07 اسفند 1385, 20:59 عصر
ببین قدیما که در مورد Presentation Server ها یک چیزایی خونده بودم (شاید 5-6 سال پیش) همه تلاش این بود که حداقل دیتا از طرف سرور به کلاینت بیاد ، یعنی تو فکر الگوریتمهایی بودند که فقط تغییرات صفحه رو منتقل کنه و خلاصه یک متا دیتای خیلی خاص رو منتقل کنند ، الان نمیدونم چی کار میکنند اما خیلی بعید که کلاسهای برنامه رو منتقل کنند و اصلا سیستم عامل کلاینت که قرار نیست نرم افزار رو اجرا کنه (نکته اساسی Presentation Serverاینه).
برای همین این راهی که اینجا داری ادامه میدی ، به همین راحتی که میبینی قابل پیاده سازی نیست ، البته حتما Citrix اطلاعات مربوط به مثلا یک ادیت باکس رو که روی سرور اجرا شده رو یکجوری خودش نگه میداره ، اما نه انوجوری که ویندوز نگه میداره و اینجا داری کدهاش رو میبنی!
بلکه باید ببینی خودش متا دیتا ها رو چطوری نگه میداره .
خلاصه که احتمالا Sight کردن صفحه داخل Citrix مثل Sight کردن یک عکس میمونه !
پیشنهادم بهت اینه که بیشتر در مورد Presentation Server اطلاعات بدست بیاری.

V60
دوشنبه 07 اسفند 1385, 21:43 عصر
متشکر از راهنماییتان میگردم ، امیدوارم چیزی پیدا کنم ، شما کتاب خاص یا منبع خاصی سراغ دارید ؟ البته فارسی بهتره :لبخند:

ghabil
سه شنبه 08 اسفند 1385, 11:41 صبح
اگر قرار باشه قابل اعتمادترین جواب رو بگیری سوالات رو اینجا (http://support.citrix.com/forums/index.jspa?categoryID=1) بنویس.

اینم (http://www.sessioncomputing.com/forums.htm) جاهای دیگه ای که میتونی سوالاتو بپرسی.

منبع فارسی متاسفانه سراغ ندارم، ولی اینا نیوزگروپ هستند و دقیقا چیزیو که میخوای بهت جواب میدن.

V60
چهارشنبه 09 اسفند 1385, 01:08 صبح
این لینکی که دادید چرا باز نمی شه ؟

ghabil
چهارشنبه 09 اسفند 1385, 10:00 صبح
من که روی جفتشون کلکیک کردم باز شد!

V60
چهارشنبه 09 اسفند 1385, 15:35 عصر
قابیل جان ، لینک دوم باز نمی شه اگر می شه دوباره بزارش

ghabil
پنج شنبه 10 اسفند 1385, 17:20 عصر
راست میگی منم امتحان کردم یکی درمیون لینک دوم باز میشه، ولی مشکل آدرس نیست مشکل سایتش احتمالا...

ولی ببین اگر میخوای به نتیجه برسی ، برو همون لینک اول رجیستر کن ، بد هم سوالتو تو یکی از همون انجمنهای Generalش بزار با توضیح کامل، بهترین و درسترین و قابل اعتمادترین جواب رو همونجا میگیری بنظر من .

پ.ن: اگر دیدی احتمالا نوشتن سوالت اونجا سخته وقی رجیستر کردی بگو من سعی میکنم تا جایی که بتونم مشکلت رو اونجا قشنگ توضیح بدم و از طرفت سوال رو بنویسم.

V60
جمعه 11 اسفند 1385, 00:47 صبح
خیلی متشکرم ، اول ریجستر می کنم ، بعد سوالم را خلاصه و کامل می نویسم