Skip to content

Commit 890e018

Browse files
committed
Issue #65 Added menu items "Clipboard | Copy Window Title" and "Clipboard | Copy Full Process Path"
1 parent d439304 commit 890e018

File tree

5 files changed

+70
-27
lines changed

5 files changed

+70
-27
lines changed

SmartSystemMenu/Forms/MainForm.cs

+22-2
Original file line numberDiff line numberDiff line change
@@ -465,16 +465,36 @@ private void WindowGetMsg(object sender, WndProcEventArgs e)
465465
}
466466
break;
467467

468-
case MenuItemId.SC_COPY_TEXT_TO_CLIPBOARD:
468+
case MenuItemId.SC_COPY_WINDOW_TEXT:
469469
{
470470
var text = window.ExtractText();
471-
if (text != null)
471+
if (!string.IsNullOrEmpty(text))
472472
{
473473
Clipboard.SetText(text);
474474
}
475475
}
476476
break;
477477

478+
case MenuItemId.SC_COPY_WINDOW_TITLE:
479+
{
480+
var text = window.GetWindowText();
481+
if (!string.IsNullOrEmpty(text))
482+
{
483+
Clipboard.SetText(text);
484+
}
485+
}
486+
break;
487+
488+
case MenuItemId.SC_COPY_FULL_PROCESS_PATH:
489+
{
490+
var path = window.Process?.GetMainModuleFileName();
491+
if (!string.IsNullOrEmpty(path))
492+
{
493+
Clipboard.SetText(path);
494+
}
495+
}
496+
break;
497+
478498
case MenuItemId.SC_CLEAR_CLIPBOARD:
479499
{
480500
Clipboard.Clear();

SmartSystemMenu/Language.xml

+36-18
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111
<item name="save_screenshot" value="Save Screenshot" />
1212
<item name="open_file_in_explorer" value="Open File In Explorer" />
1313
<item name="clipboard" value="Clipboard" />
14-
<item name="copy_text_to_clipboard" value="Copy Text To Clipboard" />
15-
<item name="clear_clipboard" value="Clear Clipboard" />
14+
<item name="copy_window_text" value="Copy Window Text" />
15+
<item name="copy_window_title" value="Copy Window Title" />
16+
<item name="copy_full_process_path" value="Copy Full Process Path" />
17+
<item name="clear_clipboard" value="Clear" />
1618
<item name="drag_by_mouse" value="Drag By Mouse" />
1719
<item name="size" value="Resize" />
1820
<item name="size_default" value="Default" />
@@ -229,8 +231,10 @@
229231
<item name="save_screenshot" value="Screenshot speichern…" />
230232
<item name="open_file_in_explorer" value="Im Windows Explorer anzeigen" />
231233
<item name="clipboard" value="Zwischenablage" />
232-
<item name="copy_text_to_clipboard" value="Text in die Zwischenablage kopieren" />
233-
<item name="clear_clipboard" value="Zwischenablage löschen" />
234+
<item name="copy_window_text" value="Fenstertext kopieren" />
235+
<item name="copy_window_title" value="Fenstertitel kopieren" />
236+
<item name="copy_full_process_path" value="Vollständigen Prozesspfad kopieren" />
237+
<item name="clear_clipboard" value="Löschen" />
234238
<item name="drag_by_mouse" value="Ziehen mit der Maus" />
235239
<item name="size" value="Fenstergröβe ändern" />
236240
<item name="size_default" value="Standardmäβig" />
@@ -445,8 +449,10 @@
445449
<item name="save_screenshot" value="保存窗口截图" />
446450
<item name="open_file_in_explorer" value="在资源管理器中打开文件" />
447451
<item name="clipboard" value="剪贴板" />
448-
<item name="copy_text_to_clipboard" value="将文本复制到剪贴板" />
449-
<item name="clear_clipboard" value="清除剪贴板" />
452+
<item name="copy_window_text" value="複製窗口文本" />
453+
<item name="copy_window_title" value="複製窗口標題" />
454+
<item name="copy_full_process_path" value="複製完整的進程路徑" />
455+
<item name="clear_clipboard" value="清除" />
450456
<item name="drag_by_mouse" value="通过鼠标拖动" />
451457
<item name="size" value="调整窗口大小" />
452458
<item name="size_default" value="默认" />
@@ -661,8 +667,10 @@
661667
<item name="save_screenshot" value="儲存視窗擷圖" />
662668
<item name="open_file_in_explorer" value="在資料管理員中打開檔案" />
663669
<item name="clipboard" value="剪貼板" />
664-
<item name="copy_text_to_clipboard" value="將文字複製到剪貼板" />
665-
<item name="clear_clipboard" value="清除剪貼板" />
670+
<item name="copy_window_text" value="複製窗口文本" />
671+
<item name="copy_window_title" value="複製窗口標題" />
672+
<item name="copy_full_process_path" value="複製完整的進程路徑" />
673+
<item name="clear_clipboard" value="清除" />
666674
<item name="drag_by_mouse" value="用滑鼠拖動" />
667675
<item name="size" value="調整視窗大小" />
668676
<item name="size_default" value="預設" />
@@ -877,8 +885,10 @@
877885
<item name="save_screenshot" value="スクリーンショットを撮る" />
878886
<item name="open_file_in_explorer" value="エクスプローラーで開く" />
879887
<item name="clipboard" value="クリップボード" />
880-
<item name="copy_text_to_clipboard" value="クリップボードに文字列をコピーする" />
881-
<item name="clear_clipboard" value="クリップボードをクリア" />
888+
<item name="copy_window_text" value="ウィンドウテキストのコピー" />
889+
<item name="copy_window_title" value="ウィンドウタイトルのコピー" />
890+
<item name="copy_full_process_path" value="フルプロセスパスをコピー" />
891+
<item name="clear_clipboard" value="クリア" />
882892
<item name="drag_by_mouse" value="マウスでドラッグする" />
883893
<item name="size" value="サイズ変更" />
884894
<item name="size_default" value="デフォルト" />
@@ -1093,8 +1103,10 @@
10931103
<item name="save_screenshot" value="스크린샷 저장" />
10941104
<item name="open_file_in_explorer" value="탐색기에서 파일 열기" />
10951105
<item name="clipboard" value="클립보드" />
1096-
<item name="copy_text_to_clipboard" value="클립보드에 텍스트 복사" />
1097-
<item name="clear_clipboard" value="클립보드 지우기" />
1106+
<item name="copy_window_text" value="창 텍스트 복사" />
1107+
<item name="copy_window_title" value="창 제목 복사" />
1108+
<item name="copy_full_process_path" value="전체 프로세스 경로 복사" />
1109+
<item name="clear_clipboard" value="분명한" />
10981110
<item name="drag_by_mouse" value="마우스로 드래그" />
10991111
<item name="size" value="크기 변경" />
11001112
<item name="size_default" value="기본" />
@@ -1309,8 +1321,10 @@
13091321
<item name="save_screenshot" value="Сохранить снимок окна" />
13101322
<item name="open_file_in_explorer" value="Открыть в проводнике" />
13111323
<item name="clipboard" value="Буфер обмена" />
1312-
<item name="copy_text_to_clipboard" value="Скопировать текст в буфер обмена" />
1313-
<item name="clear_clipboard" value="Очистить буфер обмена" />
1324+
<item name="copy_window_text" value="Скопировать текст окна" />
1325+
<item name="copy_window_title" value="Скопировать заголовок окна" />
1326+
<item name="copy_full_process_path" value="Скопировать полный путь к процессу" />
1327+
<item name="clear_clipboard" value="Очистить" />
13141328
<item name="drag_by_mouse" value="Перетащить мышкой" />
13151329
<item name="size" value="Изменить размер" />
13161330
<item name="size_default" value="По умолчанию" />
@@ -1525,8 +1539,10 @@
15251539
<item name="save_screenshot" value="Сачувај прозор програма" />
15261540
<item name="open_file_in_explorer" value="Отвори датотеку у Explorer" />
15271541
<item name="clipboard" value="Клипборд" />
1528-
<item name="copy_text_to_clipboard" value="Копирај текст у клипборду" />
1529-
<item name="clear_clipboard" value="Обриши клипборд" />
1542+
<item name="copy_window_text" value="Копирај текст прозора" />
1543+
<item name="copy_window_title" value="Копирај наслов прозора" />
1544+
<item name="copy_full_process_path" value="Копирај пуну путању процеса" />
1545+
<item name="clear_clipboard" value="Обриши" />
15301546
<item name="drag_by_mouse" value="Премести са мишем" />
15311547
<item name="size" value="Промени величину" />
15321548
<item name="size_default" value="Подразумевано" />
@@ -1741,8 +1757,10 @@
17411757
<item name="save_screenshot" value="Fazer captura de tela" />
17421758
<item name="open_file_in_explorer" value="Abrir a pasta do executável no Explorer" />
17431759
<item name="clipboard" value="Área de Transferência" />
1744-
<item name="copy_text_to_clipboard" value="Copiar nela o título desta janela" />
1745-
<item name="clear_clipboard" value="Limpar a Área de Transferência" />
1760+
<item name="copy_window_text" value="Copiar texto da janela" />
1761+
<item name="copy_window_title" value="Copiar título da janela" />
1762+
<item name="copy_full_process_path" value="Copiar caminho completo do processo" />
1763+
<item name="clear_clipboard" value="Limpar" />
17461764
<item name="drag_by_mouse" value="Arrastar com o mouse" />
17471765
<item name="size" value="Redimensionar" />
17481766
<item name="size_default" value="Padrão" />

SmartSystemMenu/MenuItemId.cs

+8-4
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,11 @@ internal static class MenuItemId
6060
public const int SC_SYSTEMTRAY = 0x4810;
6161
public const int SC_SUSPEND_TO_SYSTEMTRAY = 0x481F;
6262
public const int SC_CLIPBOARD = 0x482F;
63-
public const int SC_COPY_TEXT_TO_CLIPBOARD = 0x4811;
64-
public const int SC_CLEAR_CLIPBOARD = 0x4812;
65-
public const int SC_START = 0x4813;
63+
public const int SC_COPY_WINDOW_TEXT = 0x4811;
64+
public const int SC_COPY_WINDOW_TITLE = 0x4812;
65+
public const int SC_COPY_FULL_PROCESS_PATH = 0x4813;
66+
public const int SC_CLEAR_CLIPBOARD = 0x4814;
67+
public const int SC_START = 0x4815;
6668
public const int SC_START_PROGRAM = 0x4900;
6769
public const int SC_MOVE_TO = 0x5000;
6870
public const int SC_SIZE_DEFINED = 0x5100;
@@ -120,7 +122,9 @@ static MenuItemId()
120122
NameToId["priority_below_normal"] = SC_PRIORITY_BELOW_NORMAL;
121123
NameToId["priority_idle"] = SC_PRIORITY_IDLE;
122124
NameToId["clipboard"] = SC_CLIPBOARD;
123-
NameToId["copy_text_to_clipboard"] = SC_COPY_TEXT_TO_CLIPBOARD;
125+
NameToId["copy_window_text"] = SC_COPY_WINDOW_TEXT;
126+
NameToId["copy_window_title"] = SC_COPY_WINDOW_TITLE;
127+
NameToId["copy_full_process_path"] = SC_COPY_FULL_PROCESS_PATH;
124128
NameToId["clear_clipboard"] = SC_CLEAR_CLIPBOARD;
125129
NameToId["system_tray"] = SC_SYSTEMTRAY;
126130
NameToId["minimize_to_systemtray"] = SC_MINIMIZE_TO_SYSTEMTRAY;

SmartSystemMenu/SmartSystemMenu.xml

+3-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@
7878
</item>
7979
<item type="group" name="clipboard">
8080
<items>
81-
<item type="item" name="copy_text_to_clipboard" key1="" key2="" key3="" />
81+
<item type="item" name="copy_window_text" key1="" key2="" key3="" />
82+
<item type="item" name="copy_window_title" key1="" key2="" key3="" />
83+
<item type="item" name="copy_full_process_path" key1="" key2="" key3="" />
8284
<item type="item" name="clear_clipboard" key1="" key2="" key3="" />
8385
</items>
8486
</item>

SmartSystemMenu/Window.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,7 @@ public WindowInfo GetWindowInfo()
290290
info.GCL_WNDPROC = NativeMethods.GetClassLong(Handle, NativeConstants.GCL_WNDPROC);
291291
info.DWL_DLGPROC = NativeMethods.GetClassLong(Handle, NativeConstants.DWL_DLGPROC);
292292
info.DWL_USER = NativeMethods.GetClassLong(Handle, NativeConstants.DWL_USER);
293-
info.FullPath = process == null ? "" : process.GetMainModuleFileName();
294-
info.FullPath = info.FullPath == null ? "" : info.FullPath;
293+
info.FullPath = process?.GetMainModuleFileName() ?? "";
295294
info.Priority = ProcessPriority;
296295
info.StartTime = process == null ? (DateTime?)null : process.StartTime;
297296

0 commit comments

Comments
 (0)