වින්ඩෝස් 7 හි වේගවත් පරිශීලක මාරු කිරීම. ඉතා වේගවත් වින්ඩෝස් පරිශීලක මාරු කිරීම. නව "ගිණුමක්" එකතු කරන්නේ කෙසේද?

පරිගණකය ඔබ පමණක් නොව වෙනත් පුද්ගලයින් ද භාවිතා කරන්නේ නම්, ඒ සෑම කෙනෙකුටම ඔබට ඔබේම ගිණුමක් සෑදිය හැකිය. ඔබට "ගිණුම" ඔබට ගැලපෙන ආකාරයෙන් සැකසිය හැක: ඩෙස්ක්ටොප් තිර සුරැකුම වෙනස් කිරීම, ෆෝල්ඩරවල පෙනුම, කාර්ය තීරුව, ඔබට අවශ්ය වැඩසටහන් ස්ථාපනය කිරීම සහ තවත් බොහෝ දේ.

ඕනෑම පරිශීලකයෙකු සඳහා, "පරිපාලක" හෝ "ආගන්තුක" අයිතිවාසිකම් සහිත ගිණුමක් සාදනු ලැබේ. පළමු අවස්ථාවේ දී, පුද්ගලයෙකුට වැඩි අවස්ථාවන් ලැබෙනු ඇත. වෙනත් "පරිශීලකයින්ට" ප්රවේශ විය නොහැකි සමහර වැඩසටහන් විවෘත කිරීමට, ගිණුම් එකතු කිරීමට සහ මකා දැමීමට ඔහුට හැකි වනු ඇත.

"හත" පරිගණකයේ ස්ථාපනය කර ඇති අතර, එය සේවකයින් කිහිප දෙනෙකුගේ වැඩ සඳහා අදහස් කරන විට, ඔබ වින්ඩෝස් 7 හි පරිශීලකයා වෙනස් කරන්නේ කෙසේදැයි දැන සිටිය යුතුය. මෙම ලිපිය කියවීමෙන් පසු, ඔබට පහසු ක්‍රමය භාවිතා කර මුරපදය සහ ගිණුමේ නම වෙනස් කරන්නේ කෙසේදැයි ඔබ ඉගෙන ගනු ඇත. එහි ප්‍රතිඵලයක් වශයෙන්, ඔබේ තොරතුරු ඔබට හෝ ඔබ ඔබේ මුරපදය බෙදා ගන්නා පුද්ගලයන්ට පමණක් ලබා ගත හැක.

නව "ගිණුමක්" එකතු කරන්නේ කෙසේද?

නව පරිශීලකයෙකු සඳහා ගිණුමක් නිර්මාණය කිරීම සඳහා, ඔබ ආරම්භක මෙනුව වෙත ගොස් කවුළුවේ ඉහළින් ඇති අයිකනය මත ක්ලික් කරන්න. "වෙනත් ගිණුමක් කළමනාකරණය කරන්න" යන සබැඳිය ක්ලික් කිරීමෙන්, ඔබට "ගිණුමක්" නිර්මාණය කිරීමට ඉඩ සලසන කොටුව සලකුණු කරන්න.

ඔබට පරිශීලක නාමයක් ඇතුළත් කිරීමට සහ ප්‍රවේශ වර්ගය (පරිපාලක හෝ සාමාන්‍ය) සඳහන් කිරීමට අවශ්‍ය තීරුවක් ඔබට පෙනෙන පිටුවක් විවෘත වේ. දැන් "ගිණුමක් සාදන්න" ක්ලික් කරන්න.

ඔබේ පරිගණකයේ වැඩ කරන වෙනත් පුද්ගලයින්ට වැඩසටහන් අස්ථාපනය කිරීමට හෝ වැදගත් ගොනු වෙනස් කිරීමට ඔබට අවශ්‍ය නැතිනම්, එය සාමාන්‍ය ප්‍රවේශයට සකසන්න. ඔබ පුද්ගලයා සම්පූර්ණයෙන්ම විශ්වාස කරන්නේ නම්, ඔබට ඔහුට "පරිපාලක" අයිතිවාසිකම් ලබා දිය හැකිය.

මිනිත්තු කිහිපයකින්, ඔබට ඔබේ පරිගණකයට නව පරිශීලකයෙකු එක් කළ හැකිය.

Windows 7 හි ගිණුම් අතර මාරු වන්නේ කෙසේද?

එබැවින්, ඔබේ පරිගණකයේ සෑම පරිගණක පරිශීලකයෙකුටම තමාගේම "ගිණුම" තිබේ නම්, ඒවා අතර මාරු වන්නේ කෙසේදැයි ඔබ දැනගත යුතුය. ඔබ පරිගණකය ආරම්භ කරන විට, අනුරූප අයිකනය මත ක්ලික් කිරීමෙන් එක් හෝ තවත් "පරිශීලකයෙකු" තෝරා ගැනීමට හැකි වේ. නමුත් මෙහෙයුම් පද්ධතිය දැනටමත් පටවා ඇත්නම් කුමක් කළ යුතුද? වින්ඩෝස් 7 හි පරිශීලකයා වෙනස් කරන්නේ කෙසේද?

