Révision | 546d61f28fcc5c3c525452757a8ee5761a4e38af (tree) |
---|---|
l'heure | 2022-06-30 10:59:01 |
Auteur | Tadamegu Furukawa <tarancho@user...> |
Commiter | Tadamegu Furukawa |
Merge branch 'master' of https://pf.osdn.net/gitroot/t/ta/tarancho/garakutas
@@ -0,0 +1,10 @@ | ||
1 | +# | |
2 | +# .gitignore 編集 | |
3 | +# キャッシュを削除 (git rm -r --cached . //ファイル全体キャッシュ削除) | |
4 | +# commit & push | |
5 | + | |
6 | +*.exe | |
7 | +*.zip | |
8 | +*.o | |
9 | +*~ | |
10 | +bin/ |
@@ -21,7 +21,7 @@ rem | ||
21 | 21 | |
22 | 22 | SET CMD=%SYSTEMROOT%\System32\cmd |
23 | 23 | |
24 | -IF NOT "%1"=="" ( | |
24 | +IF NOT %1=="" ( | |
25 | 25 | call :CHG_DIRECTORY "%1" |
26 | 26 | cd |
27 | 27 | ) |
@@ -0,0 +1,160 @@ | ||
1 | +/* $Id$ | |
2 | + * RDPでのファイルの複写とクリップボードの使用を抑止します。 | |
3 | + */ | |
4 | +#include <stdio.h> | |
5 | +#include <tchar.h> | |
6 | +#include <windows.h> | |
7 | +#include <getopt.h> | |
8 | + | |
9 | +/*-------------------------------------------------------------------- | |
10 | + * dwErr で指定されたエラーコードに対応するエラーメッセージを関数にシ | |
11 | + * ステムメッセージテーブルリソースから検索して一時的な文字列へのポイ | |
12 | + * ンタを返却する。dwErr は GetLastError から得た値を指定する事。lpsz | |
13 | + * はエラーメッセージへ追加する文字列を指定する。API 名等を指定する。 | |
14 | + * *-------------------------------------------------------------------*/ | |
15 | +static LPCSTR WINAPI | |
16 | +GetLastErrorMessage(LPCSTR lpsz, DWORD dwErr) | |
17 | +{ | |
18 | + static char sz[1024]; | |
19 | + char szTmp[256]; | |
20 | + DWORD i; | |
21 | + | |
22 | + if (!(i = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | | |
23 | + FORMAT_MESSAGE_IGNORE_INSERTS, | |
24 | + NULL, dwErr, 0, szTmp, sizeof(szTmp), NULL))) { | |
25 | + strcpy(szTmp, "---"); | |
26 | + } else { | |
27 | + szTmp[i] = '\0'; | |
28 | + for (i--; 0 <= (int) i; i--) { | |
29 | + if ('\n' == szTmp[i] || '\r' == szTmp[i]) { | |
30 | + szTmp[i] = '\0'; | |
31 | + } | |
32 | + } | |
33 | + } | |
34 | + wsprintf(sz, "[WIN32] %s: Error Code = %d(%#02x): %s", | |
35 | + lpsz, dwErr, dwErr, szTmp); | |
36 | + return (LPCTSTR)sz; | |
37 | +} | |
38 | + | |
39 | + | |
40 | +static void | |
41 | +easyEncript(char *str) | |
42 | +{ | |
43 | + char *p = str; | |
44 | + | |
45 | + printf("["); | |
46 | + while (*p) { | |
47 | + printf("%c", ((int) *p) + 1); | |
48 | + p++; | |
49 | + } | |
50 | + printf("]\n"); | |
51 | +} | |
52 | + | |
53 | +static void | |
54 | +easyDecript(char *str) | |
55 | +{ | |
56 | + char *p = str; | |
57 | + | |
58 | + while (*p) { | |
59 | + *p = (char) (((int) *p) - 1); | |
60 | + p++; | |
61 | + } | |
62 | +} | |
63 | + | |
64 | +int | |
65 | +main(int argc, char *argv[]) | |
66 | +{ | |
67 | + HRESULT hResult = S_OK; | |
68 | + // 戻り値 | |
69 | + DWORD dwResult = 0; | |
70 | + | |
71 | + // HKEY | |
72 | + HKEY hKey = NULL; | |
73 | + DWORD dwValue = 1; | |
74 | + | |
75 | + // SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp | |
76 | + char szSubKey[128] = "TZTUFN" | |
77 | + "]DvssfouDpouspmTfu]Dpouspm]Ufsnjobm!Tfswfs]XjoTubujpot]SEQ.Udq"; | |
78 | + char szValueNames[][80] = { | |
79 | + "gEjtbcmfDen", // "fDisableCdm" | |
80 | + "gEjtbcmfDmjq", // "fDisableClip" | |
81 | + "\0" | |
82 | + }; | |
83 | + int i; | |
84 | + int c; | |
85 | + | |
86 | + int option_index; | |
87 | + static struct option options[] = { | |
88 | + {"encript", required_argument, NULL, 'e'}, | |
89 | + {"help", no_argument, NULL, 'h'}, | |
90 | + {"version", no_argument, NULL, 'v'}, | |
91 | + {NULL, 0, NULL, 0} | |
92 | + }; | |
93 | + | |
94 | + while (-1 != (c = getopt_long(argc, argv, "e:hv", | |
95 | + options, &option_index))) { | |
96 | + switch (c) { | |
97 | + case 'e': | |
98 | + easyEncript(optarg); | |
99 | + return 0; | |
100 | + case 'h': | |
101 | + //showHelp(); | |
102 | + return 0; | |
103 | + case 'v': | |
104 | + //showVersion(); | |
105 | + return 0; | |
106 | + default: | |
107 | + fprintf(stderr, "想定外のgetoptからの戻り: %c\n", c); | |
108 | + return 1; | |
109 | + } | |
110 | + } | |
111 | + | |
112 | + /* | |
113 | + レジストリオープン | |
114 | + */ | |
115 | + easyDecript(szSubKey); | |
116 | + dwResult = (DWORD) RegOpenKeyEx( | |
117 | + HKEY_LOCAL_MACHINE, // レジストリキー | |
118 | + szSubKey, // レジストリサブキー | |
119 | + 0, // Reserved(0固定) | |
120 | + KEY_SET_VALUE, // アクセス権 | |
121 | + &hKey // キーハンドルの受け取り位置 | |
122 | + ); | |
123 | + if (ERROR_SUCCESS != dwResult) { | |
124 | + // エラー | |
125 | + hResult = HRESULT_FROM_WIN32(dwResult); | |
126 | + fprintf(stderr, "%s %lx\n", | |
127 | + GetLastErrorMessage("Registory Open", dwResult), hResult); | |
128 | + MessageBox(NULL, TEXT("エラーが発生しました。" | |
129 | + "詳細はコンソールの" | |
130 | + "メッセージを確認して下さい。"), | |
131 | + TEXT("エラー"), | |
132 | + MB_ICONERROR); | |
133 | + return 1; | |
134 | + } | |
135 | + | |
136 | + for (i = 0; szValueNames[i][0]; i++) { | |
137 | + easyDecript(szValueNames[i]); | |
138 | + dwResult = (DWORD) RegSetValueEx( | |
139 | + hKey, // キーハンドル | |
140 | + szValueNames[i], // ValueName | |
141 | + 0, // Reserved(0固定) | |
142 | + REG_DWORD, // データ型 | |
143 | + (const LPBYTE) &dwValue, // 書き込み内容 | |
144 | + sizeof(DWORD) // 書き込みサイズ(BYTE) | |
145 | + ); | |
146 | + if (ERROR_SUCCESS != dwResult) { | |
147 | + // エラー | |
148 | + hResult = HRESULT_FROM_WIN32(dwResult); | |
149 | + fprintf(stderr, "%s %lx\n", | |
150 | + GetLastErrorMessage("Registory set value", | |
151 | + dwResult), hResult); | |
152 | + RegCloseKey(hKey); | |
153 | + return 1; | |
154 | + } | |
155 | + } | |
156 | + RegCloseKey(hKey); | |
157 | + MessageBox(NULL, TEXT("正常に更新しました。"), TEXT("正常終了"), | |
158 | + MB_ICONINFORMATION); | |
159 | + return 0; | |
160 | +} |
@@ -0,0 +1,12 @@ | ||
1 | +# $Id: makefile 1313 2013-03-19 00:10:02Z tfuruka1 $ | |
2 | +CC = x86_64-w64-mingw32-gcc | |
3 | +CC = i686-w64-mingw32-gcc | |
4 | +CFLAGS= -g -Wall -W -Wformat=2 -Wcast-qual -Wcast-align -Wwrite-strings \ | |
5 | + -Wconversion -Wfloat-equal -Wpointer-arith \ | |
6 | + --exec-charset=cp932 --input-charset=utf-8 | |
7 | + | |
8 | +disrdpcp.exe : main.o makefile | |
9 | + $(CC) $(CFLAGS) -o $@ main.o | |
10 | + strip $@ | |
11 | +clean : | |
12 | + -rm -f *.o *~ |
@@ -1,29 +1,26 @@ | ||
1 | 1 | # $Id: makefile,v 1.7 2011/03/03 13:38:58 tfuruka1 Exp $ |
2 | 2 | # $Name: $ |
3 | 3 | # |
4 | -# makeの親玉 | |
4 | +# make縺ョ隕ェ邇 | |
5 | 5 | # |
6 | -# $Log: makefile,v $ | |
7 | -# Revision 1.7 2011/03/03 13:38:58 tfuruka1 | |
8 | -# getoptに対応等 | |
6 | +# MinGW縺ォ縺、縺?※ | |
7 | +# * 讓ェ蜿悶j荳ク縺ォ縺、縺?※縺ッ縲∫樟蝨ィ縺ッ菫晉蕗 | |
9 | 8 | # |
10 | -# MinGWについて | |
11 | -# * 横取り丸については、現在は保留 | |
12 | -# | |
13 | -# 2019/07/03 MinGWへ変更。getopt は最早不要となりました。CPU100, | |
14 | -# TVMaker を追加。 | |
15 | -# 2011/03/01 teeコマンドを新規追加 | |
16 | -# 2007/10/04 MegaFileを追加 | |
17 | -# 2006/12/06 単純なコーディングミスを修正しました。 | |
18 | -# 2006/12/06 ydmモジュール回線低品質エミュレータを新規追加 | |
19 | -# 2006/12/06 lha32を新規追加 | |
20 | -# 2006/11/15 新規追加 | |
9 | +# 2019/07/03 MinGW縺ク螟画峩縲Hetopt 縺ッ譛?譌ゥ荳崎ヲ√→縺ェ繧翫∪縺励◆縲?PU100, | |
10 | +# TVMaker 繧定ソス蜉?縲 | |
11 | +# 2011/03/01 tee繧ウ繝槭Φ繝峨r譁ー隕剰ソス蜉? | |
12 | +# 2007/10/04 MegaFile繧定ソス蜉? | |
13 | +# 2006/12/06 蜊倡エ斐↑繧ウ繝シ繝?ぅ繝ウ繧ー繝溘せ繧剃ソョ豁」縺励∪縺励◆縲 | |
14 | +# 2006/12/06 ydm繝「繧ク繝・繝シ繝ォ蝗樒キ壻ス主刀雉ェ繧ィ繝溘Η繝ャ繝シ繧ソ繧呈眠隕剰ソス蜉? | |
15 | +# 2006/12/06 lha32繧呈眠隕剰ソス蜉? | |
16 | +# 2006/11/15 譁ー隕剰ソス蜉? | |
21 | 17 | # |
22 | 18 | |
23 | 19 | all : |
24 | 20 | cd batkey; make |
25 | 21 | cd CPU100; make |
26 | 22 | cd crlf; make |
23 | + cd dedup; make | |
27 | 24 | cd ExSleep; make |
28 | 25 | cd img2java; make |
29 | 26 | cd lha32; make |
@@ -38,6 +35,7 @@ clean : | ||
38 | 35 | cd batkey; make clean |
39 | 36 | cd CPU100; make clean |
40 | 37 | cd crlf; make clean |
38 | + cd dedup; make clean | |
41 | 39 | cd ExSleep; make clean |
42 | 40 | cd img2java; make clean |
43 | 41 | cd lha32; make clean |