घर
Top.Mail.Ru Yandeks.Metrika
मंच: "शुरुआती";
वर्तमान संग्रह: 2018.11.04;
डाउनलोड करें: [xml.tar.bz2];

नीचे

CreateProcess का उपयोग करना। बाद में वांछित आकार कैसे दिखाएं इसी तरह की शाखाएँ खोजें


Abcdef123   (2016-09-09 07:36) [0]

नमस्कार स्वामी।
स्थिति यह है: मुख्य रूप से 1 परियोजना एक नई 2 परियोजना (तुल्यकालन के बिना) शुरू होती है और तीसरी 3 परियोजना को मुख्य रूप से कहा जाता है (सिंक्रनाइज़ेशन के साथ - अर्थात, जबकि 3 परियोजना चल रही है, 2 परियोजना बंद नहीं होनी चाहिए)। 3 प्रोजेक्ट को बंद करने के बाद, मुझे स्क्रीन पर 2 प्रोजेक्ट फॉर्म की आवश्यकता है, लेकिन किसी कारण से पहली परियोजना का रूप हमेशा सक्रिय रहता है।
बताइए किस दिशा में जाना है? फिलहाल, मुझे नहीं पता कि क्या मैं CreateProcess मापदंडों को गलत तरीके से सेट कर रहा हूं (उदाहरण के लिए, मैंने bInheritHandles पैरामीटर को True पर सेट करने की कोशिश की - यह मदद नहीं की), या समस्या इस फ़ंक्शन में बिल्कुल नहीं है?
जानकारी के लिए, मैंने ShellExecute का उपयोग करने की कोशिश की, इस मामले में यह सही ढंग से काम करता है, क्योंकि Application.Handle को एक पैरामीटर के रूप में वहां पारित किया जाता है। लेकिन ShellExecute मुझे किसी अन्य कारण से सूट नहीं करता है।
कृपया कमेंट करें।
अग्रिम धन्यवाद
आशा



Игорь Шевченко ©   (2016-09-09 10:31) [1]

कुछ प्रक्रिया के पूरा होने के बाद, सिस्टम किसी भी प्रक्रिया की विंडो को सक्रिय कर सकता है, सबसे अधिक संभावना है कि अंतिम एक जो पूर्ण होने से पहले सक्रिय था। इस तंत्र का CreateProcess पैरामीटर से कोई संबंध नहीं है।



Abcdef123   (2016-09-09 11:47) [2]

[1] उत्तर के लिए बहुत बहुत धन्यवाद। कम से कम मुझे अब पता चल जाएगा कि बिंदु CreateProcess नहीं है।
अंतिम विंडो की सक्रियता के लिए, आपने जो लिखा है - तार्किक रूप से, मैंने ऐसा सोचा था, लेकिन किसी कारण से यह मेरी स्थिति में काम नहीं करता है। मैंने भी कोशिश की
कोशिश
CreateProcess (....)
आखिरकार
Application.Mainform.Setfocus; // मदद नहीं की
समाप्त
क्या यह संभव है कि किसी तरह वांछित विंडो के सक्रियण को बल दिया जाए यदि इस फॉर्म का हैंडल ज्ञात है या Application.Handle द्वारा? यदि हां, तो कैसे?



Игорь Шевченко ©   (2016-09-09 13:04) [3]


> यदि हां, तो कैसे?


SetForegroundWindow, लेकिन आपके मामले में, आपको प्रक्रिया के अंत में अग्रभूमि में दिखाई देने वाली विंडो की आवश्यकता है, और इसे बनाने के बाद नहीं। अन्य बातों के अलावा, SetForegroundWindow आवश्यक रूप से अग्रभूमि में एक खिड़की की उपस्थिति के लिए नेतृत्व नहीं करता है, यह दिखने के बजाय टास्कबार में एक बटन को ब्लिंक कर सकता है।


> मुख्य फॉर्म से प्रोजेक्ट 1 एक नया प्रोजेक्ट शुरू करता है 2 (बिना)
> सिंक्रोनाइजेशन) और तीसरी परियोजना को मुख्य फॉर्मएक्सएनएएमएक्स से कहा जाता है
> (सिंक्रनाइजेशन के साथ - यानी जब 3 प्रोजेक्ट चल रहा है, तो 2 प्रोजेक्ट नहीं है
> बंद होना चाहिए)।