එක් ගිණුමකින් තවත් ගිණුමකට මාරු වීමට, ඔබට පහත ක්‍රම වලින් එකක් භාවිතා කළ හැක:

  • එකවර "Ctrl", "alt" සහ "Delete" බොත්තම් ඔබන්න. "මුල් තිරය" විවෘත වනු ඇත, එහිදී ඔබට "පරිශීලක වෙනස් කරන්න" ක්ලික් කළ යුතුය;
  • "උණුසුම් බොත්තම්" භාවිතා කරන්න - Win + L. "Win" යතුර "Windows" OS ලාංඡනය පෙන්වයි;
  • ආරම්භය ඇතුලත් කරන්න. "වසා දමන්න" විකල්පයට යාබදව, ත්‍රිකෝණය මත ක්ලික් කර ඉහළට ගෙන ඒමට "පරිශීලක වෙනස් කරන්න" විකල්පය තෝරන්න.

එබැවින්, සරලව, ඔබට පරිශීලකයින්ගේ "ගිණුම්" අතර මාරු විය හැකිය.

වින්ඩෝස් 7 වෙනස් කරන්නේ කෙසේද?

සෑම පරිගණක පරිශීලකයෙකුටම ඔහුගේ ගිණුමට ඕනෑම නමක් ලබා දීමට හෝ පවතින එකක් වෙනස් කිරීමට හැකිය.

උදාහරණයක් ලෙස, ඔබ භාවිතා කළ පරිගණකයක් මිල දී ගත්තේ නම්, ඔබට ඔබගේ පරිශීලක නාමය වෙනස් කිරීමට අවශ්‍ය විය හැක. ඔබට මෙය සරල ක්රම දෙකකින් එකක් භාවිතා කළ හැකිය:

  • "Command Prompt" අමතා එහි "lusrmgr.msc" ඇතුලත් කරන්න (උපුටා දැක්වීම් නොමැතිව). ඔබට "පරිශීලකයින්" උපවගන්තිය තෝරා ගැනීමට අවශ්ය කවුළුවක් දිස්වනු ඇත. දකුණු පසින්, ඔබට නැවත නම් කිරීමට අවශ්‍ය "පරිශීලක" මත ක්ලික් කරන්න. සන්දර්භය මෙනුවේ, සුදුසු විකල්පය මත ක්ලික් කරන්න, ඉන්පසු "Enter" බොත්තම ක්ලික් කරන්න. දැන් නැවතත් දැනටමත් නැවත නම් කර ඇති RMB පරිශීලකයා මත ක්ලික් කර "ප්රොපටීස්" වෙත යන්න. ඔබට සාමාන්‍ය ටැබ් එක අවශ්‍ය වේ. මෙහි නව නම නැවත ඇතුල් කරන්න.
  • ආරම්භක මෙනුව ඇතුළත් කර කවුළුවේ ඉහළින් ඇති හතරැස් අයිකනය මත ක්ලික් කරන්න. "ඔබේ ගිණුමේ නම වෙනස් කරන්න" සබැඳිය ක්ලික් කරන්න. ඔබේ තේරීම ඇතුළත් කර "නැවත නම් කරන්න" ක්ලික් කරන්න.

පරිශීලක මුරපදය වෙනස් කරන්නේ කෙසේද?

වින්ඩෝස් 7 හි පරිශීලකයා වෙනස් කරන්නේ කෙසේදැයි ඔබ දැනටමත් දන්නවා, නමුත් ඔබට මුරපදය වෙනස් කිරීමට අවශ්ය නම් කුමක් කළ යුතුද? "Ctrl", "Delete" සහ "Alt" බොත්තම් එබීමෙන් මෙය කළ හැකිය. දැන් "මුරපදය වෙනස් කරන්න ..." තෝරන්න සහ වත්මන් මුරපදය ඇතුළත් කරන්න, ඉන්පසු නව එකක් දෙවරක් ඇතුල් කරන්න. අවසාන පියවර වන්නේ ඔබේ ක්රියාවන් තහවුරු කිරීමයි.

විකල්පයක් ලෙස, ඔබට "ආරම්භය" වෙත ගොස් පරිශීලක අයිකනය මත ක්ලික් කරන්න. විවෘත වන කවුළුව තුළ, "ඔබගේ මුරපදය වෙනස් කරන්න" සබැඳිය ක්ලික් කරන්න. අදාළ ක්ෂේත්‍රවල වත්මන් සහ නව මුරපදය දෙවරක් ඇතුළත් කරන්න.

දැන් ඔබට ඔබගේ Windows 7 පරිශීලක මුරපදය වෙනස් කළ හැකිය, එමගින් ඔබගේ ගිණුමේ ඇති වටිනා තොරතුරු සොරකම් කිරීමෙන් ඔබව ආරක්ෂා කර ගත හැකිය.

