سؤال

وأنا أعمل مع Skype4COM.dll COM API باستخدام C # ويعمل بشكل جيد جدا لجميع وظائف الاتصالات التي نحتاج إليها. نحن نحاول وضع أسهل للاستخدام واجهة على رأس سكايب التي تخبز في طلبنا.

وبلدي مشكلة تكمن في السيطرة أو تعطيل النوافذ التي Skype إلى استخدام وعدم استخدام. نافذة سكايب الوحيد أعتقد أنني سوف تحتاجه هو نافذة الهاتف / مؤتمرات فيديو سكايب. أود أن إخفاء والسيطرة على كل نافذة أخرى أن سكايب يمكن أن تقدم. حتى أود أن تعطيل نافذة الحوار مكالمة واردة أن الملوثات العضوية الثابتة حتى على المكالمات الواردة، منذ سنقدمها ردنا موجه الخاصة. أنا سعيد مع API باستثناء إدارة النافذة.

ومع API، أستطيع أن أرى كيفية تمكين ويندوز، ولكن أنا لا يمكن أن يبدو لمعرفة كيفية إخفائها، وباختصار من القرصنة رسالة إطارات إلى التطبيق سكايب. أنا شيء مفقود؟

وشكرا لمساعدتكم، كيني

هل كانت مفيدة؟

المحلول

وبدس حول قليلا وجدنا أن من الممكن أن ترسل "سكايب أوامر" عبر

skypeobj.SendCommand ( Command cmd );

وهذا يعمل بشكل جيد جدا لمعظم ما نحتاج إليه. هنا هو إشارة على موقع المطور سكايب :

وبعض كود:

    void _SendSkypeCommand ( string cmdToSend )
    {
        Command cmdSkype = new Command ();
        cmdSkype.Blocking = true;
        cmdSkype.Timeout = 2000;
        cmdSkype.Command = cmdToSend;
        Trace.WriteLineIf ( _TracingDetailed, string.Format ( "skype command sent '{0}'", cmdToSend ) );
        _skype.SendCommand ( cmdSkype );
    }

    void _hideSkypeWindows ()
    {
        _SendSkypeCommand ( "SET SILENT_MODE ON" );
        _SendSkypeCommand ( "SET WINDOWSTATE HIDDEN" );
    }

نصائح أخرى

ومما يؤسف له، واجهة لا يعطي في الواقع كنت السيطرة على النوافذ الفعلية، طرق فقط لعرض وتعديلها (من خلال مغلفة).

وكما قلت، سيكون لديك للحصول على مؤشر الإطار بطريقة أو بأخرى ومن ثم إرسال رسالة إلى إخفائه.

ولدي نفس المشكلة، و

و_SendSkypeCommand ( "SET SILENT_MODE ON")؛

تم كسر، كما يقال على هذه الوظيفة: <لأ href = "http://devforum.skype.com/t5/Desktop-API/How-to-keep-hidden-Skype-UI-using- Skype4COM / TD-ص / 12338 "يختلط =" نوفولو "> http://devforum.skype.com/t5/Desktop-API/How-to-keep-hidden-Skype-UI-using-Skype4COM/td-p/ 12338

وبلدي الحل هو جعل UI سكايب غير مرئية عن طريق تحريك انها نافذة للخروج من منطقة العرض.

والآن كود:

 [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string lclassName, string windowTitle);
    [DllImport("user32.dll", SetLastError = true)]
    internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);        
    IntPtr hwnd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "tSkMainForm", null);//find skype window                  
    MoveWindow(hwnd, 2300, 2300, 300, 400, true);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top