क्या आपके पास 2 प्रोजेक्ट और 3 प्रोजेक्ट दोनों एक ही 1 प्रोजेक्ट से चल रहे हैं? और यह स्पष्ट नहीं है।



sniknik ©   (2016-09-09 13:23) [4]

> मैंने भी कोशिश की
> Application.Mainform.Setfocus; // मदद नहीं की
उह ... लेकिन यह ऊपर एक अलग प्रक्रिया के बारे में लग रहा था, लेकिन यहां ध्यान अपनी आवेदन प्रक्रिया से फॉर्म पर है।

> यदि हां, तो कैसे?
मैंने अपना कार्यक्रम किया जिसे मैंने एक कार्यक्रम से दूसरे कार्यक्रम में भेजा था, और वहां मैंने वांछित आकार पकड़ा और "उठाया"।
अन्यथा, (SetForegroundWindow), सब कुछ गलत तरीके से, अलग-अलग "कुल्हाड़ियों" में, एक्सपी पर इरादा के रूप में काम किया। में नजरअंदाज कर दिया, सात में "एक कार्यपट्टी में निमिष" ...
नतीजतन, इस अनिश्चितता की घटना के साथ अपनी खुद की "बाइक" का नेतृत्व किया।
+
इस घटना से परेशानियां भी हैं, उन्हें हल करने की जरूरत है ... जैसे (जैसा है)
VistaMagesagesEnable ([WM_SELFRESTORE, WM_SYSCOMMAND]); // बाहर से फॉर्म को "बढ़ाने" की अनुमति दें, सीटी और उच्च में। + एयरो शेक, आदि के लिए सिस्टम कमांड VistaMessagesEnable (कास्ट वैल्यूज़: कार्डिनल की सरणी) प्रक्रिया; वर DLLHandle: थैंडल; ChangeWindowMessageFilter: function (msg: Cardinal; dwFlag: Word): BOOL; stdcall; i: पूर्णांक; शुरू करना DLLHandle: = LoadLibrary ("user32.dll"); अगर DLLHandle> 0 तो कोशिश // अन्यथा वे कहते हैं कि संदेश UAC के कारण Vista / Win7 में कार्यक्रम में नहीं जाएगा (हम Vista की जांच करेंगे) @ChangeWindowMessageFilter: = GetProcAddress (DLLHandle, "ChangeWindowMessageFilter"); अगर @ChangeWindowMessageFilter <> nil तो // में XP में कोई फ़ंक्शन नहीं है, तो यह सांख्यिकीय रूप से काम नहीं करेगा, केवल गतिशील रूप से i: = 0 से उच्च (मान) के लिए ChangeWindowMessageFilter (मान [i], 1); अंत में फ्रीलाउड्स (DLLHandle); अंत; अंत;



Abcdef123   (2016-09-12 04:58) [5]

[3]
> आपके पास 2 प्रोजेक्ट और 3 प्रोजेक्ट दोनों एक ही से चलते हैं
> Project1? और यह स्पष्ट नहीं है।