නිගමනය

එබැවින්, පරිශීලක ගිණුම් සෑදීම, ඔවුන්ගේ නම සහ මුරපදය වෙනස් කිරීම සඳහා ඔබ ඉගෙන ගෙන ඇත. එක් පරිගණකයක් කිහිප දෙනෙකු සඳහා අදහස් කරන්නේ නම්, ඔවුන් එක් එක් පුද්ගලයා සඳහා වෙනම "ගිණුමක්" නිර්මාණය කිරීම අර්ථවත් කරයි. මෙම අවස්ථාවේදී, ඔබට පමණක් "පරිපාලක" අයිතිවාසිකම් තිබිය හැකිය.

පරිශීලකයාට තමා කැමති පරිදි OS හි පෙනුම රිසිකරණය කිරීමට හැකි වනු ඇත. උදාහරණයක් ලෙස, සමහර අය කැමති කාර්ය තීරුව තිරයේ ඉහළින් හෝ පැත්තේ තිබේ නම්. සමහර "පරිශීලකයින්" සම්මත වින්ඩෝස් බිතුපත වෙනස් කිරීමට කැමති නැත, අනෙක් අයට ඩෙස්ක්ටොප් එකේ දීප්තිමත් හෝ විහිළුවක් දැකීමට අවශ්ය වේ. ඔබගේ මනාපයන්ට අනුකූලව ඕනෑම "ගිණුමක්" වින්‍යාසගත කළ හැකි අතර, වින්ඩෝස් 7 හි පරිශීලකයෙකු වෙනස් කරන්නේ කෙසේදැයි දැන ගැනීමෙන්, සෑම කෙනෙකුම සෑහීමකට පත් වනු ඇත, මන්ද අවශ්‍ය නම් ඔවුන්ට ඔවුන්ගේ "ගිණුම" වෙත මාරු විය හැකිය.

රූපයේ දැක්වෙන තිරය දෙස සමීපව බැලීම. 4.8, ඔබට Windows XP හි තවත් රසවත් නවෝත්පාදනයක් දැකිය හැකිය - වේගවත් පරිශීලක මාරු කිරීමේ විකල්පය (පරිශීලක සැසි, වේගවත් පරිශීලක මාරු කිරීම), එය වඩාත් විස්තරාත්මකව සාකච්ඡා කළ යුතුය.

මෙම විශේෂාංගය වින්ඩෝස් NT පැතිකඩ බෙදාගැනීමේ තාක්ෂණය වැඩිදියුණු කිරීම සඳහා වේගවත් සහ පහසු ක්රමයක් මෙන්ම පරිශීලක ගිණුම් අතර මාරුවීම සඳහා කාර්යක්ෂම යාන්ත්රණයක් සැපයීමට අදහස් කෙරේ.

මෙම ගුණාංගය සක්‍රීය කර ඇත්නම්, පරිශීලක ගිණුම් ස්ථිරව සම්බන්ධ වී ඇති නිසා පරිශීලකයන් ලොග් ඔෆ් (ලොග් ඔෆ්) වීමට අවශ්‍ය නොවේ. මේ අනුව, ඔබට සියලු විවෘත ගිණුම් අතර ඉක්මනින් මාරු විය හැක. ඒ අතරම, මීට පෙර පද්ධතියේ වැඩ කළ පරිශීලකයින්ට ඔවුන්ගේ ධාවන යෙදුම් හෝ සක්‍රීය අන්තර්ජාල සම්බන්ධතා ඉවත් කර ආරක්ෂා කිරීමට අවශ්‍ය නොවේ.

වින්ඩෝස් එක්ස්පී පද්ධතිය, පරිශීලකයින් එයට ලොග් වී ඇති අතර, සියලුම යෙදුම් දිගටම ක්‍රියාත්මක වන අතර, විමසුම් කවුළුව නැවත පෙන්වයි. මීට අමතරව, තිරය සම්බන්ධිත පරිශීලකයින් සංඛ්යාව, නොකියවූ ඊමේල් පිළිබඳ දැනුම්දීම සහ ක්රියාත්මක වන වැඩසටහන් සංඛ්යාව පෙන්වනු ඇත.

Windows XP Professional මඟින් පරිශීලකයින්ට වෙනත් යන්ත්‍රවලින් දත්ත සහ යෙදුම් වෙත ප්‍රවේශ වීමේ හැකියාව ද ලබා දේ. Windows XP Professional මෙහෙයුම් පද්ධතියෙන් සමන්විත ව්‍යාපාරික සේවා ස්ථානවලදී, පරිශීලකයින්ට තම ඩෙස්ක්ටොප් පරිගණක වෙත දුරස්ථව ප්‍රවේශ වීමේ හැකියාව ඇත. එබැවින්, උදාහරණයක් ලෙස, ඔබට ඔබේ කාර්යාල පරිගණකය අගුළු දමා, නිවසට ගොස්, නිවසේ සිට එයට සම්බන්ධ විය හැකිය. >

සහල්. 4.9ටැබ් නොබැඳි ගොනුකවුළුව ෆෝල්ඩර ගුණාංග

සටහන : Fast User Switching සහ Remote Desktop විශේෂාංග දෙකම Terminal Services තාක්ෂණය භාවිතා කරන අතර පැරණි Microsoft Win32 යෙදුම් සමඟ කිසිදු වෙනසක් අවශ්‍ය නොවීම සමඟ වැඩ කිරීමට ඔබට ඉඩ සලසයි. ඔබ භාවිතා කරන යෙදුම Windows 2000 මත ධාවනය වන බවට සහතික කර ඇත්නම්, හෝ "Windows 2000 සඳහා යෙදුම් පිරිවිතර" වලට අනුකූල නම්, එය Windows XP මත සාර්ථකව ක්‍රියාත්මක වේ.

වසමක සාමාජිකයන් වන Windows XP Professional ධාවනය වන වැඩපොළවල වේගවත් පරිශීලක මාරුව ක්‍රියා නොකරන බව සලකන්න.

Windows XP Home Edition හෝ Windows XP Professional පද්ධතිවල තනිව වැඩපොළවල්වල හෝ වැඩ කණ්ඩායම්වල සාමාජිකයන් මත ක්‍රියාත්මක වන විට, කොටුව සලකුණු කිරීම/නොසලකීම මගින් Fast User Switching මාදිලිය සක්‍රීය/අබල කිරීමට හැකිය (වේගවත් පරිශීලක මාරුව භාවිතා කරන්න). රූපයේ දැක්වෙන පරිදි මෙම පිරික්සුම් කොටුව අළු පැහැයක් ගනී නම්. 4.8, කවුළුව විවෘත කරන්න ෆෝල්ඩර ගුණාංග(ෆෝල්ඩර විකල්ප), ටැබ් එකට යන්න නොබැඳි ගොනු(නොබැඳි ගොනු) (රූපය 4.9) සහ පිරික්සුම් කොටුව ඉවත් කරන්න නොබැඳි ගොනු භාවිතා කරන්න(නොබැඳි ගොනු සබල කරන්න). ඔබගේ වෙනස්කම් තහවුරු කර නැවත කවුළුව විවෘත කරන්න ගිණුම්කරණය පරිශීලක වාර්තා(පරිශීලක ගිණුම්). පිරික්සුම් කොටුව වේගවත් පරිශීලක මාරු කිරීම භාවිතා කරන්න(Fast User Switching භාවිතා කරන්න) දැන් ලබා ගත හැකි වනු ඇත (Figure 4.10). >

සහල්. 4.10.පිරික්සුම් කොටුව වේගවත් පරිශීලක මාරු කිරීම භාවිතා කරන්නලබා ගත හැකි විය

Google මගින් මතු වූයේ:

  • සැසි මාරු කිරීම සඳහා, wtsapi32.dll ශ්‍රිත භාවිතා කරන්න: WTSEnumerateSessions , WTSConnectSession , WTSDisconnectSession (දැන් මම මෙම කාර්යයන් පිළිබඳ විස්තරය දෙස බලන විට, එය දුරස්ථ වැඩ සැසි සමඟ ක්‍රියා කරන බව පවසන අතර අවංකවම, මම ටිකක් පාඩුව, නමුත් එය මට දේශීයව, දෝෂ රහිතව ක්‍රියා කරයි) .
  • හොට්කී සඳහා, user32.dll කාර්යයන් භාවිතා කරන්න: RegisterHotKey , UnregisterHotKey . මෙහි සෑම දෙයක්ම සරලයි.
මම වහාම වෙන්කරවා ගන්නම්, ඔබට තක්කාලි මා වෙතට විසි කළ හැකිය, නමුත් මම මෙම නඩුව c # වලින් ලිව්වෙමි, ප්ලස් මත වුවද, එය නිසැකවම වඩා හොඳ, වඩා දේශීය සහ යනාදිය වනු ඇත, එසේ ය. නමුත් පසුව මම c # ඉගෙනීමට පටන් ගත් අතර මට අත්දැකීම් අවශ්‍ය වූ අතර විසඳුම ලියා ඇති විට එය නැවත ලිවීමට අවශ්‍ය නොවීය, නමුත් ස්ථාන මාරුව එක සවසකට වඩා ගත නොවනු ඇත.