मैं माफी चाहता हूं कि मैंने लिखा है कि यह तीन परियोजनाओं के बारे में स्पष्ट नहीं है। यह रैखिक रूप से चलता है - पहली परियोजना के मुख्य रूप से दूसरी परियोजना को कहा जाता है, और फिर 3 परियोजना को दूसरी परियोजना के मुख्य रूप से कहा जाता है। पहली और दूसरी परियोजना के बीच संबंध वैकल्पिक है (तुल्यकालन के बिना), अर्थात, दूसरी परियोजना खोलने के बाद, आप पहली परियोजना को बंद कर सकते हैं। लेकिन दूसरे और तीसरे के बीच कनेक्शन को सिंक्रनाइज़ किया जाना चाहिए, अर्थात, जबकि तीसरा प्रोजेक्ट खुला है, दूसरा प्रोजेक्ट बंद नहीं होना चाहिए। यही है, तीसरी परियोजना एक अर्थ में "मामूली" काम करती है।
दूसरी परियोजना में तीसरी परियोजना को कॉल करने के लिए मैं इस तरह लिखता हूं
   कोशिश Application.MainForm.Enabled: = गलत; <यहाँ CreateProcess> का उपयोग करके तीसरी परियोजना के निष्पादन योग्य कहा जाता है अंत में Application.MainForm.Enabled: = True; // इसका मतलब तीसरी परियोजना बंद होने के बाद दूसरी परियोजना का मुख्य रूप है Application.MainForm.SetFocus; // यहाँ मैंने SetForegroundWindow के बारे में विशा टिप्स लागू करने की कोशिश की - यह मदद नहीं की, मैंने भी सलाह दी [5] यहाँ VistaMessages को कॉल करने के लिए लागू करने योग्य - यह या तो मदद नहीं की है। अंत;



Abcdef123   (2016-09-12 05:04) [6]

[4] आपकी सलाह के अनुसार, मैंने आवेदन करने की कोशिश की, कृपया अपना संदेश ऊपर देखें। शायद मैं वहाँ VistaMessagesEnable प्रक्रिया कॉल पर कोशिश की?
वैसे, मैं D2007 में काम करता हूं और मुझे WM_SELFRESTORE ध्वज नहीं मिला, मैंने इसे WM_MDIRESTORE से बदल दिया (यह सब है जो मुझे अर्थ में सहज रूप से मिला)। शायद इसीलिए यह काम नहीं आया?



sniknik ©   (2016-09-12 08:55) [7]

> मैंने यहां सलाह देने की कोशिश की [5] को VistaMagesages को कॉल करने योग्य - यह या तो मदद नहीं करता है।
कार चलाने की अनुमति <> कार चलाएं ... मुझे आमतौर पर SetForegroundWindow कॉल को VistaMessagesEnable के साथ बदलने के बारे में क्या है? तर्क बदल रहा है, सिद्धांत रूप में।
> एक घटना जिसे एक कार्यक्रम से दूसरे में भेजा गया था, और वहां मैंने वांछित फॉर्म पकड़ा और "उठाया"।
आपका इवेंट हैंडलर कहाँ है?

> शायद मैं वहाँ VistaMessagesEnable प्रक्रिया कॉल पर कोशिश की?
यह धारणा कि उन्होंने "सलाह" बिल्कुल नहीं पढ़ी।

> WM_SELFRESTORE ध्वज नहीं मिला
यह मेरी "आत्म-पुनर्स्थापना" घटना है, एक युज़र्सकी घटना, जिसके बारे में [5] शब्दों में।

> जबकि तीसरा प्रोजेक्ट खुला है, दूसरा प्रोजेक्ट बंद नहीं होना चाहिए।
इस मामले में, सब कुछ सरल बनाया जा सकता है, कार्यक्रमों का रिटर्न कोड है, और पूरा होने की प्रतीक्षा कर रहा है। मुझे याद है कि एक और baht फाइलें लिखी गई थीं, जो कि रिटर्न कोड की प्रतिक्रिया के साथ थी। तथाकथित कार्यक्रम के पूरा होने की प्रतीक्षा कर रहा है ... फ़ाइल मौजूद नहीं है, अधिक विकल्प हैं, इसलिए आप इसे भी कर सकते हैं। पूरा कुडू कार्यक्रम देखें।



Игорь Шевченко ©   (2016-09-12 11:28) [8]


> लेकिन दूसरे और तीसरे के बीच संबंध को सिंक्रनाइज़ किया जाना चाहिए,
> यानी, जबकि तीसरा प्रोजेक्ट खुला है, दूसरा प्रोजेक्ट नहीं होना चाहिए
> पास। यही है, तीसरी परियोजना में "मामूली" काम करता है
> कुछ समझदारी।


मैं यह देखना चाहूंगा कि आप कैसे कॉल करते हैं और दूसरे के संबंध में एक प्रक्रिया की "न्यूनाधिकता" प्रदान करते हैं। [5] में दिया गया कोड यह नहीं दिखाता है।

लेकिन बात यह है कि विंडोज में प्रक्रियाएं एक-दूसरे से स्वतंत्र होती हैं, इसलिए यह मुझे प्रतीत होता है कि "आधुनिकता" के लिए आपकी मांग कुछ हद तक कृत्रिम है और उसी विचारधारा के अनुरूप है।
हमें कार्य के बारे में अधिक बताएं, शायद अधिक मानवीय तरीके हैं?



Leonid Troyanovsky ©   (2016-09-12 19:03) [9]


> Abcdef123 (12.09.16 04: 58) [5]

> पहले प्रोजेक्ट को बंद करें। और यहाँ दूसरे और तीसरे के बीच संबंध है
> तीसरी जगह खुला है, जबकि सिंक्रनाइज़ किया जाना चाहिए
> प्रोजेक्ट दूसरा प्रोजेक्ट बंद नहीं होना चाहिए। वह तीसरा है
> परियोजना एक अर्थ में "मामूली" काम करती है।

समझने के लिए कि क्या संभव है और क्या नहीं पढ़ा जा सकता है, msdn।

SetForegroundWindow और AllowSetForegroundWindow के लिए एक साथ प्रतिबंध लगाना:

एक प्रक्रिया अग्रभूमि विंडो को केवल तभी सेट कर सकती है जब निम्नलिखित में से कोई एक सत्य हो:

प्रक्रिया अग्रभूमि प्रक्रिया है।
अग्रभूमि प्रक्रिया द्वारा प्रक्रिया शुरू की गई थी।
प्रक्रिया को अंतिम इनपुट ईवेंट प्राप्त हुआ।
कोई अग्रभूमि प्रक्रिया नहीं है।
अग्रभूमि प्रक्रिया डीबग की जा रही है।
अग्रभूमि लॉक नहीं है (LockSetForegroundWindow देखें)।
अग्रभूमि लॉक टाइम-आउट की समय सीमा समाप्त हो गई है (देखें SPI_GETFOREGROUNDLOCKTIMEOUT SystemParametersInfo में)।
अग्रभूमि प्रक्रिया एक आधुनिक अनुप्रयोग या स्टार्ट स्क्रीन नहीं है (SWF प्रतिबंध से)
कोई मेनू सक्रिय नहीं हैं।

क्या, IMHO, आपको इस तरह पढ़ना होगा:
"कोई सक्रिय मेनू नहीं हैं, और निम्न स्थितियों में से एक सत्य है: .."

इस तालिका का उपयोग करके, किसी भी श्रृंखला को पार्स करना आसान है
आवेदन बातचीत।

खैर, परिणाम की गारंटी देने के लिए आपको चाहिए
और अधिक "मानवीय तरीके" देखें। उदाहरण के लिए, तीन को मिलाएं
एक में प्रोजेक्ट करें, और आवश्यक अनुक्रम में तैनात करें।

--
सादर, LVT



Abcdef123   (2016-09-13 12:28) [10]

[8]
> मैं देखना चाहता हूं कि आप कैसे "मोडैलिटी" कहते हैं और प्रदान करते हैं
> एक प्रक्रिया दूसरे के सापेक्ष।