එබැවින්, ආරම්භකයින් සඳහා, සරල win32 යෙදුමක් බොත්තමක් සමඟ ලියා ඇති අතර, එය එබීමෙන්, ආසන්න වශයෙන් පහත කේතය ක්‍රියාත්මක විය:
private void SwitchUser() ( IntPtr buffer = IntPtr.Zero; int count = 0; // (WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1, ref buffer, INFOSfoin) WTS_SESSION_INFO; // අමාරුම කොටස: // (int index = 0; index සඳහා කළමනාකරණය නොකළ මතකය කළමනාකරණය කළ මතකය වෙත පරිස්සමින් පරිවර්තනය කරන්න< count; index++) sessionInfo = (WTS_SESSION_INFO)Marshal.PtrToStructure((IntPtr)((int)buffer + (Marshal.SizeOf(new WTS_SESSION_INFO()) * index)), typeof(WTS_SESSION_INFO)); int activeSessId = -1; int targetSessId = -1; // получаем Id активного, и неактивного сеанса // 0 пропускаем, там всегда "Services" for (int i = 1; i < count; i++) { if (sessionInfo[i].State == WTS_CONNECTSTATE_CLASS.WTSDisconnected) targetSessId = sessionInfo[i].SessionId; else if (sessionInfo[i].State == WTS_CONNECTSTATE_CLASS.WTSActive) activeSessId = sessionInfo[i].SessionId; } if ((activeSessId >0) && (targetSessId > 0)) ( // අක්‍රිය සැසියක් තිබේ නම්, එයට මාරු වන්න. WTSConnectSession(Convert.ToUInt64(targetSessId), Convert.ToUInt64(activeSessId), "", අසත්‍ය); ) වෙනත් ( / / අක්‍රිය ඒවා නොමැති නම්, විසන්ධි කරන්න (පරිශීලක තේරීම් තිරය වෙත යන්න) WTSDisconnectSession(WTS_CURRENT_SERVER_HANDLE, activeSessId, false); ) ) // මතකය WTSFreeMemory(බෆරය) ඉවත් කිරීමට වග බලා ගන්න; )
සැසි දෙකක් සමඟ, sessionInfo හි මූලිකාංග 3ක් ඇත: සේවා සැසිය, 1 වන පරිශීලක සැසිය, 2 වන පරිශීලක සැසිය. ඒ අනුව, targetSessId සහ activeSessId අනන්‍ය ලෙස තීරණය කරනු ලැබේ. සැසි 2කට වඩා වැඩි ගණනක් සමඟින්, සක්‍රිය සහ අවසාන අක්‍රිය අතර මාරු වීම සිදුවේ.

නමුත් මෙහිදී මට පොඩි පසුබෑමක් ඇති වුණා. සමහර අය දැනටමත් අනුමාන කරන්න ඇති මෙය සාර්ථක නොවනු ඇත. යෙදුමෙන් WTSConnectSession ක්‍රියාත්මක වූ විට, සක්‍රිය පරිශීලකයා විසන්ධි වී ඇත, නමුත් දෙවන පරිශීලකයා සක්‍රීය නොවේ. එම. සරලව කිවහොත්, එක් පරිශීලකයෙකුගේ යෙදුමකට තවත් පරිශීලකයෙකුගේ පිවිසුම ආරම්භ කළ නොහැක. නමුත් සේවාවට එය කළ හැකිය! ඔව්, එය කණගාටුදායකයි, නමුත් පද්ධති සේවාවක් නොමැතිව, අපි සාර්ථක නොවනු ඇත. හොඳයි, අපි මෙම කේතය විසි කරන පද්ධති සේවාවක් නිර්මාණය කරමු. මෙම තාක්ෂණයන් පිළිබඳ සේවාවක් ලිවීම ඉතා සරල බැවින් C# සහ .Net ප්‍රයෝජනවත් වන්නේ මෙහිදීය. දැන් පහත ගැටළුව පැන නගී: සේවාවට පරිශීලක අතුරු මුහුණතක් නොමැත, i.e. පරිශීලකයාට සේවාවේ ක්‍රියාකාරිත්වයට සෘජුවම බලපෑම් කළ නොහැකි අතර, සේවාවට පරිශීලකයාගේ ක්‍රියාවන් ඇසීමට නොහැකිය. ඔබට සේවාවක් මත උණුසුම් යතුරක් තැබිය නොහැක.

ඉතින් මෙන්න අපේ විසඳුම:
පරිශීලක යෙදුම පරිශීලකයාට සවන් දෙන අතර, උණුසුම් යතුරක් අනාවරණය වූ විට, එය ස්විචය සිදු කරන පද්ධති සේවාව වෙත සංඥාවක් යවයි.

ඉතිරිව ඇත්තේ ඉතා ස්වල්පයකි, නමුත් මෙහි පවා මට ඔබට පෙන්වීමට යමක් තිබේ. උදාහරණයක් ලෙස, අපට වින්ඩෝස් නොමැතිව ඩෙස්ක්ටොප් යෙදුමක් අවශ්‍ය වේ, නමුත් එයට හොට්කී පිළිගැනීමට. ඔබට එය අන් සියල්ලන් කරන ආකාරයට කළ හැක: ප්‍රධාන යෙදුම් කවුළුව සඟවා එය නොපෙන්වන්න. නමුත් වඩා හොඳ විසඳුමක් තිබේ. ඔබගේ යෙදුම් සන්දර්භය ලියන්න. C කළු
උදාහරණයක් ලෙස මේ වගේ:
අභ්‍යන්තර පන්තියේ SUApplicationContext: ApplicationContext ( පුද්ගලික Hotkey hk; පුද්ගලික පෝරමය; පුද්ගලික const int SWITCH_USER_COMMAND = 193; අභ්‍යන්තර SUApplicationContext() ( // පෝරමය සාදන්න, ඔබට තවමත් එය අවශ්‍ය වේ // හොට්කී පෝරමයට සවන් දීමට = නව පෝරමය (); // ගෝලීය හොට්කී සාදන්න Win+A hk = නව Hotkey (Keys.A, බොරු, අසත්‍ය, අසත්‍ය, සත්‍ය); // නියෝජිත සිදුවීම් හසුරුවන්නා hk. Pressed += නියෝජිතයා (SendSwitchCommand(); // අපි නම් හොට්කී ලියාපදිංචි කරන්න හැකි නම් (hk.GetCanRegister(form)) hk.Register(form); // ප්‍රතිදානය මත සිදුවීමක් එල්ලන්න Application.ApplicationExit += Application_ApplicationExit; ) පුද්ගලික අවලංගු SendSwitchCommand() ( // අපගේ සේවාව විස්තර කරන්න ServiceController sc = නව සේවා පාලකය "Sus") ; උත්සාහ කරන්න (// එයට විධානය යවන්න sc.ExecuteCommand(SWITCH_USER_COMMAND); ) අල්ලා ගන්න (ව්‍යතිරේක හැර) ( MessageBox.Show(ex.Message); ) ) Application_ApplicationExit(object sender, EventArgs e) අවලංගුයි / (hk. Registered) නම් පිටවීමේදී හොට්කී එක ලියාපදිංචි නොකරන්න hk.Unregister(); ) ) static void Main() ( Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new SUApplicationContext());
මෙහිදී මම භාවිතා කරන්නේ RegisterHotKey, UnregisterHotKey යන user32.dll ක්‍රියාකාරකම් හරහා අන්තර්ජාලයේ ඇති MovablePython.Hotkey අතුරුමුහුණතයි.

සහ සේවාව ගැනම පේළි කිහිපයක්.
ආරක්ෂිත අභිබවා යාම අවලංගු OnCustomCommand(int විධානය) (bas.OnCustomCommand(command); if (command == SWITCH_USER_COMMAND) (SwitchUser(); ) )
අපි OnCustomCommand සිදුවීම ප්‍රතික්ෂේප කරන අතර, අපගේ විධානය ලැබුණු විට, අපි දැනටමත් දන්නා කාර්යය ක්‍රියාත්මක කරන්නෙමු.

සේවාව ලියාපදිංචි කිරීම සහ ආරම්භ කිරීම සහ එක් එක් පරිශීලකයා සඳහා යෙදුම ආරම්භ කිරීම සඳහා එය ඉතිරිව ඇත.

සියලුම. දැන් පළමු පරිශීලකයා පරිගණකය ආරම්භ කිරීමෙන් පසු ලොග් වී Win + A එබීමෙන් පසු ඔහුගේ සැසිය විසන්ධි වී පරිශීලක තේරීම් කවුළුව දිස්වේ. දෙවන පරිශීලකයා ඇතුල් වේ, Win + A ඔබන්න - පළමු පරිශීලක සැසිය දිස්වේ. ආදිය.

github මත ඔබට මූලාශ්‍රය පරීක්ෂා කළ හැක. නැතහොත් ඔබට සම්පූර්ණ ව්‍යාපෘතිය සහ සම්පාදනය කළ සහ ක්‍රියාත්මක කිරීමට සූදානම්ව ක්‍රියාත්මක කළ හැකි බාගත කළ හැක.

Google මගින් මතු වූයේ:

  • සැසි මාරු කිරීම සඳහා, wtsapi32.dll ශ්‍රිත භාවිතා කරන්න: WTSEnumerateSessions , WTSConnectSession , WTSDisconnectSession (දැන් මම මෙම කාර්යයන් පිළිබඳ විස්තරය දෙස බලන විට, එය දුරස්ථ වැඩ සැසි සමඟ ක්‍රියා කරන බව පවසන අතර අවංකවම, මම ටිකක් පාඩුව, නමුත් එය මට දේශීයව, දෝෂ රහිතව ක්‍රියා කරයි) .
  • හොට්කී සඳහා, user32.dll කාර්යයන් භාවිතා කරන්න: RegisterHotKey , UnregisterHotKey . මෙහි සෑම දෙයක්ම සරලයි.

මම වහාම වෙන්කරවා ගන්නම්, ඔබට තක්කාලි මා වෙතට විසි කළ හැකිය, නමුත් මම මෙම නඩුව c # වලින් ලිව්වෙමි, ප්ලස් මත වුවද, එය නිසැකවම වඩා හොඳ, වඩා දේශීය සහ යනාදිය වනු ඇත, එසේ ය. නමුත් පසුව මම c # ඉගෙනීමට පටන් ගත් අතර මට අත්දැකීම් අවශ්‍ය වූ අතර විසඳුම ලියා ඇති විට එය නැවත ලිවීමට අවශ්‍ය නොවීය, නමුත් ස්ථාන මාරුව එක සවසකට වඩා ගත නොවනු ඇත.

එබැවින්, ආරම්භකයින් සඳහා, සරල win32 යෙදුමක් බොත්තමක් සමඟ ලියා ඇති අතර, එය එබීමෙන්, ආසන්න වශයෙන් පහත කේතය ක්‍රියාත්මක විය:

Private void SwitchUser() ( IntPtr buffer = IntPtr.Zero; int count = 0; // (WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1, ref INS ගණන් බැලීම) WTS_SESSION_INFO; // අමාරුම කොටස: // (int index = 0; index සඳහා කළමනාකරණය නොකළ මතකය කළමනාකරණය කළ මතකය වෙත පරිස්සමින් පරිවර්තනය කරන්න< count; index++) sessionInfo = (WTS_SESSION_INFO)Marshal.PtrToStructure((IntPtr)((int)buffer + (Marshal.SizeOf(new WTS_SESSION_INFO()) * index)), typeof(WTS_SESSION_INFO)); int activeSessId = -1; int targetSessId = -1; // получаем Id активного, и неактивного сеанса // 0 пропускаем, там всегда "Services" for (int i = 1; i < count; i++) { if (sessionInfo[i].State == WTS_CONNECTSTATE_CLASS.WTSDisconnected) targetSessId = sessionInfo[i].SessionId; else if (sessionInfo[i].State == WTS_CONNECTSTATE_CLASS.WTSActive) activeSessId = sessionInfo[i].SessionId; } if ((activeSessId >0) && (targetSessId > 0)) ( // අක්‍රිය සැසියක් තිබේ නම්, එයට මාරු වන්න. WTSConnectSession(Convert.ToUInt64(targetSessId), Convert.ToUInt64(activeSessId), "", අසත්‍ය); ) වෙනත් ( / / අක්‍රිය ඒවා නොමැති නම්, විසන්ධි කරන්න (පරිශීලක තේරීම් තිරය වෙත යන්න) WTSDisconnectSession(WTS_CURRENT_SERVER_HANDLE, activeSessId, false); ) ) // මතකය WTSFreeMemory(බෆරය) ඉවත් කිරීමට වග බලා ගන්න; )

සැසි දෙකක් සමඟ, sessionInfo හි මූලිකාංග 3ක් ඇත: සේවා සැසිය, 1 වන පරිශීලක සැසිය, 2 වන පරිශීලක සැසිය. ඒ අනුව, targetSessId සහ activeSessId අනන්‍ය ලෙස තීරණය කරනු ලැබේ. සැසි 2කට වඩා වැඩි ගණනක් සමඟින්, සක්‍රිය සහ අවසාන අක්‍රිය අතර මාරු වීම සිදුවේ.

නමුත් මෙහිදී මට පොඩි පසුබෑමක් ඇති වුණා. සමහර අය දැනටමත් අනුමාන කරන්න ඇති මෙය සාර්ථක නොවනු ඇත. යෙදුමෙන් WTSConnectSession ක්‍රියාත්මක වූ විට, සක්‍රිය පරිශීලකයා විසන්ධි වී ඇත, නමුත් දෙවන පරිශීලකයා සක්‍රීය නොවේ. එම. සරලව කිවහොත්, එක් පරිශීලකයෙකුගේ යෙදුමකට තවත් පරිශීලකයෙකුගේ පිවිසුම ආරම්භ කළ නොහැක. නමුත් සේවාවට එය කළ හැකිය! ඔව්, එය කණගාටුදායකයි, නමුත් පද්ධති සේවාවක් නොමැතිව, අපි සාර්ථක නොවනු ඇත. හොඳයි, අපි මෙම කේතය විසි කරන පද්ධති සේවාවක් නිර්මාණය කරමු. මෙම තාක්ෂණයන් පිළිබඳ සේවාවක් ලිවීම ඉතා සරල බැවින් C# සහ .Net ප්‍රයෝජනවත් වන්නේ මෙහිදීය. දැන් පහත ගැටළුව පැන නගී: සේවාවට පරිශීලක අතුරු මුහුණතක් නොමැත, i.e. පරිශීලකයාට සේවාවේ ක්‍රියාකාරිත්වයට සෘජුවම බලපෑම් කළ නොහැකි අතර, සේවාවට පරිශීලකයාගේ ක්‍රියාවන් ඇසීමට නොහැකිය. ඔබට සේවාවක් මත උණුසුම් යතුරක් තැබිය නොහැක.

ඉතින් මෙන්න අපේ විසඳුම:
පරිශීලක යෙදුම පරිශීලකයාට සවන් දෙන අතර, උණුසුම් යතුරක් අනාවරණය වූ විට, එය ස්විචය සිදු කරන පද්ධති සේවාව වෙත සංඥාවක් යවයි.

ඉතිරිව ඇත්තේ ඉතා ස්වල්පයකි, නමුත් මෙහි පවා මට ඔබට පෙන්වීමට යමක් තිබේ. උදාහරණයක් ලෙස, අපට වින්ඩෝස් නොමැතිව ඩෙස්ක්ටොප් යෙදුමක් අවශ්‍ය වේ, නමුත් එයට හොට්කී පිළිගැනීමට. ඔබට එය අන් සියල්ලන් කරන ආකාරයට කළ හැක: ප්‍රධාන යෙදුම් කවුළුව සඟවා එය නොපෙන්වන්න. නමුත් වඩා හොඳ විසඳුමක් තිබේ. ඔබගේ යෙදුම් සන්දර්භය ලියන්න. C කළු
උදාහරණයක් ලෙස මේ වගේ:

අභ්‍යන්තර පන්තියේ SUApplicationContext: ApplicationContext (පුද්ගලික Hotkey hk; පුද්ගලික පෝරමය; පුද්ගලික const int SWITCH_USER_COMMAND = 193; අභ්‍යන්තර SUApplicationContext() ( // පෝරමය සාදන්න, එය තවමත් අවශ්‍ය වේ // හොට්කී පෝරමයට සවන් දීමට = නව පෝරමය (); / ගෝලීය හොට්කී සාදන්න Win+A hk = නව Hotkey (Keys.A, බොරු, අසත්‍ය, අසත්‍ය, සත්‍ය); // නියෝජිත සිදුවීම් හසුරුවන්නා hk. Pressed += නියෝජිත (SendSwitchCommand(); // අපට හැකි නම් හොට්කී ලියාපදිංචි කරන්න if (hk.GetCanRegister(form)) hk.Register(form); // ප්‍රතිදානය මත සිදුවීමක් එල්ලන්න Application.ApplicationExit += Application_ApplicationExit; ) private void SendSwitchCommand() ( // අපගේ සේවාව විස්තර කරන්න ServiceController sc = නව සේවා පාලක (" Sus") ; උත්සාහ කරන්න ( // එයට විධානය යවන්න sc.ExecuteCommand(SWITCH_USER_COMMAND); ) අල්ලන්න (ව්‍යතිරේක හැර) ( MessageBox.Show(ex.Message); ) ) අවලංගු Application_ApplicationExit(object sender, EventArgs e) (hk. Registered) නම් පිටවීමේදී හොට්කී එක ලියාපදිංචි නොකරන්න hk.Unregister(); ) ) static void Main() ( Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new SUApplicationContext());

මෙහිදී මම භාවිතා කරන්නේ RegisterHotKey, UnregisterHotKey යන user32.dll ක්‍රියාකාරකම් හරහා අන්තර්ජාලයේ ඇති MovablePython.Hotkey අතුරුමුහුණතයි.

සහ සේවාව ගැනම පේළි කිහිපයක්.

ආරක්ෂිත අභිබවා යාම අවලංගුයි OnCustomCommand(int command) (bas.OnCustomCommand(command); if (command == SWITCH_USER_COMMAND) (SwitchUser(); ) )

අපි OnCustomCommand සිදුවීම ප්‍රතික්ෂේප කරන අතර, අපගේ විධානය ලැබුණු විට, අපි දැනටමත් දන්නා කාර්යය ක්‍රියාත්මක කරන්නෙමු.

සේවාව ලියාපදිංචි කිරීම සහ ආරම්භ කිරීම සහ එක් එක් පරිශීලකයා සඳහා යෙදුම ආරම්භ කිරීම සඳහා එය ඉතිරිව ඇත.

සියලුම. දැන් පළමු පරිශීලකයා පරිගණකය ආරම්භ කිරීමෙන් පසු ලොග් වී Win + A එබීමෙන් පසු ඔහුගේ සැසිය විසන්ධි වී පරිශීලක තේරීම් කවුළුව දිස්වේ. දෙවන පරිශීලකයා ඇතුල් වේ, Win + A ඔබන්න - පළමු පරිශීලක සැසිය දිස්වේ. ආදිය.

github මත ඔබට මූලාශ්‍රය පරීක්ෂා කළ හැක. නැතහොත් ඔබට සම්පූර්ණ ව්‍යාපෘතිය සහ සම්පාදනය කළ සහ ක්‍රියාත්මක කිරීමට සූදානම්ව ක්‍රියාත්මක කළ හැකි බාගත කළ හැක.

සමාන ලිපි

2022 parki48.ru. අපි රාමු නිවසක් ගොඩනඟමු. භූමි අලංකරණය. ඉදිකිරීම. පදනම.