मैं इसे इस तरह से कॉल करता हूं:
ExecuteProcess (AExeFile + "" + AExtraParams, SW_SHOWNORMAL, 0, true);जहां कार्य ExecuteProcess ही है:
समारोह ExecuteProcess (FileName: string; दृश्यता: Integer; BitMask: Integer; Synch: Boolean): Longword; वर zAppName: सरणी [0..512] चार की; zCurDir: सरणी [0..255] चार का; वर्कडायर: स्ट्रिंग; StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; बंद: बूलियन; शुरू करना बंद: = सत्य; StrPCopy (zAppName, FileName); GetDir (0, वर्कडायर); StrPCopy (zCurDir, WorkDir); FillChar (StartupInfo, SizeOf (StartupInfo), #0); StartupInfo.cb: = SizeOf (स्टार्टअपअप); StartupInfo.dwFlags: = STARTF_USESHOWWINDOW; StartupInfo.wShowWindow: = दृश्यता; यदि CreateProcess नहीं है (nil, zAppName, शून्य, शून्य, झूठी, CREATE_NEW_CONSOLE या NORMAL_PRIORITY_CLASS, शून्य, शून्य, StartupInfo, ProcessInfo) फिर परिणाम: = WAIT_FAILED अन्यथा शुरू करना if (Synch = True) तो शुरू करना बंद: = गलत; दोहराना मामला WaitForSingleObject ( ProcessInfo.hProcess, 100) का WAIT_OBJECT_0: बंद: = सत्य; WAIT_FAILED: RaiseLastWin32Error; अंत; Application.ProcessMessages; तक (बंद); GetExitCodeProcess (ProcessInfo.hProcess, परिणाम); CloseHandle (ProcessInfo.hProcess); CloseHandle (ProcessInfo.hThread); अंत अन्यथा शुरू करना परिणाम: = एक्सएनयूएमएक्स; अंत; अंत; अंत;

और के बारे में
> "तौर-तरीके" कुछ हद तक कृत्रिम रूप से

मैं आपसे सहमत हूँ।
> हमें कार्य के बारे में अधिक बताएं, शायद अधिक मानवीय हैं
> तरीके
संक्षेप में कारण के बारे में, ग्राहक के आधार पर, हमें एक परियोजना में व्यक्तिगत कार्यों (परियोजनाओं) को "इकट्ठा" करने की आवश्यकता है, उसी समय, कुछ उपयोगकर्ता सब कुछ चाहते हैं। इस उदाहरण में, हमें दूसरी परियोजना के हिस्से के रूप में तीसरी परियोजना चलाने की क्षमता की आवश्यकता है। उसी समय, ताकि किसी को एक अलग इकाई कार्य के रूप में तीसरी परियोजना प्रदान करना संभव हो सके।



Игорь Шевченко ©   (2016-09-13 17:02) [11]


> संक्षेप में कारण के बारे में


संक्षेप में नहीं, हमें लंबा बताएं। हो सकता है कि एक आवेदन में DLL / BPL के रूप में संस्थाओं को डिज़ाइन करना और प्रबंधित करना आपके लिए आसान हो।

जब आप वातावरण में डीबगर के नीचे से प्रोग्राम चलाते हैं, तो आप अपेक्षा करते हैं कि प्रोग्राम पूरा होने पर फ़ोकस पर्यावरण में वापस आ जाएगा। हालांकि, यह हमेशा नहीं होता है, इसलिए यह मुझे लगता है कि यह सही है कि मॉड्युलिटी के सपने के साथ अलविदा कहें और प्रक्रियाओं के बीच फोकस कंट्रोल करें।



sniknik ©   (2016-09-14 07:58) [12]

दोहराना मामला WaitForSingleObject (ProcessInfo.hProcess, 100) का WAIT_OBJECT_0: बंद: = सत्य; WAIT_FAILED: RaiseLastWin32Error; अंत; Application.ProcessMessages; // यही कारण है कि आपके "छद्म-तौर-तरीके" काम नहीं करते हैं, इसे हटा दें तक (बंद);
इस प्रक्रिया के अंत में, ध्यान केंद्रित करें, अगर आपको अभी भी इसकी आवश्यकता है।

आप किसी तरह तर्क पर निर्णय लेते हैं, और या तो रैखिक रूप से या अंततः लिखते हैं ... दूसरे मामले में, ProcessMessages = त्रुटि, क्योंकि यह असंगत संयोजन करने का एक प्रयास है।



Abcdef123   (2016-09-15 05:04) [13]

[11]
> संक्षेप में हमें लंबे समय तक नहीं बताएं। हो सकता है कि प्रोजेक्ट आपके लिए आसान हों
> एक आवेदन में संस्थाओं को डिजाइन और प्रबंधित करने के लिए DLL / BPL के रूप में।
>

ईमानदारी से, मेरे पास "डीएलएल / बीपीएल" के इस क्षेत्र के बारे में केवल एक सैद्धांतिक विचार है। इसलिए मुझे यह भी पता नहीं है कि क्या यह इस मामले में उपयुक्त है। बेशक, मैं वास्तव में इस क्षेत्र में आपकी राय जानना चाहूंगा, भले ही यह मेरा मामला न हो। (भविष्य में तब उपयोगी)। यदि आपके पास लिखने का अवसर है, तो मैं बहुत आभारी रहूंगा।
इसलिए, यदि अधिक विवरण में है, तो योजना इस प्रकार है:
पहला प्रोजेक्ट दूसरे और तीसरे के साथ किसी भी तरह से जुड़ा नहीं है। यह सिर्फ इतना है कि एक दूसरी परियोजना मुख्य मेनू से क्लिक करके लॉन्च की गई है
दूसरी और तीसरी परियोजनाओं में एक सिमेंटिक कनेक्शन होता है और एक ही डेटा (टेबल) के साथ काम करता है।
दूसरी परियोजना मुख्य मेनू के साथ सिर्फ मुख्य रूप है, जिसमें से तीसरे प्रकार की परियोजनाओं को बुलाया जाता है, साथ ही साथ सभी प्रकार की रिपोर्ट भी।
तीसरे प्रकार की परियोजनाएं सभी विशिष्ट हैं, वे एक लेआउट (यहां तक ​​कि फ़ाइल नाम समान हैं) के अनुसार बनाई गई हैं - यह एक डेटा प्रविष्टि फॉर्म है, इस फॉर्म से आप एक रिपोर्ट लिस्टिंग (बटन द्वारा) और एक तारीख मॉड्यूल चला सकते हैं। मुझे नहीं पता कि यह महत्वपूर्ण है या नहीं, जानकारी के लिए, दूसरी परियोजना में एक ही रिपोर्ट (मेरा मतलब इनपुट फ़ाइल फॉर्म) का उपयोग किया जाता है।
यहाँ, शायद, यह सब है।



Abcdef123   (2016-09-15 05:46) [14]

[12] बहुत बहुत धन्यवाद। यह वास्तव में मदद की। सच है, "छद्म-तौर-तरीके" का व्यवहार बदल गया है (पहले 2 प्रोजेक्ट फॉर्म उपलब्ध नहीं था, बिना किसी प्रतिक्रिया के, अगर आप क्लिक करते हैं, और अब यदि आप क्लिक करते हैं, तो फॉर्म "ग्रे" हो जाता है, न कि रिस्पॉन्सिंग को फॉर्म हेडर में जोड़ा जाता है। सिद्धांत रूप में, सब कुछ सही है। यह सिर्फ इतना है कि उपयोगकर्ता इसे आदत से "डरा" सकते हैं।
चूंकि परियोजना पहले से ही इस्तेमाल की जा रही है, मैं इस विकल्प पर ध्यान केंद्रित करूंगा!
और अगर आपको [11] -> [13] का जवाब मिलता है, तो शायद अगले संस्करण में मैं सब कुछ फिर से लिखूंगा।
सभी समीक्षाओं, टिप्पणियों और सुझावों के लिए बहुत बहुत धन्यवाद !!! और बहुत सारे धैर्य के लिए, स्निकनिक और इगोर शेवचेंको के लिए बहुत धन्यवाद!



पन्ने: 1 पूरी शाखा

मंच: "शुरुआती";
वर्तमान संग्रह: 2018.11.04;
डाउनलोड करें: [xml.tar.bz2];

ऊपर





मेमोरी: 0.65 एमबी
समय: 0.022 c
2-1473336347
अन्ना
2016-09-08 15:05
2018.11.04
संग्रहीत प्रक्रियाओं की संख्या के लिए अनुरोध


15-1475184602
यूरी
2016-09-30 00:30
2018.11.04
आपको जन्मदिन की शुभकामनाएं! 30 सितंबर 2016 शुक्रवार


2-1474009068
उपयोगकर्ता
2016-09-16 09:57
2018.11.04
HTML फॉर्म भरना


2-1474206922
KropotkinGosha
2016-09-18 16:55
2018.11.04
फ़ंक्शन में कोड निष्पादित नहीं किया गया है


2-1473404951
Valya
2016-09-09 10:09
2018.11.04
संकेत





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский